Está en la página 1de 95

ÍNDICE

UNIDAD 1
1 Informática y otros conceptos básicos. ............................................................................................... 1
1.1 Definición de Informática ................................................................................................................ 1

1.2 Necesidad de información............................................................................................................... 1

1.3 Diferencia entre dato e información ............................................................................................... 2

1.4 La computadora .............................................................................................................................. 3

1.5 ¿Qué significa esto?......................................................................................................................... 3

1.6 Actividades ...................................................................................................................................... 5

Unidad 2

2 Resolución de problemas .................................................................................................................... 6


2.1 Introducción .................................................................................................................................... 6

2.2 Tipos de problemas ......................................................................................................................... 7

2.3 Problemas de computación............................................................................................................. 7

2.4 Etapas de resolución de problemas con computadoras ................................................................. 8

2.5 Actividades .................................................................................................................................... 10

Unidad 3

3 Algoritmos. Propiedades. .................................................................................................................. 11


3.1 Introducción .................................................................................................................................. 11

3.2 Definición de algoritmo ................................................................................................................. 11

3.3 Propiedades de los algoritmos ...................................................................................................... 11

3.4 Ejemplos de algoritmos ................................................................................................................. 13

3.5 Actividades .................................................................................................................................... 15

Unidad 4

4 Algoritmos. Dominio y forma de expresarlos. ................................................................................... 19


4.1 Dominio de un algoritmo .............................................................................................................. 19

4.2 Errores en la construcción de un algoritmo .................................................................................. 19

4.3 Formas de expresar un algoritmo ................................................................................................. 20

Docente compilador: Ing. Analía Méndez Página i


4.4 Actividades .................................................................................................................................... 21

Unidad 5

5 Constantes, variables, identificadores y tipos de datos. ................................................................... 24


5.1 Introducción .................................................................................................................................. 24

5.2 Constante ...................................................................................................................................... 24

5.3 Variable ......................................................................................................................................... 24

5.4 Identificador .................................................................................................................................. 25

5.5 Reglas para escribir un identificador ............................................................................................. 25

5.6 Ejemplos de identificadores o nombres de variables. .................................................................. 25

5.7 Ingreso de valores a variables ....................................................................................................... 26

5.8 Acciones o instrucciones que permiten guardar un valor en una variable ................................... 27

5.9 Tipos de datos ............................................................................................................................... 27

5.10 Introducción al pseudocódigo utilizando PSeInt ........................................................................... 29

5.11 Actividades .................................................................................................................................... 30

Unidad 6

6 Instrucción de asignación .................................................................................................................. 35


6.1 Reglas de la instrucción de asignación .......................................................................................... 35

6.2 Ejemplos de asignación a variables ............................................................................................... 36

6.3 Formas de expresar la instrucción de asignación.......................................................................... 37

6.4 Actividades .................................................................................................................................... 39

Unidad 7

7 Instrucciones de Entrada/Salida ........................................................................................................ 43


7.1 Introducción .................................................................................................................................. 43

7.2 Definición de la instrucción de Entrada ........................................................................................ 43

7.3 Formas de expresar la instrucción de entrada .............................................................................. 44

7.4 Definición de la instrucción de Salida............................................................................................ 44

7.5 Formas de expresar la instrucción de salida ................................................................................. 45

7.6 Ejemplo aplicando instrucciones de Entrada/Salida ..................................................................... 45

Docente compilador: Ing. Analía Méndez Página ii


7.7 Actividades .................................................................................................................................... 47

Unidad 8

8 Operadores ........................................................................................................................................ 52
8.1 Definición ...................................................................................................................................... 52

8.2 Tipos de operadores ...................................................................................................................... 52

8.3 Operadores Aritméticos ................................................................................................................ 53

8.4 Expresiones aritméticas ................................................................................................................ 53

8.5 Jerarquía de operadores aritméticos ............................................................................................ 54

8.6 Actividades .................................................................................................................................... 55

Unidad 9

9 Estructura de Control Secuencial ...................................................................................................... 56


9.1 Definición ...................................................................................................................................... 56

9.2 Diferencias entre estructuras de control e instrucciones ............................................................. 56

9.3 Clasificación de estructuras de control ......................................................................................... 57

9.4 Estructura de control secuencial ................................................................................................... 58

9.5 Formas de expresar la estructura de control secuencial .............................................................. 58

9.6 Actividades .................................................................................................................................... 59

Unidad 10

10 El Método Heurístico ......................................................................................................................... 61


10.1 Definición ...................................................................................................................................... 61

10.2 Pasos del método heurístico ......................................................................................................... 61

10.3 Definición del problema ................................................................................................................ 62

10.4 Análisis del problema .................................................................................................................... 63

10.5 Elaboración del Diagrama de Flujo ................................................................................................ 64

10.6 Verificación .................................................................................................................................... 64

10.7 Actividades .................................................................................................................................... 65

Unidad 11

11 Operadores Relacionales ................................................................................................................... 67

Docente compilador: Ing. Analía Méndez Página iii


11.1 Introducción .................................................................................................................................. 67

11.2 Operadores relacionales o de relación.......................................................................................... 67

11.3 Jerarquía de operadores aritméticos y de relación....................................................................... 68

11.4 Actividades .................................................................................................................................... 68

Unidad 12

12 Estructura de Selección ..................................................................................................................... 70


12.1 Introducción .................................................................................................................................. 70

12.2 Estructura de selección ................................................................................................................. 70

12.3 Estructura de selección simple ...................................................................................................... 71

12.4 Estructura de selección compuesta .............................................................................................. 72

12.5 Actividades .................................................................................................................................... 73

Unidad 13

13 Operadores Lógicos ........................................................................................................................... 76


13.1 Introducción .................................................................................................................................. 76

13.2 Operadores lógicos........................................................................................................................ 76

13.3 Tablas de Verdad de la Lógica de Boole ........................................................................................ 77

13.4 Jerarquía de operadores lógicos ................................................................................................... 78

13.5 Actividades .................................................................................................................................... 79

Unidad 14

14 Estructuras de control de iteración ................................................................................................... 80


14.1 Introducción .................................................................................................................................. 80

14.2 Estructura de control de iteración ................................................................................................ 80

14.3 Estructura Mientras....................................................................................................................... 82

14.4 Estructura Repetir-Hasta ............................................................................................................... 83

14.5 Diferencias entre las estructuras iterativas Mientras y Repetir-Hasta ......................................... 84

14.6 Actividades .................................................................................................................................... 85

Bibliografía 90

Docente compilador: Ing. Analía Méndez Página iv


UNIDAD 1

1 Informática y otros conceptos básicos.

1.1 Definición de Informática

La Informática es la ciencia que estudia el análisis y resolución de problemas utilizando


computadoras.

La palabra Informática es un vocablo de origen francés compuesto de dos palabras:

• Infor que significa Información, y

• matica que significa Automática.

La informática se ocupa del tratamiento automático de la información a través de dispositivos


electrónicos y sistemas computacionales.

Es una de las disciplinas más nuevas, surgida formalmente en la segunda mitad del siglo XX.

Para el tratamiento automatizado de la información utiliza sistemas computarizados y tiene como


propósito el almacenamiento y la recuperación de la información.

1.2 Necesidad de información

La Informática interviene hoy en día en prácticamente en todos los demás campos del saber de un
modo o de otro. Vivimos en una sociedad en donde la obtención y el uso de información es de vital
importancia.

Nuestro mundo está hiper tecnologizado e hiperconectado, en ese contexto la información se ha


convertido en uno de los elementos más valiosos para el desarrollo de cualquier actividad.

Los sistemas informáticos permiten administrar la información de una manera veloz y eficiente.

Según el matemático estadounidense Claude E. Shannon, la información es todo lo que reduce la


incertidumbre entre varias alternativas posibles. Es lo que necesitamos conocer para tomar
decisiones de manera más efectiva.

Todo aquello con lo que adquirimos conocimiento es información. De hecho, cuando


ejecutamos un programa en la computadora, estamos procesando información.

Docente compilador: Ing. Analía Méndez Página 1


La necesidad de información ha crecido de forma considerable, y la computadora es un generador
rápido y masivo de información. La representación de la información es fundamental en ciencias de
la computación y en la Informática. El propósito principal de la mayoría de los programas de
computadoras es almacenar y recuperar información, además de realizar cálculos.

1.3 Diferencia entre dato e información

A pesar de que, generalmente, los términos de datos e información se usan para describir lo mismo,
para la Informática estos términos significan diferentes cosas.

Dato e información son conceptos diferentes, entre ellos se produce un proceso de transformación,
de modo que, es necesario añadirle algo al dato para que llegue a ser información.

El dato es un símbolo que describe hechos o entidades. Es la entrada sin procesar a partir
de la cual se produce la información. Puede definirse como un hecho en bruto, simple y
discreto, un símbolo que no ha sido interpretado.

Es la mínima unidad de significado, elemento primario de información que por sí solo es irrelevante
y que no dice nada sobre el “por qué” de las cosas y no es orientativo para la acción.

La información, en cambio, son datos procesados,


organizados, que poseen un significado, y son
necesarios para crear conocimiento. Se refiere a los
datos que han sido elaborados y comunicados de tal
manera que pueden ser entendidos e interpretados
por el receptor.

La información, entonces, se puede definir como


un conjunto de datos procesados e interrelacionados, que tienen un significado y por lo tanto
son de utilidad para tomar decisiones.

Por ejemplo, un número de teléfono, una fecha o un nombre son datos, y por sí mismos no tienen
ningún valor informativo, pero cuando los relacionamos entre sí generamos información.

Si utilizamos un conjunto de datos estadísticos referidos a la población de un lugar – como edad,


sexo, estudios, etc. – y los relacionamos, podemos generar información referente a las
características de dicha población.

Docente compilador: Ing. Analía Méndez Página 2


1.4 La computadora

Una computadora es un dispositivo informático que es capaz de recibir, almacenar y procesar


información de una forma útil. Está programada para realizar operaciones lógicas o aritméticas de
forma automática.

La palabra 'Computadora' procede del inglés computer y a su vez del latín computare que significa
calcular.

Una computadora es una máquina digital programable, de funcionamiento electrónico, capaz de


procesar grandes cantidades de datos a grandes velocidades. De este modo obtiene información
útil que luego presenta a un operador humano, o transmite a otros sistemas mediante redes
informáticas de distinto tipo.

La computadora es una máquina capaz de aceptar datos de entrada, realizar con ellos operaciones
lógicas y aritméticas con gran velocidad y precisión, y proporcionar los resultados (información) a
través de algún medio de salida.

Podemos definir a la computadora como una máquina digital y sincrónica, con capacidad de
cálculo numérico y lógico, controlada por un programa almacenado y con posibilidad de
comunicación con el mundo exterior.

1.5 ¿Qué significa esto?

• Es digital, porque dentro de la computadora las señales eléctricas que se manejan y la


información que se procesa se representa en forma discreta, por medio de dos valores (0 y 1).

• Además, se afirma que es sincrónica, es decir que realiza las operaciones coordinada por un
reloj central que envía señales de sincronismo a todos los elementos que componen la
computadora. Esto significa que todas las operaciones internas se realizan en instantes de
tiempo predefinidos y coordinados con el reloj.

• Internamente posee una capacidad de cálculo numérico y lógico. Normalmente las operaciones
que pueden realizarse en ella son muy simples, por ejemplo, suma, disyunción, conjunción o
comparación.

• El hecho de que sea controlada por un programa es quizás el punto más importante que
diferencia a una computadora de una calculadora. Significa que internamente se tienen órdenes
o instrucciones almacenadas, que la computadora podrá obtener, interpretar y ejecutar.

Docente compilador: Ing. Analía Méndez Página 3


• Además, está comunicada con el mundo exterior. Esto significa que podrá realizar operaciones
de ingreso o egreso de valores desde y hacia el mundo real, utilizando dispositivos periféricos;
por ejemplo, el teclado o el mouse para entrada de información, y pantalla como salida.

La computadora es una máquina que cambia información de una forma a otra: recibe datos
(entrada), los transforma y proporciona información (salida). Esta información puede presentarse
de muchas formas, lo que convierte a la computadora en una máquina sumamente versátil, que es
capaz desde liquidar impuestos hasta guiar el recorrido de una nave espacial. En cada caso las
entradas y salidas son totalmente distintas, y en esto radica lo sorprendente de poder usar una
computadora para ambas actividades.

Para que la información sea entendida por la computadora debe de estar debidamente codificada.
La codificación se realiza en BITs (Binary digiT), en 0 y 1.

Procesar información es obtener resultados o conclusiones a partir de unos datos de entrada.


Procesar los datos consiste en someterlos a un conjunto de operaciones tales como ordenamiento,
selección, ejecución de cálculos, etc., de forma que permita extraer conclusiones de esos datos que
se manipulan.

Procesar es transformar datos primarios en información organizada, significativa y útil.

Para realizar un procesamiento de información, la computadora necesariamente deberá realizar las


siguientes tareas:

• Entrada de datos.

• Procesamiento de la información: que implica el almacenamiento y la recuperación de datos y


programas.

• Salida de resultados (información).

La computadora es la herramienta más versátil, potente y revolucionaria que el ser humano ha


creado en su historia reciente. Representa el punto cumbre de la Revolución industrial, científica y
tecnológica que presenció el siglo XX después de la Segunda Guerra Mundial.

Su presencia y popularización en nuestro tiempo no sólo cambió para siempre el modo de procesar
la información en el mundo, sino también muchas áreas de la vida cotidiana.

Docente compilador: Ing. Analía Méndez Página 4


1.6 Actividades

1) Marca según corresponda:

La información...

es un conjunto de procesos interrelacionados, que tienen un significado y por lo tanto son


de utilidad para tomar decisiones.

es un conjunto de interrelaciones de datos y decisiones, que tienen un significado y por lo


tanto son de utilidad.

es un conjunto de datos procesados e interrelacionados, que tienen un significado y por lo


tanto son de utilidad para tomar decisiones.

es un conjunto de interrelaciones sin un significado y por lo tanto con una limitada utilidad
para tomar decisiones.

2) Vincula las definiciones con los conceptos correspondientes:

Es todo aquello con lo que adquirimos conocimiento. Procesar

Es un hecho en bruto, simple y discreto, un símbolo que no ha sido


Informática
interpretado.

Se relaciona con el tratamiento automático de la información a través


Dato
de dispositivos electrónicos y sistemas computacionales.

Es transformar datos primarios en información organizada,


Información
significativa y útil.

3) Identifica si la frase es verdadera o falsa:

Para que la información sea entendida por la computadora debe de estar debidamente codificada.

Verdadero

Falso

Docente compilador: Ing. Analía Méndez Página 5


UNIDAD 2

2 Resolución de problemas

2.1 Introducción

La Informática es una ciencia y, como tal, se relaciona con una metodología fundamentada y
racional para el estudio y resolución de los problemas.

Si buscamos en el diccionario una definición de la palabra problema podremos hallar alguna de las
siguientes definiciones:

- Cuestión o proposición dudosa, que se trata de aclarar o resolver.

- Enunciado encaminado a averiguar el modo de obtener un resultado cuando se conocen


ciertos datos.

La resolución de problemas mediante una computadora consiste en establecer una adecuada


formulación de pasos precisos a seguir para resolver un determinado problema.

Normalmente, nos comunicamos con otras personas y, frente a la necesidad de resolver algún
problema que se presenta, usamos lenguaje común y corriente para describir una explicación con
indicaciones de cómo resolver dicho problema. Por ejemplo, cuando un amigo nos expresa que
necesita comprar algo y no sabe dónde y nos pide ayuda, podemos explicarle qué recorrido hacer
y cómo llegar al lugar donde encontrará lo que desea. Sin embargo, nuestras indicaciones podrían
ser malinterpretadas y nuestro amigo no lograr su objetivo debido a que “ejecutó incorrectamente”
la solución que le dimos.

