Está en la página 1de 134

UNIVERSIDAD NACIONAL DE INGENIERIA

FACULTAD DE INGENIERIA DE PETROLEO, GAS NATURAL Y
PETROQUIMICA

“MANUAL DE ALGORITMOS Y
LENGUAJE DE PROGRAMACIÓN”

 Docente: MSC. Eyzaguirre Gorvenia, Luz
 Editor: Muñoz Gaona, Gustavo Adolfo
 Revisión: 03

2015
CONTENIDO

1

1. INTRODUCCIÓN (5)

2. OBJETIVO (5)

3. DEFINICIÓN DE UN ALGORITMO (5)

4. CONCEPTO BÁSICO DE UN ALGORITMO (6)

5. REPRESENTACIÓN DE UN ALGORITMO (6)
5.1. Lenguaje natural (6)
5.2. Diagramas de flujo (6)
5.3. Pseudocodigo/Pseudolenguage (PSeInt) (7)

6. LENGUAJE DE PROGRAMACIÓN (8)
6.1. Lenguaje de maquina (8)
6.2. Lenguaje de ensamblador (8)
6.3. Lenguaje de alto nivel (8)

7. PSeInt (9)
7.1. Historia de PSeInt (9)
7.2. ¿Qué es PSeInt? (9)
7.3. Características (11)
7.4. Funcionalidades (11)
7.5. Forma general de un algoritmo en pseudocodigo (12)
7.6. Tipos de variable (12)
7.6.1.Simples (12)
7.6.2.Constantes (13)
7.6.3.Arreglos (13)
7.6.4.Definiciones de variables (13)
7.7. Expresiones (15)
7.7.1.Operadores (15)
7.7.2.Funciones (16)
7.7.3.Expresiones coloquiales (16)
7.8. Procesos (17)
7.9. Estructuras de control (18)
7.9.1.De asignación (18)
7.9.2.Condicional o selectivas (18)
7.9.3.Repetitiva (20)
7.10. Sentencias- resumen (22)
7.11. Funciones/Subprocesos (23)
7.12. Notaciones (23)
7.13. Personalización del lenguaje (24)

8. EJERCICIOS RESUELTOS EN PSeInt (27)
8.1. Estructuras asignativas y selectivas (27)

2

8.2. Estructuras repetitivas (36)
8.3. Arreglos: Listas o Vectores y matrices o tablas (47)

9. BORLAND C++ (56)
9.1. Programación en Borland C++ (56)
9.2. Etapas para la elaboración de un programa (56)
9.2.1.Análisis de un problema (56)
9.2.2.Diseño de un algoritmo (57)
9.2.3.Codificación del programa (57)
9.2.4.Compilación y ejecución del programa (57)
9.2.5.Verificación y mantenimiento del programa (58)
9.3. Estructura del programa en borland C++ (58)
9.3.1.Directivas definidas (59)
9.3.2.La función principal Main () (59)
9.3.3.La sentencia (59)
9.4. Tipos de datos en C++ (61)
9.4.1.Variable (62)
9.4.2.Constantes (63)
9.5. Tipos de operadores (63)
9.5.1.Operadores aritméticos (63)
9.5.2.Operadores de relación (65)
9.5.3.Operadores lógicos (65)
9.5.4.Operadores de crecimiento y decrecimiento (65)
9.6. Entradas y salidas básicas (66)
9.6.1.Entradas básicas (66)
9.6.2.Salidas básicas (66)
9.7. Secuencia de escape (67)
9.7.1.Manipulación del formato de salida (68)
9.7.2.La función goto(x,y) (69)
9.8. Sentencia de asignación (69)
9.8.1.Variable de asignación (70)
9.9. Funciones comunes de C++ (70)
9.10. Procesos de control (71)
9.10.1. Procesos secuenciales (71)
9.10.2. Procesos selectivos (72)
9.10.3. Procesos repetitivos (76)
9.11. Estructura de datos - Arreglos (79)
9.11.1. Introducción a la estructura de datos (79)
9.11.2. Arreglos unidimensionales: vector o lista (79)
9.11.3. Arreglos bidimensionales: matriz o tabla (86)
9.12. Funciones y procedimientos (89)
9.12.1. Introducción (89)
9.12.2. Funciones predefinidas (90)
9.12.3. Funciones definidas por el usuario (91)
9.12.4. Definición de una función (93)

3

EJERCIOCIOS RESUELTOS EN BORLAND C++ (99) 10.10.1. Estructuras asignativas y selectivas (99) 10.2. INTRODUCCION 4 . Estructuras repetitivas (114) 10. Arreglos (Vectores o listas y matrices o tablas) (123) 1.3.

 Los algoritmos son independientes de los lenguajes de programación. “Para la solución de un problema exige el diseño de un algoritmo que resuelva el problema propuesto y se dispone de 3 pasos: operaciones. “Insertar” Arreglo Lista estática de elementos. /. etc.  Las variables pueden ser de diversos tipos: Tipo de dato (Variables) Representa Num (Variable entera) Cualquier número. b.Este documento es una recopilación de las diferentes presentaciones de los alumnos del curso Algoritmos y Lenguaje de Programación del ciclo 2014-II. String (Variable tipo cadena) Secuencia de Caracteres. $.” 5 . 2. Ejemplo: “Hola”. posee solo los valores VERDADERO o FALSO. Se debe señalar el tipo de dato y la cantidad de elementos que almacena. -. 3. Ejemplo: a. Ejemplo: -1.  Los métodos son las funciones disponibles: Mostrar en pantalla. En cada problema el algoritmo puede escribirse y luego ejecutarse en un diferente lenguaje de programación. métodos y variables. 2. con el propósito de facilitar su aprendizaje. OBJETIVO El alumno será capaz de utilizar conceptos de algoritmos para diseñar sus propios programas y relacionarlos con sus respectivas carreras.  Está compuesto por operaciones. Nada Ausencia de parámetros (para la Entrada y/o para la salida). 3. Char (Variable tipo carácter) Representa un carácter. DEFINICION DE UN ALGORITMO  Un algoritmo es una lista definida y ordenada de operaciones o acciones. etc. para poder encontrar la solución a un problema. métodos y variables  Entre las operaciones se conocen las matemáticas: +. *. BOOL (Variable lógica) De “Booleano”.

la salida es latransformación de la entrada.  Efectivo: Un algoritmo es efectivo cuando las operaciones se efectúande un modo exacto y en un tiempo finito aun usando métodos manuales. 6 . es decir.3.4. Es una serie de normas léxicas y gramaticales parecidas a la mayoría de los lenguajes de programación. El pseudocódigo describe un algoritmo utilizando una mezcla de frases en lenguaje común. 5. REPRESENTACIONES DE UN ALGORITMO 5. Lenguaje normal  Lenguaje que tiene sonidos adscritos a cada símbolo. CONCEPTOS BASICOS DE UN ALGORITMO  Finito: La ejecución de un algoritmo acaba en un tiempo finito. creado por un grupo humano con el fin de comunicarse entre ellos. es falso lenguaje. Por ejemplo: quechua. debe teneren cuenta un rigor y no la ambigüedad. descripción de un lenguaje y descripción de procesos a personas ajenas a la computación.  Una de sus características es que el sentido de las palabras puede ser diverso: polisemia. pero sin llegar a la rigidez de sintaxis de estos ni a la fluidez del lenguaje coloquial. + 5. alemán.2.  Posee salidas: Todo algoritmo posee una o más salidas. unprocedimiento que falla en la propiedad de la finitud es simplemente un procedimiento de cálculo.  Preciso: Cada instrucción de un algoritmo debe ser precisa.  Es ambiguo y extenso.  Posee entradas: La entrada se toma como un conjunto especifico devalores que inicializan el algoritmo. Los símbolos han sido normalizados por el Instituto Norteamericano de Normalización (ANSI) y regidos por la organización Internacional de normalizacion (ISO). instrucciones de programación y palabras clave que definen las estructuras básicas. Cada frase tiene un significado concreto. Son usados para representar algoritmos y por su facilidad de lectura son usados como introducción a los algoritmos. 5. Diagramas de flujo Son representaciones gráficas de algoritmos. Pseudolenguaje/Pseudocodigo (PSeInt) El prefijo pseudo significa falso. usan símbolos conectados con flechas para indicar la secuencia de instrucciones.1.

es por esto que vamos a usar este conjunto de instrucciones que una maquina pueda entender. y a este conjunto de instrucciones le llamamos LENGUAJE 7 . el siguiente paso es codificar ese algoritmo que seguramente está en un lenguaje grafico o en un lenguaje natural a un lenguaje que una maquina pueda ejecutar. Símbolos gráficos más utilizados para dibujar algoritmos por medio de diagramas de flujo (Ordinograma) 6. LENGUAJES DE PROGRAMACION Una vez que ya tenemos diseñado nuestro algoritmo.

Ej.2. Historia de PSeInt  Teniendo en cuenta que el uso de lenguaje ANSI/ISO C++ para una materia inicial de la programación presenta notorias dificultades para estudiantes inexpertos que deben aprender varios conceptos relativos al diseño de algoritmos y 8 . Lenguaje de ensamblador Ejemplo: Instrucción Operandos Add [0] [1] Mul [1] [3] 6. Es un lenguaje formal creado para comunicar algoritmos a las máquinas. para crear archivos fuente.1.  Lenguaje de quinta generación: Tienen por finalidad pensar y anticipar las necesidades de los usuarios. Los archivos fuente contienen instrucciones para que la computadora las ejecute. entre ellas la computadora. su sintaxis es definida por el diseño del hardware.3. en lugar de solo ejecutar un conjunto de instrucciones.: C++. Ejemplo: Visual Basic.DE PROGRAMACIÓN. PSeInt 7. 6.  Lenguaje de cuarta generación (4GL): Se pueden usar para desarrollar prototipos de una clase de aplicación específica rápidamente. Lenguaje de maquina Ejemplo: Instrucción Operados 0011 0000 0001 0101 0001 0011 6.1. Tipos de lenguajes de programación:  Lenguaje de primera generación: Consiste en hileras de números: 0 y 1. Lenguaje de alto nivel Ejemplo: Operación = (a+b)*c 7.  Lenguaje de segunda generación: Son simples procesadores de palabras.  Lenguaje de tercera generación: Proporcionan estructuras explícitas para diseñar procesos y ciclos. Java. Visual Basic.

con reglas sintácticas sencillas y básicas. Nacido originalmente como un proyecto final para el curso de Programación I de la carrera de Ingeniería Informática de la Facultad de Ingeniería y Ciencias Hídricas de la Universidad Nacional del Litoral. compilación..  Finalmente. ejecutar y corregir fácilmente programas en Pseudocódigo. almacenar. en octubre de 2006. La interfaz y área de trabajo: 9 . paralelamente lidiar con cuestiones de implementación de las soluciones propuestas relativas a un lenguaje de programación: sintaxis. está pensado para asistir a los estudiantes que se inician en la construcción de programas o algoritmos computacionales mediante la utilización de un simple y limitado pseudo-lenguaje intuitivo y en español. depuración. mensajes de errores en inglés. etc. se propuso la siguiente solución: diseñar un pseudocódigo en español. que permitiera concentrar al alumno en la lógica para la resolución de problemas mediante el diseño y la construcción de algoritmos y facilitara el aprendizaje y uso posterior de un lenguaje de alto nivel. permite comenzar a comprender conceptos básicos y fundamentales de un algoritmo computacional. Descripción Es una herramienta para aprender la lógica de programación. se presentó el trabajo “Desarrollo de un Software Intérprete de Pseudocódigo para la Enseñanza de Fundamentos de Programación” en el 1er Encuentro de Jóvenes Investigadores de Universidades de Santa Fe. cuya interfaz gráfica permite crear. sólo corría bajo Windows y se limitaba a interpretar el algoritmo o marcar sus errores de sintaxis.  La versión original. es en realidad un software que interpreta pseudocódigo basado en contenidos de la cátedra de Fundamentos de Programación de dicha carrera. 7. tenía cientos de errores latentes.2. Sin duda alguna es una excelente herramienta para aquellos que se inician en este mundo de la programación.

Ejecutar el algoritmo. respectivamente.3. Guardar y guardar como. Buscar. documento. Características 10 . Copiar y pegar.Barra de herramientas Icono Descripción Icono Descripción Abre un nuevo Corregir indentado. Dibujar diagrama de flujo. Busca un fichero (archivo). Deshacer y Rehacer Ejecutar paso a paso. Ayuda/contiene algunos ejemplos 7. Cortar.

