Este documento describe los conceptos básicos de datos y variables en programación. Explica que un dato es un elemento de un conjunto bien definido y que los tipos de datos más comunes son enteros, reales, caracteres, cadenas y booleanos. También define las variables como símbolos que referencian un espacio de memoria para almacenar datos, las cuales tienen nombre, tipo y valor. Además, introduce conceptos como literales, constantes y expresiones, necesarios para representar y manipular datos en los algoritmos.
- Los arrays permiten agrupar datos del mismo tipo ordenados de forma lineal, donde cada elemento se identifica por el nombre del array y un índice. Pueden ser de una o más dimensiones.
- Los arrays se caracterizan por almacenar los elementos en posiciones de memoria contiguas, tener un nombre que representa a todos los elementos y diferenciarlos por índices.
- Los arrays son útiles para almacenar grandes cantidades de datos del mismo tipo como edades, temperaturas o nombres, permitiendo un acceso y uso más fácil de los datos.
El documento describe los diagramas de estado, los cuales muestran los diferentes estados por los que puede pasar un objeto y las transiciones entre estados como resultado de eventos. Explica que los diagramas de estado describen el comportamiento de un objeto a lo largo de su ciclo de vida mediante estados, transiciones, eventos y actividades. También detalla los diferentes elementos que componen un diagrama de estado como estados, eventos, transiciones simples y complejas, así como los pasos para construir un diagrama de estado.
The OSI reference model is a standardized framework for network architecture that consists of 7 layers: physical, data link, network, transport, session, presentation, and application. Each layer defines a part of the process of moving information across a network and works together with adjacent layers to provide a unified quality of service. Data moves down through the layers on the sending system and is encapsulated with headers and trailers at each layer before being transmitted. At the receiving system, the reverse process occurs as headers are removed and data is de-encapsulated moving up the layers.
The document discusses various object-oriented programming concepts in C++ including inheritance, polymorphism, composition, and aggregation. It provides examples of how to implement inheritance with base and derived classes, defines abstract classes, and demonstrates composition using aggregation relationships between classes. Vector containers are described as a way to implement dynamic arrays. Polymorphism is explored through pointer-based references to base classes and virtual functions.
The document provides an overview of entity-relationship (E-R) modeling concepts including:
- Entity sets represent collections of real-world entities that share common properties
- Relationship sets define associations between entity sets
- Attributes provide additional information about entities and relationships
- Keys uniquely identify entities and relationships
- Cardinalities constrain how entities can participate in relationships
- E-R diagrams visually depict entity sets, attributes, relationships and constraints.
El algoritmo de backtracking es una técnica de resolución de problemas que implica una búsqueda sistemática y exhaustiva de soluciones mediante la generación de todas las posibles combinaciones de elementos y el retroceso cuando una combinación parcial no puede completarse. Generalmente se implementa de forma recursiva, generando primero las combinaciones más restrictivas y usando funciones de poda para evitar generar estados que no conduzcan a soluciones. Problemas como el sudoku, el problema del caballo y las ocho reinas se pueden resolver usando este enfoque.
Una tabla hash es una estructura de datos que permite realizar operaciones de recuperación, eliminación e inserción de elementos de forma rápida mediante el uso de funciones hash que mapean claves a posiciones de una tabla. Las tablas hash son útiles para implementar diccionarios y otras estructuras asociativas, pero pueden sufrir colisiones cuando múltiples claves son mapeadas a la misma posición.
- Los arrays permiten agrupar datos del mismo tipo ordenados de forma lineal, donde cada elemento se identifica por el nombre del array y un índice. Pueden ser de una o más dimensiones.
- Los arrays se caracterizan por almacenar los elementos en posiciones de memoria contiguas, tener un nombre que representa a todos los elementos y diferenciarlos por índices.
- Los arrays son útiles para almacenar grandes cantidades de datos del mismo tipo como edades, temperaturas o nombres, permitiendo un acceso y uso más fácil de los datos.
El documento describe los diagramas de estado, los cuales muestran los diferentes estados por los que puede pasar un objeto y las transiciones entre estados como resultado de eventos. Explica que los diagramas de estado describen el comportamiento de un objeto a lo largo de su ciclo de vida mediante estados, transiciones, eventos y actividades. También detalla los diferentes elementos que componen un diagrama de estado como estados, eventos, transiciones simples y complejas, así como los pasos para construir un diagrama de estado.
The OSI reference model is a standardized framework for network architecture that consists of 7 layers: physical, data link, network, transport, session, presentation, and application. Each layer defines a part of the process of moving information across a network and works together with adjacent layers to provide a unified quality of service. Data moves down through the layers on the sending system and is encapsulated with headers and trailers at each layer before being transmitted. At the receiving system, the reverse process occurs as headers are removed and data is de-encapsulated moving up the layers.
The document discusses various object-oriented programming concepts in C++ including inheritance, polymorphism, composition, and aggregation. It provides examples of how to implement inheritance with base and derived classes, defines abstract classes, and demonstrates composition using aggregation relationships between classes. Vector containers are described as a way to implement dynamic arrays. Polymorphism is explored through pointer-based references to base classes and virtual functions.
The document provides an overview of entity-relationship (E-R) modeling concepts including:
- Entity sets represent collections of real-world entities that share common properties
- Relationship sets define associations between entity sets
- Attributes provide additional information about entities and relationships
- Keys uniquely identify entities and relationships
- Cardinalities constrain how entities can participate in relationships
- E-R diagrams visually depict entity sets, attributes, relationships and constraints.
El algoritmo de backtracking es una técnica de resolución de problemas que implica una búsqueda sistemática y exhaustiva de soluciones mediante la generación de todas las posibles combinaciones de elementos y el retroceso cuando una combinación parcial no puede completarse. Generalmente se implementa de forma recursiva, generando primero las combinaciones más restrictivas y usando funciones de poda para evitar generar estados que no conduzcan a soluciones. Problemas como el sudoku, el problema del caballo y las ocho reinas se pueden resolver usando este enfoque.
Una tabla hash es una estructura de datos que permite realizar operaciones de recuperación, eliminación e inserción de elementos de forma rápida mediante el uso de funciones hash que mapean claves a posiciones de una tabla. Las tablas hash son útiles para implementar diccionarios y otras estructuras asociativas, pero pueden sufrir colisiones cuando múltiples claves son mapeadas a la misma posición.
An array is a linear data structure that stores a collection of elements of the same data type in adjacent memory locations. Arrays allow storing multiple elements and accessing them using an index. Common array operations include traversal, search, insertion, deletion, and sorting. Algorithms for performing these operations on arrays are presented, including pseudocode for array traversal, insertion, deletion, linear search, and sorting.
Variables, expresiones y ejecución de condiciones les en PSeIntCristian C
Contiene información sobre los tipos de variables , operadores aritméticos, operadores lógicos, operadores de texto, precedencia, entrada y salida por consola, ejecución condicional (Si - Entonces), ejecución alternativa (Si – Entonces – Si No), si – Entonces – Si No anidados y por ultimo algunos ejercicios.
El documento describe el álgebra relacional y el cálculo relacional, que son lenguajes formales asociados al modelo relacional de bases de datos. Explica las cinco operaciones básicas del álgebra relacional (selección, proyección, producto cartesiano, unión y diferencia) y cómo construir consultas en el cálculo relacional de tuplas y dominios. También cubre conceptos como la combinación, división y lenguajes de manipulación de datos relacionales.
C programming_MSBTE_Diploma_Pranoti DokePranoti Doke
"1.1 Structure of ‘C’program, Assembler, Linker, Compiler, Interpreter.
1.2 ‘C’character set-keywords, identifiers, types of constants (Integer, single character, string, and real) variables, scope of variables, concept of ASCII.
1.3 Data types: integer- unsigned, signed, long, float- float, double, character char, string, octal, hexadecimal
1.4 Algorithm and flow chart.
1.5 Formatted input and output statements. Input and output function.
1.6 Operators and expressions:
a. Operators in ‘C’- arithmetic, logical, assignment, relational, increment and decrement, conditional, bit wise, special operators
b. Expressions
c. Precedence and associatively."
"2.1 Decision making if statement (if, if-else, nested if-else), switch –case statement.
2.2 Repetition in ‘C’ (loop control
statement) while, do-while and for loop, break and continue statement, nested loops
"
"3.1 Introduction to Array and its types
3.2 Declaration, initialization of array,
accessing elements of an array, adding,
deleting, sorting & searching.
3.3 Introduction to string Initializing,
declaring and display of string
3.4 String handling functions from standard library (strlen (), strcpy (), strcat (), strcmp(), strlwr(),strupr()):
"
"4.1 Concept and need of functions
4.2 Library functions: Math functions,
String handling functions, other
miscellaneous functions.
4.3 Writing User defined functions, scope of variables.
4.4 Parameter passing: call by value, call by reference.
4.5 Recursive functions
"
"5.1 Concept of pointer and pointer variables, initialization of pointer, call-by reference.
5.2 Pointer arithmetic.
5.3 Handling arrays using pointers
5.4 Handling functions using pointers
"
"6.1 Introduction and Features and Syntax of structure
6.2 Declaration and Initialization of
Structures
6.3 Initializing, assessing structure members using pointers
6.4 Type def, Enumerated Data Type,
using structures in C Program
6.5 Operations on structure."
A very simple concept of Composition in OOP(Object-Oriented Programming) using C++ programming lanuguage.
if you have any Question Regarding this PPt..
leave your message in comment box.
Thank you.. :)
This document discusses one-dimensional arrays. It defines a one-dimensional array as a list of values with the same data type stored under a single name. Elements are stored in consecutive memory locations and can be accessed using the array name and index. Individual elements are referenced as array_name[index]. The size of an array is the number of elements, and the type refers to the data type of the values. Memory addresses for elements are calculated from the base address using the index and size. Examples are provided to demonstrate accessing elements and calculating memory addresses.
This document provides a summary of an introduction to the Clojure programming language. It discusses what Clojure is, its timeline and adoption, functional programming concepts, concurrency features using Software Transactional Memory, the Lisp ideology it is based on including homoiconicity and its macro system. It also provides an overview of getting started with Clojure including using the REPL, basic syntax like symbols and keywords, data types, sequences, functions, and Java interoperability. Resources for learning more about Clojure are also listed.
Trie is a data structure based on the concept of the tree where the retrieval of strings from a set of string is a major concern. the average cost of basic operation lies around O(kd).
This document discusses connecting Python to a MySQL database. It introduces database programming in Python and the Python DB API interface. It then provides 7 steps to connect to a MySQL database using the MySQL Connector Python package, including importing the package, opening a connection, creating a cursor, executing queries, extracting the result set, and closing the connection.
Este documento presenta una guía de laboratorio sobre ciclos iterativos anidados. Explica conceptos como ciclos anidados en pseudocódigo, diagrama de flujo y C. Luego, muestra ejemplos como el triángulo de Pascal, cuadrados mágicos y números de Armstrong usando ciclos anidados. Finalmente, propone varios ejercicios prácticos para que los estudiantes apliquen estos conceptos.
This document discusses implementing stacks and queues using linked lists. For a stack, elements are inserted and removed from the head (start) of the linked list for constant time operations. For a queue, elements are inserted at the head and removed from the tail (end) of the linked list, requiring traversing to the second last node for removal. Implementing stacks and queues with linked lists avoids size limitations of arrays and uses dynamic memory allocation.
Este documento presenta la información requerida para crear una base de datos para la empresa Pinta, Lápices. Describe las entidades Lápiz, Cliente, Distribuidor y sus atributos. También describe las relaciones entre las entidades y las entidades resultantes como Registro. Finalmente incluye 20 consultas SQL sobre las tablas de la base de datos para obtener datos específicos.
The document discusses concepts related to data dictionaries, including defining data flows, structures, elements, and stores. It provides examples of how each component would be defined in a data dictionary, including the level of detail needed for accurate documentation and analysis. Specific symbols and notations are presented for representing data structures algebraically and defining element attributes like name, length, type, validation rules, and more. The data dictionary is described as a key tool for analyzing a system's data and ensuring consistency across users and applications.
The document discusses Python lists, which are ordered collections of items of any data type. It describes how to create, access, and modify lists using various functions and operations like append, insert, remove, sort, and slice. These include adding/removing elements, sorting/reversing lists, using lists as stacks with push/pop, and extracting sublist sections. The document provides examples of creating lists with different syntax, accessing elements by index, and using common list methods for operations.
Tema III: Algoritmos y primitivas algoritmicasrasave
Algoritmo, Herramientas de representación: diagramas de flujo, pseudocódigo, primitivas algorítmicas: tipos de datos, datos numéricos, datos lógicos, datos alfanuméricos, expresiones: aritméticas, lógicas, operadores relacionales, lógicos, Identificadores, constantes, variables
This document provides an overview of entity-relationship modeling as a first step for designing a relational database. It describes how to model entities, attributes, relationships, and participation constraints. Key aspects covered include using boxes to represent entity types, diamonds for relationship types, and labeling relationships with degrees. The document also discusses handling multi-valued attributes and deciding whether to model concepts as attributes or entity types.
Este documento describe los arreglos o matrices como una estructura de datos. Explica que los arreglos son colecciones finitas, homogéneas y ordenadas de elementos del mismo tipo. Describe las características y operaciones de los arreglos unidimensionales y bidimensionales, incluyendo cómo se recorren y actualizan. También menciona algunas ventajas del uso de arreglos como la capacidad de almacenar múltiples datos con un solo nombre de variable.
An E-R diagram is a logical representation of data in an organization that views the entire system as entities related to one another. The key elements of an E-R diagram are entities, attributes, and relationships. Entities represent people, places, things, or events and have attributes with defined domains. Relationships connect different entities and can be one-to-one, one-to-many, or many-to-many. E-R diagrams were introduced in 1976 and provide advantages like a logical structure for modeling an organization's data.
The document discusses various data structures for representing sets and algorithms for performing set operations on those data structures. It describes representing sets as linked lists, trees, hash tables, and bit vectors. For linked lists, it provides algorithms for union, intersection, difference, equality testing, and other set operations. It also discusses how bit vectors can be used to efficiently represent the presence or absence of elements in a set and perform operations using bitwise logic.
This document provides an overview of automata and formal languages. It defines key terms like automata, finite automata, deterministic finite automaton (DFA), non-deterministic finite automaton (NDFA), and grammars. It also explains the differences between DFAs and NDFAs, and between Mealy and Moore machines. Formal definitions of these concepts are given using common notation like tuples.
Tema 2 tipos de datos y expresiones en java por gioRobert Wolf
Este documento describe los tipos de datos en Java, incluyendo tipos primitivos como enteros, reales, booleanos y caracteres, así como tipos compuestos como cadenas. Explica conceptos como literales, variables, ámbito, tiempo de vida y expresiones, las cuales combinan operandos y operadores para procesar datos. Finalmente, detalla los diferentes operadores aritméticos disponibles para cada tipo de dato primitivo en Java.
El documento describe los conceptos básicos del lenguaje de programación C, incluyendo los tipos de datos fundamentales como enteros, reales, lógicos y cadenas, así como las estructuras de datos como listas y diccionarios. También explica los elementos clave de un programa en C, como constantes, variables, expresiones y funciones.
An array is a linear data structure that stores a collection of elements of the same data type in adjacent memory locations. Arrays allow storing multiple elements and accessing them using an index. Common array operations include traversal, search, insertion, deletion, and sorting. Algorithms for performing these operations on arrays are presented, including pseudocode for array traversal, insertion, deletion, linear search, and sorting.
Variables, expresiones y ejecución de condiciones les en PSeIntCristian C
Contiene información sobre los tipos de variables , operadores aritméticos, operadores lógicos, operadores de texto, precedencia, entrada y salida por consola, ejecución condicional (Si - Entonces), ejecución alternativa (Si – Entonces – Si No), si – Entonces – Si No anidados y por ultimo algunos ejercicios.
El documento describe el álgebra relacional y el cálculo relacional, que son lenguajes formales asociados al modelo relacional de bases de datos. Explica las cinco operaciones básicas del álgebra relacional (selección, proyección, producto cartesiano, unión y diferencia) y cómo construir consultas en el cálculo relacional de tuplas y dominios. También cubre conceptos como la combinación, división y lenguajes de manipulación de datos relacionales.
C programming_MSBTE_Diploma_Pranoti DokePranoti Doke
"1.1 Structure of ‘C’program, Assembler, Linker, Compiler, Interpreter.
1.2 ‘C’character set-keywords, identifiers, types of constants (Integer, single character, string, and real) variables, scope of variables, concept of ASCII.
1.3 Data types: integer- unsigned, signed, long, float- float, double, character char, string, octal, hexadecimal
1.4 Algorithm and flow chart.
1.5 Formatted input and output statements. Input and output function.
1.6 Operators and expressions:
a. Operators in ‘C’- arithmetic, logical, assignment, relational, increment and decrement, conditional, bit wise, special operators
b. Expressions
c. Precedence and associatively."
"2.1 Decision making if statement (if, if-else, nested if-else), switch –case statement.
2.2 Repetition in ‘C’ (loop control
statement) while, do-while and for loop, break and continue statement, nested loops
"
"3.1 Introduction to Array and its types
3.2 Declaration, initialization of array,
accessing elements of an array, adding,
deleting, sorting & searching.
3.3 Introduction to string Initializing,
declaring and display of string
3.4 String handling functions from standard library (strlen (), strcpy (), strcat (), strcmp(), strlwr(),strupr()):
"
"4.1 Concept and need of functions
4.2 Library functions: Math functions,
String handling functions, other
miscellaneous functions.
4.3 Writing User defined functions, scope of variables.
4.4 Parameter passing: call by value, call by reference.
4.5 Recursive functions
"
"5.1 Concept of pointer and pointer variables, initialization of pointer, call-by reference.
5.2 Pointer arithmetic.
5.3 Handling arrays using pointers
5.4 Handling functions using pointers
"
"6.1 Introduction and Features and Syntax of structure
6.2 Declaration and Initialization of
Structures
6.3 Initializing, assessing structure members using pointers
6.4 Type def, Enumerated Data Type,
using structures in C Program
6.5 Operations on structure."
A very simple concept of Composition in OOP(Object-Oriented Programming) using C++ programming lanuguage.
if you have any Question Regarding this PPt..
leave your message in comment box.
Thank you.. :)
This document discusses one-dimensional arrays. It defines a one-dimensional array as a list of values with the same data type stored under a single name. Elements are stored in consecutive memory locations and can be accessed using the array name and index. Individual elements are referenced as array_name[index]. The size of an array is the number of elements, and the type refers to the data type of the values. Memory addresses for elements are calculated from the base address using the index and size. Examples are provided to demonstrate accessing elements and calculating memory addresses.
This document provides a summary of an introduction to the Clojure programming language. It discusses what Clojure is, its timeline and adoption, functional programming concepts, concurrency features using Software Transactional Memory, the Lisp ideology it is based on including homoiconicity and its macro system. It also provides an overview of getting started with Clojure including using the REPL, basic syntax like symbols and keywords, data types, sequences, functions, and Java interoperability. Resources for learning more about Clojure are also listed.
Trie is a data structure based on the concept of the tree where the retrieval of strings from a set of string is a major concern. the average cost of basic operation lies around O(kd).
This document discusses connecting Python to a MySQL database. It introduces database programming in Python and the Python DB API interface. It then provides 7 steps to connect to a MySQL database using the MySQL Connector Python package, including importing the package, opening a connection, creating a cursor, executing queries, extracting the result set, and closing the connection.
Este documento presenta una guía de laboratorio sobre ciclos iterativos anidados. Explica conceptos como ciclos anidados en pseudocódigo, diagrama de flujo y C. Luego, muestra ejemplos como el triángulo de Pascal, cuadrados mágicos y números de Armstrong usando ciclos anidados. Finalmente, propone varios ejercicios prácticos para que los estudiantes apliquen estos conceptos.
This document discusses implementing stacks and queues using linked lists. For a stack, elements are inserted and removed from the head (start) of the linked list for constant time operations. For a queue, elements are inserted at the head and removed from the tail (end) of the linked list, requiring traversing to the second last node for removal. Implementing stacks and queues with linked lists avoids size limitations of arrays and uses dynamic memory allocation.
Este documento presenta la información requerida para crear una base de datos para la empresa Pinta, Lápices. Describe las entidades Lápiz, Cliente, Distribuidor y sus atributos. También describe las relaciones entre las entidades y las entidades resultantes como Registro. Finalmente incluye 20 consultas SQL sobre las tablas de la base de datos para obtener datos específicos.
The document discusses concepts related to data dictionaries, including defining data flows, structures, elements, and stores. It provides examples of how each component would be defined in a data dictionary, including the level of detail needed for accurate documentation and analysis. Specific symbols and notations are presented for representing data structures algebraically and defining element attributes like name, length, type, validation rules, and more. The data dictionary is described as a key tool for analyzing a system's data and ensuring consistency across users and applications.
The document discusses Python lists, which are ordered collections of items of any data type. It describes how to create, access, and modify lists using various functions and operations like append, insert, remove, sort, and slice. These include adding/removing elements, sorting/reversing lists, using lists as stacks with push/pop, and extracting sublist sections. The document provides examples of creating lists with different syntax, accessing elements by index, and using common list methods for operations.
Tema III: Algoritmos y primitivas algoritmicasrasave
Algoritmo, Herramientas de representación: diagramas de flujo, pseudocódigo, primitivas algorítmicas: tipos de datos, datos numéricos, datos lógicos, datos alfanuméricos, expresiones: aritméticas, lógicas, operadores relacionales, lógicos, Identificadores, constantes, variables
This document provides an overview of entity-relationship modeling as a first step for designing a relational database. It describes how to model entities, attributes, relationships, and participation constraints. Key aspects covered include using boxes to represent entity types, diamonds for relationship types, and labeling relationships with degrees. The document also discusses handling multi-valued attributes and deciding whether to model concepts as attributes or entity types.
Este documento describe los arreglos o matrices como una estructura de datos. Explica que los arreglos son colecciones finitas, homogéneas y ordenadas de elementos del mismo tipo. Describe las características y operaciones de los arreglos unidimensionales y bidimensionales, incluyendo cómo se recorren y actualizan. También menciona algunas ventajas del uso de arreglos como la capacidad de almacenar múltiples datos con un solo nombre de variable.
An E-R diagram is a logical representation of data in an organization that views the entire system as entities related to one another. The key elements of an E-R diagram are entities, attributes, and relationships. Entities represent people, places, things, or events and have attributes with defined domains. Relationships connect different entities and can be one-to-one, one-to-many, or many-to-many. E-R diagrams were introduced in 1976 and provide advantages like a logical structure for modeling an organization's data.
The document discusses various data structures for representing sets and algorithms for performing set operations on those data structures. It describes representing sets as linked lists, trees, hash tables, and bit vectors. For linked lists, it provides algorithms for union, intersection, difference, equality testing, and other set operations. It also discusses how bit vectors can be used to efficiently represent the presence or absence of elements in a set and perform operations using bitwise logic.
This document provides an overview of automata and formal languages. It defines key terms like automata, finite automata, deterministic finite automaton (DFA), non-deterministic finite automaton (NDFA), and grammars. It also explains the differences between DFAs and NDFAs, and between Mealy and Moore machines. Formal definitions of these concepts are given using common notation like tuples.
Tema 2 tipos de datos y expresiones en java por gioRobert Wolf
Este documento describe los tipos de datos en Java, incluyendo tipos primitivos como enteros, reales, booleanos y caracteres, así como tipos compuestos como cadenas. Explica conceptos como literales, variables, ámbito, tiempo de vida y expresiones, las cuales combinan operandos y operadores para procesar datos. Finalmente, detalla los diferentes operadores aritméticos disponibles para cada tipo de dato primitivo en Java.
El documento describe los conceptos básicos del lenguaje de programación C, incluyendo los tipos de datos fundamentales como enteros, reales, lógicos y cadenas, así como las estructuras de datos como listas y diccionarios. También explica los elementos clave de un programa en C, como constantes, variables, expresiones y funciones.
El documento describe varios tipos de datos fundamentales en lenguajes de programación, incluyendo enteros, coma flotante, caracteres, lógicos y palabras reservadas. Define cada tipo de dato, especificando el espacio de almacenamiento utilizado y las operaciones posibles para cada uno. También explica que los programadores pueden definir nuevos tipos de datos combinando otros tipos existentes.
Este documento resume conceptos básicos de C# como palabras reservadas, identificadores, tipos de datos (valor, referencia, punteros), tipos predefinidos, tipos primitivos (enteros, reales, caracteres, cadenas, lógicos, nulos), variables, asignación de valores, operadores, enumeraciones y estructuras. Explica las consideraciones para definir identificadores y cómo declarar y asignar valores a variables.
Este documento presenta los elementos básicos de un programa de computadora, incluyendo palabras reservadas, identificadores, constantes, variables, expresiones e instrucciones. También describe los tipos de datos como numéricos, lógicos y de caracteres, así como la declaración de constantes y variables. Finalmente, incluye algunas referencias bibliográficas sobre programación.
El documento describe los tipos de datos básicos como enteros, reales y lógicos, y cómo se representan en la computadora usando conjuntos de 1s y 0s almacenados en bytes. También explica cómo se declaran y asignan valores a variables, y los tipos de estructuras de datos como listas, pilas y árboles. Finalmente, introduce los punteros como una forma de representar tipos de datos inductivos como las listas usando referencias de memoria.
El documento describe los tipos de datos y estructuras de datos básicas. Explica que los datos son información en bruto que puede clasificarse en tipos como enteros, reales y lógicos. Luego, introduce las estructuras de datos como una forma de organizar datos para facilitar su manipulación, dando ejemplos como vectores, listas, pilas y árboles. Por último, explica los tipos inductivos como las listas y cómo se implementan usando punteros para apuntar a la memoria y representar de forma dinámica estructuras de tamaño
El documento presenta una introducción a los tipos de datos y estructuras de datos en computación. Explica que los datos son información en bruto que representan actores o participantes de un enunciado. Los datos se clasifican en tipos básicos como enteros, reales y lógicos. También introduce los conceptos de punteros y listas enlazadas como estructuras de datos, explicando que los punteros permiten representar estructuras de datos dinámicas como las listas al apuntar a la ubicación de memoria de los siguientes elementos.
estructura de datos y algoritmos repasoricardosusa5
El documento describe los tipos de datos básicos como enteros, reales y lógicos, y cómo se representan en la computadora usando conjuntos de 1s y 0s almacenados en bytes. También explica cómo se declaran y asignan valores a variables, y cómo los punteros permiten acceder y modificar los valores a los que apuntan. Por último, introduce los tipos inductivos como las listas y cómo se implementan usando nodos enlazados y punteros para representar su estructura dinámica en memoria.
El documento describe los tipos de datos básicos como enteros, reales y lógicos, y cómo se representan en la computadora usando conjuntos de 1s y 0s almacenados en bytes. También explica cómo se declaran y asignan valores a variables, y cómo los punteros permiten acceder a la dirección de memoria de una variable. Por último, introduce los tipos inductivos como las listas y cómo se implementan usando nodos enlazados con punteros.
Este documento discute los tipos de datos y estructuras de datos. Explica los tipos de datos básicos como enteros, reales y lógicos, y cómo se representan los datos en la computadora usando bits y bytes. También describe estructuras de datos como listas, pilas, colas y árboles, y cómo las listas encadenadas usan punteros para vincular los nodos y representar datos de tamaño variable.
6. entidades primitivas para el diseño de instruccionesrcarrerah
Este documento describe las entidades primitivas para el diseño de algoritmos, incluyendo tipos de datos como numéricos, cadenas y booleanos, así como variables, constantes, expresiones, asignación, funciones de entrada y salida, y la estructura general de un algoritmo con declaración de variables, cuerpo y final.
Este documento describe los tipos de datos simples en el lenguaje de programación, incluyendo enteros, reales, caracteres, cadenas y lógicos. Explica que un dato es cualquier información codificada que requiere espacio de almacenamiento, y que las constantes son datos que no cambian de valor durante la ejecución de un programa. También cubre la declaración de nuevos tipos de datos definidos por el usuario.
Este documento describe los tipos de datos simples en el lenguaje de programación, incluyendo enteros, reales, caracteres, cadenas y lógicos. Explica que un dato es cualquier información codificada que requiere espacio de almacenamiento, y que las constantes son datos que no cambian de valor durante la ejecución de un programa. También cubre la declaración de nuevos tipos de datos definidos por el usuario.
El documento proporciona información sobre elementos de programas en pseudocódigo, incluyendo datos, variables, constantes, operadores y operando. Se definen datos simples como numéricos, cadenas y lógicos, así como tipos compuestos como arreglos y estructuras. También se explican las reglas para nombrar variables e identificadores, y los diferentes tipos de variables como de trabajo, contadores y acumuladores. Finalmente, se describen los operadores aritméticos, relacionales y lógicos.
Tipos de datos, identificadores, variables y constantesIEO Santo Tomás
Este documento describe los tipos de datos, identificadores, variables y constantes en programación. Explica que los datos pueden ser simples o estructurados y enumera ejemplos de cada tipo. Además, detalla las reglas para nombrar identificadores, constantes y variables, y cómo estas últimas pueden cambiar de valor durante la ejecución de un programa a diferencia de las constantes.
Este documento proporciona una introducción a los fundamentos de la programación en Java, incluyendo los tipos de datos básicos como enteros, coma flotante, caracteres y lógicos. También describe variables, arrays, operadores, control de flujo y bucles.
Este documento proporciona una introducción a los fundamentos de la programación en Java, incluyendo los tipos de datos básicos como enteros, coma flotante, caracteres y lógicos. También describe variables, arrays, operadores, control de flujo y bucles.
XML es un formato universal para datos y documentos estructurados. Ofrece ventajas como facilitar el intercambio de datos entre aplicaciones y sistemas. XML se ha implementado fuera de Internet/Intranet para hacer más sencillo el intercambio de información. Sus puntos fuertes son la inteligencia, adaptabilidad, mantenimiento y simplicidad. XML difiere de HTML en que este último se usa para presentaciones mientras que XML es para uso general.
Espinosa, baruch etica demostrada segun el orden geométricoMiguel Angel Zamora
Este documento presenta una introducción a la vida y obra de Baruch Spinoza. Brevemente describe su origen en la comunidad judía de Ámsterdam en el siglo XVII y su educación en la cultura judía ibérica. También menciona las diversas interpretaciones de su pensamiento a lo largo de la historia, desde ateísmo hasta misticismo. Finalmente, enfatiza los orígenes culturales ibéricos de Spinoza y su dominio del portugués, castellano y latín.
Este documento resume las 12 lecciones de Jürgen Habermas sobre el discurso filosófico de la modernidad. Habermas explora cómo la modernidad ha sido entendida desde Max Weber hasta la actualidad, y analiza las críticas neoestructuralistas a la razón moderna. La primera lección introduce el tema y contextualiza la comprensión de la modernidad según Max Weber como un proceso de racionalización cultural y social.
Este documento describe los pasos para configurar una nueva red inalámbrica. Explica que primero se debe instalar el hardware como el enrutador y las tarjetas de red inalámbricas. Luego se configura la seguridad de la red usando claves WEP o WPA. Finalmente, se conectan los dispositivos a la red y se comprueba que todo funcione correctamente.
Este documento presenta un texto en alemán sin espacios ni puntuación que dificulta su comprensión. En menos de 3 oraciones, resume lo siguiente:
El texto está compuesto por una serie de letras y símbolos alemanes sin significado aparente debido a la ausencia de espacios y puntuación. No es posible extraer información relevante de alto nivel del documento debido a su naturaleza ilegible.
Este documento es el prólogo a la primera edición de un libro de Jürgen Habermas titulado "Perfiles filosófico-políticos". Habermas explica que amplió la edición de 1971 con nuevos artículos escritos en la última década. También reflexiona sobre cómo su perspectiva ha cambiado desde la primera edición, especialmente en relación con la tradición de la Escuela de Frankfurt y su visión de la filosofía.
Hegel, georg wilhelm friedrich fenomenología del espíritu [1807][spa]Miguel Angel Zamora
Este documento presenta las siguientes notas sobre la digitalización de un texto filosófico:
1) Algunos caracteres griegos podrían no mostrarse correctamente sin la tipografía Symbol de Apple.
2) La numeración de párrafos corresponde a las páginas del original.
3) Pese a posibles errores, la estructura sintáctica compleja se debe al lenguaje filosófico del autor y las dificultades de traducción, por lo que se puede confiar en la digitalización.
(1) El documento presenta los discursos y escritos pedagógicos de Georg Wilhelm Friedrich Hegel de su época en Nuremberg. (2) Hegel discute el plan y los principios del nuevo Gimnasio, el cual mantiene el enfoque en los clásicos griegos y romanos pero los renueva para satisfacer las necesidades actuales. (3) Hegel defiende que el nuevo enfoque conserva lo esencial de lo antiguo al tiempo que lo cambia y renueva.
El documento es una introducción a la obra "Historia de Jesús" de Hegel. En ella, Hegel intenta exponer el contenido racional de los Evangelios y armonizar la razón y el cristianismo. Según Hegel, la religión no es una creencia sino un obrar moral para la edificación del reino de Dios y la comunidad humana.
Este documento presenta un resumen de tres obras fundamentales de Hegel: la Fenomenología del Espíritu, la Ciencia de la Lógica y la Enciclopedia de las Ciencias Filosóficas. Explica que la Fenomenología muestra el desarrollo del conocimiento del espíritu a través de diferentes etapas, y que la Ciencia de la Lógica constituye la metafísica de Hegel. Finalmente, señala que la Enciclopedia sintetiza el sistema completo en tres partes: lógica, filosofía
Este documento presenta una introducción a la obra de Georg Hegel "Introducción a la historia de la filosofía". Explica que Hegel fue el primero en reconocer la relación entre el pensamiento filosófico y la sociedad histórica de donde surge. Según Hegel, la historia de la filosofía es el desarrollo del pensamiento humano a través del tiempo, y el estudio de esta historia es el estudio de la filosofía misma. La introducción también resume brevemente la concepción dialéctica de la verdad de Hegel y cómo esto influ
Sujetos politicos y alternativas en el actual capitalismoMiguel Angel Zamora
Este documento presenta una compilación de 22 artículos académicos sobre temas relacionados con el estado nacional, el capitalismo, la democracia, las organizaciones armadas, la guerra, y alternativas políticas y económicas de izquierda, con énfasis en el contexto colombiano. Los artículos abordan cuestiones como los límites del estado de bienestar, el análisis de clases, el intervencionismo militar, estrategias globales y sujetos en pugna, y la construcción de formas de resistencia política.
Cp19 marx y engels ante las tensiones del ocaso de la modernidad sergio d...Miguel Angel Zamora
Este documento analiza las condiciones favorables para releer las obras de Marx y Engels al final del siglo XX. Primero, es posible separar sus teorías de las ideologías del "socialismo real". Segundo, ya no se les ve como una "ciencia" dogmática. Tercero, se vivió el colapso de los manuales simplificadores sobre el marxismo. Finalmente, sus obras siguen aportando a la comprensión del capitalismo actual a pesar del colapso de los regímenes socialistas de Europa del Este.
Cp18 el desvanecimiento del tiempo y la estetización de la espacialidad polít...Miguel Angel Zamora
Este documento analiza el fenómeno de la posmodernidad y cómo ha llevado al desvanecimiento del tiempo histórico y a la estetización de la espacialidad política. Argumenta que la lógica cultural del capitalismo tardío ha transformado la cultura, la política y la subjetividad en espectáculos vacíos. También critica la complacencia de algunos marxistas ante la posmodernidad y propone una perspectiva crítica inspirada en autores como Gramsci, Jameson, Harvey y Anderson.
Cp17 el marxismo y las posibilidades del socialismo en cuba actualidad y vi...Miguel Angel Zamora
El documento analiza las aspiraciones socialistas de diferentes generaciones de revolucionarios cubanos desde finales del siglo XIX y cómo estas se articulaban en contra de la penetración imperialista estadounidense en la isla. Además, examina si el proyecto socialista cubano se alejó o se mantuvo fiel a las ideas de Marx y si tiene posibilidades de sobrevivir en el futuro.
Cp17 el marxismo y las posibilidades del socialismo en cuba actualidad y vi...Miguel Angel Zamora
El documento analiza las aspiraciones socialistas de los revolucionarios cubanos a lo largo de la historia y su relación con el marxismo. Señala que aunque Marx no predijo que los intentos de construir sociedades comunistas comenzarían en países como Cuba, varios líderes cubanos desde finales del siglo XIX promovieron ideas socialistas. Además, examina si el proyecto socialista cubano se alejó o se apegó al marxismo y qué aspectos de esta teoría siguen vigentes o han sido superados en la real
Cp14 ´mercado de alternativas´ y alternativas de izquierda. elementos para l...Miguel Angel Zamora
Este documento discute los logros y límites de la estrategia neoliberal. Entre los logros se mencionan la consolidación de condiciones capitalistas de rentabilidad, la desregulación de los mercados, la instrumentalización de la tecnología para la flexibilización laboral, y la redistribución regresiva del ingreso. Sin embargo, el neoliberalismo también muestra síntomas de erosión y un campo de acción cada vez más estrecho, lo que ha llevado al surgimiento de movimientos de resistencia y propuestas de alternativas.
Cp13 guerra y sujeto la guerra como posibilidad irreductible del estado - fa...Miguel Angel Zamora
El documento discute la relación entre la guerra y el Estado. Argumenta que la guerra es irreductible al Estado y existe como una "máquina de guerra" exterior al aparato estatal. Mientras el Estado usa la violencia para capturar y controlar, la máquina de guerra mantiene la potencia y la movilidad. La guerra impide la formación del Estado al mantener la dispersión de los grupos.
Cp12 crítica de los programas de las organizaciones armadas colombianas (sus ...Miguel Angel Zamora
El documento presenta una crítica de los programas de las organizaciones armadas colombianas como las FARC y el ELN. Explica que estos programas están en crisis debido a la crisis más amplia de las formas organizativas políticas modernas como los partidos políticos. Analiza el Manifiesto del Partido Comunista como el primer programa revolucionario y cómo los programas posteriores se han ido adaptando a diferentes contextos históricos. Plantea que los programas de las guerrillas colombianas pueden estar condenados a no realizarse dada la crisis actual
Cp11 vida y muerte del sujeto histórico.(el genocidio contra la unión patriót...Miguel Angel Zamora
Este documento explora los imaginarios colectivos de la vida y la muerte a través de la historia y en diferentes culturas. Examina cómo las concepciones de la vida y la muerte han cambiado con el tiempo, influenciadas por factores como la religión, la ciencia y la política. También analiza cómo eventos violentos como guerras y genocidios han afectado la forma en que las personas perciben la vida y la muerte.
Cp15.autonomía e independencia de las organizaciones sociales en tiempos de g...Miguel Angel Zamora
El documento debate sobre los conceptos de autonomía e independencia de las organizaciones sociales. Explica que la autonomía se refiere a la capacidad de una organización de tomar sus propias decisiones de manera democrática, pero no necesariamente de forma política independiente. La independencia implica representar genuinamente los intereses de un sector social frente al capital. El ejercicio de la autonomía ha sido fundamental para el desarrollo de la democracia, aunque no garantiza resultados justos. Reconstruir la autonomía de las organizaciones populares es clave para que los sect
Cp15.autonomía e independencia de las organizaciones sociales en tiempos de g...
Modulo2a
1. CONSTRUCTORES BÁSICOS
1. LOS DATOS EN PROGRAMACIÓN
1.1 Datos
Un conjunto es una colección ‘bien definida’ de objetos. Se dice ‘bien definida’ si se sabe de
manera exacta qué elementos están en la colección y qué elementos no están. Existen dos
maneras de definir un conjunto: por extensión y por comprensión.
Un conjunto es definido por extensión cuando se presentan todo sus elementos entre llaves {}.
Ejemplos.
A = {a, b, c}
B = {0, 1, 2, 3, 4}
Un conjunto es definido por comprensión cuando sus elementos se describen enunciando una
propiedad que todos ellos cumplen.
Ejemplos.
C = {x | x es un número primo}
D = {x | x es una vocal}
A cada conjunto se le puede asignar uno o varios nombres; dichos nombres constituyen el tipo
de los elementos del conjunto.
De manera informal, un dato es una pieza de información simple como un número, un código,
un hecho o una edad. De manera formal, un dato es un elemento concreto de algún conjunto. El
nombre del conjunto al que pertenece el dato constituye el tipo del mismo.
Los tipos de datos más utilizados en programación son:
EJEMPLOS
El nombre asignado al conjunto de números
Entero: -123,…,-2,-1,0,1,2,…,85
enteros.
El nombre asignado al conjunto de números
Real: -0.12,…,-1.0,0.0,…, 3.1416
reales.
Caracter: El nombre asignado al conjunto de caracteres. ‘a’, ‘*’, ‘+’, ‘;’
El nombre asignado al conjunto de valores de
Booleano: falso, verdadero
verdad.
El nombre asignado al conjunto de cadenas de
Cadena: “Hola”, “AbC123”
caracteres.
Como se puede advertir en los ejemplos anteriores, cuando se trabaja en programación es
necesario:
• Distinguir los números enteros de los números reales. Por ejemplo el 2 (sin punto decimal),
indica que el elemento es del conjunto de los enteros, mientras que el 2.0 (con punto
decimal), indica que es un elemento del conjunto de los reales.
• Distinguir los símbolos y palabras que forman parte del sistema de representación o
codificación del algoritmo, de los usados para representar un dato concreto de los tipos
caracter y cadena de caracteres respectivamente. En este curso, los datos de tipo caracter
son representados entre comillas simples ('), mientras que los datos de tipo cadena de
caracteres son representados entre comillas dobles ('').
1
2. 1.2 Variables
Una variable es un símbolo que permite referenciar (señalar o demarcar) un espacio en
memoria en el que se puede almacenar un dato. Toda variable posee tres características:
nombre, tipo y estado.
1.2.1 Nombre o identificador.
El nombre de una variable es una secuencia de caracteres alfanuméricos (letras y dígitos) y
caracteres de subrayado, la cual siempre empieza por una letra. En algunos lenguajes de
programación (C++, C, Java), se hace distinción entre mayúsculas y minúsculas mientras que
en otros no (Pascal, Basic). Por ejemplo, las variables VelMax y velmax son diferentes en C
mientras que son la misma variable en Pascal.
Una buena técnica de programación es asignarle el nombre a una variable de tal manera que
indique por un lado el papel que desempeña dicha variable en el algoritmo y por otro los
posibles valores que almacena.
Ejemplos de nombre de variable.
• velocidad
• x
• valor1
• exponente
• valMaximo
1.2.2 Tipo.
El tipo de una variable es el mismo tipo de los datos que se pueden almacenar en el espacio de
memoria que la variable referencia. Por ejemplo, una variable de tipo entero, es decir, que se ha
declarado1 como entera, sólo se puede usar para referenciar datos de tipo entero. La cantidad de
memoria, es decir, el espacio en memoria en bits, asignada para almacenar un dato de un tipo
depende del sistema operativo y del compilador del lenguaje.
En este curso una variable es declarada de la siguiente manera (seudo-código):
<nombre> : <tipo>
Donde <nombre> es el nombre que se le dará a la variable y <tipo> es el tipo de datos que la
variable puede referenciar.
Ejemplos de declaración de variables.
• valMaximo : real
• contador : entero
• nombre : cadena
• letra : caracter
• bandera : booleano
1
Declarar una variable es asignarle un nombre y definirle su tipo.
2
3. 1.2.3 Estado o valor
El estado o valor de una variable es el dato almacenado en el espacio que referencia la variable.
El valor de una variable puede cambiar en el tiempo, es decir, conforme el algoritmo se va
ejecutando, pero solamente puede tomar valores que pertenezcan al tipo de datos declarado
para la variable.
1.3 Literales
Un literal es una secuencia de caracteres que representa un valor concreto. Los literales son
clasificados de acuerdo al tipo de datos que representan. Las siguientes secciones describen la
forma de los literales usada en este libro (esta representación es específica para cada lenguaje
de programación).
1.3.1 Literales enteros
Un literal entero es una secuencia de dígitos (0,1,..,9), posiblemente precedida por el signo
menos (-).
Ejemplos de literales enteros.
• 12345
• 4768
• –138
• 2609
• 10
1.3.2 Literales reales
Un literal real es una secuencia de dígitos, posiblemente precedida por el signo menos, y en la
cual debe aparecer el punto decimal (.), que permite representar un dato de tipo real. El punto
decimal separa la parte entera de la parte decimal del número; si no existe punto decimal el
literal es considerado como un literal entero y generalmente, si después del punto no hay
dígitos, el literal se considera incorrecto2. Los siguientes son ejemplos de literales reales:
Ejemplos de literales reales.
• 3465.98
• 29.0
• -123.78
• 23.7e-4 (en notación científica 23.7e-4 equivale a 23.7 * 10-4)
• –3.9876
1.3.3 Literales de caracteres
Un literal de tipo carácter es una símbolo delimitado por comillas simples (') que permite
representar al carácter ubicado entre las comillas simples.
2
En muchos casos se puede utilizar notación científica
3
4. Ejemplos de literales de carácter.
• 'a' representa el caracter a
• ' ' representa el caracter espacio en blanco
• '3' representa el caracter dígito 3
• '$' representa el caracter de pesos.
• '?' representa el caracter interrogación de cierre.
1.3.4 Literales Cadenas
Un literal de cadena es una secuencia de símbolos, delimitada por comillas dobles, que sirve
para representar la cadena de caracteres delimitada por las comillas dobles.
Ejemplos de literales de caracter.
• “Pepito va al colegio”, representa la cadena Pepito va al colegio.
• “El área de la circunferencia (2*pi*r) es : ” , representa la cadena El área de la
circunferencia (2*pi*r) es :.
1.3.5 Literales booleanos
Son las palabras: falso y verdadero, las cuales son usadas para representar los dos valores de
verdad.
1.4 Constantes
Una constante es un símbolo que permite referenciar un espacio en memoria en el que hay un
dato almacenado que NO se puede cambiar.
Las constantes se declaran de la siguiente manera:
<nombre> = <literal>
Donde, <nombre> es el nombre de la constante y <literal> es el literal que representa el valor
de la constante.
Una buena técnica de programación es usar letras mayúsculas para los nombres de las
constantes.
Ejemplos de constantes.
• PI = 3.1415926
• VELOCIDAD_LUZ = 300000000.0
• SALUDO_BASICO = “Hola, Buenos días”
• TAMANO_MAXIMO = 1000
• ESPACIO = ‘ ’
1.5 Expresiones
En muchas ocasiones, la ejecución de una tarea del algoritmo implica la realización de un cálculo
matemático (operaciones aritméticas y/o lógicas). Una expresión es una serie de términos
(constantes, literales, variables y funciones) posiblemente agrupados mediante paréntesis y
4
5. conectados mediante operadores (aritméticos como +, - y lógicos como &, I ), que representan
un cálculo matemático.
El proceso que permite determinar el valor de la expresión, es decir el resultado del cálculo, es
conocido como evaluación de expresión. Según el tipo del resultado de la expresión, el cual es
conocido como tipo de la expresión, las expresiones se clasifican en:
• Expresiones numéricas: Si el resultado de la expresión es un entero o un real.
• Expresiones lógicas: Si el resultado de la expresión es un valor de verdad.
1.5.1 Expresiones numéricas
Son expresiones en las que solamente aparecen operadores aritméticos ( +, -, *, /, %3 ) ,
conectando términos de tipo numérico exclusivamente. Por ejemplo, una expresión como:
Ejemplo:
(A + B) – (5 * C) + 8
Donde A, B y C son variables de tipo entero.
En las expresiones se pueden utilizar funciones de tipo numérico.
Ejemplo:
( A + 5 ) * ( Y + piso(X+2.5) )
Es una expresión numérica si A es una variable de tipo entero (pues A esta siendo sumada con
un literal de tipo entero 5), Y es una variable de tipo entero y X es una variable de tipo real (la
función piso(X) calcula el entero más cercano al real X por debajo, por ejemplo, piso(3.45) = 3
y piso(-4.678) = -5).
Entre las funciones numéricas y de manejo de cadenas más usadas en programación y definidas
en el seudo-código se cuentan:
Funciones
Descripción de la Función
nombre_funcion(<parametros>): <tipo>
raiz2(x:real):real Calcula raíz cuadrada
ln(x:real):real Calcula logaritmo natural
exp(x:real):real Calcula ex
sen(x:real):real Calcula seno (x)
cos(x:real):real Calcula coseno(x)
tan(x:real):real Calcula tangente(x)
asen(x:real) :real Calcula arc seno(x)
acos(x:real) :real Calcula arc coseno(x)
atan(x:real) :real Calcula arc tangente(x)
aleatorio(x:entero) :real Produce un numero aleatorio entero entre [0,x)
elevar(x:real,exp:real) :real Eleva xexp
abs(x:real) :real Calcula valor absoluto de x
piso(x:real) :real devuelve el entero menor más cercano a x
3
El operador %, retorna el módulo (o residuo) de la división entera de dos números, por
ejemplo, 11 % 3 = 2 y 11 % 4 = 3.
5
6. techo(x:real) :real devuelve el entero mayor más cercano a x
enteroAreal(x:entero) :real convierte un literal entero a real, o una variable de
tipo entero a real
realAentero(x:real) :entero convierte un literal real a entero, o una variable de
tipo real a entero.
caracterAentero(c:caracter):entero convierte un literal carácter a su representación en
ASCII, o una variable de tipo caracter a su
representación en ASCII
enteroAcaracter(x:entero):entero convierte un literal entero a su carater equivalente, o
una variable de tipo entero a su caracter equivalente
longitudCadena(cad1: arreglo[] de devuelve la longitud de la cadena.cad1
caracter):entero
compararCadenas(cad1: arreglo[] de caracter, Compara las cadenas cad1 y cad2 en orden
lexicográfico.
cad2: arreglo[] de caracter):entero
devuelve un entero <0 si (cad1 < cad2)
devuelve un entero >0 si (cad1 > cad2)
devuelve 0 si (cad1 = cad2)
compararCadenasM(cad1: arreglo[] de caracter, Compara las cadenas cad1 y cad2 en orden
lexicográfico, sin importar las letras en mayúscula.
cad2: arreglo[] de caracter):entero
devuelve un entero <0 si (cad1 < cad2)
devuelve un entero >0 si (cad1 > cad2)
devuelve 0 si (cad1 = cad2)
El tema de funciones se verá más adelante.
1.5.2 Expresiones lógicas
Una expresión lógica es aquella en la cual el resultado se da en términos de verdadero o falso.
Generalmente una expresión lógica se construye a partir de expresiones comparativas (dos
expresiones numéricas relacionadas mediante algún operador relacional4), de variables y/o
literales booleanos, los cuales se conectan mediante operadores lógicos.
Los operadores de comparación usados en programación son los siguientes: mayor que (>),
menor que (<), igual (=), mayor o igual que (>=), menor o igual que (<=) y diferente (<>);
mientras que los operadores lógicos usados son: o (ı), y (&) y la negación (~). En los
siguientes cuadros se resumen las tablas de verdad de estos operadores lógicos.
TABLAS DE VERDAD
Negación : (~)
4
Formalmente se dice operador de comparación y no relacional. El nombre de relacional es dado por que
estos operadores provienen de las relaciones de orden.
6
7. Conjunción lógica (&) y disyunción lógica (ı)
Por ejemplo, una expresión como:
(A + 5 >=3) & (Y + piso(X + 2.5) <=3 * X) ı ~bandera
Es una expresión lógica si A y Y son variables de tipo entero, X es una variable de tipo real y
bandera es una variable de tipo booleano.
1.5.3 Evaluación de expresiones
Una expresión sea del tipo que sea se evalúa mediante el siguiente algoritmo:
Inicio
PASO 1. Reemplazar todas las variables de la expresión por su valor.
PASO 2. Desde los paréntesis más internos hacia los más externos mientras existan paréntesis y/o operadores
hacer:
2.1. Si una función no tiene todos sus argumentos evaluados, evaluar cada uno de los mismos.
2.2. Evaluar toda función que tenga sus argumentos evaluados y reemplazarla por su valor resultado.
2.3. Realizar las operaciones indicadas según la precedencia de los operadores que actúan sobre números y/o
valores de verdad, es decir, términos ya evaluados.
2.4. Si sólo un número y/o valor de verdad se encuentra entre paréntesis eliminar los paréntesis.
PASO 3. El número o valor de verdad que resulta es el valor de la expresión.
Fin
Para que una expresión sea correcta, los términos que se conectan mediante un operador deben
ser del mismo tipo. Por ejemplo, si en una expresión se suma una variable A con un literal
entero, la variable debe ser tipo entero.
• Precedencia de operadores
La precedencia de operadores es un orden de evaluación estándar, que se le ha asignado a los
operadores para evitar excesivo uso de paréntesis. Evitan las posibles ambigüedades en el
proceso de evaluación, es decir, evitan que una expresión pueda tomar más de un valor.
Por ejemplo la expresión 3 + 4 * 5, es ambigua pues puede ser interpretada como: (3 + 4) * 5
= 35 o como 3 + (4 * 5)=23, las cuales al ser evaluadas producen resultados diferentes.
La precedencia de operadores está definida en la siguiente tabla:
Precedencia de operadores
Precedencia Operadores
8 ( ) Paréntesis
7 - (signo menos)
6 *, /, %
5 +, - (substracción)
7
8. 4 >, <, = ,>= , <=, <>
3 ~
2 &
1 I
Entre más alta es la precedencia más rápido se debe evaluar el operador.
Nótese que los paréntesis tienen la máxima precedencia, es decir, lo que está entre los
paréntesis es lo primero que se evalúa; mientras que la disyunción lógica (|) tiene la más baja
precedencia, lo que indica que será el último en ser evaluado. Cuando una expresión esta
formada por operadores de la misma precedencia, dichos operadores son evaluados de izquierda
a derecha, salvo unas pocas excepciones.
Ejemplos de evaluación de expresiones
Si los valores de las variables enteras A, B y C son 5, 3 y 9 respectivamente, la siguiente
expresión -(3 + 4) * A + B * C se evalúa de la siguiente forma:
-(3 + 4) * 5 + 3 * 9 Reemplazando las variables por sus valores
-(7)*5+3*9 Paréntesis prioridad más alta (8)
-7*5+3*9 Eliminación paréntesis
-35+27 Multiplicación, prioridad seis (6)
-8 Suma, prioridad cinco (5)
Si los valores de las variables enteras A, B y C son 5, 3 y 9 respectivamente, la siguiente
expresión -(3 + 4) * A / B * C + B * C se evalúa de la siguiente forma:
-(3 + 4) * 5 / 3 * 9 + 3 * 9 Reemplazando las variables por sus valores
-(7) * 5 / 3 * 9 + 3 * 9 Paréntesis prioridad más alta (8)
-7 * 5 / 3 * 9 +3 * 9 Eliminación paréntesis
-35 / 3 * 9 +27 Multiplicación prioridad seis (6) de izquierda a
derecha.
-11 * 9 +27 División prioridad seis (6) de izquierda a
derecha.
-99 +27 Multiplicación prioridad seis (6).
-72 Suma prioridad cinco (5)
Si A y Y son variables de tipo entero y X de tipo real, con valores 6, 8 y –1.8
respectivamente, la expresión (A + 5) * (Y+ piso(X+2.5)) se evalúa de la siguiente manera:
Reemplazar todas las variables por su valor (6+5)*(8+piso(-1.8+2.5))
Aplicar toda función (6 + 5) * (8+ piso(0.7))
Aplicar toda función que tenga todos sus argumentos evaluados y (6 + 5) * (8+ 0)
reemplazar la función por el valor resultado de la función.
Realizar las operaciones indicadas según la precedencia de los (11)*(8)
operadores que actúan sobre números y/o valores de verdad, es
decir, términos ya evaluados.
Eliminar los paréntesis si sólo un número o un valor de verdad se 11*8
encuentra entre ellos
Realizar las operaciones indicadas según la precedencia de los 88
operadores que actúan sobre números y/o valores de verdad, es
decir, términos ya evaluados.
El número o valor de verdad que resulta es el valor de la expresión. 88
Sean A y B variables de tipo entero con valores 6 y 8 respectivamente, la expresión siguiente
(A > B+4) | ((A = 3) & ~(B < 4)) es evaluada como se muestra en la siguiente página.
8
9. Reemplazar todas las variables por su valor.
(6>8+4) ı ((6=3) & ~(8<4))
Evaluar la suma
(6>12) ı ((6=3) & ~(8<4))
Evaluar los operadores >, = y <
(falso) ı ((falso) & ~ (falso))
Eliminar los paréntesis que encierran un solo valor.
falso ı(falso &~falso)
Evaluar la negación (~).
falso ı(falso &verdadero)
Evaluar la conjunción (&).
falso ı(falso)
Eliminar los paréntesis que encierran un solo valor.
falso ı falso
ı
Evaluar la disyunción ( ) falso
Como se puede apreciar en el segundo ejemplo, la división de enteros da como resultado un
número entero y no un número real.
Ejercicios de expresiones
1. Si tiempo, velocidad y peso son variables de tipo real; contador, itera y suma son de
tipo entero; letra y primo son de tipo carácter y bandera es de tipo booleano, determinar
cuáles de las siguientes expresiones son válidas y cuales no; se debe justificar la respuesta.
a. (tiempo + itera) / (velocidad + peso)
b. piso(tiempo) + contador < itera * suma & ~bandera
c. tiempo * velocidad < bandera & peso >=0.0
d. letra + contador * suma
e. techo(velocidad) * suma + piso(tiempo) * itera
2. Si tiempo, velocidad y peso son variables de tipo real; contador, itera y suma son de
tipo entero; letra y primo son de tipo carácter y bandera es de tipo booleano, con valores
3.0, -4.5, 8.0, 5, -2, 30, ’p’, ’t’ y falso respectivamente, evaluar las siguientes expresiones
a. itera + piso(tiempo + velocidad) / (suma + itera)
b. letra <>primo & techo(tiempo) / piso(velocidad) + cuenta < 5
c. peso * velocidad / ( tiempo + 5.6 )
d. contador + ((itera)*(itera)* suma) / 4 – itera
e. bandera &(raiz2(tiempo) <=peso * velocidad)
f. contador < suma ı tiempo > 1.0 & ~(suma = itera)
2 INSTRUCCIONES SOBRE VARIABLES, LITERALES Y CONSTANTES
Las dos operaciones que se pueden realizar sobre una variable son modificar su valor y mostrar
su valor. Existen dos instrucciones diferentes que permiten modificar el valor de una variable:
asignación y lectura, mientras que existe sólo una forma de mostrar el valor: escritura.
La única operación que se puede realizar sobre constantes y/o literales es mostrar su valor y se
usa de la misma manera como se muestra el valor de una variable.
9
10. 2.1 Asignación
La asignación es la instrucción por medio de la cual se puede modificar el valor de una variable
utilizando el resultado de una expresión. Para que la asignación sea válida, es decir, se pueda
realizar, la variable y la expresión deben ser del mismo tipo.
La asignación tiene la siguiente forma:
<nombre>:=<expresión>
Donde, <nombre> es el nombre de la variable, que debe ser previamente declarada, y
<expresión>es una expresión del mismo tipo de la variable <nombre>.
El símbolo := se usará para indicar que el valor de la expresión <expresión> se almacena en la
variable <nombre>.
Para realizar una asignación (ejecutar), se sigue el siguiente algoritmo:
1. Evaluar la expresión.
2. Almacenar el resultado de la expresión en la dirección de memoria referenciada por la
variable.
Ejemplos de asignación
Si n es una variable de tipo entero que tiene el valor 5, la asignación
n :=n + 1, se ejecuta de la siguiente manera:
1. Evaluar la expresión n :=5 + 1
(1. reemplazar todas la variables por su valor)
2. Evaluar la expresión n :=6
(2. realizar las operaciones indicadas según su precedencia)
3. Almacenar el valor en el espacio de memoria referenciado por la variable. n=6
La variable n queda finalmente con el valor de 6.
Si n, m y k son variables de tipo entero y tienen los valores 5, 4 y –3 respectivamente, la
asignación m :=k + n * 5, se ejecuta de la siguiente manera:
1. Evaluar la expresión m := -3 + 5 * 5
(1. Reemplazar todas la variables por su valor)
2. Evaluar la expresión m :=22
(2. realizar las operaciones indicadas según su precedencia)
3. Almacenar el valor en el espacio de memoria referenciado por la variable. m = 22
La variable m queda finalmente con el valor de 22.
Si A y Y son variables de tipo entero y X de tipo real, con valores 6, 8 y –1.8
respectivamente, la asignación A :=(A + 5) * (Y+ piso(X+2.5)), es ejecutada de la siguiente
manera:
1. Evaluar la expresión (La evaluación fue realizada en los ejemplos de la sección anterior) A :=88
2. Almacenar el valor en el espacio de memoria referenciado por la variable. A = 88
La variable A queda con el valor 88.
Sean A y B variables de tipo entero con valores 6 y 8 respectivamente, bandera de tipo
booleano con valor verdadero, la asignación: bandera :=(A > B+4) ı ((A = 3) &~(B < 4))
es ejecutada como se muestra en la página siguiente.
10
11. 1. Evaluar la expresión (La evaluación fue realizada en los ejemplos de la bandera :=falso
sección anterior)
2. Almacenar el valor en el espacio de memoria referenciado por la variable. bandera = falso
La variable bandera queda con el valor de verdad falso.
Suponga que y es una variable de tipo real que tiene el valor –3.0, la asignación y :=3 + y * y
es ejecutada como se muestra en la siguiente página.
1. Evaluar la expresión y :=12.0
2. Almacenar el valor en el espacio de memoria referenciado por la variable. y = 12.0
La variable y queda finalmente con el valor de 12.0.
Como se puede apreciar en los ejemplos anteriores, la variable a la que se le está asignando el
resultado de la expresión puede aparecer en la expresión, sin que ello sea un error. Se debe
recordar que primero se evalúa la expresión (tomando el valor que tengan las variables en ese
momento), y posteriormente se almacena el resultado en la variable.
2.2 Lectura y escritura
La instrucción lectura es la que le permite al usuario del algoritmo modificar el valor de una
variable, durante la ejecución del mismo. Esta instrucción espera que el usuario ingrese un valor
(mediante el teclado el usuario escribe el valor a almacenar en la variable) y después,
garantizando que sea del tipo apropiado, lo asigna a la variable. La lectura tiene la siguiente
forma:
En este curso una variable es leída de la siguiente manera:
leer ( <nombre> )
donde <nombre> es el nombre de la variable que se está leyendo.
Ejemplo de lectura
• leer (n)
Si n es variable de tipo entero y si el usuario ingresa el valor de 30, después de ejecutar la
instrucción de lectura la variable n tendrá el valor de 30.
La escritura es la instrucción que permite mostrar, normalmente en la pantalla, el valor de una
variable, una constante o un literal durante la ejecución. La escritura tiene la siguiente forma:
escribir( <nombre> )
donde, <nombre> es el nombre de la variable, constante o literal que se está mostrando.
Ejemplo de escritura
• escribir (n)
Si n es variable de tipo entero y si la variable n tiene el valor de 30, en la pantalla se
presentará dicho valor.
11
12. Ejemplo en seudo-código
procedimiento principal()
variables
// declaración de una variable de tipo booleano
miBooleano: booleano
// declaración de una variable de tipo entero
miEntero: entero
// declaración una variable de tipo real
miReal: real
// declaración de una variable de tipo caracter
miCaracter: caracter
// declaración de una variable de tipo cadena
miCadena: cadena
inicio
// inicializar miBooleano
miBooleano := verdadero
// inicializar miEntero
leer (miEntero)
// inicializar miReal
miReal := 0.0
// inicializar miCaracter
miCaracter ‘c’
// inicializar miCadena
miCadena := "Respuesta: "
escribir("Valores de mis variables: ")
cambioLinea()
escribir("variable miBooleano: ")
escribir(miBooleano)
cambioLinea()
escribir("variable miEntero: ")
escribir(miEntero)
cambioLinea()
escribir("variable miReal: ")
escribir(miReal)
cambioLinea()
escribir("variable miCaracter: ")
escribir(miCaracter)
cambioLinea()
escribir("variable miCadena: ")
escribir(miCadena)
cambioLinea()
fin-procedimiento
Ejercicios de instrucciones sobre variables
1. Si x, v y p son variables de tipo real; cont, i y k son variables de tipo entero; letra y c son
variables de tipo carácter, band y terminar son variables de tipo booleano; MAX es una
constante de tipo entero y PI es una constante de tipo real, determinar cuáles de las siguientes
instrucciones son válidas. Se debe justificar la respuesta.
• leer (letra)
• escribir ( MAX)
• leer (cont)
• escribir (x)
• leer (MAX)
• leer (v)
• x := enteroAreal(k) + 2.0 * PI
• letra :=‘p’
• letra :=“p”
• letra :=p
• letra :=c
12
13. • p :=v / x * raiz2( p ) – band
• x :=“3.2444” + “1.4e-4”
• x :=3.2444 + 1.4e-4
• x :=‘v’ + ‘p’
• terminar :=p > v >=x
• terminar :=verdadero
• terminar :=“falso”
• terminar :=‘f’ <=letra
• x + 3.0 :=v
• v :=x * p + enteroAreal(caracterAentero(letra))
• I I
band :=(x+v)*p terminar cont <= k + i
• k := caracterAentero ( letra + caracterAentero (c) ) + k
2. Si x, v y p son variables de tipo real, con valores 3.5, 1.4 y 6.0 respectivamente, determinar
el valor de la variable z de tipo real al realizar cada una de las asignaciones siguientes:
• z :=v - p / (x + p / x – v)
• z :=p / x / v + p / x * v
• z:= (v – 3.0 * x / p) / (4.0 – v / (5.0 + p / x))
• z :=2.0*p – 4.0/v + 5.0*x/(3.0+v*p – x)
3. Suponga que x, v y p son variables de tipo real, con valores 3.5, 1.4 y 6.0 respectivamente;
i, k y cont son variables enteras con valores 5, 2 y –4, respectivamente; letra y c son
variables de tipo carácter con valores ‘p’ y ‘t’; y bandera y terminar de tipo booleano con
valores falso y verdadero respectivamente. Determine el valor de cada una de las variables,
después de ejecutar las siguientes instrucciones, en el orden en que aparecen.
• x :=v + enteroAreal( caracterAentero( letra ) )
• k :=( k–2*cont )* ( k–2*cont ) + i*( cont – k / 2.0 )/cont
• v :=x + (p – raiz2(x) * ( v – x ) + 3.0) * p
• bandera :=(terminar ı~ ı ı
(i+2 <>cont p>=v)) ( x+v) = p
• cont :=cont + 1
• i:= cont * realAentero(x * v – p/2.0) + k – i
• p :=p + x – enteroAreal( piso( p+x) + 5 )
• letra :=enteroAcaracter( k )
• k :=( k + cont ) mod ( piso( p ) + techo( v ) )
• v :=x + (p – raiz2(x) * ( v – x ) + 3.0) * p
• k :=( k–2*cont ) ( k–2*cont ) + i*( cont – k / 2.0 )/cont
3 ESTRUCTURAS DE CONTROL
Las estructuras de control tienen como finalidad ir señalando el orden en que tienen que
sucederse los pasos de un algoritmo.
Ejemplo
Suponga que acaba de mostrar un mensaje en la pantalla que pregunte al usuario:
"¿desea salir? - Si / No".
Obviamente, de la respuesta del usuario va a depender la siguiente acción del programa.
Por ejemplo, este mensaje se nos presenta tras haber seleccionado la opción de cerrar el
programa, si nosotros digitamos "Sí", el programa finalizará, y si digitamos "No", el
programa continuara con su ejecución.
El programador tiene que haber escrito código para las dos posibilidades, aunque cuando el
programa esté funcionando, sólo se elegirá una.
13
14. Las estructuras de control pueden clasificarse en tres tipos: Secuenciales, Selectivas y
Repetitivas
3.1 Estructuras Secuenciales
Dada una lista de instrucciones <instrucción 1> <instrucción 2> ... <instrucción n> las
estructuras SECUENCIALES permite la ejecución de dicha lista en el orden en que aparecen las
instrucciones, es decir, se ejecuta primero la instrucción <instrucción 1> luego la instrucción
<instrucción 2>, y por último se ejecuta la instrucción <instrucción n>. Una secuencia de
instrucciones es llamada generalmente BLOQUE DE INSTRUCCIONES.
La forma general de la secuencia es:
DIAGRAMA DE FLUJO SEUDO-CÓDIGO
<instrucción1>
<instrucción2>
.
.
.
<instrucción n>
Ejemplos de Estructuras Secuenciales.
Aplicando la metodología de programación presentada en este curso, encontrar los algoritmos
que permiten resolver los siguientes problemas:
1. Dado el radio de un círculo, calcular su área.
ANALISIS DEL PROBLEMA
VARIABLES CONOCIDAS Un número que representa el radio de un círculo
VARIABLES DESCONOCIDAS Un número que representa el área de un círculo.
El número buscado corresponde al área del círculo con radio igual al
CONDICIONES
número dado.
ESPECIFICACIÓN
ENTRADAS r ∈ Reales, (r es el radio del círculo).
SALIDAS a ∈ Reales, (a es el área del círculo).
CONDICIONES a = pi * r2
14
15. DISEÑO
Primera División:
Inicio
Paso 1. leer el valor del radio del círculo
Paso 2. calcular el área del círculo
Paso 3. escribir el área del círculo
Fin
División Final:
PI = 3.1415926 /* se define la constante pi */
r: real /*se define la variable para el radio del círculo*/
a : real /* se define la variable para el área del círculo */
leer (r) /* se lee el radio */
a := PI * cuadrado( r ) /* se calcula el área */
escribir (“El área es: ” ),
escribir (a) /* se escribe el resultado */
PRUEBA DE ESCRITORIO
Este algoritmo cuenta con siete (7) líneas, las tres primeras, son para definir las variables y
constantes usadas y las últimas cuatro, son las instrucciones que son aplicadas sobre dichos
datos. De esta manera la prueba de escritorio se debe realizar solamente sobre las cuatro
últimas líneas, teniendo en cuenta los valores para las constantes y las variables.
LINEA r a ENTRADA SALIDA
4 5.0 5.0
5 78.53981
6 El área es:
7 78.53981
2. Un granjero tiene una cantidad X de animales de dos tipos: conejos y gansos. Si la cantidad
de patas total de los animales Y es conocida, ¿cuántos conejos y cuantos gansos tiene el
granjero?
ANALISIS DEL PROBLEMA
VARIABLES CONOCIDAS La cantidad total de animales X y la cantidad de patas totales Y.
VARIABLES DESCONOCIDAS La cantidad de conejos y la cantidad de gansos.
La suma de los conejos y los gansos es igual a X. La suma de los patas de
CONDICIONES los conejos (cuatro por cada uno) y de los gansos (dos por cada uno) es
igual a Y.
ESPECIFICACIÓN
ENTRADAS X, Y ∈ Naturales, (X es el total de animales, Y es el total de patas).
SALIDAS C, G ∈ Naturales, (C es el número de conejos, G es el número de gansos).
CONDICIONES X = G + C, Y = 2*G + 4*C
Aplicando los conocimientos de álgebra a las condiciones anteriores, para expresar las variables
de salida C y G en términos de las variables de entrada X y Y, se tiene que:
G= (4*X - Y)/2, C = (Y - 2*X)/2
15
16. DISEÑO
Primera División:
Inicio
Paso 1. Leer las entradas
Paso 2. Realizar el cálculo
Paso 3. Imprimir los resultados
Fin
Segunda División:
Inicio
Paso 1. Leer las entradas
Paso 1.1. Leer el número total de animales
Paso 1.2. Leer el número total de patas
Paso 2. Realizar el cálculo
Paso 2.1. Calcular el número de gansos
Paso 2.2. Calcular el número de conejos
Paso 3. Imprimir los resultados
Paso 3.1. Imprimir el número de gansos
Paso 3.2. Imprimir el número de conejos
Fin
División Final:
1 x: entero /* se define la variable para el número total de animales */
2 y: entero /* se define la variable para el número total de patas de los animales */
3 g: entero /*se define la variable para el número de gansos*/
4 c: entero /*se define la variable para el número de conejos*/
5 leer (x) /* lee el número total de animales */
6 leer (y) /* lee el número total de patas de los animales */
7 g := (4*x - y)/2 /* calcula el número de gansos */
8 c := (y - 2*x)/2 /* calcula el número de conejos */
9 escribir (“Cantidad de gansos:” )
10 escribir (g)
11 escribir (“Cantidad de conejos:” )
12 escribir (c)
PRUEBA DE ESCRITORIO
Este algoritmo cuenta con doce (12) líneas, las cuatro primeras, son para definir las variables
usadas y las últimas ocho, son las instrucciones que son aplicadas sobre dichos datos. De esta
manera la prueba de escritorio se debe realizar solamente sobre las líneas (5-12), teniendo en
cuenta los valores para las variables.
LINEA X y g c ENTRADA SALIDA
5 50 50
6 140 140
7 30
8 20
9 Cantidad de gansos:
10 30
11 Cantidad de conejos:
12 20
3.2 Estructuras Selectivas
Las ESTRUCTURAS SELECTIVAS o de SELECCION permiten la ejecución de un bloque de
instrucciones o de otro, dependiendo del valor de una expresión lógica denominada
CONDICION. La forma general de la selección es:
16
17. DIAGRAMA DE FLUJO SEUDO-CÓDIGO
si <condición> entonces
<bloque 1>
sino
<bloque 2>
finsi
Donde, <condición> es la expresión lógica que se evalúa para determinar el bloque de
instrucciones a ejecutar, <bloque 1> es el conjunto de instrucciones que se ejecuta si la
condición evalúa Verdadero y <bloque 2> es el conjunto de instrucciones que se ejecuta si la
condición evalúa Falso.
Ejemplo de selección.
Dados un número entero entre 100 y 999 determinar si es capicúa o no lo es. Un número es
capicúa si se lee igual al derecho y al revés. Por ejemplo, 101 es capicúa (al derecho se lee 101
y al revés se lee 101), mientras que 203 no lo es (al derecho se lee 203 y al revés se lee 302).
ANALISIS DEL PROBLEMA
VARIABLES DESCONOCIDAS Un texto.
VARIABLES CONOCIDAS Un número entero entre 100 y 999.
CONDICIONES El texto debe indicar si el número ingresado es capicúa o no lo es.
ESPECIFICACIÓN
ENTRADAS n ∈ Enteros, (n es el número ingresado).
Texto ∈ Cadenas, (Texto es una cadena de caracteres indicando si el
SALIDAS
número es o no capicúa).
n entre 100 y 999
Texto = “Es capicúa” si u = c
CONDICIONES
“No es capicúa” en otro caso
donde u representa las unidades de n, y c las centenas de n
DISEÑO
Primera División:
Inicio
Paso 1. Leer el número.
Paso 2. Determinar si es capicúa o no.
Paso 3. Imprimir el texto resultado.
Fin
17
18. Segunda División:
Inicio
Paso 1. Leer el número.
Paso 2. Determinar si es capicúa o no
Paso 2.1. Calcular las unidades del número
Paso 2.2. Calcular las decenas del número.
Paso 2.3. Calcular el texto resultado.
Paso 3. Imprimir el texto resultado.
Fin
División Final:
1 n: entero /* se define la variable para el número */
2 u: entero /* se define la variable unidades del número*/
3 c: entero /*se define la variable centenas del número*/
4 texto: cadena /* define la variable para el texto */
5 leer (n) /* lee el número */
6 u := n mod 10 /* calcula las unidades del número */
7 c := ( n / 100 ) mod 10 /* calcula las centenas del número */
8 si u = c entonces
9 texto := “es capicúa” /* el número es capicúa */
10 sino
11 texto := “no es capicúa” /* el número no es capicúa */
12 finsi
13 escribir ( “El número es:”)
14 escribir (texto)
PRUEBA DE ESCRITORIO
Este algoritmo cuenta con catorce (14) líneas, las cuatro primeras, son para definir las variables
usadas y las últimas diez son las instrucciones que son aplicadas sobre dichos datos. De esta
manera la prueba de escritorio se debe realizar solamente sobre las líneas 5 - 14, teniendo en
cuenta los valores para las variables.
Primer prueba de escritorio
LINEA n u c Texto ENTRADA SALIDA
5 404 404
6 4
7 4
8 La condición es evaluada a verdadero, por lo tanto se pasa a la línea 9, la siguiente línea al
entonces de la selección en ejecución.
9 es capicúa
10 Se salta hasta el finsi de la selección en ejecución, es decir, hasta la línea 12
12 Se salta a la siguiente línea.
13 El número es:
14 capicúa
18
19. Segunda prueba de escritorio
LINEA n u c texto ENTRADA SALIDA
5 725 725
6 7
7 5
8 La condición es evaluada a falso, por lo tanto se pasa a la línea 11, la siguiente línea al sino de la
selección en ejecución.
11 no es capicúa
12 Se salta a la siguiente línea.
13 El número es:
14 no capicúa
Como se puede apreciar en este ejemplo, una selección puede contener (en cualquiera de sus
dos bloques de instrucciones), lecturas, escrituras, asignaciones u otras selecciones.
3.3 Estructuras de Selección Anidadas
En los bloques de instrucciones de una estructura de selección el programador puede utilizar
otras estructuras de selección. Cuando esto sucede se dice que las estructuras de selección
están anidadas.
si<condición1> entonces
<variable> := <expresión 1>
sino
si <condición 2>entonces
<variable> := <expresión 2>
sino
...............
sino
si <condición n>entonces
<variable>:= <expresión n>
sino
<variable> := <expresión final>
finsi
..............
finsi
finsi
Ejemplo de selección anidada.
Dados tres números enteros calcular el máximo.
ANALISIS DEL PROBLEMA
VARIABLES DESCONOCIDAS Tres números enteros.
VARIABLES CONOCIDAS Un número entero.
CONDICIONES El número buscado es el máximo de los tres números dados.
19
20. ESPECIFICACIÓN
A, B, C ∈ Enteros, (A es el primero número, B es el segundo número y C es
ENTRADAS
el tercer número).
SALIDAS Mayor ∈ Enteros, (Mayor es el máximo de los tres números dados).
CONDICIONES
DISEÑO
Primera División:
Inicio
Paso 1. Leer los tres números
Paso 2. Determinar cual es el máximo
Paso 3. Imprimir el máximo
Fin
Segunda División:
Inicio
Paso 1. Leer los tres números
Paso 1.1. Leer el primer número
Paso 1.2. Leer el segundo número
Paso 1.3. Leer el tercer número
Paso 2. Determinar cual es el máximo
• Si el primer número es mayor o igual a los otros dos números el primero es el
máximo.
• Si no es así y si el segundo número es mayor o igual a los otros dos números
el segundo es el máximo.
• De otra manera, se tiene que el tercer número es el máximo.
Paso 3. Imprimir los resultados
Fin
División Final:
1 a : entero /* se define la variable para el primer número */
2 b : entero /* se define la variable para el segundo número */
3 c : entero /*se define la variable para el tercer número */
4 mayor : entero /*se define la variable para el máximo */
5 leer (a) /* lee el primer número */
6 leer (b) /* lee el segundo número */
7 leer (c) /* lee el tercer número */
8 si a >= b & a >= c entonces
9 mayor :=a /* el máximo es a pues es mayor que b y c */
10 sino
11 si b >= a & b >= c entonces
12 mayor := b /* el máximo es b pues es mayor que a y c */
13 sino
14 mayor := c /* sino es ni a ni b entonces es c */
15
finsi
16 finsi
17 escribir (“El máximo de los tres es: “)
20
21. 18 escribir (mayor)
PRUEBA DE ESCRITORIO
Este algoritmo cuenta con dieciocho (18) líneas, las cuatro primeras, son para definir las
variables usadas y las últimas catorce son las instrucciones que son aplicadas sobre dichos
datos. De esta manera la prueba de escritorio se debe realizar solamente sobre las líneas 5-18,
teniendo en cuenta los valores para las variables.
Primera prueba de escritorio
LINEA a b C mayor ENTRADA SALIDA
5 50 50
6 140 140
7 30 30
8 La condición es evaluada a falso, por lo tanto se pasa a la línea 11, la siguiente al sino de la
selección en ejecución
11 La condición es evaluada a verdadero, por lo tanto se pasa a la línea 12, la siguiente línea al
entonces de la selección en ejecución.
12 140
13 Se salta hasta el finsi de la selección en ejecución, es decir, hasta la línea 15
15 Se salta a la siguiente línea.
16 Se salta a la siguiente línea.
17 El máximo de los tres es:
18 140
Segunda prueba de escritorio
LINEA a b C Mayor ENTRADA SALIDA
5 90 90
6 -50 -50
7 70 70
8 La condición es evaluada a verdadero, por lo tanto se pasa a la línea 9, la siguiente al entonces
de la selección en ejecución.
12 90
13 Se salta hasta el finsi de la selección en ejecución, es decir, hasta la línea 16
16 Se salta a la siguiente línea.
17 El máximo de los tres es:
18 90
Tercera prueba de escritorio
LINEA a b C mayor ENTRADA SALIDA
5 20 20
6 10 10
7 30 30
8 La condición es evaluada a falso, por lo tanto se pasa a la línea 11, la siguiente al sino de la
selección en ejecución.
11 La condición es evaluada a falso, por lo tanto se pasa a la línea 14, la siguiente línea al sino de la
selección en ejecución.
14 30
15 Se salta a la siguiente línea.
16 Se salta a la siguiente línea.
17 El máximo de los tres es:
18 30
21
22. 3.4 Estructura de Selección Múltiple
La Estructura de Selección Múltiple proporciona una manera muy práctica para seleccionar
entre un conjunto de opciones predefinidas. Si el valor de la <opción> coincide con
<constante_i> se ejecutará el <bloque de instrucciones i>. Si el valor de <opción> no coincide
con ninguna <constante_i> se ejecutara el <bloque de instrucciones> establecido en otro caso.
seleccionar <opción> hacer
caso <constante_1>:
<bloque instrucciones 1>
caso <constante_2>:
<bloque instrucciones 2>
...............
caso <constante_n>:
<bloque instrucciones n>
otrocaso :
<bloque instrucciones>
finseleccionar
Ejemplo de Selección múltiple
Una persona selecciona una transacción en un cajero automático
ANALISIS DEL PROBLEMA
VARIABLES DESCONOCIDAS Que transacción desea realizar el usuario
VARIABLES CONOCIDAS Los números correspondientes a las transacciones disponibles en el cajero.
CONDICIONES El cajero debe ejecutar la transacción seleccionada por el usuario
ESPECIFICACIÓN
n ∈ Enteros entre 1 y 5, (n es el número ingresado por el usuario para
ENTRADAS
seleccionar la transacción).
SALIDAS Ejecución de una Transacción
El numero n seleccionado por el usuario debe corresponder a la transacción
CONDICIONES
seleccionada por el usuario
DISEÑO
Primera División:
Inicio
Paso 1. Leer el número.
Paso 2. Determinar la transacción y Ejecutarla.
Fin
22
23. Segunda División:
Inicio
Paso 1. Leer el número.
Paso 2. Determinar la transacción
Paso 2.1. si es 1
Paso 2.1.1. Ejecutar la transacción 1
Paso 2.1.2. Salir
Paso 2.2. si es 2
Paso 2.2.1. Ejecutar la transacción 2
Paso 2.2.2. Salir
Paso 2.3. si es 3
Paso 2.3.1. Ejecutar la transacción 3
Paso 2.3.2. Salir
Paso 2.4. si es 4
Paso 2.4.1. Ejecutar la transacción 4
Paso 2.4.2. Salir
Paso 2.5. si es 5
Paso 2.5.1. Ejecutar la transacción 5
Paso 2.5.2. Salir
Paso 2.5. si no esta en el rango
Paso 2.5.1. Salir
Fin
División Final:
n: entero /* se define la variable para la selección del usuario*/
leer (n) /* lee el número de la transacción seleccionada*/
seleccionar n hacer
caso 1:
<consignación>
caso 2:
<retiro>
caso 3:
<pago de servicios>
caso 4:
<cambio de clave>
caso 5:
<consulta de saldo>
finseleccionar
23
24. 4 CODIFICACIÓN DE ALGORITMOS EN C++
TRADUCCIÓN DE ESTRUCTURAS BÁSICAS
Para traducir un algoritmo representado en UN pseudo-código, al lenguaje de programación C++, se deben
seguir las siguientes reglas:
SEUDOCODIGO C++
Definición Variables x : tipo tipo x;
Definición Constante PI = 3.1415926 PI = 3.1415926
Asignación = =
Operadores Aritméticos
Suma + +
Resta - -
Multiplicación * *
División / /
Módulo mod %
Lectura leer (a) cin >>a;
Impresión escribir(a) cout << a;
Cambio de línea cambio_linea “n”
Cadena Caracteres “cadena” "cadena"
Selección si (condición) if (condición)
entonces {
bloque_instrucciones1 bloque_instrucciones1;
sino }
bloque_instrucciones2 else
fin_si {
bloque_instrucciones2
;
}
Selección Múltiple Seleccionar ( variable) d e switch(opción)
caso constante 1: {
bloque_instrucciones_1 case constante_1:
. {
.
. bloque_instrucciones_1;
caso constante n: break;
bloque_instrucciones_n {
fin_seleccionar .
.
case constante_n:
{
bloque_instrucciones_n;
{
break;
}
Comentarios /* comentario */ /* comentario */
Operadores Lógicos
negación ~ !
y lógico & &&
o lógico | ||
Oper. Relacionales
Menor que < <
Mayor que > >
Igual a = ==
Menor o igual que <= <=
Mayor o igual que >= >=
Diferente a <> !=
24
25. Ejemplos.
1. El siguiente algoritmo que imprime el mayor de dos números enteros.
SEUDOCODIGO C++
/* para mostrar en pantalla */
procedimiento principal() #include <iostream.h>
variables void main()
a:entero {
b:entero int a; /* a es entera */
inicio int b; /* b es entera */
escribir( “Digite numero:”)
leer (a) cout << “Digite numero:”;
escribir “Digite numero” cin >> a;
leer (b) cout << “Digite numero:”;
si a<b entonces cin >>b;
escribir (“El mayor es:”) if( a<b )
escribir (b) {
cout << “El mayor es:”;
sino cout << b;
escribir (“El mayor es:”) }
escribir (a) else{
fin_si cout <<“El mayor es:”;
fin-procedimiento cout << a;
}
}
Traducción de tipos de datos:
Pseudo Código
C++
x : real float x;
double x;
contador : entero int contador;
letra : carácter char letra;
bandera : booleano bool bandera;
25