Cuando se trata de darle indicaciones a una computadora para resolver un problema, no pueden
utilizarse indicaciones ambiguas ya que una máquina no posee la capacidad de decisión de un ser
humano para resolver situaciones imprevistas. Es fundamental que cada orden o indicación posea
una única interpretación de lo que hay que realizar.

Para poder indicar a una computadora las órdenes que debe realizar para resolver un
problema, es necesario que previamente entendamos exactamente lo que se quiere hacer.
Debemos conocer con qué datos se cuenta y qué tipo de transformación o procesamiento
aplicaremos sobre ellos.

Docente compilador: Ing. Analía Méndez Página 6


Es posible que se genere una situación no contemplada como consecuencia de la ejecución de una
orden por parte de la computadora, en ese caso será necesario abortar la tarea y recomenzar todo
el procedimiento nuevamente.

Una vez que entendimos lo que se desea realizar y comprendimos el problema, debemos identificar
de qué tipo de problema se trata.

2.2 Tipos de problemas

Los tipos de problemas más comunes son:

• Los problemas que buscan respuestas: si un ejercicio implica el cálculo del número de palabras
que hay en un libro o la bisección de una línea utilizando regla y compás, se trata de un trabajo
en el que se debe encontrar algo que se desconoce. La forma en que esto se haga no es de
particular importancia siempre y cuando se obtenga la respuesta correcta, aunque es deseable
que sea por un medio fácil.

• Los problemas que buscan pruebas: cuando se pide que se pruebe que hay 720 formas de
colocar seis libros en una fila, se está dando la respuesta. La tarea es distinta a la de encontrar
una respuesta porque ya se sabe lo que se desea. Todo lo que se tiene que hacer es determinar
la relación entre los datos y la respuesta.

Es importante observar que en un problema en el cual se buscan respuestas se tiene que elaborar
una solución, mientras que cuando se pide que se pruebe sólo es necesario demostrar que existe
(o no existe) una solución, sin crearla.

2.3 Problemas de computación

Los problemas de computación no pueden ser problemas en los que se busquen pruebas porque
el propósito del trabajo de las computadoras es encontrar respuestas que no se conocen de
antemano.

Pero tampoco se les puede considerar como problemas en los que se busquen respuestas porque
es la computadora misma la que determina la respuesta, no la persona que trabaja con ella.

Podemos concluir, entonces, que los problemas de computación pertenecen a una tercera clase:

• Los problemas que buscan métodos: se busca un método mediante el cual se pueda derivar
una respuesta.

Docente compilador: Ing. Analía Méndez Página 7


El proceso de resolver problemas mediante computadoras implica encontrar un método por
medio del cual se pueda resolver un problema. Una vez que se identifica el método para
resolver el problema, la computadora aplica dicho método y suministra las respuestas a la
pregunta.

En la siguiente gráfica se muestra una representación simplificada de este proceso. Más adelante
observaremos que, una vez que se tiene un método, es necesario expresar este método en una
forma en que la computadora pueda operarlo: mediante un programa.

2.4 Etapas de resolución de problemas con computadoras

El proceso de resolver problemas mediante computadoras es el siguiente:

Etapa 1: Identificar el problema, dando respuesta a Qué resultado se debe obtener, Qué datos
están disponibles, y Qué condiciones o restricciones se deben tener en cuenta para la
resolución.

Etapa 2: Definir y representar el modo de resolver el problema.

Etapa 3: Explorar las posibles estrategias para solucionar el problema y seleccionar la más
conveniente.

Etapa 4: Probar la estrategia de solución seleccionada, evaluando los efectos y comprobar


si resuelve el problema.

Etapa 5: Implementar la solución.

Docente compilador: Ing. Analía Méndez Página 8


El proceso de resolver problemas mediante computadores, consiste en encontrar un método por
medio del cual se pueda resolver un problema. Una vez encontrado (diseñado) el método, el
computador se encarga de ejecutarlo y suministrar la respuesta/ solución al problema planteado.

El proceso así presentado, está muy


simplificado, ya que una vez obtenido el
método (o resuelto como hacerlo) es
necesario expresarlo en una forma que
pueda ser operado/ejecutado por el
computador. Por tanto, el profesional
informático deberá realizar tres trabajos:

•Creación del algoritmo,

•Codificación del algoritmo creado, y

•Operación del algoritmo en el


computador.

En este momento surgen nuevos conceptos: ALGORITMOS, CODIFICACIÓN y OPERACIÓN.


Estos tres conceptos ordenados en secuencia constituyen precisamente el Método para resolver
problemas mediante computadoras.

Creación del algoritmo: significa crear un método de resolución de un problema determinado.


Como resultado de este paso se obtiene un Algoritmo.

Docente compilador: Ing. Analía Méndez Página 9


Codificación del algoritmo creado: una vez obtenido el algoritmo, debe ser escrito en un lenguaje
de programación, de manera que pueda ser interpretado por la computadora. Como resultado de
este paso se obtiene un programa.

Operación del algoritmo en la computadora: implica la ejecución del programa en la computadora


para obtener el resultado o solución del problema.

Los datos se constituyen en la entrada necesaria para el algoritmo de resolución del


problema, el algoritmo se traduce luego en un programa de computadora y su ejecución o
proceso genera los resultados solicitados que se convierten en la información que el método
entrega como salida.

2.5 Actividades

1) Identifica los conceptos relacionados con el método para resolver problemas mediante
computadoras:

Operación del algoritmo en computadora.

Creación del algoritmo

Implementar la resolución.

Codificación del algoritmo.

2) Relaciona las definiciones con los conceptos correspondientes:

Enunciado encaminado a averiguar el modo de obtener un resultado


Problema
cuando se conocen ciertos datos.

Constituyen la entrada necesaria para el algoritmo de resolución del


Algoritmo
problema.

Se traduce en un programa de computadora y su ejecución o


Datos
proceso genera los resultados solicitados.

Docente compilador: Ing. Analía Méndez Página 10


UNIDAD 3

3 Algoritmos. Propiedades.

3.1 Introducción

La etapa vital de la solución de un problema con una computadora es el diseño del algoritmo y de
la estructura fundamental de datos.

Un algoritmo es un procedimiento expresado precisamente para obtener la solución del


problema. La solución se presenta luego a una computadora utilizando un lenguaje de
programación seleccionado. Los algoritmos se expresan de una manera conveniente para
un lector humano, mientras que los programas sirven para ejecutar un algoritmo en una
computadora.

Es importante recordar mientras diseñamos un algoritmo que una computadora sólo sigue las
instrucciones y no puede actuar si no se le ha ordenado de manera explícita. Por lo tanto, el
solucionador de problemas debe prever cualquier aspecto del problema en el propio algoritmo.

La palabra algoritmo deriva del nombre de un matemático árabe del siglo IX, llamado Alkhuwarizmi,
quien estaba interesado en resolver ciertos problemas de aritmética y describió varios métodos para
resolverlos. Estos métodos fueron presentados como una lista de instrucciones específicas (como
una receta de cocina) y su nombre se utiliza para referirse a dichos métodos.

3.2 Definición de algoritmo

Un algoritmo es, en forma intuitiva, una receta, un conjunto de instrucciones o de especificaciones


sobre un proceso para hacer algo. Ese “algo” generalmente es la solución de un problema de algún
tipo. Formalmente un algoritmo se puede definir de la siguiente forma:

Un algoritmo puede definirse como una secuencia ordenada de pasos elementales, exenta
de ambigüedades, que lleva a la solución de un problema dado en un tiempo finito.

3.3 Propiedades de los algoritmos

Un algoritmo debe cumplir las siguientes propiedades:

Docente compilador: Ing. Analía Méndez Página 11


Analicemos estos conceptos considerando ejemplos de cada uno:

Propiedad Ejemplo

Tiempo de respuesta: la ejecución de un Llene la zanja con ese montón de arena


algoritmo debe finalizar después de que se
Algoritmo: tome una pala y empiece a echar
haya llevado a cabo una cantidad finita de
arena en la zanja. Cuando se llene la zanja
pasos. De otra manera, no se puede exigir
deténgase. Se está seguro que en algún
que la ejecución produzca una solución.
momento parará, aunque no se sabe cuánto
tardará.

Generalidad: para que un algoritmo sea útil y Indique la forma de marcar un número de
eficiente es necesario que pueda ser aplicado teléfono.
a una diversidad de casos del problema que
Incorrecto: si la solución del algoritmo sirve
contempla. Si el algoritmo se define de un
para marcar solamente el número 4220234,
modo general, considerando toda una clase
solo tendrá valor para ese número.
de problemas específicos, entonces cumple
Correcto: si la solución es un método para
con la propiedad de generalidad. Dicha
marcar cualquier número, entonces es útil.
generalidad debe tener un límite.

Ausencia de Ambigüedad: si se trabaja Indique la forma de condimentar una salsa.


dentro de cierto marco o contexto, la
Incorrecto: ponerle algunas especies a la
representación de cada paso de un algoritmo
salsa.
debe tener una única interpretación. Los
Correcto: ponerle sal, pimienta y orégano a la
pasos del algoritmo no deben ser confusos,
salsa.
deben ser claros e indicar exactamente la
tarea que debe realizarse sin dejar lugar a
dudas.

Docente compilador: Ing. Analía Méndez Página 12


En nuestra vida cotidiana utilizamos algoritmos con frecuencia para completar actividades y
resolver los problemas que se nos presentan.

Por ejemplo, cuando debemos preparar un plato de comida necesitamos seguir pasos muy precisos,
en un orden determinado, y sin repetirlos indefinidamente. Cuando estudiamos y practicamos
matemáticas aplicamos algoritmos para resolver las operaciones, por ejemplo, para resolver una
multiplicación, calcular un producto, etc. Para obtener el máximo común divisor entre dos números
enteros positivos aprendimos el algoritmo de Euclides en la escuela primaria. Estos son algunos
ejemplos de cómo el uso de algoritmos es común en nuestra vida, muchas veces sin formalizarlos
ni percibir que lo estamos haciendo.

3.4 Ejemplos de algoritmos

En la definición de algoritmo se hace referencia a la ambigüedad y tiempo de respuesta,


debido a que todo algoritmo debe cumplir con ciertas propiedades para que se lo considere
como tal y proporcione el resultado deseado cuando un programa basado en él se presenta
a una computadora.

Para comprender la definición de algoritmo y sus propiedades de generalidad, tiempo de respuesta


finito y ausencia de ambigüedad, abordaremos dichos conceptos mediante el análisis de ejemplos.

Ejemplo 1:

Escriba un algoritmo que permita preparar una tortilla de papas de tres huevos.

Si la persona que resuelve el problema es un cocinero lo resuelve sin mayor nivel de detalle, pero
si no lo es, se deben describir los pasos necesarios para realizarlo:

• Paso 1: Mezclar papas fritas, huevos y una pizca de sal en un recipiente.

• Paso 2: Freír.

Esto podría resolver el problema, pero si la persona que lo ejecuta no sabe cocinar, se debe detallar,
cada uno de los pasos mencionados, pues estos no son lo bastante simples para un principiante.

De esta manera el Paso 1 se puede descomponer en los siguientes:

• Paso 1.1: Pelar las papas.

• Paso 1.2: Cortar las papas en cuadraditos.

Docente compilador: Ing. Analía Méndez Página 13


• Paso 1.3: Freír las papas.

• Paso 1.4: Batir los huevos en un recipiente.

• Paso 1.5: Verter las papas en un recipiente y echar una pizca de sal.

El Paso 1.3 puede descomponerse en:

• Paso 1.3.1: Calentar el aceite en la sartén.

• Paso 1.3.2: Verter las papas en la sartén.

• Paso 1.3.3: Sacar las papas ya doradas en un recipiente.

Nótese que, si la tortilla la va a preparar un niño, algunas tareas, por ejemplo, batir huevos, pueden
necesitar una mejor especificación.

En este ejemplo se puede observar que la lista de pasos elementales que componen nuestro
algoritmo depende de quién sea el encargado de ejecutarlo.

Si en particular, el problema va a ser resuelto utilizando una computadora, el conjunto de


pasos elementales conocidos es muy reducido, lo que implica un alto grado de detalle para
los algoritmos.

Se considera entonces como un paso elemental aquel que no puede volver a ser dividido en otros
más simples.

Otro aspecto importante de un algoritmo es su nivel de detalle, que no debe confundirse con el
concepto de paso elemental. En ocasiones, no se trata de descomponer una orden en acciones
más simples, sino que se busca analizar cuáles son las órdenes relevantes para el problema.

Para comprender lo expuesto se analiza con otro ejemplo:

Ejemplo 2:

Escriba un algoritmo que describa la manera en que una persona se levanta todas las mañanas
para ir al trabajo.

• Paso 1: Salir de la cama.

• Paso 2: Quitarse el pijama.

• Paso 3: Ducharse.

• Paso 4: Vestirse.

• Paso 5: Desayunar.

Docente compilador: Ing. Analía Méndez Página 14


• Paso 6: Arrancar el auto para ir al trabajo.

La solución del problema se expresó en seis pasos, descartando aspectos que se suponen o se
sobreentienden, como “colocarse los zapatos al vestirse” o “abrir la puerta del auto” pues a nadie
se le ocurriría ir a trabajar descalzo.

En cambio, existen aspectos que no pueden obviarse o suponerse porque el algoritmo perdería
lógica, por ejemplo, el paso “vestirse”, no puede ser omitido. Puede discutirse si se requiere un
mayor nivel de detalle o no, pero no puede ser eliminado del algoritmo.

Un buen desarrollador de algoritmos deberá reconocer esos aspectos importantes y tratar de


simplificar al mínimo su especificación de manera de seguir resolviendo el problema con la menor
cantidad de órdenes posibles.

Ejemplo 3:

Escriba un algoritmo que calcule el área y el perímetro de un círculo en función de su radio.

Para resolver este problema se necesita conocer el radio del círculo, éste será el dato o entrada del
algoritmo. El algoritmo deberá encargarse de calcular el área y la longitud de la circunferencia, y
generar como resultado o salida el valor del área y el perímetro del círculo. Los pasos necesarios
en el algoritmo serían los siguientes:

• Paso 1: Leer o informarse sobre el valor del radio del círculo.

• Paso 2: Calcular el área como pi * radio2.

• Paso 3: Calcular el perímetro como 2 * pi * radio.

• Paso 4: Informar, mostrar o escribir el valor del área.

• Paso 5: Informar, mostrar o escribir el valor del perímetro.

Tengamos en cuenta que el algoritmo expresado en forma coloquial no puede ser entendido
por la computadora.

3.5 Actividades

1) Consideremos el algoritmo necesario para reemplazar el foco quemado de una lámpara en el


techo teniendo en cuenta que contamos con el foco necesario de repuesto.

Inicio

Paso 1. Buscar la escalera

Docente compilador: Ing. Analía Méndez Página 15


Paso 2. Colocar la escalera debajo de la lámpara quemada

Paso 3. Subir por la escalera

Paso 4. Elegir un foco nuevo similar al anterior

Paso 5. Girar el foco quemado en sentido contrario al de las agujas del reloj

Paso 6. Bajar de la escalera

Paso 7. Ubicar el nuevo foco en el mismo lugar

Paso 8. Enroscar en el sentido de las agujas del reloj hasta que quede apretado

Fin

Marca la opción que describe las condiciones del algoritmo:

El algoritmo es eficiente y cumple con todas las propiedades requeridas: ausencia de


ambigüedad, tiempo finito y generalidad.

No cumple con un orden lógico en las tareas que lo componen.