caracteres y arreglos. mover un bloque de texto hacia la derecha insertando espacios o tabuladores. XP y vista.  Permite la edición simultánea de múltiples algoritmos.  Permite generar y editar el diagrama de flujo del algoritmo. Según) y ciclos (Mientras.  Incluye un conjunto de ejemplos de diferentes niveles de dificultad. Para).  Puede confeccionar automáticamente una tabla de prueba de escritorio.  Permite ejecutar el algoritmo paso a paso controlando la velocidad e inspeccionando variables y expresiones.  Presenta herramientas de edición para escribir algoritmos en pseudocódigo en español.  La sintaxis del pseudolenguaje utilizado es configurable.4. Funcionalidades  Puede interpretar (ejecutar) los algoritmos escritos.  También provee funciones de entrada/salida y algunas funciones matemáticas.  Es multiplataforma (probado en Microsoft Windows 2000.  Ofrece perfiles de configuración predefinidos para numerosas instituciones.  Ayudas Emergentes. y también usar valores numéricos (números decimales). 7. GNU/Linux y Mac OS X).  Autocompletado. Hasta Que.  Coloreado de Sintaxis. lógicos.  Determina y marca claramente errores de sintaxis (mientras escribe) y en tiempo de ejecución. 11 .  Es una herramienta totalmente libre y gratuita.  Ofrece un sistema de ayuda integrado acerca del pseudocódigo y el uso del programa.  Permite convertir el algoritmo de pseudocódigo a código C++ (Es independiente del lenguaje de programación que se vaya a utilizar).  La sencillez del lenguaje Pseudocódigo lo hacen ideal para la enseñanza de la programación.  Permite escribir programas con instrucciones condicionales (Si-Entonces-Sino.  Plantillas de Comandos.  Indentado inteligente.

5.Simple  Numérica Números.  Declaraciones: son las variables y constantes que utilizará el algoritmo para resolver el problema. cada una terminada en punto y coma. 3.6.6. Ejemplos: 12.7. Forma General de un algoritmo en Pseudocodigo Todo algoritmo en Pseudocódigo de PSeInt tiene la siguiente estructura general:  Cabecera: es la parte del algoritmo que posee el nombre de éste. Ejemplo: Operaciones de entrada Acción Operación de salida 7. Tipos de variable 7. Comienza con la palabra clave Proceso seguida del nombre del programa. instrucciones condicionales y ciclos. asignaciones de variables.1. Las acciones incluyen operaciones de entrada y salida. tanto enteros como reales.14  Lógico Sólo puede tomar dos valores: VERDADERO o FALSO.  Cuerpo: son los conjuntos de instrucciones o acciones que están entre el Inicio y el Fin. -5.  Carácter 12 .3.8. 2. Para separar decimales se utiliza el punto. Una secuencia de instrucciones es una lista de una o más instrucciones. luego le sigue una secuencia de acciones o instrucciones y finaliza con la palabra FinProceso.

Las dos acciones que pueden crear una variable son la lectura (LEER) y la asignación (<-). Por ejemplo. esto se debe a que el arreglo está segmentado. Cada arreglo posee un índice (empieza en 0) que indica la posición en la que está almacenado un elemento en el arreglo. se puede declarar una variable numérica como entera con la instrucción DEFINIR.” Opcionalmente.2. la asignación "A<-0." está indicando implícitamente que la variable A será una variable numérica. Booleano) ordenados en fila.6. numérico. Ejemplos 'hola' "hola mundo" '123' 'FALSO' 'etc. por lo que podemos llegar a representar una matriz con areeglos multidimensionales. Ejemplo: Constante 7.Constantes Las constantes representan a identificadores que no cambian su valor en el desarrollo de un programa.' “Los tipos de datos simples se determinan automáticamente cuando se crean las variables. En este caso. Su representación matemática es la de un vector de 1 dimensión. 13 . todo valor no entero que se lea o asigne a la misma será truncado 7. Caracteres o cadenas de caracteres encerrados entre comillas (pueden ser dobles o simples).Arreglos Los arreglos (arrays) son una estructura de datos que permite el almacenamiento estático (tamaño definido) de una serie de elementos del mismo tipo (carácter.3.6.

Existen distintos tipos de arreglos dependiendo del tipo de dato que contengan.  Arreglo numérico: Ejemplo:  Arreglo de carácter Ejemplo: Nota En Pseint la sentencia para poder “definir” un arreglo es la siguiente: Dimension< identificador> [tamaño] Para poder “acceder” a un elemento del arreglo se utiliza el siguiente comando: <Identificador> [posición elemento] OBSERVACION: se empieza en 1 la posición en PSeInt. donde podemos reconocer: Identificador = lista. Accediendo a sus elementos de los ejemplos Arreglo numérico Arreglo de carácter Lista [1] = 3 Lista [1] = b Lista [2] = 5 Lista [2] = c Lista [3] = 7 Lista [3] = D 14 . De los ejemplos de arreglo numérico y de carácter. anteriores tenemos: Dimension Lista [9]. y Tamaño = 9.

7.1.7. La jerarquía de los operadores matemáticos es igual a la del álgebra. Expresiones 7.7. Las siguientes tablas exhiben la totalidad de los operadores de este lenguaje reducido: 15 .Operaciones Este pseudolenguaje (pseudocodigo) dispone de un conjunto básico de operadores que pueden ser utilizados para la construcción de expresiones más o menos complejas. aunque puede alterarse mediante el uso de paréntesis.

“X+3 ES IGUAL A Y*2” equivale a “(X+3)= (Y*2)”.7.7. Por ejemplo. junto con su equivalente en el lenguaje formal. se pueden introducir algunas expresiones adicionales para formar condiciones (Expresiones lógicas). y cuando se evalúe la misma. suponiendo que X e Y son variables. “X NO ES IGUAL A Y” equivale a “NO (X=Y)”. La jerarquía de estas expresiones es mayor que la de los operadores aritméticos. se reemplazará por el resultado correspondiente.3.Expresiones coloquiales Si se encuentra habilitado el uso de “Condicionales en lenguaje coloquial” en las opciones del lenguaje. todas la funciones disponibles son matemáticas (es decir que devolverán un resultado de tipo numérico) y reciben un sólo parámetro de tipo numérico.7. Se pueden utilizar dentro de cualquier expresión. en todos los casos se puede obtener la condición opuesta reemplazando “ES” por “NO ES”. Actualmente. Se coloca su nombre seguido de los argumentos para la misma encerrados entre paréntesis (por ejemplo TRUNC(x). Ejemplo.2.Funciones Las funciones en el pseudocódigo se utilizan de forma similar a otros lenguajes. Además. 16 . La siguiente tabla muestra ejemplos de estas. A continuación se listan las funciones integradas disponibles: 7.

b. Procesos  Leer Nos permite recibir valores por teclado y guardarlos en variables. pero no se avanza a la línea siguiente. se crea durante la lectura.8. por lo tanto el comando leerá uno o más valores. mostrará uno o más valores. se escriben a continuación de la otra sin separación. recibe 3 valores y los guarda en la variable que corresponda. Si en algún punto de la línea se encuentran las palabras clave Sin Saltar o Sin Bajar los valores se muestran en la pantalla. En caso contrario. Ejemplos: a) Leer a. Analicemos lo siguiente: Pueden incluirse una o más variables. recibe el valor y lo almacena en a b) Leer a. Si la variable existe se pierde su valor anterior ya que tomará el valor nuevo. razón por la cual se dice que la lectura es “destructiva” (destruye el valor que tenía previamente la variable). 17 . Si una variable donde se debe guardar el valor leído no existe. Dado que puede incluir una o más expresiones.7. se añade un salto de línea luego de las expresiones mostradas. Si hay más de una expresión. de modo que la próxima acción de lectura o escritura continuará en la misma línea. c. por lo que el algoritmo debe explicar los espacios necesarios para diferenciar dos resultados si así lo requiere.  Escribir Esta instrucción informa al ambiente (en este caso escribiendo en pantalla) los valores obtenidos de evaluar N expresiones. Esta instrucción toma N valores desde el teclado y los asigna a las N variables mencionadas.

Representación: Diagrama de flujo: 18 .1. si la condición es falsa no se ejecuta ninguna instrucción y la ejecución del programa continúa con la instrucción siguiente. La cláusula Entonces debe aparecer siempre. Sentencias 7.2. n. Ejemplo: c <. Ejemplos: a) Escribir “hola mundo”. 7. La condición debe ser una expresión lógica.9.9. pero la cláusula Sino puede no estar. 7. Es decir se debe evaluar una condición y si la cumple.” es par”. que al ser evaluada retorna Verdadero o Falso. deberá ejecutar todas las acciones después del Entonces y si no las cumple debe ejecutar todas las acciones después del Sino. En este caso. c) Escribir “El valor introducido”.Selectiva  Selectiva simple y doble Es una estructura de control que depende del valor de una condición lógica.9.De asignación Nos permite guardar un valor en una variable.2 // por lo tanto c=2. b) Escribir “Introduzca el primer dato”.

Al ejecutarse. Cada opción está formada por uno o más números separados por comas. Si una opción incluye varios números. Esta instrucción permite ejecutar opcionalmente varias acciones posibles. Representación: Diagrama de flujo: 19 . se puede agregar una opción final. se evalúa el contenido de la variable y se ejecuta la secuencia de instrucciones asociada con dicho valor. dos puntos y una secuencia de instrucciones. Selectiva múltiple La secuencia de instrucciones ejecutada por una instrucción Segun depende del valor de una variable numérica. dependiendo del valor almacenado en una variable de tipo numérico. Opcionalmente. cuya secuencia de instrucciones asociada se ejecutará sólo si el valor almacenado en la variable no coincide con ninguna de las opciones anteriores. denominada De Otro Modo. la secuencia de instrucciones asociada se debe ejecutar cuando el valor de la variable es uno de esos números.

Selectiva repetitiva  Mientras Permite ejecutar una secuencia de instrucciones repetidamente hasta que la condición no se cumpla. Si se omite la cláusula Con Paso<paso>. Luego se incrementa la variable <variable> en <paso> unidades y se evalúa si el valor almacenado en <variable> superó el valor <final>. Si esto es falso se repite hasta que <variable> supere a <final>. Representación: Diagrama de flujo:  Para Ejecuta una sentencia de instrucciones un número de veces. la variable <variable> se incrementará en 1. Al ingresar al bloque la variable <variable> recibe el valor <inicial> y se ejecuta la secuencia de instrucciones que forma el cuerpo del ciclo.9. Representación: 20 .7.3.

Se ejecuta al menos una vez. El bucle Repetir – Hasta que se repite mientras el valor de la expresión booleana de la condición sea falso. Representación: Diagrama de flujo: 21 . justo la opuesta de la sentencia Mientras.Diagrama de flujo:  Repetir Esta estructura se ejecuta hasta que se cumpla una condición determinada que se comprueba hasta el final del bucle.

7.10. Sentencias – Resumen Sentencia Representación en PSeInt Representación en diagrama de flujo Sentencia de selección Selectiva Simple Doble Múltiple Repetitiva Mientras Para Repetir 22 .

es decir. las demás expresiones por valor. 7. Si el subproceso no recibe ningún valor pueden colocarse los paréntesis vacíos u omitirse. hasta el fin de la línea. Existen variantes para esta estructura.11. que podrán ser expresiones sólo si el tipo de pasaje es por referencia. el signo de asignación. no será tomado en cuenta al interpretar el algoritmo. Si no se indica. colocar directamente el nombre y los argumentos a continuación de la palabra clave Subproceso. Si la función no retorna ningún valor. la lista de argumentos entre paréntesis. finalizando la primer línea con el nombre del subproceso. Notaciones  Se pueden introducir comentarios luego de una instrucción. son equivalentes) seguida de la variable de retorno.  Note que no puede haber instrucciones fuera del programa. también puede utilizarse como operando dentro de una expresión. Todo lo que precede a //. El pasaje por referencia implica que si la función modifica el argumento. mientras que el pasaje por valor implica que la función opera con una copia de la variable (o el resultado de la expresión) que se utilizó en la llamada. pero si la función retorna algún valor. opcionalmente pueden agregarse las palabras claves Por Valor o Por Referencia para indicar el tipo de pasaje en cada argumento. se pueden declarar nuevas funciones o subprocesos en un algoritmo en Pseudocódigo.7. Además. se modificará en realidad la variable que se utilizó en la llamada. variables de retorno y argumentos son las mismas que para cualquier identificador en pseudocódigo. o en líneas separadas. aunque si comentarios. el nombre del subproceso. mediante el uso de la doble barra (//). Funciones / Subprocesos Si el perfil de lenguaje seleccionado lo permite (ver Opciones del Pseudocódigo). 23 . por lo que las modificaciones que aplique la función no se verán reflejadas fuera de la misma. pueden omitirse el identificador variable_de_retorno y el signo de asignación. Para invocar a la función se debe utilizar su nombre y entre paréntesis los parámetros. y finalmente. Una llamada puede ser en sí una instrucción.12. Las reglas para los nombres de subprocesos. La sintaxis para ello es la siguiente: Comienza con la palabra clave SubProceso (o Función. los arreglos se pasan por referencia.