Cumple con las propiedades de generalidad y ausencia de ambigüedad, pero no cumple


con la propiedad de tiempo finito.

2) Supongamos que el siguiente es un algoritmo propuesto para abrir una puerta:

Inicio

Paso 1. Extender el brazo.

Paso 2. Tomar el picaporte.

Paso 3. Presionar el picaporte.

Paso 4. Tirar del picaporte para mover la puerta.

Fin

¿Este algoritmo cumple con las propiedades de ausencia de ambigüedad y generalidad?

Verdadero

Falso

Docente compilador: Ing. Analía Méndez Página 16


3) Construir el algoritmo para ayudar al marciano:

El marciano se encuentra en el desierto, con


hambre, y deseoso de comer manzanas.

Es necesario crear el algoritmo para ayudar al


marciano a cumplir con su objetivo y calmar su
hambre.

¿Qué pasos debe realizar para comer todas las


manzanas?

Para completar la tarea, tener en cuenta la


posición inicial en la que se encuentra el
marciano y observar cómo están las manzanas
distribuidas en el tablero.

Es importante controlar en qué orden realiza


los pasos el marciano para llegar a cumplir su
cometido.

Los pasos, órdenes o acciones básicas que puede realizar el marciano son: mover a izquierda,
mover a derecha, mover hacia abajo, mover hacia arriba, comer manzana.

4) Un grupo de jóvenes quieren preparar una obra de teatro.

El problema surge cuando desean


organizar las tareas que deben realizar
hasta poner en cartel la obra. Ninguno
tiene experiencia y se encuentran
confundidos.

En la siguiente tabla se muestran todas


las tareas que deben ser realizadas.

Indicar la secuencia lógica o el orden de realización para cada una. Se recomienda comenzar
revisando la lista de la tabla. Cada vez que se seleccione un orden para una acción, revisar los
anteriores para asegurar que el orden sea el correcto.

Docente compilador: Ing. Analía Méndez Página 17


Secuencia
Acción
lógica u orden

Ensayo final con el vestuario terminado

Iniciación del programa de publicidad

Estreno de la obra en el teatro de la ciudad

Terminación de los ensayos sin vestuario

Selección de los actores

Crítica de la obra en los periódicos

Iniciación de los ensayos sin vestuario

Redacción del guion

Terminación de la confección del vestuario

Terminación de la escenografía

Venta de boletos

Docente compilador: Ing. Analía Méndez Página 18


UNIDAD 4

4 Algoritmos. Dominio y forma de expresarlos.

4.1 Dominio de un algoritmo

La clase o el conjunto de datos y las condiciones para las cuales un algoritmo trabaja
correctamente se llama dominio del algoritmo.

Cuando deseamos definir un algoritmo para resolver un problema, es preciso primeramente


identificar y definir el dominio del problema.

La definición clara del dominio del problema será de utilidad para verificar si el algoritmo trabaja
correctamente para todos los casos dentro de ese dominio.

En el dominio del algoritmo buscaremos incluir todas las situaciones similares y evitaremos
considerar casos poco probables. Esto constituirá una delimitación del dominio sobre el cual
aplicaremos nuestro algoritmo.

4.2 Errores en la construcción de un algoritmo

En la construcción de algoritmos se consideran dos tipos de errores:

• Errores de Dominio: se presentan cuando no se han especificado todas las situaciones que se
pueden presentar en la práctica o se ha descuidado la apreciación de su importancia. Las
pruebas más difíciles son aquellas que verifican que se ha seleccionado un dominio correcto
para el algoritmo. Cuando una situación no prevista se presenta, hay tres opciones:

o Ignorarla porque es improbable y quizás nunca ocurra.

o Restringir el dominio del algoritmo para excluirla.

o Corregir el algoritmo.

• Errores de Lógica: son aquellos errores que se detectan después de que se ha definido en forma
adecuada el dominio de un algoritmo, en la etapa de prueba o verificación. se deben
principalmente a las siguientes causas:

o Etapas incorrectas

Docente compilador: Ing. Analía Méndez Página 19


o Secuencia incorrecta de etapas.

La elección de un algoritmo debe hacerse en base a criterios tales como:

• El algoritmo es simple, fácil de entender y de transmitir a otros.

• El algoritmo es eficiente.

Siempre debemos verificar que la solución propuesta en nuestro algoritmo es válida para
todos los casos que se encuentran dentro del dominio.

4.3 Formas de expresar un algoritmo

Un mismo algoritmo puede ser expresado de maneras diferentes:

Lenguaje común. Es el lenguaje normal que


hablamos y escribimos; es útil para comunicar
un algoritmo a otra persona. Se utiliza
generalmente en una fase de análisis previo de
un sistema computacional.

Diagramas de flujo. Es un lenguaje gráfico; es


útil para visualizar en forma rápida la secuencia
lógica de pasos a seguir para un algoritmo y es
de gran ayuda para la traducción del algoritmo
a un programa de computación.

Pseudocódigo. Es una técnica adecuada para


expresar la descripción de un algoritmo
utilizando expresiones en lenguaje natural, pero
aplicando la lógica de un programa, y de este
modo, expresando su flujo de control. El
seudocódigo no es un lenguaje de
programación.

Lenguajes de Programación. Es la forma


obligada de expresión de un algoritmo para que
pueda ser leído, ejecutado y almacenado en la
computadora.

Docente compilador: Ing. Analía Méndez Página 20


4.4 Actividades

1) Vincula las descripciones con los conceptos correspondientes:

Clase o conjunto de datos y condiciones para las cuales un algoritmo Errores de


trabaja correctamente lógica

Se presentan cuando no se han especificado todas las situaciones Dominio del


que pueden surgir en un problema. problema

Se detectan después de que se ha definido en forma adecuada el Errores de


dominio de un algoritmo, durante la etapa de prueba o verificación. dominio

2) Vincula las definiciones con los conceptos correspondientes:

Es útil para comunicar un algoritmo a otra persona. Pseudocódigo

Es útil para visualizar en forma rápida la secuencia lógica de pasos a


Lenguaje
seguir para un algoritmo y es de gran ayuda para la traducción del
común
algoritmo a un programa de computación

Es una técnica adecuada para expresar la descripción de un


Lenguaje de
algoritmo utilizando expresiones en lenguaje natural, pero aplicando
programación
la lógica de un programa

Es la forma obligada de expresión de un algoritmo para que pueda Diagrama de


ser leído, ejecutado y almacenado en la computadora. flujo

3) ¿Cuál es el orden lógico que debemos seguir para fritar un huevo? Indicar el orden de los pasos
del algoritmo vinculando cada paso con su orden en la secuencia.

Orden
Acción
lógico

Cuando el aceite este caliente romper la cascara del huevo y colocar en la sartén.

Tener el huevo, el aceite y la sartén donde se va fritar.

Encender la hornalla de la cocina.

Inicio

Fin

Cuando la sartén se encuentra caliente se añade el aceite.

Docente compilador: Ing. Analía Méndez Página 21


Orden
Acción
lógico

Colocar la sartén en la cocina.

Verificar cuando el huevo se encuentre cocinado y sacar de la sartén.

4) Construir el algoritmo para ayudar al alien:

El alien rompió su ovni al estrellarse y


ahora debe reunir todas las tuercas para
poder armar su ovni. ¡Necesita ayuda!

Construir un algoritmo que permita que


el alien avance entre los casilleros y
recoja todas las tuercas.

Observar con cuidado el orden que


siguen las acciones que realizará el
alien.

Los pasos, órdenes o acciones básicas


que puede realizar el marciano son:
mover a izquierda, mover a derecha,
mover hacia abajo, mover hacia arriba,
recoger tuerca.

5) Supongamos que debemos crear un algoritmo para ingresar a un restaurante y cenar. Para
poder resolver el problema necesitamos primeramente establecer las condiciones iniciales a
partir de las cuales debemos realizar la tarea. Las condiciones iniciales son las siguientes:

• Nos encontramos en la puerta del restaurante.

• Tenemos dinero para pagar.

• Podemos ubicarnos en cualquier mesa del restaurante.

• Para consumir debemos hacer el pedido.

Se proponen los siguientes pasos en el algoritmo necesario para resolver el problema:

Inicio.

Ingresar al restaurante.

Docente compilador: Ing. Analía Méndez Página 22


Solicitar una mesa.

Pedir el menú.

Analizar el menú.

Hacer el pedido.

Esperar

Recibir el pedido

Consumir

Pedir la cuenta

Pagar la cuenta

Retirarse

Fin.

Marcar a continuación todas las frases correctas respecto del algoritmo propuesto.

El algoritmo cumple con todas las propiedades: ausencia de ambigüedad, generalidad y


tiempo de finalización finito.

El algoritmo propuesto no es general, ya que no se considera que el comensal puede pedir


comida vegetariana.

El dominio del algoritmo está formado por todos los restaurantes de comida rápida.

Las condiciones iniciales son suficientes para definir un algoritmo general que puede
aplicarse a todos los casos del dominio del algoritmo.

El dominio del algoritmo es cualquier restaurante con atención a la mesa y con el comensal
ubicado al frente de la puerta al inicio del algoritmo.

El algoritmo no cumple con la propiedad de ser finito y sin ambigüedades.

Docente compilador: Ing. Analía Méndez Página 23


UNIDAD 5

5 Constantes, variables, identificadores y tipos de datos.

5.1 Introducción

Los programas son el resultado de traducir para la computadora el algoritmo que resuelve un
determinado problema que nos hayamos planteado. Los datos son la materia prima sobre la que
trabaja nuestro algoritmo y luego nuestro programa.

Para que nuestro algoritmo, y más adelante nuestro programa, maneje, manipule y almacene los
datos que opera, es necesario contar con un mecanismo que lo permita. Esta situación se resuelve
mediante el uso de variables y constantes.

5.2 Constante

Una constante es un valor que permanece sin cambios ni alteraciones durante todo el
desarrollo del algoritmo o durante la ejecución del programa.

Las constantes pueden referirse a diferentes valores, según lo requiera el problema que se resuelve,
por ejemplo, una constante puede ser el horario de entrada al trabajo de un grupo de empleados (8
horas), o puede ser el nombre de un negocio (SuperMarket), o puede ser el estado de un semáforo
(activo o verdadero).

Ejemplos de constantes:

25 "Factory" -8.569 "743" 'b' Falso

5.3 Variable

Una variable representa o contiene un valor que puede ser cambiado durante el desarrollo
del algoritmo o la ejecución del programa.

Una variable posee 3 atributos: un nombre o identificador, un tipo de valor y un valor.

Docente compilador: Ing. Analía Méndez Página 24


• El identificador es el nombre que le asignamos a la variable y que usaremos para referirnos
a ella.

• Su tipo determina el conjunto de todos los valores posibles que puede contener.

• Su valor es único en cada momento y puede variar o ser cambiado.

Una variable es un contenedor, debe ser definida, declarada o descripta antes de poder ser utilizada.
En la declaración de la variable se indica su identificador o nombre, el tipo de valores que
almacenará, y en ocasiones también se indica su valor inicial.

5.4 Identificador

Un identificador es un nombre que sirve para denotar elementos en un algoritmo o programa.


Podemos usarlo para identificar variables, constantes y otros componentes de un programa.

En el gráfico podemos ver al dato, representado por


"mi dato". La variable es el contenedor y su nombre
es miVariable. Al nombre miVariable se le llama
identificador de la variable y puede tener el nombre
que le asignemos siempre cumpliendo con las reglas
para crear identificadores.

5.5 Reglas para escribir un identificador

• Está formado por una secuencia de letras, dígitos y caracteres que pueden estar unidos por
un guion bajo o símbolo de subrayado ( _ ).

• Debe comenzar con una letra, mayúscula o minúscula, y no puede comenzar con un número.

• No debe contener espacios en blanco.

5.6 Ejemplos de identificadores o nombres de variables.

Identificadores Válidos Identificadores No válidos

ApeyNom Ape y Nom

Cant1 1Cant

Docente compilador: Ing. Analía Méndez Página 25


Identificadores Válidos Identificadores No válidos

Valor8_pos Valor8 - pos

importepagado importe pagado

5.7 Ingreso de valores a variables

Las variables son lugares de la memoria de la computadora, podríamos decir que son como
celdas o contenedores que sirven para guardar valores o datos que utilizaremos para
resolver un problema.

En un algoritmo podemos definir todas las variables que sean necesarias para contener los datos
que servirán de entrada para el funcionamiento del algoritmo.

Sobre estos datos, contenidos en las variables, operará el algoritmo produciendo los cambios y
modificaciones adecuadas a las operaciones incluidas entre las tareas del algoritmo.

Cada variable podrá ser identificada mediante su identificador, en la gráfica podemos observar a
las variables llamadas EDAD, Suma, NUM_1, NUM1, Resul, e Importe.

Cada una de ellas almacenará el valor que le sea asignado. Dicho valor podrá luego ser modificado,
alterando el contenido de la variable, generalmente como resultado de un ingreso de valor o
asignación.

Ejemplo Descripción

Puede ingresarse o asignarse el valor 20 a la


variable EDAD, de ese modo dicho valor quedará
almacenado en el espacio de memoria relacionado
con el identificador EDAD. Si luego se ingresa o se
asigna el valor 38 a la variable EDAD, el valor 20
será reemplazado por este nuevo valor.

Una variable puede contener un único valor en cada


momento.

Docente compilador: Ing. Analía Méndez Página 26


Ejemplo Descripción

En el gráfico podemos observar que la variable


Nombre almacena realmente el nombre de una
persona. De este modo al utilizar la variable en
nuestro algoritmo o en nuestro programa, su
identificador ayudará a reconocer el significado de su
contenido.

Es conveniente que el identificador o nombre de la


variable esté relacionado al contenido que
almacenará.

En este ejemplo podemos observar los atributos de


la variable Altura:

• Su identificador es Altura.

• Su tipo es real o punto flotante, almacena


valores con parte decimal.

• Su valor es 1.67.

5.8 Acciones o instrucciones que permiten guardar un valor en una variable

Es posible guardar valores en variables mediante operaciones, acciones o instrucciones:

• Acción de ingreso de datos: Se trata, por ejemplo, de información que deberá ser ingresada
al programa por un usuario, se obtiene generalmente como resultado de una acción
denominada lectura (se leen datos desde el exterior al algoritmo).

• Acción de asignación: Consiste en indicar el valor que se desea asignar a la variable,


utilizando un símbolo que representa a la operación de asignación.

5.9 Tipos de datos

Los datos constituyen la manera simbólica de representar condiciones, hechos, situaciones, o


valores. De hecho, mediante un dato podemos simbolizar un número, una letra, un signo ortográfico
o cualquier otro símbolo que represente una cantidad, una medida, una palabra o una expresión.
Los datos son importantes debido a que asociándolos dentro de un contexto podemos obtener
información. Los datos por sí mismos no comunican ningún significado de importancia y debido a
esto no tienen influencia sobre quien los recibe, no generan ningún impacto. Para que los datos

Docente compilador: Ing. Analía Méndez Página 27


sean de utilidad deben haberse convertido en información, entregando un significado, un
conocimiento, un conjunto de ideas o de conclusiones, etc.

Los datos poseen suma importancia cuando podemos utilizarlos como expresiones generales para
describir las características que poseen las entidades sobre las que opera un algoritmo,
principalmente cuando pueden ser representados de manera que pueden ser manipulados por una
computadora.

El tipo de dato es el conjunto de propiedades que caracterizan a los valores que puede almacenar
un dato y que determina…

• el conjunto de valores que puede tomar el dato o rango de definición,

• las operaciones que se le pueden aplicar, y

• la manera en que puede ser representado internamente en una computadora.

Un tipo de datos está determinado por un conjunto de valores ordenados y por las
operaciones permitidas sobre esos valores.

Los datos pueden poseer los siguientes tipos:

Tipo numérico

• Entero: Subconjunto finito de los números enteros, cuyo rango o tamaño dependerá del lenguaje
en el que posteriormente se codifique el algoritmo y de la computadora utilizada. Los números
enteros son un conjunto de números que incluye a los números naturales distintos de cero (1,
2, 3, ...), los negativos de los nros. naturales (..., −3, −2, −1).

Ejemplos: 465, -387, 9, 99, -1578, 125550

• Real: Subconjunto de los números reales limitado no sólo en cuanto al tamaño, sino también en
cuanto a la precisión. Son números que contienen una parte fraccionaria y, por lo tanto, incluyen
el punto decimal, pueden esta precedidos del signo + o --.

Ejemplos: 17725.87, -45128.0, 158000.75, -35.58788

Tipo texto o de caracter

• Carácter (Char): Conjunto finito y ordenado de los caracteres que la computadora reconoce. Su
valor lo comprenden todos los caracteres alfabéticos, mayúsculas y minúsculas (A – Z),
numéricos (0 – 9) y símbolos especiales (#,@,%,&).

• Cadena de caracteres o alfanumérico (String): Los datos (objetos) de este tipo contendrán una
serie finita de caracteres, que podrán ser directamente traídos o enviados a/desde consola. Su

Docente compilador: Ing. Analía Méndez Página 28


valor está representado por un conjunto de caracteres que se indican entre comillas. Ejemplos:
“Reporte Anual de Fallas Técnicas”, “1 de mayo, día del Trabajador”

Tipo lógico

• Lógico o booleano: Conjunto formado por los valores Verdad (V) y Falso (F). Se utiliza para
representar las opciones (si/no) a determinadas condiciones. Ejemplo: true, false,
verdadero, falso

Tanto los datos numéricos, carácter y lógicos son datos simples.

El tipo de dato cadena de caracteres o alfanumérico es un tipo de dato compuesto ya que


está formado por una sucesión de caracteres.

Veamos un caso de la vida diaria en el que se utilizan datos de diversos tipos:

• Darío se encarga en su trabajo de tomar los datos de las personas interesadas en realizar un
curso.

• María es una de las personas interesadas, y se acerca a realizar la inscripción, proporciona sus
datos a Darío, y él los almacena en la computadora.

• El jefe de Darío necesita información respecto al curso, quiere saber cuántos son los inscriptos.

• Ya que los datos fueron ingresados por Darío a la computadora, el programa puede proporcionar
la información solicitada por su jefe.

• María indica a Darío su DNI (tipo numérico, entero), su nombre y apellido (tipo texto, cadena), y
su edad (tipo numérico, entero).

5.10 Introducción al pseudocódigo utilizando PSeInt

Podemos utilizar PSeInt para definir un


algoritmo en pseudocódigo.

Al comenzar indicaremos el nombre del


algoritmo precedido por la palabra
"Algoritmo".

Podremos indicar comentarios


comenzando la línea con dos barras

Docente compilador: Ing. Analía Méndez Página 29


seguidas. Todo lo que indiquemos a continuación de las barras será un comentario y PSeInt lo
indicará en un color grisáceo.

Para definir variables utilizaremos la palabra reservada "Definir". A continuación, indicaremos el


nombre o identificador de la variable y luego expresaremos el tipo de la variable.

Podremos indicar variables de tipo caracter, cadena, real, entero o lógico. Observa en el gráfico que
sólo bastará con indicar "Como " y el tipo de dato a continuación del nombre de la variable o
identificador.

Siempre finalizaremos las líneas de pseudocódigo con un punto y coma (;).

Concluiremos nuestro algoritmo con la palabra reservada "FinAlgoritmo".

No olvides guardar tus algoritmos en una carpeta que destines para eso. ¡Practica mucho!

5.11 Actividades

1) Vincula las definiciones con los conceptos correspondientes:

Valor que permanece sin cambios ni alteraciones durante todo el


Variable
desarrollo del algoritmo o durante la ejecución del programa.

Contiene un valor que puede ser cambiado durante el desarrollo del


Identificador
algoritmo o la ejecución del programa.

Nombre que sirve para denotar elementos en un algoritmo o


Constante
programa.

2) Marca todas las reglas que debe cumplir un identificador:

Debe comenzar con una letra, mayúscula o minúscula, y no puede comenzar con un
número.

Puede estar formado por una secuencia de letras, dígitos y caracteres que pueden estar
unidos por un guion bajo o símbolo de subrayado ( _ ).

No debe contener espacios en blanco.

Puede comenzar con un número, un símbolo o una letra.

3) Identifica si la frase es verdadera o falsa:

No es conveniente que el identificador o nombre de la variable esté relacionado al contenido que


almacenará.

Docente compilador: Ing. Analía Méndez Página 30


Verdadero

Falso

4) Identifica si la frase es verdadera o falsa:

Un tipo de datos está determinado por un conjunto de valores ordenados y por las operaciones
permitidas sobre esos valores.

Verdadero

Falso

5) Marca los datos que corresponden a tipo texto:

"Estuvimos cenando en una góndola"

62.5

Verdadero

's'

6) Identifica si la frase es verdadera o falsa:

Un número entero, como por ejemplo 25, puede ser asignado a una variable de tipo real.

Verdadero

Falso

7) Marcar todos los identificadores inválidos:

A-B

Bono56

area Radio

Docente compilador: Ing. Analía Méndez Página 31


cont5

suma_total

¿Area

k,i

Radio

4N

8) En la siguiente tabla se presenta un conjunto de datos. Cada uno de ellos posee un tipo
determinado. Identifica el tipo de cada dato completando en la celda contigua según
corresponda con: Cadena de caracteres, Real, Carácter, Lógico, o Entero.

Dato Tipo

“Chaqueta”

2005

'A'

-4.25

"SUCRE"

3.147114

0.50

“Colombia”

10000000.00

'%'

-39.78

"MIL5008"

Docente compilador: Ing. Analía Méndez Página 32


Dato Tipo

'@'

“Florencia”

'2'

225.00

1038

9) Se necesita una variable para indicar si el día de hoy es feriado o no. La variable tiene el nombre
feriado, ¿de qué tipo sería apropiado declararla?

Cadena

Real

Lógico

10) Si deseamos almacenar el valor 3.1416 en una variable, ¿de qué tipo debe ser declarada la
variable?

Real

Caracter

Entero

11) Marcar todos los identificadores válidos:

Valor A

NUM1

Dir@

1NUM

Resul_de_la_suma

Docente compilador: Ing. Analía Méndez Página 33


cant_V

MULTIx

Aux 1

MIN’

12) Considerar las siguientes frases de declaración de variables en pseudocódigo e identificar los
posibles valores que pueden asignarse a cada una de las variables según su tipo:

Definir medida Como Real; 7340

Definir Estado Como Logico; ‘8’

Definir x231 Como Entero; “Textos informativos”

Definir frase Como Cadena; 3290.55

Definir genero Como Caracter; Falso

Docente compilador: Ing. Analía Méndez Página 34


UNIDAD 6

6 Instrucción de asignación

La instrucción de asignación es la operación mediante la cual podemos almacenar un dato


en una variable. Esta instrucción se representa mediante una flecha hacia la izquierda ( <- ).

Como resultado de la asignación, el contenido de la variable es modificado por el nuevo valor


indicado a la derecha del símbolo de asignación.

Ejemplos de instrucción de asignación en pseudocódigo

variTOTAL <- 977;

ape_nom <- "José Ernesto Pintos";

Suma_Resul <- Suma_Resul + 1;

El símbolo de asignación ( <- ) pretende


representar el movimiento de valores que ocurre internamente en la computadora. El valor que se
indica a la derecha del signo de asignación es guardado en la variable cuyo identificador se ubica a
la izquierda del símbolo.

6.1 Reglas de la instrucción de asignación

• Regla 1. A la izquierda del símbolo de asignación sólo puede indicarse el nombre de una única
variable.

• Regla 2. El valor que se asigna a la variable debe tener el mismo tipo de la variable.

Ejemplos en pseudocódigo

• Asignación a una variable de tipo entero:

Definir NUM Como Entero;

NUM <- 10;

• Asignación a una variable de tipo real:

Docente compilador: Ing. Analía Méndez Página 35


Definir PRECIO Como Real;

Definir SUELDO Como Real;

PRECIO <- 800.45;

SUELDO <-12000;

En la memoria de la computadora, las variables son como las cajas de un almacén, cada una de
ellas puede contener elementos que son de importancia (datos o valores).

La instrucción de
asignación es la que un
empleado del almacén
realiza cuando ubica un
producto dentro de una caja
del almacén. Si la caja
(variable) previamente
contenía otro producto
(dato o valor), es eliminado
del contenedor.

6.2 Ejemplos de asignación a variables

Para estudiar la instrucción de asignación es conveniente que revisemos algunos ejemplos que
muestren diferentes casos en los que la instrucción puede utilizarse para cambiar los datos o valores
de variables.

Ejemplo Descripción

Si deseamos almacenar en la variable Edad el valor 31,


podemos utilizar la instrucción de asignación, colocando a
la derecha del símbolo el valor 31 y a su izquierda el
nombre de la variable Edad.

Posteriormente a una instrucción de asignación, la variable


contiene el valor asignado.

Docente compilador: Ing. Analía Méndez Página 36


Ejemplo Descripción

Supongamos que asignamos a la variable NUM1 el valor


31. Posteriormente podemos utilizar la variable NUM1 para
asignar el mismo valor que ella contiene a otra variable, por
ejemplo, a NUM2.

Si NUM2 almacenaba algún valor, se pierde.

Es posible realizar operaciones de asignación entre


variables.

Podemos realizar varias operaciones de asignación a una


misma variable, sin embargo, sólo almacenará el último
valor asignado. Si la variable Edad almacena 31 y luego se
le asigna 22, el valor 31 es reemplazado por el 22.

Una variable sólo puede poseer un único valor.

Para intercambiar valores entre dos variables, es preciso


seguir ciertos pasos para evitar que el valor de alguna de
las variables se pierda.

Supongamos que deseamos almacenar el valor de NUM1


en NUM2, y viceversa.

• Entonces como primer paso, se asignará el valor de


NUM1 a una variable AUX y de esta manera se
preservará su valor.

• A continuación, se asignará el valor de NUM2 a NUM1.

• Por último, se asignará a NUM2 el valor de AUX, valor


que fue preservado desde la variable NUM1.

El intercambio de valores entre variables es una tarea muy


común y necesitaremos realizarla en muchos casos para
resolver los problemas.

6.3 Formas de expresar la instrucción de asignación

Así como cuando debemos expresarnos por escrito tenemos que seguir una sintaxis, una forma de
expresar y organizar las palabras, de igual manera en el ámbito de la Informática y la Programación
se siguen reglas de expresión en las diferentes maneras de, por ejemplo, expresar un algoritmo.

Docente compilador: Ing. Analía Méndez Página 37


Podemos, entonces reconocer no sólo maneras de expresar la instrucción de asignación sino
también reglas para su sintaxis.

Una manera de expresar la instrucción de asignación es


utilizando pseudocódigo.

En su sintaxis se indica el nombre de la variable, a


continuación y separado por espacios, el símbolo de
asignación ( <- ), y finalmente el valor que deseamos
asignar a la variable.

El valor de asignación podrá estar dado por una constante, una variable, o una operación entre
variables y/o constantes.

El pseudocódigo, al ser un lenguaje de especificación o descripción de algoritmos, permite


representar la instrucción de asignación utilizando el símbolo <- para denotar que el valor a
su izquierda es enviado para ser almacenado a la variable a su derecha.

Otra manera de representar un algoritmo es el diagrama de flujo.

En un diagrama de flujo cada tipo de instrucción tiene su propia manera de ser graficada.

El símbolo que se utiliza para representar la instrucción de asignación es el rectángulo.

Dentro del rectángulo se coloca la variable que recibe el dato, la flecha de asignación y luego el
valor del dato que se desea asignar.

La instrucción de asignación representada en el diagrama de flujo


será uno de los elementos que puede formar parte de un algoritmo.
El diagrama deberá representar todo el algoritmo, cada una de sus
instrucciones, órdenes o pasos.

Los diagramas de flujo nos permiten observar gráficamente todas las


características de un algoritmo sin tener que leer un texto extenso
con descripciones. Se trata de una herramienta de expresión
indispensable cuando procuramos expresar la manera en la que consideramos que debe resolverse
un enunciado, caso o problema.

Docente compilador: Ing. Analía Méndez Página 38


6.4 Actividades

1) Marcar según corresponda:

La instrucción de asignación...

Es la instrucción que nos permite modificar el valor de una constante.

Es la operación mediante la cual podemos borrar un dato en una variable.

Es la operación mediante la cual podemos almacenar un dato en una variable.

2) Identificar si la siguiente afirmación es verdadera o falsa:

Las reglas de la operación de asignación son:

• Regla 1. A la derecha del símbolo de asignación pueden indicarse los nombres de varias
variables.

• Regla 2. El valor que se asigna a la variable puede tener cualquier tipo.

Verdadero

Falso

3) Marcar todas las frases correctas:

Se puede asignar una variable a otra variable.

En una operación de asignación las variables sólo pueden recibir constantes.

Una variable puede ser asignada con diferentes valores sin que ninguno se pierda.

Para intercambiar valores entre dos variables, es preciso seguir ciertos pasos para evitar
que el valor de alguna de las variables se pierda.

4) Identificar si la frase es verdadera o falsa:

El símbolo que se utiliza para representar la instrucción de asignación en un diagrama de flujo es el


rectángulo.

Verdadero

Docente compilador: Ing. Analía Méndez Página 39


Falso

5) Identificar las instrucciones de asignación en pseudocódigo que están mal escritas:

marca Gral <- "Distribuidora del NorOeste";

marcado <- Verdadero;

resumen_Pago <- 50000;

4500 -> miVariable;

ACTIVO <- Falso

suma <- suma + porcentaje;

6) Supongamos que definimos una variable con la siguiente declaración en pseudocódigo:

Definir ajusteTarifa como Real;

Marcar las asignaciones correctas a la variable ajusteTarifa.

ajusteTarifa <- Verdadero;

ajusteTarifa <- 'x';

ajusteTarifa <- 629;

ajusteTarifa <- 700 + ajusteTarifa;

ajusteTarifa <- "955.33";

ajusteTarifa <- 482.25;

7) Supongamos que definimos a la variable palabra como de tipo Cadena:

Definir palabra Como Cadena;

Marcar la manera correcta de asignarle un valor:

Docente compilador: Ing. Analía Méndez Página 40


palabra <- hola;

palabra <- "hola";

palabra <- 'hola';

8) Deseamos definir una variable de tipo Caracter y asignarle un valor. Marcar el pseudocódigo
correcto:

Definir miVariable Como Cadena;

miVariable <- 'p';

Definir miVariable Como Caracter;

miVariable <- "w";

Definir miVariable Como Caracter;

miVariable <- '&';

Definir miVariable Como Caracter;

miVariable <- '5';

Definir miVariable Como Caracter;

miVariable <- 'a';

Definir miVariable Como Caracter;

miVariable <- "Integración y desintegración";

13) Considerar la siguiente porción de pseudocódigo y marcar cada línea según sea correcta o
incorrecta.

Definir NUM1, NUM2 como Entero;

NUM1 <- 12/3;

NUM2 <- 10/3;

NUM2 <- 411;

NUM1 <- NUM2 + NUM1;

Docente compilador: Ing. Analía Méndez Página 41


14) Considerar la siguiente porción de pseudocódigo y marcar cada línea según sea correcta o
incorrecta.

Definir x Como Caracter;

Defino w Como Real;

x <- '1';