NUMERICO/REAL.  Controlar el uso de.  Las estructuras no secuenciales pueden anidarse. Para esto se debe utilizar la palabra clave DEFINIR. CARACTER/TEXTO. Es decir.) al final de las instrucciones secuenciales.  Las constantes lógicas son: Verdadero y Falso. Por ejemplo: NombreCompleto &.Nombre+" "+Apellido.  Obligar a definir los tipos de variables: Si esta opción está deshabilitada no se puede utilizar una variable sin previamente definir su tipo. el punto (. Por defecto.. Personalización del lenguaje Hay ciertas características del pseudocódigo que pueden personalizarse para adaptarse a las preferencias de cada docente." del menú "Configurar". Si esta opción está seleccionada escribir o evaluar una expresión que involucra una variable sin inicializar genera un error en tiempo de ejecución. o nombres de variables. comenzando siempre con una letra.  Las constantes de tipo carácter se escriben entre comillas (“).  En las constantes numéricas. deben constar sólo de letras y números. pueden contener otras adentro. o FALSO según el tipo que corresponda. "".  Permitir concatenar variables de texto con el operador +: Siesta opción esta activada se puede concatenar el contenido de dos variables de tipo carácter con el operador +. Los tipos posibles son: ENTERO.. En este caso asumen el valor por defecto 0. Ejemplo: "DEFINIR X COMO REAL". LOGICO. si está desactivada el uso del punto y coma es opcional. PSeInt utiliza la configuración más flexible y natural posible. Si ninguno de los perfiles resulta adecuado se puede utilizar el botón "Personalizar" ubicado debajo de la lista de perfiles para definir una por una las siguientes posibles personalizaciones:  No permitir utilizar variables o posiciones de arreglos sin inicializar: Si esta opción está deshabilitada se puede utilizar variables sin inicializar (que nunca fueron leídas o asignadas en expresiones o para mostrar en pantalla.) es el separador decimal. 24 . 7. pero ofrece una lista de configuraciones predefinidas denominadas "perfiles". Se puede acceder a la lista de perfiles desde el ítem "Opciones del Lenguaje.  Los identificadores. al final de sentencias secuenciales: Siesta opción está activada obliga a colocar punto y coma (.13. pero la estructura contenida debe comenzar y finalizar dentro de la contenedora.

separar la expresiones/variables en una lectura/escritura con espacios en lugar de comas. etc. mientras que en caso contrario el primero será el 1 y el último el N  Permitir utilizar variables para dimensionar arreglos: Si esta opción está seleccionada se puede utilizar una variable o una expresión que involucre variables para dimensionar un arreglo (por ejemplo.  Utilizar arreglos en base 0: Si esta opción esta activada. mientras que los lenguajes compilados suelen exigir que el tamaño de los arreglos estáticos sea una constante (por ejemplo. como sucede al activar esta opción. pero no son posibles o son incompletas en un lenguaje de programación real. Habilitar funciones para el manejo de cadenas: Esta opción habilita el uso de las funciones Longitud. Muchas de las variaciones de la sintaxis resultan en construcciones más naturales en un verdadero pseudocódigo.  Utilizar sintaxis flexible: Esta opción habilita variaciones opcionales en la sintaxis: omitir la palabra HACER en un bucle MIENTRAS o PARA. ~ y % respectivamente. Subcadena.). utilizar la estructura REPETIR-MIENTRAS QUE como variante de REPETIR-HASTA QUE. agregar la palabra OPCION. O. utilizar la palabra DESDE para indicar el valor de inicio de un ciclo PARA. Además. |.y con :=) siguen siendo válidas. O. ya que en muchos lenguajes no se utiliza el mismo operador para asignar y comparar.  Permitir asignar con el signo igual (=): Esta opción habilita laasignación con el signo igual (Ejemplo: x=0. elprimer elemento de un arreglo de N elementos será el 0 y el último el N-1. separar los valores para un mismo caso en un según con la palabra O. ~ y %: Con esta opción habilitada PSeInt acepta las palabras clave Y.  Permitir las palabras Y. Este suele ser el caso de los lenguajes interpretados. Minúsculas y Concatenar. NO y MOD para los operadores &. las otras dos sintaxis de asignación (con <. 25 . que operan sobre cadenas de caracteres. Notar que en este caso estas palabras serán palabras reservadas y no se podrán utilizar como nombres de variables. NO. Mayúsculas. C y C++). |. CASO o SI ES antes de un caso en un SEGUN. y MOD como sinónimos de los operadores &. permite utilizar acentos y eñes en los nombres de variables. se puede pedir al usuario del programa el tamaño leyendo un número y utilizarlo luego para crear el arreglo). Vea funciones para una mejor descripción de las mismas. En muchos casos esta sintaxis de asignación no se permite.  Permitir definir funciones/subprocesos: Esta opción habilita el uso de las palabras claves SubProceso y Función (ambas completamente equivalentes) para permitir definir nuevas funciones en pseudocódigo. En cualquier caso.

"X ES IGUAL A Y". "X NO ES MULTIPLO DE 5". Esta opción activa además el uso de palabras clave para reemplazar operadores. etc. por lo que también se puede activar/desactivar directamente desde el menú Configurar mediante el ítem Usar diagramas de Nassi-Schneiderman. de forma que el usuario pueda alternar fácilmente entre uno y otro tipo de diagrama si lo desea. "X ES ENTERO". Esta opción no modifica el lenguaje.  Usar diagramas de Nassi-Schneiderman: Si esta opción estádeshabilitada el editor de diagramas flujo graficará este tipo de diagramas en lugar de los diagramas de flujo clásicos utilizados originalmente por PSeInt. 26 . Permitir condiciones en lenguaje coloquial: Esta opción permite expresar las condiciones en un lenguaje más coloquial con construcciones como "X ES PAR".

8. Ejercicios resueltos en PSeInt 8. El algoritmo debe determinar cuál es el mayor y menor número. Solución: 27 .1. Estructuras asignativas y selectivas 8. b y c.1. Escribir un algoritmo que permita leer tres valores y almacenarlos en las variables a. los tres datos ingresados deben ser diferentes y enviar un mensaje si los datos son iguales.1.

así: niño.4 a) 13/3+m<. asumiendo los valores iniciales y declaraciones respectivas: dato <.K b) 2*3*2 – dato*3 c) k/5*2 + m /3 d) ((9+3)*5) / m mod 7 +1 Solución: 8.  Joven de 18 a 25 años.3.Escribir un algoritmo que muestre un mensaje con el nombre correspondiente de la persona de acuerdo con su edad. m <.16.Evaluar las siguientes expresiones.2.3.8. adolescente.1. dependiendo de su edad. Solución: 28 .1. joven o adulto.  Mayor si es mayor de 25 años.  Adolescente entre 14 y 18 años. según la siguiente información:  Niño es menor que 14 años. k <.

1.1. Solución: 8. Solución: 29 .Escribir un algoritmo que verifique si la fecha ingresada es correcta.Escribir un algoritmo que permita obtener las raíces de una ecuación cuadrática.4.5.8.

c) La tarifa en caso de ser domingo: • En el turno diurno incrementara en 200 pesetas. Se desea escribir un algoritmo para calcular el jornal diario de acuerdo con los siguientes puntos: a) La tarifa de las horas diarias es de 500 pesetas.7.6.Escribir un ALGORITMO que lea las coordenadas de dos puntos en el plano cartesiano y muestre la ecuación general de la recta: ax + by + c = 0 Solución: 30 .8.1. Solución: 8.Los empleados de una fábrica trabajan en dos turnos: diurno y nocturno. • En el turno nocturno incrementara en 300 pesetas.1. b) Las tarifas de las horas nocturnas es de 800 pesetas.

en este último caso.8.Escribir un algoritmo para calcular la desviación estándar de tres números. Solución: 8. indicando.1.1.9.8. cual es par. Elaborar un algoritmo que permita indicar si los dos son pares o impares o si uno de ellos es par. Solución: 31 .Ingresar dos números enteros por teclado. según la siguiente formula: (𝑥1 −𝑚)2 +(𝑥2 −𝑚)2 +(𝑥3 −𝑚)2 Desviación estándar = √ 3−1 Donde m es la media aritmética de los tres números ingresados desde el teclado.

cuando su promedio es mayor o igual a 18. dadas cuatro calificaciones de un alumno. así: Inicial De 3 a 5 años Primaria De 6 a 11 años Secundaria De 12 a 16 años Universitario De 17 a 25 años Maestría y Doctorado Mayor de 25 años Solución: 8. Pésimo. si su promedio esta entre 8 y 10. si su promedio esta entre 11 y 14. Bueno.11. Escriba un algoritmo que muestre un mensaje con el nombre del nivel de estudio de la persona de acuerdo con su edad.1. Escribir un algoritmo que. calcule la calificación promedio y muestre un mensaje indicando si el alumno es: Excelente. inclusive. cuando su promedio esta entre 15 y 17. si su promedio es inferior a 8 32 . Regular. inclusive. Deficiente.1.10.8. inclusive.

Solución 33 . Diseñar un algoritmo que imprima la suma de los N primeros números naturales Solución: 8.1. obtenga el total de nómina de la misma.12. que dados como datos los sueldos de 10 trabajadores de una empresa. Solución: 8.1. Construya un algoritmo.13.

1.15.  Si N termina en 3 o 9.1.14. 34 . Solución: 8. pero no de 400.  De otra manera mantiene su valor. se cambia por la tercera parte. 1. Diseñar un algoritmo para identificar si un año es o no bisiesto. Desarrollar un algoritmo que lea un entero positivo N y efectué. Solución: 8.16. los siguientes cálculos:  Si N terminar en 0. por ejemplo si el número es 2457.1. un año bisiesto es aquel que es múltiplo de 4 y 100. 5 u 8 se cambia por el doble. el resultado seria 2500. Escribir un algoritmo que permita leer un numero entero positivo de cuatro dígitos y se desea redondear el número a la centena más próxima.8.

Solución: 35 .

Estructuras Repetitivas 8.2. Solución: 36 .1.Escribir un algoritmo controlado por un menú que permita calcular el área de un cuadrado. rectángulo o triángulo de acuerdo a la opción seleccionada.8. círculo.2. Implementar también una opción “finalizar” que permita abandonar el algoritmo.

1 + 𝑋 (𝑋 + 2)2 𝑋 + 3 𝐹(𝑋) = + − 1 − 𝑋 (𝑋 − 2)2 𝑋 − 3 Solución: 37 . . Calcular el promedio.2. de cada término y de la función. Eliminar la nota menor. Solución: 8. Evaluar los resultados de la siguiente función matemática. Escribir un algoritmo para calcular el promedio de prácticas de un curso de matemáticas.2. . Mostrar los valores de X. Considerar las siguientes actividades previamente: . Leer las notas y publicar la última. para valores enteros de X que varían desde 0 hasta 15.8.2.3.

2. Solución: 8.Escribir un algoritmo que lea un valor entero no negativo e imprima en líneas separadas los dígitos pares e impares y los dígitos del valor entero de derecha a izquierda. Solución: 38 .8.4. 3993.Escribir un algoritmo que permita determinar si un número entero ingresado por el usuario es capicúa.2. 1420241 etc. Se llama capicúa al número que de izquierda a derecha se lee igual que de derecha a izquierda.5. por ejemplo 212.