w <- 411;

x <- "&";

w <- 957.33;

15) Se desea realizar la operación de suma de los valores 53, 98 y 201 que se almacenan en las
variables var1, var2 y var3, respectivamente. El resultado de la suma debe almacenarse en la
variable suma.

Desarrollar el pseudocódigo del algoritmo necesario utilizando PSeInt.

16) Se necesita intercambiar el valor entre dos variables. La variable Contenido almacena 68 y la
variable saldo_gral almacena 50. Realizar el intercambio de valores entre ellas.

Desarrollar el pseudocódigo del algoritmo necesario utilizando PSeInt.

17) Considerar el pseudocódigo que se muestra en el gráfico. Observar cada línea de código,
analizar sus detalles y significado para luego responder la siguiente pregunta:

¿Cuál es el valor final de la variable a?

Indefinido.

15

Docente compilador: Ing. Analía Méndez Página 42


UNIDAD 7

7 Instrucciones de Entrada/Salida

7.1 Introducción

En lecciones anteriores hemos tratado conceptos básicos para la construcción de algoritmos. Por
ejemplo, para llevar adelante la resolución de problemas mediante el uso de computadoras es
preciso en la Etapa 1 identificar el problema, reconocer que resultado se requiere obtener, que datos
se necesitan para alcanzar ese resultado y las condiciones o restricciones que deben cumplirse
para poder resolver el problema.

Posteriormente, continuaremos con la Etapa 2, definiendo y representando la manera en que se


puede resolver el problema.

Por lo tanto, para resolver un problema en computadora no basta simplemente en saber qué
resultados buscamos, sino que debemos identificar qué datos son necesarios para
procesarlos y resolver el problema.

En esta lección aprenderemos sobre las instrucciones de Entrada/Salida. Estas instrucciones nos
permitirán obtener los datos necesarios para resolver el problema y mostrar al usuario los
resultados.

7.2 Definición de la instrucción de Entrada

La instrucción de entrada permite ingresar datos a una variable. Leer e ingresar son
sinónimos.

Una instrucción de entrada permite recoger los datos desde una entrada estándar, generalmente el
teclado.

El verbo relacionado a la instrucción de entrada es "leer" y describe que el sistema de computadora


efectúa operaciones que le permiten captar datos desde el exterior.

El usuario escribe los valores de los datos usando, por ejemplo, el teclado. Los datos son tomados
por la computadora y, siguiendo la instrucción de entrada, son almacenados en la variable indicada.

Docente compilador: Ing. Analía Méndez Página 43


7.3 Formas de expresar la instrucción de entrada

• Pseudocódigo.

La manera de indicar una operación de lectura o de entrada en pseudocódigo es mediante la palabra


Leer.

Podemos ingresar valores desde teclado


a cualquier tipo de variable. Para esto
utilizaremos la palabra Leer y a
continuación indicaremos el nombre de la
variable en la cual se almacenará el valor
leído desde el teclado.

En el ejemplo se observa a la variable


NUM definida como de tipo entero, luego
mediante la instrucción de entrada se
almacena un valor en ella.

• Diagrama de Flujo.

Podemos representar una instrucción de entrada en un diagrama de flujo, para esto utilizaremos el
símbolo de paralelogramo.

Dentro del símbolo se indica el identificador o nombre de la


variable en la cual se almacenará el dato que se lea desde la
entrada.

7.4 Definición de la instrucción de Salida

La instrucción de salida permite mostrar en pantalla los resultados del procesamiento y


emitir mensajes para el usuario.

Mediante una instrucción de salida es posible mostrarle al usuario los resultados de los cálculos y
operaciones realizadas por la computadora en un programa.

El verbo relacionado a la instrucción de salida es "Escribir". Mediante este verbo se pretende


representar que el sistema escribe información para el usuario. La computadora envía información
hacia el exterior mediante una instrucción de salida.

Docente compilador: Ing. Analía Méndez Página 44


Normalmente los datos son enviados a la salida estándar, la pantalla, pero existen otros dispositivos
que también pueden ser utilizados, por ejemplo, la impresora.

7.5 Formas de expresar la instrucción de salida

• Pseudocódigo.

La manera de indicar una operación de


salida en pseudocódigo es mediante la
palabra Escribir.

Esta instrucción es útil para emitir


mensajes en la pantalla e indicar el
resultado de las tareas realizadas por
nuestro programa.

Luego de indicar el verbo Escribir puede


colocarse el identificador o nombre de la
variable que puede ir acompañado por una
cadena de caracteres, entre comillas.

Mediante esta instrucción podemos emitir el contenido de cualquier variable. También podemos
usarla para mostrar simplemente un mensaje, sin ninguna variable.

En el ejemplo puede observarse que la instrucción emite una cadena de caracteres y el contenido
de la variable NUM. La instrucción, entonces, está mostrando una constante de tipo cadena y una
variable de tipo entero.

• Diagrama de Flujo.

Para representar una instrucción de salida en diagrama de flujo


utilizaremos un símbolo rectángulo con su lado inferior ondeado.

Dentro del símbolo podemos indicar lo que se muestra en la salida,


por ejemplo, la variable, así como cualquier mensaje.

7.6 Ejemplo aplicando instrucciones de Entrada/Salida

Las instrucciones de Entrada/Salida tienen mucha influencia en la manera en que nuestros


algoritmos y programas funcionan. Dada una entrada realizada por el usuario, la computadora

Docente compilador: Ing. Analía Méndez Página 45


llevará a cabo el resto de instrucciones del programa. Por lo tanto, según el valor que el usuario
haya proporcionado al programa, serán los resultados que el programa emitirá mediante
instrucciones de salida.

Las instrucciones de entrada son el medio por el cual el programa puede obtener los datos para
resolver el problema del que se encarga. Sin las instrucciones de entrada nuestro programa sólo
podría trabajar sobre los datos que se hayan definido en el programa, por ejemplo, mediante
instrucciones en las que se asignan constantes como valores iniciales a las variables que usa el
programa.

El usuario pretende utilizar el programa y ejecutarlo con la intención de obtener resultados. Las
instrucciones de salida le permiten al usuario obtener esos resultados. Cuando escribimos un
programa normalmente las instrucciones de
salida se utilizan para mostrar mensajes
orientativos para el usuario y finalmente los
valores resultantes del procesamiento.

Consideremos y analicemos las líneas de


pseudocódigo del ejemplo siguiente:

• Líneas 2 y 3: se declaran y definen las


variables nombre y edad.

• Líneas 5 y 7: instrucciones de salida, se


emiten mensajes para el usuario
solicitándole determinadas acciones para
que el programa continúe. En este caso se
solicita al usuario que ingrese la información respectiva a su nombre y edad.

• Líneas 6 y 8: instrucciones de entrada, se indican los identificadores o nombres de variables en


las cuales se almacenarán los valores ingresados por el usuario. Durante una instrucción de
entrada el sistema se detiene y espera que el usuario responda, continúa en la siguiente
instrucción posteriormente a que el usuario complete el ingreso, generalmente con un <Enter>
(tecla) al finalizar.

• Línea 10: se trata de una instrucción que permite borrar de la pantalla todo lo que se haya
mostrado previamente. Se utiliza para generar una salida de mensajes para el usuario más
organizada y clara.

• Líneas 12 y 13: Nótese que las instrucciones de salida pueden mostrar combinaciones de
cadenas de caracteres y variables, siempre separadas por una coma. En la línea 12, por
ejemplo, se indica la cadena de caracteres "Hola ", luego se coloca una coma de separación y
a continuación el nombre o identificador de la variable cuyo valor se desea mostrar.

Docente compilador: Ing. Analía Méndez Página 46


Las instrucciones de entrada proporcionan al programa los datos necesarios para llevar
adelante el procesamiento mientras que las instrucciones de salida permiten mostrar
mensajes y resultados que se entregan usuario. Todo programa en computadora requiere
una entrada para luego desarrollar y/o concluir su procesamiento generando una salida.

¿Cómo podemos expresar el algoritmo utilizando diagramación de flujo?

Observemos el gráfico, en él se conectan diferentes figuras:

Paralelogramos: representan las instrucciones de entrada, y


dentro de los símbolos se indican los nombres de las variables
que se leen en cada instrucción. En este ejemplo se leen las
variables nombre y edad, ubicamos entonces cada una de ellas
en un paralelogramo.

Cuadrados con lado inferior ondeado: los utilizaremos para


representar las instrucciones de salida, dentro del símbolo se
indican las cadenas de caracteres y los nombres de las variables
que se envían a la salida, siempre separadas por comas (,).

Elipses: marcamos el inicio y el final de todo diagrama de flujo


con una elipse. El inicial se rotula con la palabra "inicio", la elipse
que marca el final del diagrama se rotula con la palabra "fin" o
"final".

Mediante el diagrama de flujo podemos reconocer de una


manera ágil y visualmente en qué consisten las tareas de un
algoritmo o programa. Para crearlos digitalmente podemos
utilizar Draw.io.

7.7 Actividades

1) Considerar la siguiente porción de pseudocódigo y marcar cada línea según sea correcta o
incorrecta:

Definir miVariable Como Entero;

Definir calculo, porcentaje Real

porcentaje <- "0.25";

Docente compilador: Ing. Analía Méndez Página 47


Entrada "Ingrese el valor de calculo:";

Leer calculo;

Escribir "Ingrese el valor de miVariable:";

Mostrar miVariable;

Escribir "Los valores ingresados son:";

Escribir calculo, porcentaje, miVariable;

2) Para ingresar el valor de dos variables se plantea el siguiente pseudocódigo:

Leer A;

Leer B;

Escribir “Los valores ingresados son: “, A, B;

Este código es incorrecto ya que no se pueden indicar en una instrucción de salida dos
identificadores o nombres de variable en forma contigua. Indicar si esto es verdadero o falso:

Verdadero

Falso

3) Considerar los siguientes pseudocódigos:

Escribir “Ingresar el primer número:” ;

Leer Num1; Leer Num1;

Leer Num2; Escribir “Ingresar el segundo número:”;

Escribir “El primer número ingresado es”, Num1; Leer Num2;

Escribir “El segundo número ingresado es”, Num2; Escribir “El primer número ingresado es:”, Num1;

Escribir “El segundo número ingresado es:”, Num2;

La diagramación de flujo de ambos pseudocódigos es idéntica. Indicar si esto es verdadero o falso:

Verdadero

Falso

Docente compilador: Ing. Analía Méndez Página 48


4) Identificar si la frase es verdadera o falsa:

Para resolver un problema se requiere contar con una variable que almacene el valor de PI (3.1416),
por lo tanto, es necesario leer de la entrada ese valor.

Verdadero

Falso

5) Para leer y luego mostrar el valor de una variable se plantea el siguiente pseudocódigo:

Leer NUM;

Escribir “El número ingresado es “, num;

Este código es incorrecto ya que en el identificador o nombre de una variable se diferencian las
mayúsculas de las minúsculas. Por lo tanto, la variable num no es la variable NUM. Indicar si esto
es verdadero o falso:

Verdadero

Falso

6) Considerar el pseudocódigo que se muestra en el gráfico.

Observar cada línea de código, analizar sus detalles y significado para luego responder la siguiente
pregunta:

¿Qué valor contiene la variable nombre en la línea 8?

El nombre "José Alberto" y el nombre ingresado


por el usuario en la línea 7.

El valor "José Alberto" asignado a la variable en


la línea 4.

El valor ingresado por el usuario en la línea 7.

Docente compilador: Ing. Analía Méndez Página 49


7) Considerar el siguiente diagrama de flujo. Observar cada símbolo y representa en pseudocódigo
el algoritmo utilizando PSeInt.

8) Cristina quiere realizar un curso, al llegar a inscribirse al curso el encargado le solicita


información personal para completar el trámite.

Para que el encargado pueda cumplir la tarea


utiliza un algoritmo que le permite leer los datos
que solicita. Tener en cuenta el gráfico e indicar
el orden lógico de las instrucciones de la tabla
para que el algoritmo resultante pueda ser útil
al encargado.

Docente compilador: Ing. Analía Méndez Página 50


Instrucción Orden lógico

Escribir "Altura: ";

Definir nombre Como Cadena;

Escribir "Sus datos son los siguientes: ";

Escribir "Ingrese los datos solicitados:";

Algoritmo Entrada_Salida

FinAlgoritmo

Definir altura Como Real;

Leer nombre;

Escribir nombre, " ", edad, " ", altura;

Leer altura;

Escribir "Edad: ";

Definir edad Como Entero;

Leer edad;

Escribir "Nombre: ";

9) Considerar el siguiente problema:

Se requiere leer dos valores enteros, intercambiar sus valores y mostrarlos en la salida.

Desarrollar el diagrama de flujo para resolver el problema.

Docente compilador: Ing. Analía Méndez Página 51


UNIDAD 8

8 Operadores

8.1 Definición

Cuando tratamos de plantear mediante un algoritmo la resolución de un problema, normalmente


necesitamos utilizar componentes de cálculo que nos permitan concretar el objetivo del algoritmo
propuesto. Entre estos componentes de cálculo se encuentran los operadores.

Un operador, es un elemento que indica el tipo de operación que se le va a aplicar a uno o más
datos.

Un operador es un símbolo que representa una operación específica que puede aplicarse
sobre un cierto número de variables y/o constantes.

En esta lección abordaremos conceptos referidos a los operadores. Muchos de los conceptos que
trataremos son estudiados en Matemáticas y la Informática se relaciona estrechamente con ella.
Todas las acciones de una computadora se basan en cómputos o cálculos.

8.2 Tipos de operadores

El tipo de un operador determina el tipo de operandos con los que puede trabajar y el tipo de
operaciones que puede realizar.

Existen tres tipos de operadores: operadores aritméticos, operadores relacionales y operadores


lógicos. En esta lección comenzaremos tratando sobre los primeros.

Docente compilador: Ing. Analía Méndez Página 52


8.3 Operadores Aritméticos

Los operadores aritméticos permiten la realización de operaciones matemáticas con valores


numéricos que pueden estar representados mediante constantes o almacenados en
variables.

Un operador aritmético toma valores numéricos (constantes o variables) como sus operandos y
devuelve un solo valor numérico. Los operadores aritméticos estándar son suma (+), resta (-),
multiplicación (*) y división (/).

En la tabla podemos observar el conjunto completo de los operadores aritméticos.

En Informática se utiliza un asterisco (*) para representar la


operación de multiplicación.

El símbolo ^ se utiliza para representar la operación de


potenciación.

La operación de módulo suele representarse mediante el


símbolo % o mediante la sigla MOD.

8.4 Expresiones aritméticas

En programación una expresión aritmética es una fórmula aritmética que permite calcular un
valor.

En una expresión aritmética los operandos que intervienen son numéricos, el resultado es un
número y los operadores son aritméticos.

El valor de la expresión aritmética se obtiene al tomar los valores de los operandos y aplicarles el
operador. Los operandos pueden ser constantes, variables u otras expresiones del mismo tipo.

Para la evaluación de expresiones aritméticas en programación, existen reglas detalladas que


permiten determinar el tipo de datos del resultado. En términos generales se pueden resumir de la
siguiente forma:

• Si ambos operandos son de tipo entero, el resultado será de tipo entero.

• Si ambos operandos son de tipo real, el resultado será de tipo real.

Docente compilador: Ing. Analía Méndez Página 53


• Si un operando es real y el otro entero, el operando de tipo entero se convertirá a real y luego
se aplicará la operación.

¿Cómo podemos efectuar el cálculo de una expresión aritmética mediante el uso de un programa
en pseudocódigo? Observemos el gráfico, y
analicemos las líneas de código:

• Se definen dos variables de tipo entero y


una variable de tipo real.

• Las variables de tipo entero son