6. Escriba un algoritmo que determine el número de votantes que obtiene cada partido. 39 .Diseñar un algoritmo que muestre todos los números primos encontrados entre los 1000 primeros números enteros positivos. si contiene un número 2 corresponde al partido 2.8. etc. Solución: 8.8.2.Diseñar un algoritmo para determinar la suma de los números cuya última cifra es siete y que están comprendidos entre los números m y n ingresados por el usuario. Solución: 8. Si la papeleta contiene un número 1 corresponde al partido 1. sabiendo que cada papeleta (voto) contiene un único dígito del 1 al 5.2.7.2.En unas elecciones se presentan cinco partidos políticos.

2.Solución: 8. la suma de dígitos pares e impares y el número invertido.9. mostrar su cantidad de dígitos pares y cantidad de dígitos impares. es decir sólo se permite el ingreso de números positivos. 40 . La entrada de datos debe ser controlada por un número negativo.Escribir un algoritmo que permita ingresar una cantidad de números enteros y luego para cada número ingresado.

a continuación divida el número menor (el divisor) por el residuo. continúe este proceso (dividiendo el último divisor por el residuo) hasta que la división sea exacta. El último divisor será el MCD.10. Para tal fin. Determine el Máximo Común Divisor de dos números naturales.Solución: 8. divida el mayor de los números entre el menor.2. Solución: 41 .

8.2.11. Diseñar un algoritmo que permita calcular la suma acumulada de la siguiente
1
serie: ∑𝑛𝑋=1
𝑋2
Solución:

8.2.12. Escribir un algoritmo que dé como resultado el factorial de un número.

Solución:

8.2.13. Escribir un algoritmo que calcule la serie exponencial con tres dígitos exactos:
𝑛
𝑥
𝑋𝑖
𝑒 =∑
𝑖!
𝑖=0

42

Solución:

8.2.14. Escribir un algoritmo que permita el ingreso de 15 notas y determine el
promedio, la máxima y la mínima nota.

Solución:

8.2.15. Escribir un algoritmo para leer el sueldo de 10 trabajadores, calcular el
promedio de los sueldos, además reportar a cuánto asciende el sueldo mas alto.

43

Solución:

8.2.16. Escriba un algoritmo que permita leer una serie de enteros y contar el número
de valores ingresados y la suma de los cuadrados. Se utiliza un valor centinela
que determine el final de entrada de datos

Solución:

1
8.2.17. Elaborar un algoritmo que calcule la serie: ∑𝑋=𝑛
𝑋=1 𝑋

44

2. Diseñar un algoritmo que permita ingresar un numero entero compuesto por más de un digito y luego mostrar:  Suma de dígitos pares  Sumar de dígitos impares  Cantidad de dígitos impares  Cantidad de dígitos pares  Cantidad de dígitos totales 45 .19.2.18. Solución: 8.Solución: 8. Diseñar un algoritmo que permita ingresar solo numeros de 0 a 20 y nos permita obtener el promedio de los dígitos del número ingresado.

Solución: 46 .

2.3.Escribir un algoritmo que lee N datos enteros y los ordene en orden ascendente. Solución: 47 . Luego determine el promedio eliminando la nota menor.1.3.Se cuenta con un archivo de datos que contiene n NOTAS positivos. Solución: 8.3. Escribir un algoritmo para encontrar la nota mayor y menor. a razón de uno por línea. Arreglos 8.8.

considerar un número igual a cero para finalizar el ingreso de datos.3.8.3.Escribir un algoritmo que permita calcular la media de una serie de números positivos y sus respectivas desviaciones estándar de cada número entero positivo con respecto a su media. el programa debe mostrar la suma.3.4.Escribir un algoritmo que dé como resultado los n primeros términos de la serie de Fibonacci. Solución: 48 . Solución: 8. Así mismo.

Solución: 8.Escribir un algoritmo que dé como resultado la cantidad de números capicúas que hay dentro de un rango de números.Escribir un algoritmo que permita obtener:  Números pares y positivos.7.8.3. Solución: 8.6.5. 49 .3.  Números pares y negativos.Escribir un algoritmo que permita calcular la suma de los elementos de la diagonal de una matriz.3.

85 cm de estatura. 50 .65 y 1. Haga un programa que muestre ambos listados y muestre también la estatura promedio de las candidatas seleccionadas por la junta.Para un reinado popular se ha presentado una cantidad desconocida de candidatas (se exige máximo 250 damas).8. pero solo selecciona a aquellas cuya estatura oscila entre 1.Solución: 8. La junta directiva del reinado decide inscribirlas a todas. Dicha junta pasa de dos listados una con los nombres y otra con las estaturas dado que el jurado decide seleccionar de estas damas a las más altas (las que están por encima del promedio).3. inclusive.

Diseñar un algoritmo donde se ingrese las temperaturas de 7 días y determine.3.Solución: 8. 51 . la temperatura promedio. los días con temperaturas menores a la temperatura promedio y cuál fue el día más cálido.9.

10.3. Diseñar un programa que permita ingresar una cantidad de números enteros y luego para cada número ingresado mostrar su cantidad de dígitos.Solución: 8. Solución 1: 52 .

Diseñar un algoritmo que permita ingresar una cantidad de números enteros y luego para cada número ingresado. mostrar su cantidad de dígitos Solución: 8.3. Escribir un algoritmo que permita ingresar un matriz de orden nxn y luego mostrar:  El elemento mayor de la matriz  La suma de los elementos de la matriz  La suma de la diagonal 53 .12.11.3. Solución 2: 8.

3. 8.3. 54 . Escribir un algoritmo que indique si un elemento de una matriz está repetido.13.14. Escribir un algoritmo que permita ingresar N números y luego determinar la cantidad de los números que se repiten y los que no repiten. Solución: 8. además de determinar la cantidad de veces que se repite un elemento.

Sin embargo si el paciente tiene posibles síntomas de enfermedad pasa a medicina preventiva (sin importar edad. Para pacientes sin enfermedades.9 o tiene dolor agudo o tiene presión muy baja o muy alta o pesa por más o menos 30 kilos a lo normal. o su presión está por debajo de 90/60 o arriba de 120/180.8 o tiene síntomas de algún dolor.5 y 37. Todo paciente con una señal clara de enfermedad pasa directamente a consulta médica: si tiene temperatura entre 37. paciente grave pasa a internarse o paciente muy graves pasan directamente al hospital de especialidad. Finalmente pacientes con enfermedades muy graves pasa directamente al hospital de especialidad.4 y no tenga síntomas de dolor. además su presión este entre 90/60 y 120/80 y que tiene un peso no mayor a 5 kilos de su peso normal. sexo): su temperatura está entre 37. paciente pasa a consulta médica. o tiene dolor agudo o tiene presión muy baja o muy alta o pesa más o menos de 20 kilos a lo normal. que lo clasifique como: paciente sin enfermedad. Para ir a casa necesita (sin importar edad. o tiene más de 7 kilos por abajo o por debajo o por arriba de lo normal. 55 .3.5 y 37.9 o tiene dolor agudo y tiene presión muy baja o muy alta a cualquier peso.8. sexo) que su temperatura este entre 36. Hacer un programa que solicite la información de un paciente. paciente pasa a medicina preventiva.9 y 38.8. si tiene temperatura mayor a 38. También pacientes con enfermedades graves pasa directamente a internarse: si tiene temperatura mayor a 38.15.

 La elaboración de un programa requiere un proceso creativo.2. BORLAND C++ 9. Borland C++ es un lenguaje de programación derivado de C++.Compilación y ejecución del programa .2.Codificación del programa .Diseño del algoritmo (Diagramas de flujo . La tercera etapa (codificación) se implementa el algoritmo en un código escrito en un lenguaje de programación. 9. utilizada en la presente década para realizar aplicaciones en internet.Pseudocodigo – Pseint) .Documentación Las dos primeras etapas conducen a un diseño detallado escrito en forma de algoritmo. Por último se realiza la documentación del programa. 9.Análisis del problema . La compilación y ejecución traduce y ejecuta el programa.1. Programación con Borland C++ El lenguaje de programación C++ es un lenguaje de alto nivel que utiliza aplicaciones de ingeniería como aplicaciones administrativas. . ¿Qué datos de entrada y de salida intervienen en el proceso?  Requerimientos Externos (interacción con el usuario y con otras aplicaciones) 56 . Desarrollado por la compañía Borland Software Corporación.  La solución de un programa requiere las siguientes etapas. La evolución del C++ ha continuado con la aparición del Java. reflejando las ideas desarrolladas en las fases de análisis y diseño.Verificación y depuración del programa . Etapas para la elaboración de un programa  El proceso de solución de un problema en la computadora conduce a a la escritura y la ejecución del programa en la misma.1.Análisis del problema Identificar los requerimientos internos y externos del problema:  Requerimientos Internos (gestión de datos) ¿Qué debe hacer el programa?.9. En la etapa de verificación y depuración el programador busca errores de las etapas anteriores y los elimina.

Codificación de un programa Las sentencias (acciones) definidas en el algoritmo se deben convertir a a instrucciones (ordenes) a la computadora mediante un lenguaje de programación de alto nivel. 9. Uso de herramientas para el diseño de algoritmos:  Diagramas de flujo (ordinogramas)  Pseudocódigo (lenguaje intermedio) .PSeint 9. ¿Quién será el usuario de la aplicación? 9.2.2. ¿En qué máquina y sistema operativo se debe ejecutar?.3. Durante el proceso de compilación se determinan los errores de sintaxis del programa informático.Diseño de un algoritmo  Buscar una solución informática del problema planteado  Uso de algoritmos Establece de manera genérica la secuencia de pasos o acciones que resuelve un problema determinado.  Compilador Es un programa que se encarga de la traducción del lenguaje simbólico al lenguaje de máquina. Si hay errores es preciso corregir los errores y volver a compilar. 57 .Compilación y ejecución de un programa  Compilación ( Proceso de Traducción) Es el proceso mediante el cual se lleva un programa escrito enlenguaje de alto nivel a lenguaje de máquina.2.4.2.

h 58 . llamados datos de prueba.3. 9. Estructura de un programa con Borland C++ El esquema de un programa en Borland C++ se compone básicamente de las siguientes partes:  Directivas definidas.Directicas Definidas Las directivas definidas son instrucciones especiales para el compilador del borland C ++ Las directivas son generalmente #include y #define (indica al compilador que incluya el contenido del archivo referenciado). Los datos de prueba deben cubrir una amplia gama de posibilidades que incluye datos normales. datos extremos y datos especiales.3.Verificación y mantenimiento del programa La etapa de la – verificación – verifica el correcto funcionamiento del programa con una amplia variedad de datos de entrada. Estos archivos se denominan archivos de cabecera y tienen una extensión . declaradas por el usuario.  Una función principal main()  Declaraciones y definiciones de funciones secundarias (sentencias).2. 9. El mantenimiento de los programas consiste en la actualización o corrección de los programas no detectados en las fases anteriores.1.5. Estructuras básicas del programa 9.

cin y cout. m.3. n.3. Con fines de documentación sepueden añadir comentarios a un programa. Al texto que sigue a los caracteres “//“ hasta el final de la línea. Cout<<“suma=“<< resultado.La función principal MAIN() Los programas de C++ contienen una función main() la cuales llamada función principal y es el punto inicial de entrada al programa. Las llaves agrupan sentencias (bloque de sentencias): { clrscr(). 9.La sentencia Todas las sentencias de un programa en el lenguaje C++ deben finalizar en punto y coma. .h> //incluye al archivo fuente C++ de las librerías matemáticas. Al texto de una o más líneas encerrado entre “/ * “y “/ * “.h> // incluye al archivo fuente el manejo de pantalla.3.  #include<iostream. } Las comas separan elementos iguales: int x. Las sentencias incluidas entre las llaves { } se denominan bloque y en el caso de la Función main() estas sentencias se denominan cuerpo del programa.  Comentarios: Los comentarios no generan código de máquina y son ignorados por el compilador.Ejemplos:  #include<math.h> // proporciona la información necesaria sobre las funciones de biblioteca. 9. getch(). Se consideran como comentarios: . 59 .2.  #include<conio.

area_triangulo. números o símbolo de subrayado. tipos. el compilador entiende que son variables diferentes y no iguales. Más ejemplos de identificadores válidos: Nota. Las letras mayúsculas y las letras minúsculas se consideran como diferentes. . nota. . Reglas para construir identificadores válidos: . dias_mes  Palabras reservadas Las palabras reservada son palabras seleccionadas por el lenguaje de programación para un propósito especial y sólo puede usarse en una forma específica. Las palabras reservadas del C++ se escriben en letras minúsculas. Los identificadores Los identificadores son nombres usados para identificar a las variables. funciones y etiquetas en un programa. los caracteres siguientes pueden ser letras. etc. No se permiten espacios en blanco. por ejemplo PROGRAMACION es diferente de Programación y a la vez de proGraMacion. ya que para estas. . suma. Primer carácter debe ser una letra o el carácter subrayado. La longitud máxima es de 32 caracteres (estándar). como: do o if. las constantes. 60 . El nombre del identificador no puede ser una palabra reservada.

Los tipos de datos más comunes son: entero (int). alfabéticos o audio. Tipos de datos básicos: Tipos de datos extendidos 61 . Tipos de datos en C++ El objetivo de todos los programas es procesar datos. real (float) y carácter (char). los tipos de datos son usados para definir el tipo de variables. Tipo de dato se define como un conjunto de valores y un conjunto de operaciones que pueden aplicarse a estos valores.4. sean numéricos. etc. Es fundamental para este objetivo la clasificación de los datos en tipos específicos. de constantes.9.

char respuesta. float. Nombre: Especifica la posición de memoria asignada Tipo: Especifica si la variable contiene un número entero.4. Dirección: Especifica el lugar donde se almacena la variable. carácter u otro tipo de dato. Ejemplo: char nombre [35]. tipo_de_dato: Es una palabra reservada que indica el tipo de dato que va almacenar una variable (char. int. Una variable tiene un nombre. un valor y una dirección.  Declaración de una variable Una variable antes de ser utilizada debe ser creada en la memoria del computador mediante su declaración. etc). Si las variables son del mismo tipo se pueden declarar en simultáneo pero separadas por una coma.Variable La variable es una localización en la memoria del computador que guarda información para ser procesada por la computadora. Valor: Representa el contenido de la variable en un momento dado. Nota: Una variable también puede ser inicializada al momento de su declaración. Int a. Declaremos tres variables una entera “a". Declaración de una variable: tipo_de_dato (nombre de Variable). float b.9. ejemplo: tipo_de_datonombreDeVariable = valor_inicial. 62 . nombreDeVariable: Es el nombre elegido para la variable. un tipo. Representan a identificadores que cambian su valor durante la ejecución de un programa. número real.  Declaración de Variables de cadena de caracteres char cadena [tamaño]. un carácter “respuesta” y una de tipo real “b”.1.

Tipos de operadores 9. #define saludos “Buenos tardes” 9. Cadena: Es el nombre arbitrario elegido para la variable de cadena.Operadores aritméticos 63 . #define raya “------------”. Tamaño: Es el tamaño de la cadena (debe ser uno o más que el número total de caracteres). Tipo_de_dato es el tipo de la variable (int.14. . etc) . char. Valor_constante es el valor asignado a la constante Ejemlos: Const int mes=30.1.5.4.Una cadena también puede ser inicializada al momento de sudeclaración así: Char cadena [5] = “cobre”.Constantes Las constantes representan a identificadores que no cambian su valor en el desarrollo de un programa.  Declaración de una constante Const tipo_de_dato nombre = valor_constante. #define nombreConstante valor Ejemplos: #define pi 3.  Directiva #define La directiva #define actualmente es poco usada en C++.14. Nombre es el nombre identificado para la constante . const float pi=3. En C++ se pueden declarar las denominas constantes usando el calificador “const” Las constantes también se conocen como variables nombradas o variables de sólo lectura. 9. en su lugar se usa const para declarar las constantes que se van a utilizar en un programa.5. float.2. constcharrespuesta = ‘S’.

la evaluación será de izquierda a derecha. Si existen paréntesis anidados. Evaluación de expresiones  Regla de jerarquía de operadores aritméticos Reglas: . . Si varios operadores están en el mismo nivel de jerarquía. Ejemplos: 10 % 3 respuesta 1 8 / 2 * 3 – 2 respuesta es 10 8 + 5 * 7 % 2 * 4 respuesta es 12 64 . se evalúa primero la expresión en el paréntesis más interno.

3.9. // incrementa valor en 1 65 . se reemplaza por la expresión n++ o ++n n = n . C++ proporciona dos operadores unitarios.1.o .5.Operadores de lógicos 9.2.Operadores de incremento o decrecimiento Los casos en que una variable es incrementada o disminuida en uno.-n Ejemplo: numero = valor ++.-) n = n + 1. El operador de incremento (++) y decremento (.5.5.. se reemplaza por la expresión n.Operadores de relación 9.4.