inicializadas mediante operación de
asignación utilizando constantes.

• Se realiza el cálculo de la expresión


aritmética y se asigna a la variable RESUL de
tipo real.

• En la expresión aritmética se evalúan los miembros aplicando la jerarquía de operadores


aritméticos.

• Por último, se utiliza una instrucción de salida para emitir el resultado del cálculo realizado.

8.5 Jerarquía de operadores aritméticos

Es el orden en que los operadores deben ejecutarse dentro de una expresión para que sea
calculada en forma correcta. Los operadores se agrupan por su prioridad

La jerarquía de operadores determina el orden en el que se resuelven las expresiones cuando se


involucran operaciones aritméticas como la suma, resta, multiplicación, división, potencia, raíz y
módulo de la división. Este orden es el que permite que una expresión aritmética cualquiera siempre
tenga la misma interpretación ya sea
resolviéndola en papel, en calculadora o
en la computadora.

En principio se resuelven los corchetes y


paréntesis, luego las operaciones de
potencia y raíz, luego la multiplicación y
la división, y por último las sumas y
restas.

Docente compilador: Ing. Analía Méndez Página 54


8.6 Actividades

1) Identifica si la frase es verdadera o falsa:

Cuando se aplica la jerarquía de operadores aritméticos en una expresión primeramente se evalúa


la suma y la resta.

Verdadero

Falso

2) Identifica si la frase es verdadera o falsa:

Si se efectúa una operación entre dos variables, una de tipo entero y la otra de tipo real, el resultado
siempre es un valor entero.

Verdadero

Falso

3) Se requiere calcular la siguiente expresión: [ (856.55 * 22) + (856.55 / 15) + 3.65 ].

Para esto es preciso definir las variables con los siguientes nombres y asignarles los valores:

costo <- 856.55

base <- 22

cantidad <- 15

fraccion <- 3.65

Desarrollar el pseudocódigo del algoritmo necesario utilizando PSeInt, prestar atención a los tipos
de dato que se asignan a cada variable.

4) Se solicita realizar los siguientes cálculos y al finalizar sumar los resultados obtenidos:

cálculo 1: (425 - 83)

cálculo 2: (8724 / 62)

cálculo 3: (1011 * 17)

Desarrollar el pseudocódigo del algoritmo necesario utilizando PSeInt, ¿dónde se guardarán los
resultados de cada cálculo?

Docente compilador: Ing. Analía Méndez Página 55


UNIDAD 9

9 Estructura de Control Secuencial

9.1 Definición

Los algoritmos están integrados y se organizan mediante secuencias de instrucciones. Algunas


tareas complejas que realizan los algoritmos requieren establecer un orden de realización de las
instrucciones donde se aplican repeticiones, o se seleccionan caminos de acción entre varias
posibilidades.

En un algoritmo las estructuras de control permiten romper el orden simple de ejecución en las
instrucciones de un programa.

Se denominan estructuras de control a las organizaciones que controlan la ejecución de las


acciones en un algoritmo.

Las estructuras de control permiten establecer el flujo de control en un programa, definen el


orden de ejecución de las instrucciones de un programa.

En esta lección trataremos sobre las estructuras de control y especialmente sobre la estructura de
control secuencial.

9.2 Diferencias entre estructuras de control e instrucciones

Mediante las instrucciones un programa indica a la computadora las acciones a ejecutar. Una
estructura de control organiza conjuntos de esas instrucciones para establecer el flujo de
ejecución de un programa.

Las estructuras de control son las que indican en


que orden se ejecutarán las acciones en un
programa. Permiten especificar la coordinación y
regulación del algoritmo, porque determinan la
dirección que debe seguir el flujo de información
en el mismo.

Docente compilador: Ing. Analía Méndez Página 56


Teniendo en cuenta lo descripto respecto a las estructuras de control, es necesario destacar que
un algoritmo y su representación en diagrama de flujo deben cumplir con ciertas condiciones:

1. Tener un solo punto de inicio y un solo punto de finalización.

2. Toda acción de cada algoritmo es accesible, es decir, existe al menos un camino que va
desde el inicio hasta el fin del mismo, que se puede seguir y pasa a través de dicha acción.

3. No existirán repeticiones que nunca concluyan, es decir, infinitas.

Observemos que estas condiciones coinciden con las propiedades que hemos estudiado respecto
a los algoritmos.

9.3 Clasificación de estructuras de control

Como vimos previamente, al ser un algoritmo una secuencia de pasos ordenados, debe seguir una
trayectoria para su ejecución desde el primer paso hasta el último. Esta trayectoria se denomina
flujo de control e indica el orden en el cual deben ejecutarse los pasos elementales.

Para organizar el flujo de control de un algoritmo se utilizan estructuras de control. Las estructuras
de control básicas para organizar el flujo de control en un algoritmo, son las siguientes:

• Estructura secuencial.

• Estructura de selección.

• Estructura de iteración.

Las estructuras de control de selección y de


iteración alteran el flujo de control lineal del
algoritmo.

Cada estructura de control posee características distintivas y propiedades que influyen de


diferentes maneras en el flujo de control de un programa.

A continuación, trataremos sobre la estructura de control más sencilla: la estructura de control


secuencial.

Docente compilador: Ing. Analía Méndez Página 57


9.4 Estructura de control secuencial

La estructura de control secuencial indica una secuencia de acciones a ser ejecutadas de


forma consecutiva. Se compone de instrucciones que deben ser ejecutadas una tras otra sin
excepciones.

En una estructura de control secuencial cada una de las instrucciones no


inicia su ejecución hasta que la instrucción inmediatamente previa no
haya concluido completamente. El flujo de control coincide con el orden
físico en que se indicaron las instrucciones.

Los tipos de operaciones en la estructura de control secuencial son los


siguientes:

• Asignación. Consiste en almacenar valores o resultados en una


zona de la memoria, es decir, en variables. Dicha zona será
reconocida con el nombre de la variable que recibe el valor.

• Lectura. Consiste en recibir desde un dispositivo de entrada un


valor. Esta operación se representa en un pseudocódigo como:

Leer a;

Donde a es la variable que recibe el valor que se lee de la entrada.

• Escritura. Consiste en enviar a un dispositivo de salida un resultado o un mensaje. Este


proceso se representa en un pseudocódigo como:

Escribe “El resultado es:”, x;

Donde “El resultado es:” es una cadena de caracteres que compone el mensaje para el usuario y x
es una variable que contiene un valor que se desea mostrar.

9.5 Formas de expresar la estructura de control secuencial

Cuando expresamos una estructura secuencial en pseudocódigo, las instrucciones se irán


ubicando y ejecutando una después de la otra. Normalmente, serán instrucciones mediante las
cuales realicemos operaciones de entrada, de salida y de asignación.

La composición de una estructura secuencial no es conmutativa. Por lo tanto, la secuencia:

Leer a;

Docente compilador: Ing. Analía Méndez Página 58


Leer b;

c <- a + b;

Escribir c;

No es equivalente a indicar:

Leer a;

c <- a + b;

Escribir c;

Leer b;

El orden de las instrucciones en una estructura de


control secuencial es único y determinado por el objetivo que debe cumplir el algoritmo.

Para representar la estructura de control secuencial mediante diagrama de flujo, simplemente


indicaremos cada una de las instrucciones dentro de su símbolo
correspondiente, una a continuación de la otra, conectadas
mediante una flecha que indica el flujo de control.

Toda representación en diagrama de flujo debe seguir en forma


estricta el formato de la notación propia de esta herramienta de
representación. Por lo tanto, en cada símbolo deberá indicarse
una única instrucción.

No es recomendable cambiar esta forma de representación.


Indicar varias instrucciones dentro de un mismo símbolo, por
ejemplo, varias asignaciones en un rectángulo, reduce la
identificación de la verdadera constitución del algoritmo y, en
algoritmos complejos, aumenta la confusión del observador al
no permitir un seguimiento claro y diferenciado sobre cada orden
indicada a la computadora.

En el gráfico observamos que los símbolos en el diagrama de


flujo siguen una secuencia y orden, aspecto característico de la
estructura de control secuencial.

9.6 Actividades

1) Identificar si la frase es verdadera o falsa:

Docente compilador: Ing. Analía Méndez Página 59


Una instrucción es la manera en la que se puede indicar a la computadora que realice una acción
determinada, mientras que una estructura de control es un conjunto organizado de flujos de
instrucciones para establecer el control del programa.

Verdadero

Falso

2) Considerar el laberinto planteado en el gráfico en donde un robot debe llegar hasta donde se
encuentra una naranja. Construir un algoritmo para resolver el problema del robot.

Tener en cuenta la posición inicial del robot.

Las acciones posibles son las siguientes.

• Mover x casillas adelante.

• Mover x casillas atrás.

• Comer la fruta.

• Mover x casillas a la izquierda.

• Mover x casillas a la derecha.

3) Considerar el siguiente problema:

Diseñar un algoritmo para obtener el resultado de multiplicar un número de dos dígitos por otro
número de un dígito.

Realiza las siguientes tareas:

• Describir paso a paso la tarea y construir el algoritmo necesario.

• Utilizar pseudocódigo o lenguaje natural.

Docente compilador: Ing. Analía Méndez Página 60


UNIDAD 10

10 El Método Heurístico

10.1 Definición

La Heurística es la capacidad que ostenta un sistema determinado para realizar de manera


inmediata innovaciones positivas para sí mismo y sus propósitos.

Para la informática, la heurística consiste en encontrar o construir algoritmos con buenos tiempos
de ejecución y buenas soluciones, usualmente las óptimas. Un método heurístico, normalmente,
está formado por un conjunto de principios, reglas y estrategias.

Un método heurístico es un método que establece las pautas necesarias para obtener la
resolución de un problema mediante el uso de computadoras.

En el método Heurístico se integran la analogía y la reducción; se definen pautas que ayudan a


encontrar los medios para resolver los problemas, entre las más empleadas se pueden destacar
separar lo dado de aquello buscado, confección de mapas, esquemas, utilización de números,
reformulación de problemas, etc.

En el método heurístico se aplican recursos organizativos funcionales al proceso de resolución de


un problema planteado.

10.2 Pasos del método heurístico

El método heurístico está compuesto por cuatro pasos bien diferenciados, ellos son:

• Definición del problema.

• Análisis.

• Diagrama de flujo.

• Verificación.

Docente compilador: Ing. Analía Méndez Página 61


Durante el desarrollo de estas etapas es necesario realizar un seguimiento estricto de todo lo que
se realiza. Es preciso reconocer deliberadamente cada caso que se tome en la solución de un
problema.

Desde el principio se debe adoptar una actitud receptiva. Todas las propuestas deben considerarse
tentativamente sin importar que tan obvias o imposibles parezcan. De esta manera se creará una
conciencia y será posible identificar nuevas soluciones.

Para obtener algún beneficio de este método es necesario aceptar en forma tentativa todas las
ideas que se presenten. Es mejor rechazar una idea conscientemente que estar de acuerdo con
ellas, sin haberla analizado.

10.3 Definición del problema

La definición de un problema implica la formulación de tres preguntas:

• ¿Qué resultados se deben obtener?

Especifique con precisión qué resultados se requieren. Si los resultados van a tener un uso
práctico los datos originales se deben incluir en los resultados finales.

• ¿Qué datos se nos proporcionan?

Defina todos los datos en forma precisa. Examine de nuevo las especificaciones de los mismos
y encuentre cuántos elementos de datos hay. ¿Puede variar este número? ¿Hay alguna
restricción en el tipo de datos?

Docente compilador: Ing. Analía Méndez Página 62


• ¿Qué condiciones relacionan los datos a los resultados? ¿Son satisfactorias estas condiciones
(es decir, aseguran que se obtendrán resultados correctos para todos los datos)?

Asegúrese de que no omite condiciones y de que comprende perfectamente los términos que
se utilizan para relacionar los datos y los resultados.

A menudo no se pueden establecer correctamente las condiciones hasta que se analiza más
detalladamente el problema. Sin embargo, es posible tener un conocimiento intuitivo de las
condiciones y más adelante se puede revisar la definición y adaptar la experiencia que se obtenga
en el estudio de las soluciones posibles.

Se debe tratar de introducir una notación adecuada para los datos y resultados, mediante la cual se
puedan expresar las condiciones en forma más clara y concisa.

Es probable que, al tratar de desarrollar una solución, se encuentren fallas en esta definición y las
preguntas se tengan que volver a establecer. Siempre se debe considerar que una definición
preliminar es tentativa. No debe cambiarse sin una razón positiva y hasta entonces es necesario
apegarse estrictamente a ella.

10.4 Análisis del problema

Se lleva adelante después de responder a las preguntas ¿Entiendo el problema? ¿Sé cómo
resolverlo?

“Entiendo el problema” entonces procedo a desarrollar un algoritmo, pero a menudo la solución está
equivocada. Por lo tanto, es necesario comparar la resolución propuesta y los pasos mediante los
cuales se obtuvo con la definición original, para ver si hay discrepancias entre ellas.

Por lo general las fallas se presentan por imponer condiciones incorrectas, pero también se deben
verificar los datos y los resultados esperados.

La habilidad para seleccionar un buen método depende principalmente de la experiencia previa,


pero se puede indicar una guía importante:

Seleccione el procedimiento más sencillo y claro, el que tenga menos sutilezas.

En este paso nos respondemos a la pregunta ¿Cómo?

Comenzamos a diseñar el algoritmo correspondiente y expresamos las entradas y resultados que


se quieren obtener con los nombres de variables correspondientes.

La eficiencia de un algoritmo (su rapidez de ejecución) es de gran importancia y a menudo se utiliza


como el criterio básico para seleccionar un método. No obstante, es mejor buscar y desarrollar el
algoritmo que sea más eficiente desde el punto de vista del que lo resuelve, es decir, la solución
que se pueda convertir en algoritmo con el mejor esfuerzo. Con frecuencia esta solución también

Docente compilador: Ing. Analía Méndez Página 63


será muy rápida. Sea la más rápida o no, siempre es más fácil retroceder y buscar mejores
alternativas una vez que se ha obtenido una solución satisfactoria.

10.5 Elaboración del Diagrama de Flujo

En este paso expresamos el algoritmo diseñado en el paso anterior, en un lenguaje natural o de


Pseudocódigo, a través de un Diagrama de Flujo.

10.6 Verificación

En este punto se debe verificar la solución propuesta. Una de las mejores técnicas consiste en
tabular el diagrama de flujo, teniendo cuidado de utilizar números distintos a los que se emplearon
antes. Debe procurar estar seguro de que se prueben todas las situaciones posibles. La tabulación
puede ser un proceso largo y tedioso, pero es el más sencillo para encontrar errores en la solución
del problema.

Se recomienda lo siguiente:

• Encontrar subproblemas y cruces-ayuda en el proceso de resolución y en la verificación.

• Seleccionar conjuntos de datos de prueba que permitan que se utilicen todas las trayectorias
en el diagrama de flujo.

• Es obvio que si una trayectoria en el diagrama de flujo no se ha verificado no se sabe si funciona


o no. La selección de conjuntos de datos de prueba es fácil en problemas sencillos: observe
todas las trayectorias en el diagrama de flujo y prepare un conjunto de datos para cada una de
las alternativas que se presenten.

• Además del problema de seleccionar los datos adecuados, en la tabulación hay dos causas por
las cuales se pueden cometer errores.

o Primero, nunca debe suponerse que un nombre de variable tiene un valor particular
asociada a él, y

o segundo, cada valor en la tabla debe corresponder a la acción de una sola caja del
diagrama.

• Cuando haga una tabulación se debe comportar como una computadora, no como un ser
humano; en otras palabras, debe carecer de iniciativa. Lo que es más importante, debe tabular
lo que diagrama hace y no lo que usted piensa o espera que haga.