Entradas básicas El flujo cin. es un objeto de salida que envía datos introducidos en él al dispositivo estándar de salida.h>: Es un comando preprocesador que utiliza la palabra reservada include con un signo de número (#) y ejecuta alguna acción antes que el compilador traduzca el programa fuente a código de máquina. La forma más simple de salida se efectúa mediante el símbolo deinserción: “<<” (enviar a).1. La entrada y salida (input / output) en C++ se realiza utilizando los siguientes flujos: cin y cout 9.9. 9. #include<iostream.6.h que debe incluirse en todo programa.6. La forma más simple de leer se efectúa mediante el símbolo de extracción: “>>” (obtener de) cin>> variable. 66 . este dispositivo de salida es generalmente una pantalla de video. Cualquier entrada desde el teclado es enviada primero al flujo cin. Ejemplos: cout<< “es primo”. Entradas y salidas básicas La información que necesita el compilador sobre cin y cout se encuentra en el archivo de cabecera iostream. cuyo nombre deriva de Console OUT put. luego el programa puede extraer (leer) datos desde este flujo.Salidas básicas: El flujo cout. cin es un flujo de datos que conecta el teclado con el programa.6. cout<< “Hola Amigos”. Ejemplo: cin>> nota. se usa para introducir datos en un programa mientras se está ejecutando.2.

getch() . o por ejemplo un archivo en disco a la impresora. cout<<"ingrese b:" .h> #include <conio.7. Secuencia de escape Las secuencias de escape proporcionan un determinado significado al enviar ciertos caracteres especiales a la pantalla. clrscr (). cout<<"La suma es:" << suma << “\n”. cout<< "La resta es:" << resta << “\n” . resta = a-b . Ejercicio: Usaremos la entrada y salida básica #include <iostream. cin>>b. 67 .h> void main () { int a. cout<< "El producto es:" << producto << “\n”. cout<<"ingrese a:" . suma = a+b . producto = a*b . suma resta producto. } 9. b. Todas las secuencias de escape comienzan con el carácter barra invertida “\ “. cin>>a.

por ejemplo si se requiere especificar el número de decimales de un número real o ajustar los datos a un ancho predeterminado.Manipulación y formato de los datos de salida Con la finalidad de mejorar el aspecto de la salida de los programas debemos utilizar los manipulares de salida. La secuencia de escape \n presenta el cursor en la siguiente línea. Los manipulares manipulan las salidas de los datos de la forma que el usuario lo desee.7. 9. Tabla de manipuladores de flujo Entrada/Salida 68 .h> en el programa.Ejemple: cout<< “CALCULAR PROMEDIO DE NOTAS\n”. Estos manipuladores se usan dentro del cout y debe incluir el archivo #include<iomanip.1.

8.h 9. La coordenada X indica la columna a desplazar. // desplaza el cursor a la columna 20.La función GOTOXY() La función gotoxy (x. Expresión: Puede ser tan simple como una constante o tan compleja como una combinación de operadores con datos evaluados para producir un valor. fila 10 La información que necesita el compilador para procesar dicha sentencia se encuentra en el archivo de cabecera conio. Ejemplo: gotoxy(20. y de una ventana de texto. La forma general de una sentencia de asignación es: variable = expresión. Variable: Es el nombre de la variable que recibe la asignación. la coordenada Y nos indica la fila hacia donde se desplazará el cursor. Sentencia de asignación: Las sentencias de asignación permiten a las variables almacenar el valor de una expresión.2.7. Tabla de indicadores de formato para usarse con setiosflag 9. 69 .y) ubica el cursor en la posición x.10).

precio = precio * tasa. 9.Variables de asignación Las sentencias de asignación. pueden escribirse usando los siguientes atajos de operadores de asignación. es equivalente a suma += 10.1. Ejemplos: suma = suma + 10.9. es equivalente precio *= tasa. Operadores de asignación 9.8. Funciones Comunes en C++ 70 . que usan la misma variable en ambos lados del operador de asignación.

.-- <sentencia _n >. . es decir una sentencia después de la otra. <sentencia_1>. desde el inicio hasta el final del programa.10... <sentencia_2>. Los procesos de control pueden ser:  Procesos Secuenciales  Procesos Selectivos  Procesos Repetitivos 9..1. 71 .  Sentencia de asignación: n = n +1. se escribe en módulos.10...  Sentencia de salida: cout<<n . en el orden en que son colocadas dentro del programa.. Procesos secuenciales Definido como una secuencia finita de sentencias o instrucciones hasta obtener un resultado coherente.. Procesos de control Se tratara la sintaxis de los principales procesos de control del Lenguaje de Programación Borland C++. Su ejecución se realiza en el orden en que se presentan las SENTENCIAS. se componen básicamente de algoritmos y estructuras de datos que en su conjunto forman un programa..  Tipos de sentencias secuenciales:  Sentencia de entrada: cin>>n . ).9. Un proceso secuencial está formada por una sola sentencia y se ejecutan en secuencia.. En C++ estas son sentencias simples que terminan en punto y como ( .

o Si al evaluar la expresión lógica es falsa sólo se ejecuta la sentencia_2. Son ejemplos de expresiones de relaciones los siguientes: (edad< 40) (indicador != n) (n == 818252)  Proceso Selectivo Simple: Sentencia if (Una alternativa) if(expresión lógica) sentencia . Una expresión lógica es una asociación de datos con operadores de relacional y/o lógico. Ejemplo: if (nota > 10) cout<< “curso aprobado” .9. Procesos Selectivos El proceso selectivo se utiliza para alterar el flujo de control secuencial de un programa.La evaluación de la expresión lógica representa un sólo valor Verdad o Falso. donde cada dato puede ser una constante o una variable y los operadores pueden ser de relación y/o lógicos. Sentencias If La sentencia selectiva simple evalúa una (expresión lógica). o Si la expresión lógica es verdadera se ejecuta la sentencia_1 y luego lasentencia_2. 72 .2.10. . mediante la evaluación de una expresión lógica.

3. else sentencia_2 . es decir. la cual está formada por varias expresiones simples conectadas por los operadores lógicos. Siempre se usa paréntesis encerrando a la expresión lógica a evaluarse. . o Si la expresión lógica es verdadera se ejecuta la sentencia_1. La expresión puede ser simple (una condición) o compuesta. Sentencias If-else anidadaas 73 . 2. Ejemplo: if (( numero%2)==0) cout<< “El numero es par” . Las estructuras if se pueden anidar. puede existir un proceso if dentro de otro if. Sentencia If-else La sentencia selectiva doble evalúa una expresión lógica. . o Si la expresión lógica es evaluada como falsa se ejecuta la sentencia_2. Observaciones 1. . else cout<< “El numero es impar” . La expresión lógica es una expresión que será evaluada como verdadera o falsa. Proceso Selectivo Doble: Sentencia if-else (Dos alternativas) if (expresión lógica) sentencia_1 .

if(expresión lógica 1) sentencia1. if (expresión lógica 3) sentencia3. break. } . Sentencia switch 74 . break.  Proceso Selectivo Múltiple: Sentencia switch (Varias alternativas) switch(selector) { case valor_ 1: <sentencia_1>. case valor_ 2: <sentencia_2>. else (expresión lógica 2) sentencia2. break. case valor_ n: <sentencia_n>. default <sentencia_default> .

Reglas de uso 1. La sentencia swith requiere un valor compatible con entero. 2 y 3”. La sentencia switch se utiliza cuando la selección se basaen el valor de una variable Simple o de una expresión Simple denominada expresión de control o selector.La sentencia selectiva switch se utiliza para seleccionar una de varias alternativas. } . La variable selector o expresión de control no puede ser: string o real. El final de cada sentencia alternativa del case está marcado típicamente con un break. se escribe el programa de la siguiente forma: Switch (a) { case1:case2:case3: cout<<“sentencia para valor 1. 4. El valor del selector debe ser entero. 75 . una llamada de función o una expresión. Dicha sentencia permite que el programa abandone la estructura switch omitiendo los demás casos. una constante. La etiqueta default indica al programa lo mismo que la sentencia else en la secuencia de if anidados. El valor después de cada etiqueta case debe ser una constante. 2. 5. se ejecuta cuando el usuario edita un valor que no está en la lista de valores. Observaciones Cuando se requiere realizar una misma acción para distintos valores de la expresión evaluada. El valor puede ser variable. break. es decir. break. . 3. Case 4: cout<<“sentencia para valor 4”.

Ejemplo: Switch (día) { case 1: cout<<“Lunes” . case 4: cout<<“Jueves” . y se llama ITERACCIÓN al hecho de repetir la ejecución de una secuencia de sentencias. break . default: cout<<“No es un día de la semana” .3. case 2: cout<<“Martes” . break . case 3: cout<<“Miercoles” . break . Poseen una sola entrada y una sola salida. } 76 . } 9. case 7: cout<<“Domingo” . case 5: cout<<“Viernes” . break case 6: cout<<“Sábado” . mientras se cumple una determinada condició (expresión lógica). break .10. En los procesos repetitivos se presentan las siguientes sentencias:  Sentencia while (Bucle con entrada controlada) while (condición) sea verdad { Sentencia (s) . break . Los procesos que repiten una secuencia de sentencias un número determinado de veces se denomina bucle o lazos. Procesos repetitivos Corresponde a la ejecución repetida de una secuencia de sentencias. break .

que se ejecutará en secuencia repetitiva hasta que. Sentencia do – while La sentencias do . Sentencia while La sentencia while permite evaluar una condición y ejecuta el cuerpo del bucle si la condición (expresión lógica) es verdad. Si la condición de control es falsa no se ejecuta el cuerpo del bucle. sentencia_2.  Sentencia do – while (Bucle con salida controlada) do { sentencia_1. } while (condición) (“sea verdad”) . . la condición lógica tome un valor de verdad. 77 . sentencia _n.while evalúa una condición (expresión lógica) después de ejecutar el cuerpo del blucle do.

en caso contrario se termina la estructura y se transfiere el control a la sentencia siguiente. Si es verdadera. Sentencia for Inicialización:Indica las condiciones iniciales cuando se inicia el bucle. <expresión lógica>. <sentencia_2>. se ejecuta el bloque de instrucciones. El cuerpo del bucle se ejecuta por lo menos una vez porque la condición se evalúa después de la ejecución del bucle repetitivo. } .  Sentencia for (Bucle con numero definido de iteraciones) for (inicialización. Contador: Es la instrucción a ejecutarse cuando se termina cada iteración. <Condición>: Se evalúa antes de cada iteracción. <sentencia_3>. contador) { <sentencia_1>. 78 .

 Características . Estos tipos de variables se llaman variables escalares y son de tipo: entero.11. estos a su vez se diferencian por un índice.Los elementos están almacenados en posiciones contiguas de memoria.  Datos estructurales DATOS ESTRUCTURADOS: ESTÁTICOS .9. ARREGLOS (arreglos) .1. Estructura de datos – Arreglos 9. ARCHIVO (File) 9.2. Son tipos de datos simples cuyo valor no se puede subdividir. REGISTRO (Struct) .11. boolean y carácter. 79 .11. con un único nombre de variable. Introducción a las estructuras de datos  Datos simple Las variables utilizadas hasta hoy tienen una característica común: cada variable sólo puede utilizarse para almacenar un sólo valor. real.Todos sus elementos tienen un mismo nombre . En C++ el primer índice de un arreglo es 0 y el último índice es igual al número de elementos – 1. El tipo de elemento almacenado en el arreglo puede ser cualquier tipo válido de C++. CADENAS (char) . Arreglos unidimensionales (vector o lista) Es una estructura de datos en la que se almacenanuna colección de datos del mismo tipo.

Reserva espacio en memoria para 5 números enteros ubicados en posiciones contiguas como puede observarse en la siguiente representación gráfica. char. 80 . etc) o un tipo abstracto (un tipo creado por el programador como es el caso de una estructura). Nombre es el nombre del arreglo . float. Vector: Colección de datos compuestos de un número de elementos homogéneos definidos. Índice Elemento 0 nota[0] 1 nota[1] 2 nota[2] 3 nota[3] 4 nota[4] Cada elemento del arreglo tiene el mismo nombre pero diferente índice. Tipo es el tipo de base del arreglo y puede ser un tipo incorporado (int.Unidimensionales: un solo índice (lista o vectores) . Si queremos utilizar una variable con 20 notas haremos la siguiente declaración nota[20] y accedemos a cada elemento utilizando un índice. Tipo nombre [índice] . Dónde: . . Entonces para: intnota[ 5 ] . Utilizando el índice se puede tener acceso directo a cualquier elemento del arreglo. El primer índice es igual a 0 y el índice del último término es igual al tamaño-1. Declaración de arreglos Tipo nombre [tamaño]. double.  Los arreglos pueden clasificarse en .Multidimensional: varios índices El uso de los arreglos simplifica la programación ya que utiliza un solo nombre de variable para almacenar varios datos.Bidimensionales: dos índices (tabla o matrices) . Tamaño indica cuantos elementos tiene el arreglo. .

se puede ingresar cada uno de los elementos del arreglo tal como se muestra a continuación: for (i=0. i++) 81 . nota[1] = 5. ya que debe usarse tanto un nombre de variable como un valor índice o subíndice para hacer referencia al elemento.while y for (recomendable). Son ejemplos que utilizan los elementos del arreglo nota: nota[0] = 19. do.17.17. Existe la posibilidad de dejar vacío los corchetes tal como se muestra a continuación: int nota[ ] = {10. el arreglo notas contiene 5 elementos. Suponiendo que i y j son variables enteras. las siguientes variables indexadas son válidas: nota[2*i].15. i< n. LECTURA DE LOS ELEMENTOS DE UN ARREGLO Una vez declarado un arreglo. nota[1] = nota[0] + 5. nota[2] = 15. para asignar valores a cada elemento se escribe las siguientes sentencias: nota[0] = 10. Los elementos que conforman el arreglo se encierran entre llaves { } separados por comas.. Operaciones con arreglo unidimensional Las operaciones con un arreglo unidimensional involucran un proceso secuencial que va desde el primer elemento hasta el último elemento. El valor índice da la posición del elemento en el arreglo: nota[2] = 15. Nota [j-i].5. . nota[4] = 20. Cada elemento individual es una variable indexada.20}.15.5. lo que implica el uso de las siguientes estructuras repetitivas: while. nota[3] = 7..Iniciación de una arreglo unidimensional Para utilizar un arreglo primero se deben asignar valores acada uno de los elementos. Cuando se desea inicializar un arreglo que tiene muchos elementos se utiliza el siguiente formato: int nota[5] = {10.20}.

2.. j++) { cout<< “\nNota [“<< j + 1 << “ ]” . notas [N- 1]respectivamente. en general.. cin>> notas [i]... for ( j=0. cout<< notas [ j ] . j < n.… . calcular promedios. . // Ingreso de notas for (i=0. notas[2]. generar expresiones. Si consideramos un arreglo notas de tamaño N. el recorrido completo del arreglo unidimensional puede hacerse con el siguiente fragmento de código: for ( i=0. i++) { //sentencias con el elemento notas [i] } Conforme i vaya tomando los valores 0. i++) { cout<< “Ingrese notas : ”. i< n. } • PROCESOS UTILIZANDO ELEMENTOS DE UN ARREGLO Una vez ingresados todos los elementos del arreglo se pueden realizar cálculos. buscar un elemento del arreglo y ordenar el arreglo. SALIDA DE LOS ELEMENTOS DE UN ARREGLO: Se puede mostrar en pantalla los elementos de un arreglo tal como semuestra a continuación: clrscr( ). cout<<“\n\n Notas ingresadas” . i < N.3. normalmente utilizando la estructura for.1. ….N-1 se estará accediendo a los elementos notas[0]. notas[1]. } 82 .Ejemplo: constint n=4. intnotas [n].

El algoritmo consiste en dividir el arreglo en dos partes. Sin embargo.Técnicas de búsqueda . Elemento buscado es igual al elemento intermedio.10. La nota es encontrada en la posición índice 5 Introducir la nota que se busca: 20.12. La búsqueda ha sido exitosa 83 . Búsqueda binaria La búsqueda binaria es más eficiente para realizar búsquedas en un arreglo que la búsqueda secuencial.11.19} Introducir la nota que se busca: 13. Se presentan tres posibilidades una vez que se realiza la comparación: . La nota no es encontrada en la lista . luego se verifica en que sección se ubica el número que se busca y repetir estos pasos hasta lograr el éxito o fracaso en la búsqueda.10. Búsqueda lineal o secuencial La búsqueda secuencial consiste en el recorrido de todo el arreglo. el pseudocódigo para la búsqueda es la siguiente: Índice Buscado = -1 /* devuelve -1 si el elemento buscado no se encuentra*/ PARA i = 0 MIENTRAS i < N CON INCREMENTO 1 SI elementos buscado = nota { i } ENTONCES índiceBuscado = i FIN_SI FIN_PARA Ejemplo: Supongamos que se tiene el arreglo: notas= { 8. Una condición necesaria es que el arreglo este ordenado previamente. La intención es obtener el índice del elemento buscado dado que con el índice se puede acceder al arreglo para obtener información sobre el elemento. y de uno en uno. desde el primer elemento hasta el último.17.15. una búsqueda lineal tiene ventajas: o El algoritmo es simple o La lista no necesita estar en ningún orden particular Si tenemos un arreglo de notas de tamaño N.13.18.

Dado que elemento más pequeño ya está en la primera posición en la lista. si es verdadero se encontró el elemento buscado. 84 . 7 Asignar a primero = central + 1. . Ordenación por selección Es una técnica de selección simple. Elemento buscado debe estar en la segunda mitad de la lista . existen dos categorías principales de técnicas de ordenamiento. Elemento buscado es menor al elemento intermedio . Elemento buscado debe hallarse en la primera parte de la lista Ejemplo: Supongamos que en el arreglo: notas = { 8. Los ordenamientos internos se usan cuando las listas de datos no son grandes y pueden ordenarse dentro de la memoria del computador.13. Después de esta primera selección e intercambio. Al preguntar si nota buscada = nota [central] es verdadero entonces se encontró el elemento. el siguiente elemento más pequeño en las listas revisadas se selecciona e intercambia con el segundo elemento en la lista. los pasos 2…9 se deben realizar mientras se cumpla primero <= último y además encontrado sea falso (0). donde el valor más pequeño se selecciona al inicio de la lista completa de datos y se intercambia con el primer elemento en la lista. primero = 5 +1 = 6 8 Volver al paso 2 central = (primero + último)/2 = (6 + 10)/2 = 8. llamadas ordenamiento interno y externo.18. este segundo recorrido sólo necesita considerar del segundo al último elemento.11. Evaluar nota[8] este valor es 18.17.19}.15. si es verdad. 9 Si el paso 6 es falso asignar a último = central -1 y regresar al punto 2. 5 Si lo anterior es falso…… 6 Se pregunta si la nota buscada es mayor que nota [central] (18 > 13). Los ordenamientos externos se usan para conjuntos de datos mucho más grandes que se almacenan en archivos de disco o cintas externas.10. por lo general en un arreglo. Se desea buscar la nota 18 1 Se asigna al primero = 0 y último = 10 2 Se define el término central = (primero + último)/2 = 0+10 = 5 3 A continuación se evalúa notas [central] = nota [5] = 13 4 Se pregunta si nota buscada es igual que notas [central].12.  Métodos de ordenación Para ordenar datos. Elemento buscado es mayor al elemento intermedio .10.

Sea un arreglo de notas de tamaño N. de tal manera que la lista quede ordenada. los elementos adyacentes de la lista son intercambiados entre sí.Para una lista con n elementos. Muestra de Ordenación por selección Ordenación por intercambio En un ordenamiento por intercambio. donde en cada recorrido se efectúan comparaciones entre elementos adyacentes intercambiando sus valores si están desordenados utilizando una variable temporal. este proceso se repite n – 1 veces. La técnica consiste en ejecutar n-1 recorridos a lo largo del arreglo. con cada recorrido a lo largo de la lista se requiere una comparación menos que el recorrido anterior. Ordenación por Intercambio (burbuja): PRIMER RECORRIDO 85 .

debe incluirse el número de filas y el número de columnas en la declaración del arreglo. Arreglo bidimensional: Matriz o tabla Matriz: Colección de datos compuestos por dos índices para ubicar los elementos de las filas y las columnas de la matriz. para reservar almacenamiento para este arreglo. Sea m una matriz de 2x2 86 .3. El siguiente arreglo de números.11. Ejemplo: Pseudocódigo para ordenamiento descendente: PARA i = 0 MIENTRAS i < N-1 Incremento 1 PARA j = i + 1 MIENTRAS j < N Incremento 1 SI nota [i] es menor que nota [j] ENTONCES Intercambiar nota [i] con nota [j] FIN_SI FIN_PARA FIN_PARA Ejemplo: Pseudocódigo para ordenamiento ascendente: PARA i = 0 MIENTRAS i < N-1 Incremento 1 PARA j = i + 1 MIENTRAS j < N Incremento 1 SI nota [i] es mayor que nota [j] ENTONCES Intercambiar nota [i] con nota [j] FIN_SI FIN_PARA FIN_PARA 9. se llama arreglo bidimensional de números enteros y consiste de dos filas y dos columnas.

etc. su declaración sería: int matriz [ 2] [2].Declaración de los arreglos bidimensionales La forma general de declarar de un arreglo bidimensional es la siguiente: Tipo nombre [número de filas] [número de columnas]. por ejemplo un arreglo bidimensional llamada matrizque consta de dos filas y dos columnas. float. del primero al último elemento. char. double. 87 . . Recorrido por filas Se procesan primero los elementos de la primera fila. Nombre: es el nombre del arreglo . y luego loselementos de la segunda fila y así sucesivamente. Tipo: es el tipo de base del arreglo y puede ser un tipos escalar (int. Dónde: . .) o un tipo abstracto (creado por el programador). en ambos casos se requiere dos bucles anidados (dos bucles for uno para la fila y otro para la columna). Número: de filas y número de columnas Considerar. Esto reserva espacio de memoria para un total de 4 números enteros (2x2) cuya distribución gráfica es Operaciones con arreglos bidimensionales: Para poder efectuar operaciones bidimensionales normalmentese sigue un recorrido secuencial. Dos son los recorridos más usuales: recorrido por fila y recorridopor columna.

f++) { // sentencias con el elemento arreglo [c][f] } } Iniciación de arreglos bidimensionales Un arreglo puede ser inicializado en el momento de sudeclaración. El recorrido completo por columnas se realiza con el siguiente código: for ( c = 0. c++) { // sentencias con el elemento arreglo [i][j] } } .La lista de valores: es una lista de valores separado por comas. c <numcolumna. La forma general de inicialización es: Tipo nombre [numfila1] [numcolumna1] = {lista_de valores}. c <numcolumna. f++) { for ( j = 0. Dónde: . 88 . c++ ) { for ( f = 0. Si la lista de inicializaciones contiene menos elementos que los indicadospor el tamaño del arreglo. f <numfila. los elementos restantes son inicializados a cero en forma automática. Recorrido por columnas Se procesan primero los elementos de la primera columna. f <numfila.El recorrido completo por filas se realiza con el siguiente código: for ( i = 0. a continuación los elementos de la segunda columna y así sucesivamente. para el caso de arreglos bidimensionales los valores se colocan siguiendo el orden de las filas.

se basa en que el Programa Principal llama.5. utilizaremos la programación modular.1.3.12.4. el compilador crea un arreglo de 3 filas 3 columnas. nombre de la función (datos transmitidos a la función) .5.2. Dicha programación consiste en dividir un programa en unidades de menor tamaño.12.8. donde cada fragmento realiza una tarea explícita y única.1. en el lenguaje de programación C++ los módulos se llaman función eso procedimientos. 9. Funciones y procedimientos 9. Cada uno de esos fragmentos recibe el nombre de módulo. Introducción: Con la finalidad de facilitar la programación de aplicaciones con un gran número de sentencias y/o Instrucciones. Nombre de la función: Esto identifica a la función llamada . Datos transmitidos a la función: Esto transmite datos a la función Asimismo.9}.En una secuencia de inicialización de un arreglo puede omitirse el tamaño de los arreglos unidimensionales y el número de filas en el caso de los arreglos bidimensionales. Dichos módulos nos permite hacer pequeñas porciones de código reutilizable. . la función procesa sus instrucciones y luego devuelve al programa principal la tarea realizada por la función. existe el concepto de procedimientos (proceso)el cual no especifica el tipo de dato a devolver. que pueden ser llamados desde el programa principal sin necesidad de volver a repetirlos. Esto genera arreglos indeterminados y el compilador crea automáticamente un arreglo suficientemente grande para contener todos los inicializadores. // Declara e inicializa un arreglo bidimensional indeterminado int c [][] = {7.  Programa modular El funcionamiento del programa Modular. a una función por su nombre. 89 .

14159).12.9.  Funciones matemáticas predefinidas 90 . valor3 = sin(theta)/(sin(delta) . La función sin se usa para determinar el seno de un número valor1 = sin(3.2. valor2 = sin(x) .sin(delta-theta)). Funciones predefinidas El lenguaje de programación Borland C++ cuenta con bibliotecas de funciones predefinidas que podemos utilizar para la construcción de nuestros programas.cos(y).

debe declarar variables que acepten los valores de los argumentos.12.3. números o subrayado. Una función retorna un valor al módulo que lo llama Un nombre de la función inicia con una letra o un subrayado ( _ ) y contiene letras. Si la función utiliza argumentos. int b. int c). Dichas variables son llamadas parámetros de función y son variables locales a la función. int mayor (int a. Funciones definidas por el usuario Una función es un módulo de programa (segmento de instrucciones) que realiza una tarea específica.h> Declaraciones de prototipo de funciones: tipo_dato_devuelo nombre_funcion (lista de parámetros) Declaración de variables Declaración de constantes globales Definición de las funciones 91 .  Estructura de un programa principal y su módulos Declaración de librería: #include<iostream.  Funciones de biblioteca usadas en C++ 9.

Los parámetros están separados por comas y se declaran igual que las variables(tipo nombre). tipo_dato_devuelo nombre_funcion Nombre_funcion (lista de parámetros) { <declaración de variables locales>. int c). int mayor (int a. número de parámetros que la función espera recibir.Los parámetros son los datos de entrada que necesita la función para realizar sus cálculos. que será definida posteriormente en el programa. . A continuación de la cabecera se encuentra el cuerpo de la función que está entre un par de llaves ( {} ). . int b. <cuerpo de la función>. Parámetros Se denomina parámetros a las variables declarados en el prototipo y debe corresponder con la definición de la función en el programa. Se declara una función para informar al compilador de los atributos de la función. 92 . El compilador utiliza los prototipos para verificar las llamadas de función. Los prototipos Un prototipo de función informa al compilador: el tipo de la variable que retorna la función. } Programa principal: Voidmain() {// llamadas a las funciones por sus nombre}  Declaración de una función Tipo_dato_devuelto Nombre_ función (lista de parámetros). los tipos de parámetros (no es necesario el nombre de los parámetros) y el orden en el cual se esperan dichos parámetros. La declaración de una función consiste en escribir el prototipo de la función antes de que dicha función sea definida en el programa.

Si no se especifica su tipo. la lista de parámetros puede estar vacía. Las variables locales . La definición de una función es en sí la función misma. No siempre se debe incluir parámetros en una función.12.). entonces la computadora asume por defecto que la función devolverá un resultado entero. .4.9. Lista de parámetros: Lista de nombres de variables separadas por comas en la que cada variable va asociada con su tipo.  Definición de una función Para definir una función debemos escribir el conjunto de instrucciones que define la función. y está compuesta por: . devolviendo el control de la ejecución del programa a la línea de código que llamo a la función. El cuerpo de la función  La instrucción return forma parte del cuerpo de la función y tiene una doble finalidad: a) Devolver un valor b) Provocar la salida inmediata de la función que la contiene. 93 . su valor puede ser de cualquier tipo válido. } El Tipo_dato_devuelto:Indica el tipo de valor que la función devolverá mediante el uso de return. El encabezado de la función que debe ser idéntico alprototipo de la función pero en éste caso no utilizar el punto y coma (. Definición de una función Tipo_dato_devuelto Nombre_ función (lista de parámetros) { variables locales <cuerpo de la función>.

Una función devuelve un valor al programa que lo llamó. Una función puede ser llamada desde otra función. carácter o lógico. esta técnica se define como el anidamiento de funciones. etc. Cuándo un programa llama a una función se ejecutan los enunciados contenidos en ésta y devuelve un valor al programa que lo llamó. 94 . b=50 .0. al utilizar este nombre en otras partes del programa se puede ejecutar los enunciados contenidos en la función. intnum2) // cabecera de funcion { floatpromed. return(promed). Las funciones devuelven tipos de datos simples: entero. Ejemplo: int factorial (int n) // La función factorial. // declaración de variable promed = (num1 +num2) / 2. char.Ejemplo: float prom( intnum1. Tipos devueltos: float. es decir una función puede ejecutar sus tareas sin interferencia de otras partes del programa.b). devuelve un tipo de dato entero. estos parámetros pasados a la función deben coincidir en número. tipo y orden con los parámetros indicados en el prototipo de la función. } Una función tiene un único nombre. double. A esto se conoce como llamar a la función. cout<<promedio=“<<respuesta. respuesta = prom(a. int. getch(). float respuesta. // valor devuelto } Void main() { int a=20 .20). real. Para llamar a una función se escribe su nombre seguido por los valores o parámetros de entrada que espera la función. Una función es independiente. gotoxy(5.

etc. Definición de la función Tipo_dato_devuelto Nombre_ función (lista de parámetro) { <instrucciones>. } *Lista de parámetros. También observamos diferencias al realizar la llamada. cadena. Entonces. 95 . un vector o matriz. puede ser: un dato simple. . un puntero. Definición de la función Tipo_dato_devuelto Nombre_ función (lista de parámetro) { <instrucciones>. Declaración de la función Tipo_dato_devuelto Nombre_ función (lista de parámetros). puede ser: un dato simple. . Declaración de la función Tipo_dato_devuelto Nombre_ función (lista de parámetros).  Funciones sin lista de parámetros y su valor devuelto . } *Lista de parámetros. Funciones con lista de parámetros y su valor devuelto . en el cuerpo de un procedimiento no devolveremos nada (no se escribe la instrucción return). sin necesidad de usar una instrucción de asignación (resultado=… …). return. un puntero. return. cadena. etc. porque ahora se llama directamente al procedimiento.  Procedimientos La declaración de procedimientos en C es muy similar a la declaración de las funciones pero no devuelven nada (void). un vector o matriz.

El procedimiento termina y regresan automáticamente al procedimiento que las llamó cuando se encuentra la última llave }. Cuando los argumentos de llamada se pasan por valor.Partes necesarias de un procedimiento 1. vacío/nada. b) Paso de parámetros por referencia Procedimiento que permite modificar el valor de las variables. Para extraer la dirección de memoria a una variable se utiliza el operador “&” antes de su nombre. se usa el operador “ * “ antes de su nombre. int b) 2. cambiaremos el contenido de cada variable con *. Paso de parámetros por valor y por referencia El lenguaje de programación C++ proporciona dos métodos para pasar variables (parámetro) entre funciones: a) Paso por Valor La forma en que hemos declarado y pasado los parámetros de las funciones hasta ahora es la que normalmente se conoce como "por valor“. En la cabecera de la función se especifica cada parámetro por referencia con el operador *. de una dirección de memoria en la que se ubica (valor numérico). La cabecera del procedimiento y debe ser de la siguiente forma: void resta ( int a. Las instrucciones del procedimiento para la resta. Dentro de la función. 96 .La declaración de los procedimientos devuelve un valor de tipo void. La declaración de variables para el procedimiento. 3. para llamar a la función usaremos el operador “&” para extraer la dirección de las variables. Una variable consta. se efectúa una copia del valor argumento y esta se pasa a la función llamada. . es decir. I. Para extraer el contenido de una dirección de memoria. además de su nombre. tipo y valor. Es decir el parámetro de la función sólo toma una copia del argumento.

Un identificador es local. // el valor para "c" es 1 funcion1(12). . Las variables globales.40) ó bien muestra (4. Cuando se omite el argumento de un parámetro que es un argumento por defecto. int c=1). C++ permite declarar variables en cualquier parte del código fuente. . char c = ‘*’). 97 . si no se pasa un valor a un parámetro opcional. Partes necesarias de un procedimiento Las funciones en C++ pueden establecer valores por omisión o ausencia (por defecto) para los parámetros. están disponibles para cualquier función del programa. cuando están definidos fuera del cuerpo de cualquier función y se declara al principio del programa. Las variables locales que tienen el mismo nombre quelas variables globales no cambian el valor de las variables globales. Si se pasan valores a los argumentos omitidos. void muestra(int fila. incluyendo a main (). se utiliza automáticamente este. Variables Variables locales y globales . Un identificador es global. // Legal funcion1(12. int numero. // el valor para "a" es obligatorio II. 10). // los valores para "b" y "c" son 0 y 1 funcion1(). se utiliza el valor por defecto como argumento. se utiliza ese valor.0. int columna.40. ‘# ‘) * el argumento explícito (# anula el carácter por omisión) voidfuncion1(int a. a este tipo de variable se le denomina locales ya que son útiles dentro del cuerpo de la función. . muestra (4. cuando se define dentro del cuerpo de una función.0. El valor por defecto debe ser una expresión constante. Generalmente pueden estar referidas por cualquier función en el programa. Se pueden asignar argumentos por defecto a los parámetros de una función. int b=0.