Docente compilador: Ing. Analía Méndez Página 64


10.7 Actividades

1) Vincula las descripciones con los conceptos correspondientes:

Capacidad que ostenta un sistema determinado para realizar de manera


Método heurístico
inmediata innovaciones positivas para sí mismo y sus propósitos.

Establece las pautas necesarias para obtener la resolución de un


Tabulación
problema mediante el uso de computadoras

Se utiliza para expresar el algoritmo que previamente fue descripto


Heurística
utilizando lenguaje natural o pseudocódigo.

Método utilizado para llevar adelante la verificación de un algoritmo. Diagrama de flujo

2) Identificar las preguntas que es preciso hacerse durante la definición de un problema:

¿Con qué datos se cuenta para resolver el problema?

¿Qué condiciones relacionan los datos de entrada con los resultados deseados?

¿Cómo implementar la resolución?

¿Qué resultados se deben obtener?

3) Aplicar la creatividad y desarrollar un esquema descriptivo del método heurístico. Indicar las
características de cada etapa para que sea aún más representativo. Este gráfico ayudará para
recordar los detalles del método heurístico.

4) Resolver los enunciados aplicando las cuatro etapas del Método Heurístico: Definición del
problema, Análisis, Diagrama de Flujo y Verificación.

4.a) José se dirige al supermercado a realizar una compra de comestibles. Al llegar se encuentra
con un letrero que indica:

Hoy 15% de descuento por tu compra

José desea conocer cuanto deberá pagar por su compra. Realizar el cálculo e imprimir el monto
a pagar de la compra que José realice.

Docente compilador: Ing. Analía Méndez Página 65


4.b) En la pyme "FabriQ" tomaron 4 obreros para realizar diferentes funciones. Necesitan saber
cuánto dinero deben disponer para poder pagar sus sueldos.

Leer 4 variables, cada una representa la cantidad de dinero que tiene que cobrar cada uno de
los obreros.

4.c) Leer la base y la altura de un triángulo, calcular y mostrar su superficie.

4.d) Se leen 3 números.

Calcular y mostrar el promedio de los números leídos.

Docente compilador: Ing. Analía Méndez Página 66


UNIDAD 11

11 Operadores Relacionales

11.1 Introducción

En la lección sobre operadores aritméticos hemos revisado la definición de operadores:

Un operador es un símbolo que representa una operación específica que puede aplicarse
sobre un cierto número de variables y/o constantes.

En esta lección trataremos sobre los operadores relacionales o de relación. Estos operadores nos
serán de utilidad cuando en un algoritmo sea preciso realizar comparaciones o establecer relaciones
entre los valores de variables y constantes.

11.2 Operadores relacionales o de relación

En una lección previa hemos clasificado a los tipos de operadores en: aritméticos, relacionales y
lógicos. Cada uno de estos tipos de operadores opera sobre diferentes tipos de operandos.

Como vimos previamente los operadores aritméticos operan sobre operandos aritméticos
conformando expresiones aritméticas cuyos resultados siempre son valores numéricos.

En esta oportunidad trataremos sobre los operadores relacionales o de relación.

Los operadores de relación o relacionales se utilizan para comparar dos valores. El resultado
de la evaluación puede ser un valor lógico Verdadero o Falso según corresponda a la
evaluación realizada entre los dos valores contrastados.

Un operador relacional o de relación permite identificar


la relación existente entre los valores de sus dos
operandos. Sus operandos pueden ser variables,
constantes, así como expresiones aritméticas.

Los operadores relacionales son mayor que (>),


mayor o igual que (≥), menor que (<), menor o igual
que (≤), igual que (=), distinto de (<>).

Docente compilador: Ing. Analía Méndez Página 67


En la tabla podemos observar el conjunto completo de los operadores relacionales y el tipo de
relación que representan.

11.3 Jerarquía de operadores aritméticos y de relación

El orden en el que deben ejecutarse los operadores aritméticos y de relación en una


expresión es el siguiente: (1) operadores aritméticos, (2) operadores relacionales.

Consideremos las expresiones siguientes:

• (890 - x) < 35

Podemos observar que se aplica el primer nivel jerárquico a la expresión entre paréntesis, se
evalúa y luego se aplica el operador relacional.

• 890 - x < 35

En este caso la operación se lleva a cabo de igual manera a si existiera paréntesis en la primera
expresión, esto debido a que entre operadores aritméticos y relacionales se evalúa
primeramente a los aritméticos.

• sumaEntera ≥ totalParcial

En este caso se contrastan los valores contenidos en ambas variables.

• num55 = vari99 * 25

En este ejemplo primeramente se evalúa la operación de multiplicación para luego realizar la


contrastación entre el resultado del producto y el valor contenido en la variable num55.

11.4 Actividades

1) Identificar si la frase es verdadera o falsa:

Según la jerarquía entre operadores aritméticos y operadores relacionales primeramente se evalúan


estos últimos.

Verdadero

Falso

Docente compilador: Ing. Analía Méndez Página 68


2) Identificar si la frase es verdadera o falsa:

Si en una contrastación donde se utilizan operadores relacionales uno de los operadores es una
expresión aritmética, es necesario evaluar la contrastación para luego poder evaluar la expresión
aritmética.

Verdadero

Falso

3) Se desea evaluar la siguiente expresión: (2 + 3 * N1) <> 6 + (N2 - 1).

Se pide:

o Dar entrada a los valores de N1 y N2.

o Evaluar la expresión.

o Mostrar el resultado.

Desarrollar el pseudocódigo del algoritmo necesario utilizando PSeInt, prestar atención a los tipos
de dato que se asigna a cada variable.

4) Se solicita identificar si el resultado de cálculo 1 es menor o igual al resultado de cálculo 2:

o cálculo 1: (8734 - 8556)

o cálculo 2: (7120 / 40)

Desarrollar el pseudocódigo del algoritmo necesario utilizando PSeInt.

Docente compilador: Ing. Analía Méndez Página 69


UNIDAD 12

12 Estructura de Selección

12.1 Introducción

Las estructuras de control son las que indican en que orden se ejecutarán las acciones en
un programa. Permiten especificar la coordinación y regulación del algoritmo, porque
determinan la dirección que debe seguir el flujo de información en el mismo.

Al crear algoritmos para resolver con computadora los problemas que se nos plantean, nos es
preciso simular la manera en que tomamos decisiones en nuestra vida diaria. La estructura de
control secuencial, por ejemplo, nos permite reflejar como una acción se realiza a continuación de
otra.

En esta lección trataremos sobre la estructura de selección. Con ella abordaremos nuevos
problemas para ser resueltos en los que es necesario elegir entre diferentes vías de acción.

12.2 Estructura de selección

La estructura de selección permite evaluar una condición lógica. Si el resultado es verdadero,


se ejecutarán determinadas acciones y, si el resultado es falso, se ejecutarán otras acciones.

En diagrama de flujo esta estructura es representada por una construcción consistente de:

• un rombo en el cual se indica la expresión lógica que se evalúa,

• el flujo con dos direcciones que surgen desde dos vértices del rombo, y

• secuencias de instrucciones en cada flujo, según corresponda.

Docente compilador: Ing. Analía Méndez Página 70


12.3 Estructura de selección simple

La estructura de selección puede ser una estructura de


selección simple, en este caso se evalúa una expresión
y se ejecuta una acción o un conjunto de acciones sólo
si la expresión es verdadera. Si la expresión evaluada es
falsa, no se ejecuta ninguna acción.

Esta estructura de selección es útil cuando debemos


verificar una condición determinada y ante el resultado
verdadero llevar adelante las tareas. Por ejemplo, Juan
desea comprar caramelos entonces verifica si el dinero
que posee es suficiente para comprarlos, si el dinero es
suficiente entonces los compra, sino no puede hacer
nada.

En la representación con diagrama de flujo, la estructura


de selección simple posee instrucciones sólo en el flujo de control correspondiente a un resultado
verdadero de la evaluación de la expresión lógica.

En pseudocódigo, la estructura de selección simple se representa mediante la composición

Si [expresión] Entonces

[acciones por verdadero]

FinSi

Normalmente se utiliza sangría para organizar las instrucciones que se ejecutan por el resultado
verdadero, resaltando de este modo tanto el inicio como el final de la estructura.

Docente compilador: Ing. Analía Méndez Página 71


12.4 Estructura de selección compuesta

Esta estructura de selección permite


realizar determinadas acciones si el
resultado fue verdadero al evaluar la
expresión lógica, y permite ejecutar
otras acciones si el resultado fue
falso. De este modo tenemos dos vías
del flujo de control en las cuales se
llevan adelante diferentes acciones.

Siguiendo con el ejemplo de Juan que


deseaba comprar caramelos,
podemos replantear la solución
utilizando una estrategia de selección
compuesta de este modo: Juan
verifica si posee el dinero suficiente
para hacer una compra, si lo posee entonces realiza la compra, si no lo posee entonces compra
algo más barato.

La representación mediante diagrama de flujo de la estructura de selección compuesta, posee


instrucciones en ambos flujos de control. Existen instrucciones que se ejecutan sólo si la expresión
lógica es verdadera, e instrucciones que se ejecutan sólo si la expresión lógica es falsa.

En pseudocódigo, la estructura de selección compuesta se representa mediante la composición

Si [expresión lógica] Entonces

[acciones por verdadero]

SiNo

[acciones por falso]

FinSi

Se utiliza sangría para destacar los distintos


componentes de la estructura, de este modo el
seguimiento de la representación del algoritmo es
mucho más fácil de comprender en el momento de
la verificación del algoritmo.

Docente compilador: Ing. Analía Méndez Página 72


12.5 Actividades

1) Aplicar el método heurístico en la resolución de los siguientes problemas y desarrollar la solución


de cada caso en pseudocódigo:

Problema 1

Ingresar la cantidad de artículos a comprar, imprimir "Ir a caja rápida" en el caso en que la cantidad
de artículos sea menor o igual a 10.

Problema 2

Ingresar tres números y calcular el promedio. Si el promedio es mayor a 20, imprimirlo. En el caso
contrario, imprimir los números ingresados.

2) Resolver los enunciados aplicando las cuatro etapas del Método Heurístico: Definición del
problema, Análisis, Diagrama de Flujo y Verificación.

2.a) Leer la duración de una llamada telefónica en minutos, mostrar su costo teniendo en cuenta
que:

Toda llamada que dure 3 minutos o menos tiene un costo de $5.

Cada minuto adicional cuesta $3.

2.b) En un kiosco de golosinas, la bolsa grande de papas fritas tiene un costo de $120.00.

Pero si el cliente se lleva más de tres bolsas, recibe un descuento de $10 por cada bolsa.

Elabore un algoritmo para calcular lo que un cliente debe pagar al comprar x bolsas grandes
de papas fritas en la tienda.

2.c) En un grupo de personas dos de ellas desean comparar sus edades.

Leer dos edades y mostrar la edad que sea mayor.

Se asume que las edades leídas son distintas.

2.d) Dada la edad de una persona, informar si es o no mayor de edad.

Se supone que una persona mayor de edad tiene por lo menos 18 años.

Docente compilador: Ing. Analía Méndez Página 73


3) Considera el siguiente enunciado:

Ingresar un número e imprimir


si es par o impar según
corresponda.

El pseudocódigo que se
muestra en el gráfico
corresponde a la resolución
del problema.

Realizar las siguientes tareas:

• Construir el diagrama
de flujo que refleja al
pseudocódigo de la
solución propuesta.

• Realizar la verificación sobre el diagrama de flujo.

4) Resolver los enunciados aplicando las cuatro etapas del Método Heurístico: Definición del
problema, Análisis, Diagrama de Flujo y Verificación.

4.a) Leer un número entero. Si el número es positivo, imprimir "positivo"; si el número es


negativo, imprimir "negativo"; de lo contrario imprimir "nulo".

4.b) Leer un número de 3 cifras, se pide mostrar:

• El primer y el último dígito, solo si el digito central es par.

• El mensaje “Capicúa” si el número ingresado lo es. Un número es capicúa si se lee igual


de izquierda a derecha y viceversa.

4.c) Leer un número. Encontrar su valor absoluto. Luego mostrar el número y su valor absoluto.

4.d) Se leen tres números enteros. Mostrar aquellos que posean 3 dígitos.

Docente compilador: Ing. Analía Méndez Página 74


4.e) Leer un número entero. Mostrarlo si posee dos dígitos y además es un número impar.

4.f) Leer un número de tres dígitos. Imprimir cada uno de los dígitos que componen el número
indicando la posición que ocupan en él.

Por ejemplo, se lee 458 y la salida correspondiente sería...

4-1

5-2

8-3

Docente compilador: Ing. Analía Méndez Página 75


UNIDAD 13

13 Operadores Lógicos

13.1 Introducción

Revisemos la definición de operador:

Un operador es un símbolo que representa una operación específica que puede aplicarse
sobre un cierto número de variables y/o constantes.

Gran parte de la manipulación de datos de la parte de sentencias de un programa o algoritmo se


ejecuta mediante operadores, los operadores se dividen en tres categorías: operadores aritméticos,
operadores relacionales y operadores lógicos, los cuales determinan el orden de evaluación de una
sentencia de asignación.

Como vimos previamente, los operadores aritméticos facilitan la creación de expresiones


aritméticas, por otra parte, mediante los operadores relacionales es posible "relacionar" los valores
contenidos en variables, los valores de constantes y los resultados de expresiones aritméticos.

En esta lección trataremos sobre los operadores lógicos.

13.2 Operadores lógicos

En lecciones previas vimos como los operadores


aritméticos operan sobre operandos aritméticos y
generan resultados de tipo numérico.

Así mismo, hemos tratado sobre los operadores


relacionales y aprendimos que éstos pueden
identificar relaciones de valor entre sus operandos,
por ejemplo, indicando si el valor de una variable
es mayor que una constante determinada, o si el resultando de una expresión aritmética es igual a
cero. Los operadores relacionales siempre devuelven un resultado de tipo lógico.

A continuación, abordaremos los últimos, y no menos importantes operadores, los operadores


lógicos.

Docente compilador: Ing. Analía Méndez Página 76


Los operadores lógicos o booleanos permiten combinar y evaluar expresiones lógicas.
Generan un resultado lógico con valores Verdadero o Falso.

El conjunto de operadores lógicos está formado por:

• Operador AND o Y, aplica la operación de conjunción.


Evalúa dos expresiones lógicas si ambas son
Verdaderas entonces su resultado es Verdadero, y de
lo contrario es Falso.

• Operador OR u O, aplica la operación de disyunción.


Evalúa dos expresiones lógicas, si alguna de ellas es Verdadera entonces su resultado es
Verdadero, su resultado es Falso sólo si ambas expresiones lógicas son falsas.

• Operador NOT o No, se trata de un operador unario y aplica la operación de negación, si la


expresión es falsa, el resultado es Verdadero, y si la expresión es verdadera el resultado es
Falso.

13.3 Tablas de Verdad de la Lógica de Boole

La evaluación de las expresiones lógicas en las que se aplican los operadores lógicos se rigen por
las tablas de verdad de la lógica de Boole, por lo que es necesario conocerlas para poder aplicarlas.

A continuación, observaremos cada una de las tablas de verdad correspondiente a cada operador
lógico.

• Operador AND o Y.

Este operador es binario, se


requieren dos operadores
lógicos, operando 1 y
operando 2.

La tabla muestra las posibles


combinaciones. El resultado sólo será verdadero cuando operando 1 y operando 2 sean ambos
verdaderos.

Siempre que alguno de los operandos sea falso, el resultado será falso.

Docente compilador: Ing. Analía Méndez Página 77


• Operador OR u O.

Este operando es binario, evalúa dos operandos lógicos, operando 1 y operando 2.

Siempre que alguno de los


operandos sea verdadero, el
resultado es verdadero.

Si ambos operandos, operando 1 y


operando 2, son falsos, el resultado
es falso.

• Operador NOT o NO.

Se trata de un operador unario.

Opera sobre el operando generando el resultado opuesto al


valor lógico del operando. Es decir, si el operando es
verdadero, el resultado es falso, y si el operando es falso, el
resultado es verdadero.

13.4 Jerarquía de operadores lógicos

El orden en el que deben ejecutarse los operadores lógicos es el siguiente: (1) NOT, (2) AND,
(3) OR.

Supongamos la evaluación de la siguiente expresión lógica en la que se combinan operadores


relaciones y lógicos:

NO ((9 > 5 O 2 < 8) Y (6 = 3))

Su evaluación será la siguiente:

Docente compilador: Ing. Analía Méndez Página 78


NO ((V O V) Y (F))

NO (V Y F)

NO (F)

Observemos cómo el uso de paréntesis permite cambiar el orden de jerarquía según se requiera en
la tarea de resolver un problema determinado.

En el ejemplo participan los operadores lógicos NO, O e Y.

13.5 Actividades

1) Resolver los enunciados aplicando las cuatro etapas del Método Heurístico: Definición del
problema, Análisis, Diagrama de Flujo y Verificación.

1.a) Leer un número entero. Si el número es positivo, imprimir "positivo". Si el número es negativo,
imprimir "negativo". Si el número no es positivo ni negativo, entonces imprimir "nulo".

1.b) Leer un número de 5 cifras, se pide:

• Mostrar el primer y el último dígito, solo si el dígito central es impar.

• Mostrar el mensaje “Capicúa” si el número ingresado lo es.

1.c) Ingresar un número. Imprimirlo si es múltiplo de 3 pero no es múltiplo de 5.

1.d) Leer un número que representa la nota de la materia Informática. Se desea indicar la condición
a la que corresponde la nota ingresada, teniendo en cuenta la tabla que se detalla a continuación.

Condición Nota

Desaprobado 0 a 39

Aprobado 40 a 74

Promocionado 75 a 100

Docente compilador: Ing. Analía Méndez Página 79


UNIDAD 14

14 Estructuras de control de iteración

14.1 Introducción

En lecciones previas hemos tratado sobre la estructura de control secuencial y sobre la estructura
de selección, ambas permiten establecer el flujo de control en un algoritmo o programa. En esta
lección trataremos sobre las estructuras de control de iteración.

Las estructuras de control de selección y de iteración permiten modificar el flujo secuencial


de la ejecución de un programa. Son las que indican en que orden se ejecutarán las acciones
en un programa.

Cuando nos proponemos resolver problemas en computadora, debemos representar en muchas


ocasiones secuencias de acciones que se repiten y cuya repetición debe ser lógicamente
controlada.

Las acciones repetitivas en muchas ocasiones son indispensables para resolver algún problema en
particular.

¿Cómo podemos representarlas en la diagramación de flujo?

¿Cómo podemos utilizarlas en el pseudocódigo para representar una solución algorítmica?

En esta lección responderemos a estas preguntas.

14.2 Estructura de control de iteración

Podemos definir una estructura iterativa como la estructura de control que permite al
algoritmo ejecutar en forma repetitiva un conjunto de acciones utilizando una condición para
indicar su finalización.

Las estructuras de control de iteración o estructuras iterativas permiten ejecutar un conjunto de


instrucciones varias veces. La cantidad de veces que se repiten las instrucciones está dada por la
evaluación de una expresión relacional y/o lógica.

Docente compilador: Ing. Analía Méndez Página 80


En una estructura de control iterativa el conjunto de instrucciones que se repiten conforman un
denominado "bucle" o "ciclo". Dicho conjunto de instrucciones se caracteriza por estar constituido
por las acciones que es necesario reproducir una determinada cantidad de veces para solucionar
un problema.

En el conjunto de instrucciones que se repiten, deben ocurrir acciones que alteren el


resultado de la evaluación de la expresión relacional y/o lógica que define la repetición, para
permitir la finalización del "ciclo" o "bucle".

Dado que existe un bucle o ciclo en una estructura de


control de iteración, existe una instrucción al final de dicho
bucle o ciclo que envía el control a una instrucción previa
para que vuelva a ejecutarse.

Las estructuras de control de iteración son:

• Mientras.

• Repetir-hasta.

Aunque ambas poseen el mismo objetivo -repetir


cíclicamente un bloque de instrucciones- difieren en su sintaxis, de todos modos, una solución
planteada con la estructura Mientras puede adaptarse para ser planteada con una estructura
Repetir-hasta.

Algunos problemas que podemos resolver con estas estructuras son por ejemplo los siguientes:

• Imprimir todos los números pares menores a 10. En este caso iteraremos sobre cada uno de los
números de un dígito comenzando con una variable con valor igual 1 hasta llegar hasta 9. Para
cada valor aplicaremos la verificación por número par. La iteración concluirá cuando el valor de
la variable iguale a 10.

• Mostrar 5 veces el mensaje "Hola mundo!". Para este caso el bucle o ciclo estará integrado por
la tarea de mostrar el mensaje y contar las veces que se muestra el mensaje. El ciclo concluirá
cuando la variable que usemos para contar sea igual a 6, suponiendo que le dimos el valor inicial
igual a 1.

Docente compilador: Ing. Analía Méndez Página 81


14.3 Estructura Mientras

La estructura iterativa Mientras es una estructura que impide la ejecución de un conjunto de


instrucciones si la evaluación de una expresión relacional y/o lógica es falsa. Es decir, el
conjunto de instrucciones se repetirá sólo si la evaluación de la expresión relacional y/o
lógica es verdadera.

El bloque de instrucciones incluidas en


el bucle o ciclo podrá ejecutarse entre
0 y N veces. Si la expresión lógica es
inicialmente falsa, el bloque de
instrucciones se ejecutará 0 veces.

La dinámica de ejecución de esta


estructura es la siguiente:

1. Se evalúa la expresión lógica. Si el


resultado es falso, ir a (3). Si el resultado es verdadero, ir a (2).

2. Se ejecutan las acciones del ciclo o bucle.

3. La estructura termina.

En pseudocódigo, la estructura iterativa Mientras se representa mediante la siguiente composición:

Mientras (expresión_lógica) Hacer

[secuencia_de_acciones]

FinMientras

Para representar la estructura Mientras


usando diagramación de flujo se utiliza un
rombo para indicar la expresión relacional
y/o lógica que se evalúa.

Por la salida de verdadero se indica el


bloque de sentencias que formarán el ciclo o
bucle, y se indica el flujo de control creando
un ciclo que va desde el final del bloque de
instrucciones hasta antes del rombo donde
se indica la expresión relacional y/o lógica.

Docente compilador: Ing. Analía Méndez Página 82


De este modo, en el diagrama de flujo es posible observar cómo la ejecución del bucle está
condicionada a que la evaluación de la expresión sea verdadera.

Por la salida de la evaluación falsa de la expresión relacional y/o lógica, la estructura finaliza.

14.4 Estructura Repetir-Hasta

En la estructura iterativa Repetir-Hasta se ejecuta un conjunto de acciones, se evalúa la


expresión relacional y/o lógica y si es falsa se ejecuta nuevamente el bloque de acciones.

Esta estructura de control repetitivo se caracteriza porque ejecuta un conjunto de instrucciones sin
realizar previamente la evaluación de la expresión relacional y/o lógica. Las acciones se repiten
HASTA QUE se cumple una condición expresada en la expresión relacional y/o lógica.

El bloque de instrucciones incluidas en el bucle o ciclo podrá ejecutarse entre 1 y N veces. Si la


expresión lógica es inicialmente falsa, el bloque de instrucciones se ejecutará 1 sola vez.

La dinámica de ejecución de esta estructura es la siguiente:

1. Se ejecutan las acciones del ciclo o bucle.

2. Se evalúa la expresión lógica. Si el resultado es falso, ir a (1). Si el resultado es verdadero, ir a


(3).

3. La estructura termina.

En pseudocódigo, la estructura iterativa


Repetir-Hasta se representa mediante la
composición

Repetir

[secuencia_de_acciones]

Hasta Que (expresión_lógica)

Para representar la estructura Repetir-Hasta usando diagramación de flujo se indica primeramente


el bloque de acciones que se repiten y luego se utiliza un rombo para indicar la expresión relacional
y/o lógica que se evalúa.

Por la salida de falso, el flujo de control retorna al inicio del bloque de acciones que se repiten,
definiéndose de este modo el bucle o ciclo de sentencias.

Docente compilador: Ing. Analía Méndez Página 83


Por la salida de la evaluación verdadera de la
expresión relacional y/o lógica, la estructura
finaliza.

Dado que en esta estructura la condición se


evalúa al final, las instrucciones del cuerpo del
ciclo serán ejecutadas al menos una vez.

A fin de evitar ciclos infinitos, el cuerpo del ciclo


debe contener alguna instrucción que modifique
la o las variables involucradas en la condición de
modo que en algún momento la condición sea
verdadera y se finalice la ejecución del ciclo.

14.5 Diferencias entre las estructuras iterativas Mientras y Repetir-Hasta

Una de las principales


diferencias entre las
estructuras iterativas Mientras
y Repetir-Hasta reside en la
cantidad de veces en que el
bucle o ciclo de instrucciones
puede repetirse.

En la estructura Mientras el ciclo


puede repetirse como mínimo 0 veces mientras que en la estructura Repetir-Hasta el ciclo puede
repetirse como mínimo 1 vez.

Otra diferencia reside en el momento en que se efectúa la verificación de ejecución o


repetición del ciclo o bucle.

En el caso de la estructura Mientras, la verificación de ejecución del ciclo se lleva a cabo en primera
instancia, mientras que en el caso de la estructura Repetir-Hasta, la verificación de ejecución es la
última tarea de la estructura. Esta característica define además el número de ejecuciones.

Docente compilador: Ing. Analía Méndez Página 84


14.6 Actividades

1) Dado el siguiente pseudocódigo:

1. Inicio

2. CV = 1

3. Mientras (CV <= 10) hacer

4. Leer NUM

5. Escribir “el número ingresado en el ”, CV ,” lugar es: ”,NUM;

6. FinMientras

7.

8. Fin

Se pide:

• Pasar a PSeInt.

• Realizar el Diagrama de Flujo.

• Verificar.

2) Dado el siguiente pseudocódigo:

1. Inicio

3. CV = 1

4. Repetir

5. Leer NUM

6. Escribir “el número ingresado en el ”, CV ,” lugar es: ”,NUM;

7. CV = CV + 1

8. Hasta que (CV > 10);

9. Fin

Se pide:

• Pasar a PSeInt.

Docente compilador: Ing. Analía Méndez Página 85


• Realizar el Diagrama de Flujo.

• Verificar.

3) Resolver los enunciados aplicando las cuatro etapas del Método Heurístico: Definición del
problema, Análisis, Diagrama de Flujo y Verificación.

3.a) Ingresar el apellido, nombre y la edad de 20 personas. Informar por cada persona su
apellido, nombre y si es o no mayor de edad. Se supone que una persona mayor de edad tiene
por lo menos 18 años.

3.b) Ingresar 10 números. Calcular el promedio e imprimirlo.

3.c) Ingresar 10 números. Se desea conocer el promedio de los números pares ingresados

4) Realiza las siguientes tareas:

• Construir el diagrama de flujo que


refleja al pseudocódigo expresado en
el gráfico.

• Llevar a cabo la verificación sobre el


diagrama de flujo para la siguiente
entrada de datos:

-15

-35

46

¿Qué tarea realiza este algoritmo?

Docente compilador: Ing. Analía Méndez Página 86


5) Resolver los enunciados aplicando las cuatro etapas del Método Heurístico: Definición del
problema, Análisis, Diagrama de Flujo y Verificación.

5.a) Se leen 10 números y se precisa realizar el cálculo del promedio de los números que sean
múltiplos de 3 pero no múltiplos de 5. Mostrar el resultado del cálculo realizado.

5.b) Ingresar N números de dos dígitos. Imprimir, para cada número ingresado, el dígito
correspondiente a la unidad.

6) Considerar el siguiente pseudocódigo:

CV <- 1;

Mientras (CV <10) hacer

Escribir “ingrese un número”;

Leer NUM;

CV <- CV +1;

Fin Mientras

Seleccionar:

Este pseudocódigo permite leer 11 números.

Este pseudocódigo permite leer 10 números.

Este pseudocódigo permite leer 9 números.

7) Considerar el siguiente pseudocódigo:

CV <- 0;

Mientras (CV <=10) hacer

Escribir “ingrese un número”;

Leer NUM;

CV <- CV +1;

Fin Mientras

Docente compilador: Ing. Analía Méndez Página 87


Seleccionar:

Este pseudocódigo permite leer 9 números.

Este pseudocódigo permite leer 10 números.

Este pseudocódigo permite leer 11 números.

8) Analiza el siguiente pseudocódigo e indica que tarea realiza.

SUM <- 0;

CV <- 1;

Mientras (CV <=10) hacer

Escribir “ingrese un número”;

Leer NUM;

SUM <- SUM +NUM;

Fin Mientras

Escribir SUM;

Seleccionar:

Cuenta los números ingresados.

Muestra la suma de 10 números.

Nunca sale de la estructura Mientras.

9) Resolver los enunciados aplicando las cuatro etapas del Método Heurístico: Definición del
problema, Análisis, Diagrama de Flujo y Verificación.

9.a) Se necesita analizar la información sobre un grupo de alumnos de la escuela primaria.

Para llevar a cabo esta tarea se ingresa la información de N alumnos.

La información a leer consiste en el apellido del alumno y su fecha de nacimiento.

Para leer la fecha de nacimiento se aplica el siguiente formato: MMAA, donde MM indica el
número del mes y AA indica los dos últimos dígitos del año.

Docente compilador: Ing. Analía Méndez Página 88


Se pide mostrar…

• El apellido del alumno si nació en el año 2014.

Se pide calcular y mostrar…

• La cantidad de alumnos que nacieron en el mes de mayo.

• El promedio de las edades de los alumnos. Para realizar este cálculo utilizar sólo el año
de nacimiento.

9.b) Se ingresa la información referente a N empleados de distintas sucursales de un banco.

Para cada empleado se lee: código de empleado y código de sucursal.

Se pide mostrar…

• Los códigos de empleados de la sucursal de la ciudad de Salta.

• La cantidad de empleados de la sucursal de Tucumán.

Para responder a las solicitudes tener en cuenta la siguiente tabla con información:

Código de Sucursal Descripción

1 Salta

2 Santiago del Estero

3 Tucumán

9.c) Leer 100 números de legajo de los alumnos de una asignatura de la carrera de Informática.

El número de legajo consta de 5 dígitos con el siguiente formato:

• los tres (3) primeros dígitos corresponden al número de orden de inscripción del alumno,

• los dos (2) últimos dígitos corresponden al año de ingreso.

Se pide:

• Imprimir los números de legajo de los alumnos que ingresaron en el año 2015.

• Calcular e imprimir el porcentaje de alumnos cuyo número de orden de inscripción es


impar.

Docente compilador: Ing. Analía Méndez Página 89


BIBLIOGRAFÍA

De Giusti A. (2001). Algoritmos, datos y programas. Con aplicaciones en Pascal, Delphi y Visual Da
Vinci. Prentice Hall, Argentina.

Joyanes Aguilar L. (2003). Fundamentos de Programación. Algoritmos, Estructuras de datos y


objetos. Tercera Edición, Mc Graw Hill, Madrid.

Docente compilador: Ing. Analía Méndez Página 90

También podría gustarte