La Recursividad directa es el proceso por el cual una función se llama así misma desde su propio cuerpo. como una serie de pasos básicos finito. Un proceso de recursividad debe tener una condición para terminar de ejecutar su proceso para generar resultados. La Recursividad indirecta implica más de una función.Las variables globales. 98 . *Evitar el uso de variables globales y locales similares. de lo contrario nunca terminaría produciendo un bucle indefinido. Se define un programa en términos recursivos. es importante resaltar en la recursividad que cuando una función se llama así misma. una nueva copia de ésta función es la que se ejecuta. Recursividad Durante el proceso de compilación.  Funciones recursivas Una función es recursiva cuando se llama así misma directamente o indirectamente. se inicializan automáticamente en 0 (cero). las locales no.

1.1.2.10. Escriba un algoritmo para calcular el área de un triángulo. Diseñar un algoritmo que te envié el mensaje “Creación de aplicaciones” y debajo de este el mensaje “utilizando Borland C++ 5. Problemas resueltos en Borland C++ 10.1. Solución: 99 .0” Solución: 10.1. Estructuras asignativas y selectivas 10. el programa debe leer la base y la altura.

1.4. el alumno deberá de ingresar el precio del producto y la cantidad de este. Solución: 100 . Solución: 10.3.10.1. Escribir un programa que permita leer tres notas de un estudiante y luego calcular el promedio de estas. Diseñar un algoritmo que permita calcular el precio total de una venta.

El subtotal = (precio) x (cantidad) . Solución: 101 .10. se debe de ingresar el radio del círculo.El total a pagar = total + IGV Solución: 10. el precio de este y el % de descuento a aplicar.El IGV = (18% total) .El total = (subtotal) – (descuento) . y luego mostrar: .El descuento = (subtotal) x (% de descuento) .1. Diseñar un algoritmo que permita ingresar la cantidad de un producto.6.5. Diseñar un algoritmo para calcular el área de un circulo.1.

Diseñe un algoritmo que identifique si un número es positivo o negativo Solución: 102 .10. Escriba un algoritmo que permita leer dos numeros y luego mostrar para estos dos: .El producto .La suma .7.1.8.La diferencia .1.La división Solución: 10.

10.1.9. Diseñe un algoritmo que lea un número, si este es positivo se mostrara el
numero al cuadrado pero si este es negativo se finalizara el programa

Solución:

10.1.10. Escriba un programa que permita leer un numero compuesto por más
de un digito y luego mostrar el numero invertido.

Solución:

103

10.1.11. Diseñe un algoritmo que identifique si un numero ingresado es par o
impar

Solución:

10.1.12. Escriba un programa que lea un número y luego mostrar:
- Si el número ingresado es par y su cuadrado
- Si el numero ingresado es impar y su cubo.

Solución:

104

10.1.13. Diseñar un algoritmo que lea un número y luego realice lo siguiente:
Identificar si el número es positivos o negativo y si el número es o no múltiplo de
6.

Solución:

10.1.14. Diseñar un programa que permita ingresar 3 números y luego
identificar el mayor de estos.

Solución:

105

1.15. Diseñar un programa que permita ingresar 5 notas y se identifique la nota mayor y la nota menor.10. Solución: 106 .

1. Escriba un algoritmo que permita ingresar 6 notas y luego mostrar el promedio de las 5 mejores nota. Solución: 10.17. Diseñar un algoritmo que permita ingresar 5 temperaturas tomadas en un día y luego de acuerdo al promedio de estas mostrar: Clima frio entre 10 º y 20 º. clima nublado entre 20 º y 30º y clima caluroso mayor a 30º 107 .1.10.16.

Solución: 10.19. 108 . Diseñe un algoritmo que permita ingresa 2 números y luego mostrar si estos son iguales o diferentes y también cual es el mayor. Escribir un algoritmo que calcule la raíz cuadrada de un número ingresado.Solución: 10.1.1.18.

De 0 a 6 condición REPROBADO .20. según la siguiente información: .Solución: 10.1.De 11 a 16 condición APROBADO .De 7 a 10 condición DESAPROBADO . Escribir un programa que permita leer una nota y escribir la condición académica del estudiante en el curso.De 17 a 20 condición EXCELENTE 109 .

Diseñar un algoritmo con la función espejo. 110 .21. Diseñar un algoritmo donde se halle la función = volumen de un cubo. que permita ingresar un texto y luego mostrar el texto invertido Solución: 10.1.Solución: 10.22. el usuario debe de ingresar el lado del cubo.1.

1.De 15 a 20 categoría A 111 .24. según la siguiente información: . El usuario debe de ingresar un número y este será el término de la serie.Solución: 10.De 11 a 15 categoría B . Escribir un programa que calcule un término de la serie de Fibonacci.1.De 6 a 10 categoría C . Diseñe un programa que permita leer el promedio del ciclo anterior de un estudiante y escribir la categoría a la que este pertenece.23.De 0 a 5 categoría D . Solución: 10.

Resta (param1. Diseñar un programa que contenga dos funciones: .1. param2): permite calcular el producto de dos números enteros 112 .25.26.1. param2): permite calcular la resta de 2 números enteros .Solución: 10. Diseñar un programa que permita leer un número del 1 al 7 como selector de los días de la semana y escriba el día de la semana correspondiente al día. Solución: 10.Multiplica (param1.

deben de ir uno debajo del otro y también alinear a la derecha esta información. Diseñar un algoritmo que te muestre la información siguiente: Impresora.27.1.52.1. 125. 12. Solución: 10. Diseñar un programa que permita leer un número entero y luego este debe pasar como parámetro en una función sumar () y transformarlo sumando la unidad al valor ingresado.28.Solución: 10. 113 .

Solución: 114 .2. estos números deben estar uno debajo del otro. Escribir un algoritmo que te muestre los números del 0 al 10 en una columna. Estructuras repetitivas 10.2. Solución: 10.1.

2.10.2.3. Solución: 115 .2. Diseñar un algoritmo donde se ingrese dos números enteros y luego mostrar la suma de los números desde el primer número ingresado hasta el segundo número ingresado. Diseñar un algoritmo que te muestre la tabla de multiplicar( del 0 al 12) de un numero ingresado por el usuario Solución: 10.

Solución: 10.2.2. Diseñar un algoritmo que te muestre la suma de los 200 primeros numeros enteros. 116 . el número de alumnos desaprobados y el promedio general de los alumnos. Diseñar un programa que permita ingresar las notas de un examen de 10 alumnos y luego mostrar: el número de alumnos aprobados.5.4.10.

Solución: 10. Solución: 117 .6. Diseñar un algoritmo que permita ingresar 5 notas y luego mostrar su promedio real.2. el promedio redondeado hacia arriba y el promedio redondeado hacia abajo.

Escribir un programa que determine todas las soluciones enteras de la ecuación A2 + B2= C2para A.2. Escribir un algoritmo para calcular la factorial de un número ingresado. B y C entre 1 y 25. Solución: 118 .8.10.2. Solución: 10.7.

10.9. Diseñar un algoritmo para calcular la siguiente sumatoria: ∑𝑖=𝑛 𝑖=1 𝑖 𝑖 Solución: 119 .10. Escriba un programa que permita leer un numero compuesto por más de un digito y luego mostrar: a) El número de dígitos b) La suma de los dígitos totales c) La suma de los dígitos pares d) La suma de los dígitos impares Solución: 10.2.2.

120 .11.2. Determinar la suma de los N primeros términos de la serie: ∑𝑖=𝑛 𝐼=1 1 + 𝑖! Solución: 10. 𝑥𝑖 10. Diseñar un algoritmo para determinar la suma de los n primeros 1 números de la serie: ∑𝑖=𝑛 𝑖=1 𝑖2 Solución: 10. Diseñar un algoritmo para obtener la suma de los n primeros numeros consecutivos.2.2.12.13.

Diseñar un programa usando funciones que permita calcular la suma 𝑖 acumulada de la serie: ∑𝐼=𝑛 𝑖=1 el usuario ingresa el número de términos de la 𝑖+1 serie a sumar.2.15.14.2. Solución: 10. Diseñar un programa que permita leer nota y sexo de n alumnos (n definido por el usuario) y luego generar un reporte que permita conocer la cantidad de alumnos aprobados de sexo masculino.Solución: 10. 121 .

16.La suma de las notas .La cantidad total de notas .Solución: 10.2.La cantidad de notas pares .La cantidad de notas impares .La nota menor Solución: 122 . Diseñar un algoritmo que permita ingresar las notas de un alumno y luego mostrar: .

Solución: 123 . Luego presente en pantalla el contenido del arreglo. Arreglos 10.3.1.3.10. Diseñar un programa que permita ingresar 10 notas por teclado.

10.3.2. Diseñar un programa que permita leer n notas y luego obtener la suma de
estas, el promedio y la nota menor.

Solución:

10.3.3. Diseñar un programa que permita leer nota y sexo de n alumnos (n definido
por el usuario) y luego generar un reporte que permita conocer la cantidad de
alumnos aprobados de sexo masculino.

124

Solución:

10.3.4. Diseñar un algoritmo que permita ingresar n elementos y luego mostrar la
cantidad de elementos que se repiten

Solución:

125

10.3.5. Escribir un algoritmo para leer una matriz A de nxn y luego calcular la suma de
la diagonal de la matriz.

Solución:

126

6. Diseñar un algoritmo para leer una matriz A nxn y luego mostrar la suma de los elementos de las filas y columnas Solución: 127 .3.10.

Diseñar un algoritmo para ingresar n datos y luego ordenarlos ascendentemente Solución: 128 .10.3.7.

La matriz ordenada por filas.8. Diseñar un programa que permita ingresar números enteros en una matriz cuadrada de orden nxn (n es ingresado por el usuario).3.La suma de la fila ingresada por el usuario .10.La suma de la columna ingresada por el usuario .La suma de la diagonal de la matriz . 129 . luego se pide mostrar: .

Diseñar un programa que permita ingresar 10 notas por teclado. Luego presente en pantalla el contenido del arreglo.3. Solución: 130 .9.Solución: 10.

131 .El promedio de los elementos del vector.3. .La suma de los elementos del vector.3. Solución: 10. Diseñar un programa que permita ingresar números enteros en una matriz de orden3x3. luego mostrarlo en forma ordenada por filas. . Las filas deben ser ordenadas en forma secuencial y ascendente.10.11. Escribir un programa que permita almacenar N elementos de tipo entero a un vector y determinar lo siguiente: .10.Mostrar los elementos mayores al promedio.

Escribir un programa que permita almacenar N elementos de tipo entero a un vector y determinar lo siguiente: .12. .3.El promedio de los elementos del vector.La suma de los elementos del vector.Mostrar los elementos mayores al promedio. . 132 . Solución: 10.

Solución: 10. Diseñar un programa para leer una matriz de nxn elementos y calcular: La suma de sus elementos por fila y por columna.13. 133 .3.

Solución: 134 .