Sunteți pe pagina 1din 139

1

UNIVERSIDAD NACIONAL DE INGENIERIA


FACULTAD DE INGENIERIA DE PETROLEO, GAS NATURAL Y
PETROQUIMICA

MANUAL DE ALGORITMOS Y
LENGUAJE DE PROGRAMACIN

Docente: MSC. Eyzaguirre Gorvenia, Luz


Editor: Muoz Gaona, Gustavo Adolfo
Revisin: 03

2015
CONTENIDO

1. INTRODUCCIN (5)
2. OBJETIVO (5)
3. DEFINICIN DE UN ALGORITMO (5)
4. CONCEPTO BSICO DE UN ALGORITMO (6)
5. REPRESENTACIN DE UN ALGORITMO (6)
5.1.Lenguaje natural (6)
5.2.Diagramas de flujo (6)
5.3.Pseudocodigo/Pseudolenguage (PSeInt) (7)
6. LENGUAJE DE PROGRAMACIN (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.Caractersticas (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 asignacin (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.
Personalizacin del lenguaje (24)
8. EJERCICIOS RESUELTOS ENPSeInt (27)
8.1.Estructuras asignativas y selectivas (27)
8.2. Estructuras repetitivas (36)
8.3.Arreglos: Listas o Vectores y matrices o tablas (47)
9. BORLAND C++ (56)
9.1.Programacin en Borland C++ (56)
9.2.Etapas para la elaboracin de un programa (56)
9.2.1. Anlisis de un problema (56)
9.2.2. Diseo de un algoritmo (57)
9.2.3. Codificacin del programa (57)

9.2.4. Compilacin y ejecucin del programa (57)


9.2.5. Verificacin y mantenimiento del programa (58)
9.3.Estructura del programa en borland C++ (58)
9.3.1. Directivas definidas (59)
9.3.2. La funcin 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 aritmticos (63)
9.5.2. Operadores de relacin (65)
9.5.3. Operadores lgicos (65)
9.5.4. Operadores de crecimiento y decrecimiento (65)
9.6.Entradas y salidas bsicas (66)
9.6.1. Entradas bsicas (66)
9.6.2. Salidas bsicas (66)
9.7.Secuencia de escape (67)
9.7.1. Manipulacin del formato de salida (68)
9.7.2. La funcin goto(x,y) (69)
9.8.Sentencia de asignacin (69)
9.8.1. Variable de asignacin (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.
Introduccin 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.
Introduccin (89)
9.12.2.
Funciones predefinidas (90)
9.12.3.
Funciones definidas por el usuario (91)
9.12.4.
Definicin de una funcin (93)
10.EJERCIOCIOS RESUELTOS EN BORLAND C++ (99)
10.1.
Estructuras asignativas y selectivas (99)
10.2.
Estructuras repetitivas (114)
10.3.
Arreglos (Vectores o listas y matrices o tablas) (123)

1. INTRODUCCION
Este documento es una recopilacin de las diferentes presentaciones de los
alumnos del curso Algoritmos y Lenguaje de Programacin del ciclo 2014-II,
con el propsito de facilitar su aprendizaje.

2. OBJETIVO
El alumno ser capaz de utilizar conceptos de algoritmos para disear sus
propios programas y relacionarlos con sus respectivas carreras.
3. DEFINICION DE UN ALGORITMO
Un algoritmo es una lista definida y ordenada de operaciones o
acciones para poder encontrar la solucin a un problema.
Est compuesto por operaciones, mtodos y variables
Entre las operaciones se conocen las matemticas: +, -, /, *.

Los mtodos son las funciones disponibles: Mostrar en pantalla.


Los algoritmos son independientes de los lenguajes de programacin.
En cada problema el algoritmo puede escribirse y luego ejecutarse en
un diferente lenguaje de programacin.
Las variables pueden ser de diversos tipos:
Tipo de dato (Variables)
Numrica (Variable entera)

Representa
Cualquier nmero.
Ejemplo: -1, 2, 3, etc.
BOOL (Variable lgica)
De Booleano, posee solo los
valores VERDADERO o FALSO.
Char (Variable tipo carcter)
Representa un carcter.
Ejemplo: Hola, Insertar
Arreglo
Lista esttica de elementos. Se debe
sealar el tipo dedato y la cantidad
de elementos que almacena.
String (Variable tipo cadena)
Secuencia de Caracteres.
Ejemplo: a, b, c, etc.
Nada
Ausencia de parmetros (para la
Entrada y/o para la salida).
Para la solucin de un problema exige el diseo de un algoritmo que
resuelva el problema propuesto y se dispone de 3 pasos: operaciones,
mtodos y variables.

4. CONCEPTOS BASICOS DE UN ALGORITMO


Finito: La ejecucin de un algoritmo acaba en un tiempo finito; unprocedimiento
que falla en la propiedad de la finitud es simplemente un procedimiento de
clculo.
Preciso: Cada instruccin de un algoritmo debe ser precisa; debe teneren
cuenta un rigor y no la ambigedad. Cada frase tiene un significado concreto.
Posee entradas: La entrada se toma como un conjunto especifico devalores
que inicializan el algoritmo.
Posee salidas: Todo algoritmo posee una o ms salidas; la salida es
latransformacin de la entrada.
Efectivo: Un algoritmo es efectivo cuando las operaciones se efectande un
modo exacto y en un tiempo finito aun usando mtodos manuales.

+
5. REPRESENTACIONES DE UN ALGORITMO
5.1. Lenguaje normal
Lenguaje que tiene sonidos adscritos a cada smbolo, creado por un grupo
humano con el fin de comunicarse entre ellos. Por ejemplo: quechua,
alemn.
Una de sus caractersticas es que el sentido de las palabras puede ser
diverso: polisemia.
Es ambiguo y extenso.
5.2. Diagramas de flujo
Son representaciones grficas de algoritmos, usan smbolos conectados con
flechas para indicar la secuencia de instrucciones. Los smbolos han sido
normalizados por el Instituto Norteamericano de Normalizacin (ANSI) y regidos
por la organizacin Internacional de normalizacion (ISO).
Son usados para representar algoritmos y por su facilidad de lectura son usados
como introduccin a los algoritmos, descripcin de un lenguaje y descripcin de
procesos a personas ajenas a la computacin.
5.3. Pseudolenguaje/Pseudocodigo (PSeInt)
El prefijo pseudo significa falso; es decir, es falso lenguaje. Es una serie de normas
lxicas y gramaticales parecidas a la mayora de los lenguajes de programacin,
pero sin llegar a la rigidez de sintaxis de estos ni a la fluidez del lenguaje coloquial.
El pseudocdigo describe un algoritmo utilizando una mezcla de frases en lenguaje
comn, instrucciones de programacin y palabras clave que definen las estructuras
bsicas.
Smbolos grficos ms utilizados para dibujar algoritmos por medio de diagramas
de flujo (Ordinograma)

6. LENGUAJES DE PROGRAMACION
Una vez que ya tenemos diseado nuestro algoritmo, 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, 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
DE PROGRAMACIN. Es un lenguaje formal creado para comunicar
algoritmos a las mquinas, entre ellas la computadora.
Tipos de lenguajes de programacin:

Lenguaje de primera generacin: Consiste en hileras de nmeros: 0 y


1, su sintaxis es definida por el diseo del hardware.
Lenguaje de segunda generacin: Son simples procesadores de
palabras, para crear archivos fuente. Los archivos fuente contienen
instrucciones para que la computadora las ejecute.
Lenguaje de tercera generacin: Proporcionan estructuras explcitas
para disear procesos y ciclos. Ej.: C++, Visual Basic, Java.
Lenguaje de cuarta generacin (4GL): Se pueden usar para
desarrollar prototipos de una clase de aplicacin especfica
rpidamente. Ejemplo: Visual Basic.
Lenguaje de quinta generacin: Tienen por finalidad pensar y
anticipar las necesidades de los usuarios, en lugar de solo ejecutar un
conjunto de instrucciones.

6.1.Lenguaje de maquina

Ejemplo:
Instruccin
0011
0101

Operados
0000
0001

0001
0011

6.2.Lenguaje de ensamblador
Ejemplo:

Instruccin

Operandos

Add

[0]

[1]

Mul

[1]

[3]

6.3.Lenguaje de alto nivel


Ejemplo: Operacin = (a+b)*c

7. PSeInt
7.1.Historia de PSeInt
Teniendo en cuenta que el uso de lenguaje ANSI/ISO C++ para una
materia inicial de la programacin presenta notorias dificultades
para estudiantes inexpertos que deben aprender varios conceptos
relativos al diseo de algoritmos y paralelamente lidiar con
cuestiones de implementacin de las soluciones propuestas
relativas a un lenguaje de programacin: sintaxis, compilacin,
mensajes de errores en ingls, depuracin, etc.; se propuso la
siguiente solucin: disear un pseudocdigo en espaol, con
reglas sintcticas sencillas y bsicas, que permitiera concentrar al
alumno en la lgica para la resolucin de problemas mediante el
diseo y la construccin de algoritmos y facilitara el aprendizaje y
uso posterior de un lenguaje de alto nivel.
La versin original, tena cientos de errores latentes, slo corra
bajo Windows y se limitaba a interpretar el
algoritmo o marcar sus errores de sintaxis.
Finalmente, en octubre de 2006, se present el
trabajo Desarrollo de un Software Intrprete de
Pseudocdigo
para
la
Enseanza
de
Fundamentos de Programacin en el 1er
Encuentro de Jvenes Investigadores de
Universidades de Santa Fe.
7.2.Descripcin

Es una herramienta para aprender la lgica de programacin, est


pensado para asistir a los estudiantes que se inician en la construccin
de programas o algoritmos computacionales mediante la utilizacin de
un simple y limitado pseudo-lenguaje intuitivo y en espaol, permite
comenzar a comprender conceptos bsicos y fundamentales de un
algoritmo computacional.
Nacido originalmente como un proyecto final para el curso de
Programacin I de la carrera de Ingeniera Informtica de la Facultad de
Ingeniera y Ciencias Hdricas de la Universidad Nacional del Litoral, es
en realidad un software que interpreta pseudocdigo basado en
contenidos de la ctedra de Fundamentos de Programacin de dicha
carrera.
Sin duda alguna es una excelente herramienta para aquellos que se
inician en este mundo de la programacin, cuya interfaz grfica permite
crear, almacenar, ejecutar y corregir fcilmente programas en
Pseudocdigo.

La interfaz y rea de trabajo:

10

Barra de herramientas

Icono

Descripcin
Abre un nuevo
documento.
Busca un fichero
(archivo).

Icono

Descripcin
Corregir indentado.
Buscar.

Guardar y guardar como.

Ejecutar el algoritmo.

Deshacer y Rehacer
respectivamente.
Cortar.

Ejecutar paso a paso.

Copiar y pegar.

Dibujar diagrama de
flujo.
Ayuda/contiene algunos
ejemplos

11

7.3.Caractersticas
Presenta herramientas de edicin para escribir algoritmos en
pseudocdigo en espaol.
Autocompletado.
Ayudas Emergentes.
Plantillas de Comandos.
Coloreado de Sintaxis.
Indentado inteligente, mover un bloque de texto hacia la derecha
insertando espacios o tabuladores.
Permite generar y editar el diagrama de flujo del algoritmo.
Permite la edicin simultnea de mltiples algoritmos.
La sintaxis del pseudolenguaje utilizado es configurable.
Ofrece perfiles de configuracin predefinidos para numerosas
instituciones.
7.4.Funcionalidades
Puede interpretar (ejecutar) los algoritmos escritos.
Permite ejecutar el algoritmo paso a paso controlando la velocidad
e inspeccionando variables y expresiones.
Puede confeccionar automticamente una tabla de prueba de
escritorio.
Determina y marca claramente errores de sintaxis (mientras
escribe) y en tiempo de ejecucin.
Permite convertir el algoritmo de pseudocdigo a cdigo C++ (Es
independiente del lenguaje de programacin que se vaya a
utilizar).
Ofrece un sistema de ayuda integrado acerca del pseudocdigo y
el uso del programa.
Incluye un conjunto de ejemplos de diferentes niveles de
dificultad.
Es multiplataforma (probado en Microsoft Windows 2000, XP y
vista, GNU/Linux y Mac OS X).
Es una herramienta totalmente libre y gratuita.
La sencillez del lenguaje Pseudocdigo lo hacen ideal para la
enseanza de la programacin.
Permite escribir programas con instrucciones condicionales (SiEntonces-Sino, Segn) y ciclos (Mientras, Repetir Hasta Que, Para),
y tambin usar valores numricos (nmeros decimales), lgicos,
caracteres y arreglos.
Tambin provee funciones de entrada/salida y algunas funciones
matemticas.

12

7.5.Forma General de un algoritmo en Pseudocodigo


Todo algoritmo en Pseudocdigo de PSeInt tiene la siguiente estructura
general:

Cabecera:
es
la
parte del algoritmo
que
posee
el
nombre de ste.
Declaraciones: son
las
variables
y
constantes
que
utilizar
el
algoritmo
para
resolver el problema.
Cuerpo: son los conjuntos de instrucciones o acciones que estn
entre el Inicio y el Fin.

Comienza con la palabra clave Proceso seguida del nombre del


programa, luego le sigue una secuencia de acciones o instrucciones y
finaliza con la palabra FinProceso. Una secuencia de instrucciones es una
lista de una o ms instrucciones, cada una terminada en punto y coma.
Las acciones incluyen operaciones de entrada y salida, asignaciones de
variables, instrucciones condicionales y ciclos.
Ejemplo:
Operaciones de entrada

Accin
Operacin de salida

7.6.Tipos de variable
7.6.1. Simple

Numrica

Nmeros, tanto enteros como reales. Para separar decimales se


utiliza el punto. Ejemplos: 12; 2.3; -5.8; 3.14

Lgico

13

Slo puede tomar dos valores: VERDADERO o FALSO.

Carcter

Caracteres o cadenas de caracteres encerrados entre comillas


(pueden ser dobles o simples). Ejemplos 'hola' "hola mundo" '123'
'FALSO' 'etc.'
Los tipos de datos simples se determinan automticamente cuando
se crean las variables. Las dos acciones que pueden crear una
variable son la lectura (LEER) y la asignacin (<-). Por ejemplo, la
asignacin "A<-0;" est indicando implcitamente que la variable A
ser una variable numrica.
Opcionalmente, se puede declarar una variable numrica como
entera con la instruccin DEFINIR. En este caso, todo valor no entero
que se lea o asigne a la misma ser truncado
7.6.2. Constantes
Las constantes representan a identificadores que no cambian su valor
en
el
desarrollo de
un programa.
Ejemplo:

Constante

7.6.3. Arreglos
Los arreglos (arrays) son una estructura de datos que permite el
almacenamiento esttico (tamao definido) de una serie de
elementos del mismo tipo (carcter, numrico, Booleano) ordenados
en fila. Su representacin matemtica es la de un vector de 1
dimensin, por lo que podemos llegar a representar una matriz con
arreglos multidimensionales. Cada arreglo posee un ndice (empieza
en 0) que indica la posicin en la que est almacenado un elemento
en el arreglo, esto se debe a que el arreglo est segmentado.

14

Existen distintos tipos de arreglos dependiendo del tipo de dato que


contengan.

Arreglo numrico:
Ejemplo:

Arreglo de carcter
Ejemplo:

Nota
En Pseint la sentencia para poder definir un arreglo es la siguiente:
Dimension< identificador> [tamao]
Para poder acceder a un elemento del arreglo se utiliza el siguiente
comando:
<Identificador> [posicin elemento]
OBSERVACION: se empieza en 1 la posicin en PSeInt.

De los ejemplos de arreglo numrico y de carcter, anteriores


tenemos:
Dimension Lista [9]; donde podemos reconocer: Identificador = lista;
y
Tamao
=
9.

15

Accediendo a sus elementos de los ejemplos


Arreglo numrico
Lista [1] = 3
Lista [2] = 5
Lista [3] = 7

Arreglo de carcter
Lista [1] = b
Lista [2] = c
Lista [3] = D

7.7.Expresiones
7.7.1. Operaciones
Este pseudolenguaje (pseudocodigo) dispone de un conjunto bsico
de operadores que pueden ser utilizados para la construccin de
expresiones ms o menos complejas.
La jerarqua de los operadores matemticos es igual a la del lgebra,
aunque puede alterarse mediante el uso de parntesis.
Las siguientes tablas exhiben la totalidad de los operadores de este
lenguaje reducido:

16

7.7.2. Funciones
Las funciones en el pseudocdigo se utilizan de forma similar a otros
lenguajes. Se coloca su nombre seguido de los argumentos para la
misma encerrados entre parntesis (por ejemplo TRUNC(x). Se
pueden utilizar dentro de cualquier expresin, y cuando se evale la
misma, se reemplazar por el resultado correspondiente.
Actualmente, todas la funciones disponibles son matemticas (es
decir que devolvern un resultado de tipo numrico) y reciben un slo
parmetro de tipo numrico. A continuacin se listan las funciones
integradas disponibles:

7.7.3. Expresiones coloquiales


Si se encuentra habilitado el uso de
Condicionales en lenguaje coloquial en las

17

opciones del lenguaje, se pueden introducir algunas expresiones


adicionales para formar condiciones (Expresiones lgicas). La
siguiente tabla muestra ejemplos de estas, suponiendo que X e Y son
variables, junto con su equivalente en el lenguaje formal.
La jerarqua de estas expresiones es mayor que la de los
operadores aritmticos. Por ejemplo, X+3 ES IGUAL A Y*2
equivale a (X+3)= (Y*2).
Adems, en todos los casos se puede obtener la condicin opuesta
reemplazando ES por NO ES. Ejemplo, X NO ES IGUAL A Y
equivale a NO (X=Y).
7.8.Procesos

Leer

Nos permite recibir valores por teclado y guardarlos en variables.


Ejemplos:
a) Leer a; recibe el valor y lo almacena en a
b) Leer a, b, c; recibe 3 valores y los guarda en la variable que
corresponda.

Analicemos

lo

siguiente:

Pueden incluirse una o ms variables, por lo tanto el comando leer


uno o ms valores.
Esta instruccin toma N valores desde el teclado y los asigna a las N
variables mencionadas.
Si una variable donde se debe guardar el valor ledo no existe, se crea
durante la lectura. Si la variable existe se pierde su valor anterior ya
que tomar el valor nuevo, razn por la cual se dice que la lectura es
destructiva (destruye el valor que tena previamente la variable).

Escribir

Esta instruccin informa al ambiente (en este


caso escribiendo en pantalla) los valores
obtenidos de evaluar N expresiones.
Dado que puede incluir una o ms expresiones, mostrar uno o ms
valores. Si hay ms de una expresin, se escriben a continuacin de
la otra sin separacin, por lo que el algoritmo debe explicar los
espacios necesarios para diferenciar dos resultados si as lo requiere.

18

Si en algn punto de la lnea se encuentran las palabras clave Sin


Saltar o Sin Bajar los valores se muestran en la pantalla,pero no se
avanza a la lnea siguiente, de modo que la prxima accin de lectura
o escritura continuar en la misma lnea. En caso contrario, se aade
un salto de lnea luego de las expresiones mostradas.

Ejemplos:
a) Escribir hola mundo;
b) Escribir Introduzca el primer dato;
c) Escribir El valor introducido, n, es par;

7.9.Sentencias
7.9.1. De asignacin
Nos permite guardar un valor en una variable.
Ejemplo: c <- 2 // por lo tanto c=2.

7.9.2. Selectiva

Selectiva simple y doble

Es una estructura de control que depende del valor de una


condicin lgica. Es decir se debe evaluar una condicin y si la
cumple, deber ejecutar todas las acciones despus del Entonces
y si no las cumple debe ejecutar todas las acciones despus del
Sino. La condicin debe ser una expresin lgica, que al ser
evaluada retorna Verdadero o Falso.
La clusula Entonces debe aparecer siempre, pero la clusula Sino
puede no estar. En este caso, si la condicin es falsa no se ejecuta
ninguna instruccin y la ejecucin del programa contina con la
instruccin siguiente.
Representacin:

19

Diagrama de flujo:

S
e
lectiva mltiple

La secuencia de instrucciones ejecutada por una instruccin Segun


depende del valor de una variable numrica.
Esta instruccin permite ejecutar opcionalmente varias acciones posibles,
dependiendo del valor almacenado en una variable de tipo numrico. Al
ejecutarse, se evala el contenido de la variable y se ejecuta la secuencia
de instrucciones asociada con dicho valor.
Cada opcin est formada por uno o ms nmeros separados por comas,
dos puntos y una secuencia de instrucciones. Si una opcin incluye varios
nmeros, la secuencia de instrucciones asociada se debe ejecutar cuando
el valor de la variable es uno de esos nmeros.
Opcionalmente, se puede agregar una opcin final, denominada De Otro
Modo, cuya secuencia de instrucciones asociada se ejecutar slo si el
valor almacenado en la variable no coincide con ninguna de las opciones
anteriores.

Representacin:

Diagrama de flujo:

20

7.9.3. Selectiva repetitiva

Mientras

Permite ejecutar una secuencia de instrucciones repetidamente hasta que


la condicin no se cumpla.

Representacin:

Diagrama de flujo:

Para

Ejecuta una sentencia de instrucciones un nmero de veces. Al


ingresar al bloque la variable <variable> recibe el valor <inicial>
y se ejecuta la secuencia de instrucciones que forma el cuerpo del
ciclo. Luego se incrementa la variable <variable> en <paso>
unidades y se evala si el valor almacenado en <variable> super

21

el valor <final>. Si esto es falso se repite hasta que <variable>


supere a <final>. Si se omite la clusula Con Paso<paso>, la
variable <variable> se incrementar en 1.
Representacin:

Diagrama de flujo:

Repetir

Esta estructura se ejecuta hasta que se cumpla una condicin


determinada que se comprueba hasta el final del bucle. Se ejecuta
al menos una vez. El bucle
Repetir Hasta que se repite mientras el valor de la expresin
booleana de la condicin sea falso, justo la opuesta de la
sentencia Mientras.

Representacin:

Diagrama de flujo:

22

7.10.

Sentencias Resumen

Sentencia

Representacin en PSeInt

Sentencia de
seleccin
Selectiva
Simple

Doble

Mltiple

Repetitiva
Mientras

Representacin en diagrama de
flujo

23

Para

Repetir

7.11.

Funciones / Subprocesos

Si el perfil de lenguaje seleccionado lo permite (ver Opciones


delPseudocdigo), se pueden declarar nuevas funciones o subprocesos
en un algoritmo en Pseudocdigo. La sintaxis para ello es la siguiente:

Comienza con la palabra clave SubProceso (o Funcin, son equivalentes)


seguida de la variable de retorno, el signo de asignacin, el nombre del
subproceso, y finalmente, la lista de argumentos entre parntesis.
Existen variantes para esta estructura.
Si la funcin no retorna ningn valor, pueden omitirse el identificador
variable_de_retorno y el signo de asignacin, es decir, colocar
directamente el nombre y los argumentos a continuacin de la palabra
clave Subproceso. Si el subproceso no recibe ningn valor pueden
colocarse los parntesis vacos u omitirse, finalizando la primer lnea con
el nombre del subproceso. Las reglas para los nombres de subprocesos,

24

variables de retorno y argumentos son las mismas que para cualquier


identificador en pseudocdigo.
Adems, opcionalmente pueden agregarse las palabras claves Por Valor
o Por Referencia para indicar el tipo de pasaje en cadaargumento. Si no
se indica, los arreglos se pasan por referencia, las dems expresiones
por valor. El pasaje por referencia implica que si la funcin modifica el
argumento, se modificar en realidad la variable que se utiliz en la
llamada, mientras que el pasaje por valor implica que la funcin opera
con una copia de la variable (o el resultado de la expresin) que se utiliz
en la llamada, por lo que las modificaciones que aplique la funcin no se
vern reflejadas fuera de la misma.
Para invocar a la funcin se debe utilizar su nombre y entre parntesis
los parmetros, que podrn ser expresiones slo si el tipo de pasaje es
por referencia. Una llamada puede ser en s una instruccin, pero si la
funcin retorna algn valor, tambin puede utilizarse como operando
dentro de una expresin.

7.12.

7.13.

Notaciones
Se pueden introducir comentarios luego de una instruccin, o
en lneas separadas, mediante el uso de la doble barra (//).
Todo lo que precede a //, hasta el fin de la lnea, no ser
tomado en cuenta al interpretar el algoritmo.
Note que no puede haber instrucciones fuera del programa,
aunque si comentarios.
Las estructuras no secuenciales pueden anidarse. Es decir,
pueden contener otras adentro, pero la estructura contenida
debe comenzar y finalizar dentro de la contenedora.
Los identificadores, o nombres de variables, deben constar slo
de letras y nmeros, comenzando siempre con una letra.
Las constantes de tipo carcter se escriben entre comillas ().
En las constantes numricas, el punto (.) es el separador
decimal.
Las constantes lgicas son: Verdadero y Falso.

Personalizacin del lenguaje

Hay ciertas caractersticas del pseudocdigo que pueden personalizarse


para adaptarse a las preferencias de cada docente.
Por defecto, PSeInt utiliza la configuracin ms flexible y natural posible,
pero ofrece una lista de configuraciones predefinidas denominadas
"perfiles". Se puede acceder a la lista de perfiles desde el tem "Opciones
del Lenguaje..." del men "Configurar".

25

Si ninguno de los perfiles resulta adecuado se puede utilizar el botn


"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 opcin est deshabilitada se puede
utilizarvariables sin inicializar (que nunca fueron ledas o
asignadas en expresiones o para mostrar en pantalla. En este caso
asumen el valor por defecto 0, "", o FALSO segn el tipo que
corresponda. Si esta opcin est seleccionada escribir o evaluar
una expresin que involucra una variable sin inicializar genera un
error en tiempo de ejecucin.

Obligar a definir los tipos de variables: Si esta opcin est


deshabilitada no se puede utilizar una variable sin previamente
definir su tipo. Para esto se debe utilizar la palabra clave DEFINIR.
Ejemplo: "DEFINIR X COMO REAL".
Los tipos posibles
CARACTER/TEXTO.

son:

ENTERO,

NUMERICO/REAL,

LOGICO,

Controlar el uso de; al final de sentencias secuenciales:


Siesta opcin est activada obliga a colocar punto y coma (;) al
final de las instrucciones secuenciales, si est desactivada el uso
del punto y coma es opcional.

Permitir concatenar variables de texto con el operador +:


Siesta opcin esta activada se puede concatenar el contenido de
dos variables de tipo carcter con el operador +. Por ejemplo:
NombreCompleto&- Nombre+" "+Apellido;

Habilitar funciones para el manejo de cadenas: Esta


opcinhabilita el uso de las funciones Longitud, Subcadena,
Maysculas, Minsculas y Concatenar, que operan sobre cadenas
de caracteres. Vea funciones para una mejor descripcin de las
mismas.

Permitir las palabras Y, O, NO y MOD para los operadores


&, |, ~ y%: Con esta opcin habilitada PSeInt acepta las palabras
clave Y, O, NO, y MOD como sinnimos de los operadores &, |, ~ y
% respectivamente. Notar que en este caso estas palabras sern
palabras reservadas y no se podrn utilizar como nombres de
variables.

Utilizar
elprimer
ltimo el
el ltimo

arreglos en base 0: Si esta opcin esta activada,


elemento de un arreglo de N elementos ser el 0 y el
N-1, mientras que en caso contrario el primero ser el 1 y
el N

26

Permitir utilizar variables para dimensionar arreglos: Si


esta opcin est seleccionada se puede utilizar una variable o una
expresin que involucre variables para dimensionar un arreglo
(por ejemplo, se puede pedir al usuario del programa el tamao
leyendo un nmero y utilizarlo luego para crear el arreglo). Este
suele ser el caso de los lenguajes interpretados, mientras que los
lenguajes compilados suelen exigir que el tamao de los arreglos
estticos sea una constante (por ejemplo, C y C++).

Permitir asignar con el signo igual (=): Esta opcin habilita


laasignacin con el signo igual (Ejemplo: x=0;). En muchos casos
esta sintaxis de asignacin no se permite, ya que en muchos
lenguajes no se utiliza el mismo operador para asignar y
comparar, como sucede al activar esta opcin. En cualquier caso,
las otras dos sintaxis de asignacin (con <- y con :=) siguen
siendo vlidas.

Permitir definir funciones/subprocesos: Esta opcin habilita el


uso de las palabras claves SubProceso y Funcin (ambas
completamente equivalentes) para permitir definir nuevas
funciones en pseudocdigo.

Utilizar sintaxis flexible: Esta opcin habilita variaciones


opcionales en la sintaxis: omitir la palabra HACER en un bucle
MIENTRAS o PARA, utilizar la palabra DESDE para indicar el valor
de inicio de un ciclo PARA, separar la expresiones/variables en una
lectura/escritura con espacios en lugar de comas, agregar la
palabra OPCION, CASO o SI ES antes de un caso en un SEGUN,
separar los valores para un mismo caso en un segn con la
palabra O, utilizar la estructura REPETIR-MIENTRAS QUE como
variante de REPETIR-HASTA QUE, etc. Adems, permite utilizar
acentos y ees en los nombres de variables. Muchas de las
variaciones de la sintaxis resultan en construcciones ms
naturales en un verdadero pseudocdigo, pero no son posibles o
son incompletas en un lenguaje de programacin real.

Permitir condiciones en lenguaje coloquial: Esta opcin


permite expresar las condiciones en un lenguaje ms coloquial con
construcciones como "X ES PAR", "X NO ES MULTIPLO DE 5", "X ES
IGUAL A Y", "X ES ENTERO", etc. Esta opcin activa adems el uso
de palabras clave para reemplazar operadores.

Usar diagramas de Nassi-Schneiderman: Si esta opcin est


deshabilitada el editor de diagramas flujo graficar este tipo de
diagramas en lugar de los diagramas de flujo clsicos utilizados
originalmente por PSeInt. Esta opcin no modifica el lenguaje, por
lo que tambin se puede activar/desactivar directamente desde el

27

men Configurar mediante el tem Usar diagramas de NassiSchneiderman, de forma que el usuario pueda alternar fcilmente
entre uno y otro tipo de diagrama si lo desea.

8. Ejercicios resueltos en PSeInt


8.1.Estructuras asignativas y selectivas
8.1.1. Escribir un algoritmo que permita leer tres valores y almacenarlos en las
variables a, b y c. El algoritmo debe determinar cul es el mayor y menor
nmero, los tres datos ingresados deben ser diferentes y enviar un
mensaje si los datos son iguales.
Solucin:

28

8.1.2. Evaluar las siguientes expresiones, asumiendo los valores


iniciales y declaraciones respectivas:dato <- 3, k <- 16, m <- 4
a) 13/3+m<- K
b) 2*3*2 dato*3
c) k/5*2 + m /3
d) ((9+3)*5) / m mod 7 +1
Solucin:

29

8.1.3. Escribir un algoritmo que muestre un mensaje con el nombre


correspondiente de la persona de acuerdo con su edad, as: nio,
adolescente, joven o adulto, dependiendo de su edad, segn la
siguiente informacin:

Nio es menor que 14 aos.


Adolescente entre 14 y 18 aos.
Joven de 18 a 25 aos.
Mayor si es mayor de 25 aos.

Solucin:

8.1.4. Escribir un algoritmo que verifique si la fecha ingresada es


correcta.
Solucin:

30

8.1.5. Escribir un algoritmo que permita obtener las races de una


ecuacin cuadrtica.
Solucin:

31

8.1.6. Los empleados de una fbrica trabajan en dos turnos: diurno y


nocturno. 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.
b) Las tarifas de las horas nocturnas es de 800 pesetas.
c) La tarifa en caso de ser domingo:
En el turno diurno incrementara en 200 pesetas.
En el turno nocturno incrementara en 300 pesetas.
Solucin:

8.1.7. Escribir un ALGORITMO que lea las coordenadas de dos puntos


en el plano cartesiano y muestre la ecuacin general de la recta:
ax + by + c = 0
Solucin:

8.1.8. Ingresar dos nmeros enteros por teclado. Elaborar un


algoritmo que permita indicar si los dos son pares o impares o si
uno de ellos es par, indicando, en este ltimo caso, cual es par.

32

Solucin:

8.1.9. Escribir un algoritmo para calcular la desviacin estndar de


tres nmeros, segn la siguiente formula:
Desviacin estndar =

(x1 m)2 +( x 2m)2+(x 3m)2


31

Donde m es la media aritmtica de los tres nmeros ingresados


desde el teclado.
Solucin:

8.1.10.
Escriba un algoritmo que muestre un mensaje con el
nombre del nivel de estudio de la persona de acuerdo con su
edad, as:
Inicial
De 3 a 5 aos
Primaria
De 6 a 11 aos

33

Secundaria
Universitario
Maestra y Doctorado

De 12 a 16 aos
De 17 a 25 aos
Mayor de 25 aos

Solucin:

8.1.11.
Escribir un algoritmo que, dadas cuatro calificaciones de
un alumno, calcule la calificacin promedio y muestre un
mensaje indicando si el alumno es:
Excelente, cuando su promedio es mayor o igual a 18.
Bueno, cuando su promedio esta entre 15 y 17, inclusive.
Regular, si su promedio esta entre 11 y 14, inclusive.
Deficiente, si su promedio esta entre 8 y 10, inclusive.
Psimo, si su promedio es inferior a 8

Solucin:

34

8.1.12.
Disear un algoritmo que imprima la suma de los N
primeros nmeros naturales
Solucin:

8.1.13.
Construya un algoritmo, que dados como datos los
sueldos de 10 trabajadores de una empresa, obtenga el total de
nmina de la misma.
Solucin

35

8.1.14.
Disear un algoritmo para identificar si un ao es o no
bisiesto, un ao bisiesto es aquel que es mltiplo de 4 y 100,
pero no de 400.
Solucin:

8.1.15.
Escribir un algoritmo que permita leer un numero entero
positivo de cuatro dgitos y se desea redondear el nmero a la
centena ms prxima, por ejemplo si el nmero es 2457, el
resultado seria 2500.
Solucin:

8.1.16.
Desarrollar un algoritmo que lea un entero positivo N y
efectu, los siguientes clculos:
Si N terminar en 0, 1, 5 u 8 se cambia por el doble.
Si N termina en 3 o 9, se cambia por la tercera parte.
De otra manera mantiene su valor.

36

Solucin:

37

8.2.Estructuras Repetitivas
8.2.1. Escribir un algoritmo controlado por un men que permita
calcular el rea de un cuadrado, crculo, rectngulo o tringulo
de acuerdo a la opcin seleccionada. Implementar tambin una
opcin finalizar que permita abandonar el algoritmo.
Solucin:

38

8.2.2. Escribir un algoritmo para calcular el promedio de prcticas de un curso


de matemticas. Considerar las siguientes actividades previamente:
-

Leer las notas y publicar la ltima.


Eliminar la nota menor.
Calcular el promedio.

Solucin:

8.2.3. Evaluar los resultados de la siguiente funcin matemtica, para valores


enteros de X que varan desde 0 hasta 15. Mostrar los valores de X, de
cada trmino y de la funcin.
2

F ( X )=

1+ X ( X +2)
X +3
+

2
1X (X2) X3

Solucin:

8.2.4. Escribir un algoritmo que permita determinar si un nmero


entero ingresado por el usuario es capica. Se llama capica al

39

nmero que de izquierda a derecha se lee igual que de derecha a


izquierda, por ejemplo 212, 3993, 1420241 etc.
Solucin:

8.2.5. Escribir un algoritmo que lea un valor entero no negativo e


imprima en lneas separadas los dgitos pares e impares y los
dgitos del valor entero de derecha a izquierda.
Solucin:

40

8.2.6. Disear un algoritmo que muestre todos los nmeros primos


encontrados entre los 1000 primeros nmeros enteros positivos.
Solucin:

8.2.7. Disear un algoritmo para determinar la suma de los nmeros


cuya ltima cifra es siete y que estn comprendidos entre los
nmeros m y n ingresados por el usuario.
Solucin:

8.2.8. En unas elecciones se presentan cinco partidos polticos.


Escriba un algoritmo que determine el nmero de votantes que
obtiene cada partido, sabiendo que cada papeleta (voto)
contiene un nico dgito del 1 al 5. Si la papeleta contiene un
nmero 1 corresponde al partido 1, si contiene un nmero 2
corresponde al partido 2, etc.

41

Solucin:

8.2.9. Escribir un algoritmo que permita ingresar una cantidad de


nmeros enteros y luego para cada nmero ingresado, mostrar
su cantidad de dgitos pares y cantidad de dgitos impares, la
suma de dgitos pares e impares y el nmero invertido. La
entrada de datos debe ser controlada por un nmero negativo,
es decir slo se permite el ingreso de nmeros positivos.

42

Solucin:

8.2.10.
Determine el Mximo Comn Divisor de dos nmeros
naturales. Para tal fin, divida el mayor de los nmeros entre el
menor; a continuacin divida el nmero menor (el divisor) por el
residuo; contine este proceso (dividiendo el ltimo divisor por el
residuo) hasta que la divisin sea exacta. El ltimo divisor ser el
MCD.
Solucin:

43

8.2.11.

Disear un algoritmo que permita calcular la suma


n

acumulada de la siguiente serie:

X12
X=1

Solucin:

8.2.12.
Escribir un algoritmo que d como resultado el factorial
de un nmero.
Solucin:

8.2.13.
Escribir un algoritmo que calcule la serie exponencial con
tres dgitos exactos:
n

e =
x

i=0

Xi
i!

44

Solucin:

8.2.14.
Escribir un algoritmo que permita el ingreso de 15 notas
y determine el promedio, la mxima y la mnima nota.
Solucin:

8.2.15.
Escribir un algoritmo para leer el sueldo de 10
trabajadores, calcular el promedio de los sueldos, adems
reportar a cunto asciende el sueldo mas alto.

45

Solucin:

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

X=n

8.2.17.

Elaborar un algoritmo que calcule la serie:

X1
X=1

46

Solucin:

8.2.18.
Disear un algoritmo que permita ingresar solo numeros
de 0 a 20 y nos permita obtener el promedio de los dgitos del
nmero ingresado.
Solucin:

8.2.19.
Disear un algoritmo que permita ingresar un numero
entero compuesto por ms de un digito y luego mostrar:
Suma de dgitos pares
Sumar de dgitos impares
Cantidad de dgitos impares
Cantidad de dgitos pares
Cantidad de dgitos totales

47

Solucin:

48

8.3.Arreglos
8.3.1. Se cuenta con un archivo de datos que contiene n NOTAS
positivos, a razn de uno por lnea. Escribir un algoritmo para
encontrar la nota mayor y menor. Luego determine el promedio
eliminando la nota menor.
Solucin:

8.3.2. Escribir un algoritmo que lee N datos enteros y los ordene en


orden ascendente.
Solucin:

49

8.3.3. Escribir un algoritmo que d como resultado los n primeros


trminos de la serie de Fibonacci. As mismo, el programa debe
mostrar la suma.
Solucin:

8.3.4. Escribir un algoritmo que permita calcular la media de una


serie de nmeros positivos y sus respectivas desviaciones
estndar de cada nmero entero positivo con respecto a su
media, considerar un nmero igual a cero para finalizar el ingreso
de datos.
Solucin:

50

8.3.5. Escribir un algoritmo que permita calcular la suma de los


elementos de la diagonal de una matriz.
Solucin:

8.3.6. Escribir un algoritmo que permita obtener:


Nmeros pares y positivos.
Nmeros pares y negativos.
Solucin:

51

8.3.7. Escribir un algoritmo que d como resultado la cantidad de


nmeros capicas que hay dentro de un rango de nmeros.

Solucin:

52

8.3.8. Para un reinado popular se ha presentado una cantidad


desconocida de candidatas (se exige mximo 250 damas). La
junta directiva del reinado decide inscribirlas a todas, pero solo
selecciona a aquellas cuya estatura oscila entre 1.65 y 1.85 cm
de estatura, inclusive. 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 ms altas (las que estn por
encima del promedio). Haga un programa que muestre ambos
listados y muestre tambin la estatura promedio de las
candidatas seleccionadas por la junta.

Solucin:

53

8.3.9. Disear un algoritmo donde se ingrese las temperaturas de 7


das y determine, la temperatura promedio, los das con
temperaturas menores a la temperatura promedio y cul fue el
da ms clido.

54

Solucin:

8.3.10.
Disear un programa que permita ingresar una cantidad
de nmeros enteros y luego para cada nmero ingresado mostrar
su cantidad de dgitos.
Solucin 1:

Solucin 2:

55

8.3.11.
Disear un algoritmo que permita ingresar una cantidad
de nmeros enteros y luego para cada nmero ingresado,
mostrar su cantidad de dgitos
Solucin:

8.3.12.
orden

Escribir un algoritmo que permita ingresar un matriz de


nxn y luego mostrar:
El elemento mayor de la matriz
La suma de los elementos de la matriz
La suma de la diagonal

Solucin:

56

8.3.13.
Escribir un algoritmo que permita ingresar N nmeros y
luego determinar la cantidad de los nmeros que se repiten y los
que no repiten, adems de determinar la cantidad de veces que
se repite un elemento.

8.3.14.
Escribir un algoritmo que indique si un elemento de una
matriz est repetido.

8.3.15.
Hacer un programa que solicite la informacin de un
paciente, que lo clasifique como: paciente sin enfermedad,
paciente pasa a medicina preventiva, paciente pasa a consulta
mdica, paciente grave pasa a internarse o paciente muy graves
pasan directamente al hospital de especialidad. Para pacientes

57

sin enfermedades; Para ir a casa necesita (sin importar edad,


sexo)que su temperatura este entre 36.5 y 37.4 y no tenga
sntomas de dolor, adems su presin este entre 90/60 y 120/80
y que tiene un peso no mayor a 5 kilos de su peso normal. Sin
embargo si el paciente tiene posibles sntomas de
enfermedadpasa a medicina preventiva (sin importar edad,
sexo): su temperatura est entre 37.5 y 37.8 o tiene sntomas de
algn dolor, o su presin est por debajo de 90/60 o arriba de
120/180, o tiene ms de 7 kilos por abajo o por debajo o por
arriba de lo normal. Todopaciente con una seal clara de
enfermedad pasa directamente a consulta mdica: si tiene
temperatura entre 37.9 y 38.8, o tiene dolor agudo o tiene
presin muy baja o muy alta o pesa ms o menos de 20 kilos a lo
normal. Tambin pacientes con enfermedades graves pasa
directamente a internarse: si tiene temperatura mayor a 38.9 o
tiene dolor agudo o tiene presin muy baja o muy alta o pesa por
ms o menos 30 kilos a lo normal. Finalmente pacientes con
enfermedades muy graves pasa directamente al hospital de
especialidad, si tiene temperatura mayor a 38.9 o tiene dolor
agudo y tiene presin muy baja o muy alta a cualquier peso.

9. BORLAND C++

58

9.1.Programacin con Borland C++


El lenguaje de programacin C++ es un lenguaje de alto nivel que utiliza
aplicaciones de ingeniera como aplicaciones administrativas.
Borland C++ es un lenguaje de programacin derivado de C++.
Desarrollado por la compaa Borland Software Corporacin.
La evolucin del C++ ha continuado con la aparicin del Java, utilizada
en la presente dcada para realizar aplicaciones en internet.
9.2.Etapas para la elaboracin de un programa
El proceso de solucin de un problema en la computadora conduce
a a la escritura y la ejecucin del programa en la misma.
La elaboracin de un programa requiere un proceso creativo.
La solucin de un programa requiere las siguientes etapas.
- Anlisis del problema
- Diseo del algoritmo (Diagramas de flujo - Pseudocodigo
Pseint)
- Codificacin del programa
- Compilacin y ejecucin del programa
- Verificacin y depuracin del programa
- Documentacin
Las dos primeras etapas conducen a un diseo detallado escrito en
forma de algoritmo.
La tercera etapa (codificacin) se implementa el algoritmo en un cdigo
escrito en un lenguaje de programacin, reflejando
las ideas
desarrolladas en las fases de anlisis y diseo.
La compilacin y ejecucin traduce y ejecuta el programa.
En la etapa de verificacin y depuracin el programador busca errores de
las etapas anteriores y los elimina.
Por ltimo se realiza la documentacin del programa.
9.2.1. Anlisis del problema
Identificar los requerimientos internos y externos del problema:

Requerimientos Internos (gestin de datos)

Qu debe hacer el programa?, Qu datos de entrada y de salida


intervienen en el proceso?

Requerimientos Externos (interaccin con el usuario y con


otras aplicaciones)

59

En qu mquina y sistema operativo se debe ejecutar?,


Quin ser el usuario de la aplicacin?

9.2.2. Diseo de un algoritmo


Buscar una solucin informtica del problema planteado
Uso de algoritmos
Establece de manera genrica la secuencia de pasos o acciones que
resuelve un problema determinado.
Uso de herramientas para el diseo de algoritmos:

Diagramas de flujo (ordinogramas)


Pseudocdigo (lenguaje intermedio) - PSeint

9.2.3. Codificacin de un programa


Las sentencias (acciones) definidas en el algoritmo se deben convertir
a a instrucciones (ordenes) a la computadora mediante un lenguaje
de programacin de alto nivel.
9.2.4. Compilacin y ejecucin de un programa

Compilacin ( Proceso de Traduccin)

Es el proceso mediante el cual se lleva un programa escrito


enlenguaje de alto nivel a lenguaje de mquina.
Durante el proceso de compilacin se determinan los errores de
sintaxis del programa informtico. Si hay errores es preciso
corregir los errores y volver a compilar.

Compilador

Es un programa que se encarga de


simblico al lenguaje de mquina.

la traduccin

9.2.5. Verificacin y mantenimiento del programa

del lenguaje

60

La etapa de la verificacin verifica el correcto funcionamiento del


programa con una amplia variedad de datos de entrada, llamados
datos de prueba. Los datos de prueba deben cubrir una amplia gama
de posibilidades que incluye datos normales, datos extremos y datos
especiales.
El mantenimiento de los programas consiste en la actualizacin o
correccin de los programas no detectados en las fases anteriores.

9.3.Estructura de un programa con Borland C++


El esquema de un programa en Borland C++ se compone bsicamente
de las siguientes partes:

Directivas definidas.
Una funcin principal main()
Declaraciones
y
definiciones
de
(sentencias), declaradas por el usuario.

funciones

secundarias

Estructuras bsicas del programa

9.3.1. Directicas Definidas


Las directivas definidas son
compilador del borland C ++

instrucciones

especiales

para

el

Las directivas son generalmente #include y #define (indica al


compilador que incluya el contenido del archivo referenciado).
Estos archivos se denominan archivos de cabecera y tienen una
extensin .h
Ejemplos:

61

#include<math.h> //incluye al archivo fuente C++ de las


libreras matemticas.
#include<conio.h> // incluye al archivo fuente el manejo de
pantalla.
#include<iostream.h> // proporciona la informacin necesaria
sobre las funciones de biblioteca, cin y cout.

9.3.2. La funcin principal MAIN()


Los programas de C++ contienen una funcin main() la cuales
llamada funcin principal y es el punto inicial de entrada al
programa.
Las sentencias incluidas entre las llaves { } se denominan bloque y
en el caso de la Funcin main() estas sentencias se denominan
cuerpo del programa.

9.3.3. La sentencia
Todas las sentencias de un programa en el lenguaje C++ deben
finalizar en punto y coma.
Las llaves agrupan sentencias (bloque de sentencias):
{
clrscr(); Cout<<suma=<< resultado;
getch();
}
Las comas separan elementos iguales: int x, m, n;

Comentarios:

Los
comentarios
no
generan cdigo de mquina y son
ignorados por el compilador. Con fines de documentacin
sepueden aadir comentarios a un programa.
Se consideran como comentarios:
-

Al texto que sigue a los caracteres // hasta el final de la


lnea.
Al texto de una o ms lneas encerrado entre / * y / * .

62

Los identificadores

Los identificadores son nombres usados para identificar a las


variables, las constantes, tipos, funciones y etiquetas en un
programa, etc.
Reglas para construir identificadores vlidos:
-

Primer carcter debe ser una letra o el carcter subrayado,


los caracteres siguientes pueden ser letras, nmeros o
smbolo de subrayado. No se permiten espacios en blanco.
La longitud mxima es de 32 caracteres (estndar).
El nombre del identificador no puede ser una palabra
reservada, como: do o if.
Las letras maysculas y las letras minsculas se consideran
como diferentes, por ejemplo PROGRAMACION es diferente
de Programacin y a la vez de proGraMacion; ya que para
estas, el compilador entiende que son variables diferentes y
no iguales.

Ms ejemplos de identificadores vlidos:


Nota, nota, suma, area_triangulo, dias_mes

Palabras reservadas

Las palabras reservada son palabras seleccionadas por el lenguaje


de programacin para un propsito especial y slo puede usarse
en una forma especfica.
Las palabras reservadas del C++ se escriben en letras minsculas.

63

9.4.Tipos de datos en C++


El objetivo de todos los programas es procesar datos, sean numricos,
alfabticos o audio. Es fundamental para este objetivo la clasificacin de
los datos en tipos especficos.
Tipo de dato se define como un conjunto de valores y un conjunto de
operaciones que pueden aplicarse a estos valores.
Los tipos de datos ms comunes son: entero (int), real (float) y carcter
(char), los tipos de datos son usados para definir el tipo de variables, de
constantes, etc.
Tipos de datos bsicos:

Tipos de datos extendidos

64

9.4.1. Variable
La variable es una localizacin en la memoria del computador que
guarda informacin para ser procesada por la computadora.
Una variable tiene un nombre, un tipo, un valor y una direccin.
Representan a identificadores que cambian su valor durante la
ejecucin de un programa.
Nombre: Especifica la posicin de memoria asignada
Tipo: Especifica si la variable contiene un nmero entero, nmero
real, carcter u otro tipo de dato.
Valor: Representa el contenido de la variable en un momento dado.
Direccin: Especifica el lugar donde se almacena la variable.

Declaracin de una variable

Una variable antes de ser utilizada debe ser creada en la memoria del
computador mediante su declaracin.
Declaracin de una variable: tipo_de_dato (nombre de Variable);
tipo_de_dato: Es una palabra reservada que indica el tipo de dato que va
almacenar una variable (char, int, float, etc).

nombreDeVariable: Es el nombre elegido para la variable.


Declaremos tres variables una entera a", un carcter respuesta y una de
tipo real b.
Int a; char respuesta; float b;
Nota: Una variable tambin puede ser inicializada al momento de su
declaracin, ejemplo:
tipo_de_datonombreDeVariable = valor_inicial;
Si las variables son del mismo tipo se pueden declarar en simultneo pero
separadas por una coma.

Declaracin de Variables de cadena de caracteres

65

char cadena [tamao]; Ejemplo: char nombre [35];


Cadena: Es el nombre arbitrario elegido para la variable de cadena.
Tamao: Es el tamao de la cadena (debe ser uno o ms que el nmero
total de caracteres).Una cadena tambin puede ser inicializada al momento
de sudeclaracin as:

Char cadena [5] = cobre;

9.4.2. Constantes
Las constantes representan a identificadores que no cambian su valor
en el desarrollo de un programa.
En C++ se pueden declarar las denominas constantes usando el
calificador const Las constantes tambin se conocen como
variables nombradas o variables de slo lectura.

Declaracin de una constante

Consttipo_de_dato nombre = valor_constante;


-

Tipo_de_dato es el tipo de la variable (int, float, char, etc)


Nombre es el nombre identificado para la constante
Valor_constante es el valor asignado a la constante

Ejemlos:
Constint
mes=30;
constcharrespuesta = S;

constfloat

pi=3.14;

Directiva #define

La directiva #define actualmente es poco usada en C++, en su


lugar se usa const para declarar las constantes que se van a
utilizar en un programa.
#define nombreConstante valor
Ejemplos: #define pi 3.14; #define raya ------------; #define
saludos Buenos tardes

9.5.Tipos de operadores
9.5.1. Operadores aritmticos

66

Evaluacin de expresiones

Regla de jerarqua de operadores aritmticos

Reglas:
-

Si existen parntesis anidados, se evala primero la


expresin en el parntesis ms interno.
Si varios operadores estn en el mismo nivel de jerarqua, la
evaluacin ser de izquierda a derecha.

Ejemplos:
10 % 3 respuesta 1
8 / 2 * 3 2 respuesta es 10
8 + 5 * 7 % 2 * 4 respuesta es 12

67

9.5.2.
relacin

Operadores

de

9.5.3. Operadores de lgicos

9.5.4. Operadores de incremento o decrecimiento


Los casos en que una variable es incrementada o disminuida en uno,
C++ proporciona dos operadores unitarios.
El operador de incremento (++) y decremento (- -)
n = n + 1; se reemplaza por la expresin n++ o ++n

68

n = n - 1; se reemplaza por la expresin n- - o - -n


Ejemplo: numero = valor ++; // incrementa valor en 1

9.6.Entradas y salidas bsicas


La informacin que necesita el compilador sobre cin y cout se encuentra
en el archivo de cabecera iostream.h que debe incluirse en todo
programa.
#include<iostream.h>: Es un comando preprocesador que utiliza la
palabra reservada include con un signo de nmero (#) y ejecuta alguna
accin antes que el compilador traduzca el programa fuente a cdigo de
mquina.
La entrada y salida (input / output) en C++ se realiza utilizando los
siguientes flujos: cin y cout

9.6.1. Entradas bsicas


El flujo cin, se usa para introducir datos en un programa mientras se
est ejecutando, cin es un flujo de datos que conecta el teclado con el
programa.
Cualquier entrada desde el teclado es enviada primero al flujo cin,
luego el programa puede extraer (leer) datos desde este flujo.
La forma ms simple de leer se efecta mediante el smbolo de
extraccin: >> (obtener de) cin>> variable;
Ejemplo: cin>> nota;

9.6.2. Salidas bsicas:


El flujo cout, cuyo nombre deriva de Console OUT put, es un objeto
de salida que enva datos introducidos en l al dispositivo estndar de
salida, este dispositivo de salida es generalmente una pantalla de
video.
La forma ms simple de salida se efecta mediante el smbolo
deinsercin: << (enviar a).
Ejemplos:

69

cout<< es primo;
cout<< Hola Amigos;

Ejercicio: Usaremos la entrada y salida bsica


#include <iostream.h>
#include <conio.h>
void main ()
{ int a, b, sumarestaproducto;
clrscr ();
cout<<"ingrese a:" ; cin>>a;
cout<<"ingrese b:" ; cin>>b;
suma = a+b ; resta = a-b ; producto = a*b ;
cout<<"La suma es:" << suma << \n;
cout<< "La resta es:" << resta << \n ;
cout<< "El producto es:" << producto << \n;
getch() ;
}

9.7.Secuencia de escape
Las secuencias de escape proporcionan un determinado significado al
enviar ciertos caracteres especiales a la pantalla, o por ejemplo un
archivo en disco a la impresora. Todas las secuencias de escape
comienzan con el carcter barra invertida \ .

70

Ejemple: cout<< CALCULAR PROMEDIO DE NOTAS\n;


La secuencia de escape \n presenta el cursor en la siguiente lnea.

9.7.1. Manipulacin 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, por ejemplo si se requiere
especificar el nmero de decimales de un nmero real o ajustar los
datos a un ancho predeterminado.
Los manipulares manipulan las salidas de los datos de la forma que el
usuario lo desee.
Estos manipuladores se usan dentro del cout y debe incluir el archivo
#include<iomanip.h> en el programa.

Tabla de manipuladores de flujo Entrada/Salida

71

Tabla de indicadores de formato para usarse con setiosflag

72

9.7.2. La funcin GOTOXY()


La funcin gotoxy (x,y) ubica el cursor en la posicin x, y de una
ventana de texto. La coordenada X indica la columna a desplazar, la
coordenada Y nos indica la fila hacia donde se desplazar el cursor.
Ejemplo:
gotoxy(20,10); // desplaza el cursor a la columna 20, fila 10
La informacin que necesita el compilador para procesar dicha
sentencia se encuentra en el archivo de cabecera conio.h

9.8.Sentencia de asignacin:
Las sentencias de asignacin permiten a las variables almacenar el valor
de una expresin. La forma general de una sentencia de asignacin es:
variable = expresin;
Variable: Es el nombre de la variable que recibe la asignacin. Expresin:
Puede ser tan simple como una constante o tan compleja como una
combinacin de operadores con datos evaluados para producir un valor.

9.8.1. Variables de asignacin


Las sentencias de asignacin, que usan la misma variable en ambos
lados del operador de asignacin, pueden escribirse usando los
siguientes atajos de operadores de asignacin.
Ejemplos:
suma = suma + 10; es equivalente a suma += 10;
precio = precio * tasa; es equivalente precio *= tasa;
Operadores de asignacin

73

9.9.Funciones Comunes en C++

9.10.

Procesos de control

Se tratara la sintaxis de los principales procesos de control del Lenguaje


de Programacin Borland C++, se escribe en mdulos, se componen
bsicamente de algoritmos y estructuras de datos que en su conjunto
forman un programa. Los procesos de control pueden ser:

Procesos Secuenciales
Procesos Selectivos
Procesos Repetitivos

9.10.1.

Procesos secuenciales

74

Definido como una secuencia finita de sentencias o instrucciones


hasta obtener un resultado coherente. Su ejecucin se realiza en el
orden en que se presentan las SENTENCIAS, desde el inicio hasta el
final del programa. En C++ estas son sentencias simples que
terminan en punto y como ( ; ).
<sentencia_1>;
<sentencia_2>;
- - - - - - - - - - - -<sentencia _n >;
Un proceso secuencial est formada por una sola sentencia y se
ejecutan en secuencia, es decir una sentencia despus de la otra,
en el orden en que son colocadas dentro del programa.

Tipos de sentencias secuenciales:


Sentencia de entrada: cin>>n ;
Sentencia de salida: cout<<n ;
Sentencia de asignacin: n = n +1;

9.10.2.

Procesos Selectivos

El proceso selectivo se utiliza para alterar el flujo de control


secuencial de un programa, mediante la evaluacin de una expresin
lgica.
Una expresin lgica es una asociacin de datos con operadores de
relacional y/o lgico, donde cada dato puede ser una constante o una
variable y los operadores pueden ser de relacin y/o lgicos.
Son ejemplos de expresiones de relaciones los siguientes:
(edad< 40) (indicador != n) (n == 818252)

Proceso Selectivo Simple: Sentencia if (Una alternativa)

if (expresin lgica)
sentencia ;
-

Sentencias If

75

La sentencia selectiva simple evala una (expresin lgica).La


evaluacin de la expresin lgica representa un slo valor
Verdad o Falso.
o
o

Si la expresin lgica es verdadera se ejecuta la


sentencia_1 y luego lasentencia_2.
Si al evaluar la expresin lgica es falsa slo se ejecuta
la sentencia_2.

Ejemplo:
if (nota > 10)
cout<< curso aprobado ;

Proceso Selectivo Doble: Sentencia if-else (Dos alternativas)

if (expresin lgica)
sentencia_1 ;
-

Sentencia If-else

76

La sentencia selectiva doble evala una expresin lgica.


o
o

Si la expresin lgica es verdadera se ejecuta la


sentencia_1.
Si la expresin lgica es evaluada como falsa se ejecuta
la sentencia_2.

Ejemplo:
if (( numero%2)==0)
cout<< El numero es par ;
else
cout<< El numero es impar ;

Observaciones

1. La expresin lgica es una expresin que ser evaluada


como verdadera o falsa. La expresin puede ser simple (una
condicin) o compuesta, la cual est formada por varias
expresiones simples conectadas por los operadores lgicos.
2. Siempre se usa parntesis encerrando a la expresin lgica a
evaluarse.
3. Las estructuras if se pueden anidar, es decir; puede existir
un proceso if dentro de otro if.
-

Sentencias If-elseanidadaas

77

if(expresin lgica 1)
sentencia1;
else (expresin lgica
2)
sentencia2;
if (expresin lgica 3)
sentencia3;

Proceso
Selectivo
alternativas)

Mltiple:

Sentencia

switch

switch(selector) {
case valor_ 1: <sentencia_1>; break;
case valor_ 2: <sentencia_2>; break;
case valor_n: <sentencia_n>;break;
-

Sentencia switch

(Varias

78

La sentencia selectiva switch se utiliza para seleccionar una de


varias alternativas. La sentencia switch se utiliza cuando la
seleccin se basaen el valor de una variable Simple o
de una expresin Simple denominada expresin de control o
selector.
El valor del selector debe ser entero.

Observaciones

Cuando se requiere realizar una misma accin para distintos


valores de la expresin evaluada, se escribe el programa de la
siguiente forma:

Switch (a) {
case1:case2:case3: cout<<sentencia para valor 1, 2 y 3;
break;
Case 4: cout<<sentencia para valor 4; break;
}

Reglas de uso

1. La variable selector o expresin de control no puede ser:


string o real.

79

2. La sentencia swith requiere un valor compatible con entero.


El valor puede ser variable, una constante, una llamada de
funcin o una expresin.
3. El valor despus de cada etiqueta case debe ser una
constante.
4. El final de cada sentencia alternativa del case est marcado
tpicamente con un break. Dicha sentencia permite que el
programa abandone la estructura switch omitiendo los dems
casos.
5. La etiqueta default indica al programa lo mismo que la
sentencia else en la secuencia de if anidados, es decir; se
ejecuta cuando el usuario edita un valor que no est en la lista
de valores.

Ejemplo:
Switch (da) {
case 1: cout<<Lunes ; break ;
case 2: cout<<Martes ; break ;
case 3: cout<<Miercoles ; break ;
case 4: cout<<Jueves ; break ;
case 5: cout<<Viernes ; break
case 6: cout<<Sbado ; break ;
case 7: cout<<Domingo ; break ;
default: cout<<No es un da de la semana ;
}

9.10.3.

Procesos repetitivos

80

Corresponde a
la
ejecucin repetida de una secuencia de
sentencias, mientras se cumple una determinada condici (expresin
lgica). Poseen una sola entrada y una sola salida.
Los procesos que repiten una secuencia de sentencias un nmero
determinado de veces se denomina bucle o lazos, y se llama
ITERACCIN al hecho de repetir la ejecucin de una secuencia de
sentencias.
En los procesos repetitivos se presentan las siguientes sentencias:

Sentencia while (Bucle con entrada controlada)

while (condicin) sea verdad


{

Sentencia while

La sentencia while permite evaluar una condicin y ejecuta el


cuerpo del bucle si la condicin
(expresin lgica) es
verdad.
Si la condicin de control es falsa no se ejecuta el cuerpo del
bucle.

Sentencia do while (Bucle con salida controlada)

81

do
{
sentencia_1;
-

Sentencia do while

La sentencias do - while evala una condicin (expresin


lgica) despus de ejecutar el cuerpo del blucle do, que se
ejecutar en secuencia repetitiva hasta que, la condicin
lgica tome un valor de verdad.
El cuerpo del bucle se ejecuta por lo menos una vez porque la
condicin se evala despus de la ejecucin del bucle
repetitivo.

Sentencia for (Bucle con numero definido de iteraciones)

82

for (inicializacin; <expresin lgica>; contador)


{
<sentencia_1>;
<sentencia_2>;

<sentencia_3>;
}

Sentencia for

Inicializacin:Indica las condiciones iniciales cuando se inicia el


bucle.
<Condicin>: Se evala antes de cada iteraccin. Si es
verdadera, se ejecuta el bloque de instrucciones, en caso
contrario se termina la estructura y se transfiere el control a la
sentencia siguiente.
Contador: Es la instruccin a ejecutarse cuando se termina
cada iteracin.

83

9.11.

Estructura de datos Arreglos

9.11.1.

Introduccin a las estructuras de datos

Datos simple

Las variables utilizadas hasta hoy tienen una caracterstica


comn: cada variable slo puede utilizarse para almacenar un slo
valor.
Estos tipos de variables se llaman variables escalares y son de
tipo: entero, real, boolean y carcter.
Son tipos de datos simples cuyo valor no se puede subdividir.

Datos estructurales

DATOS ESTRUCTURADOS: ESTTICOS


9.11.2.

ARREGLOS (arreglos)
CADENAS (char)
REGISTRO (Struct)
ARCHIVO (File)
Arreglos unidimensionales (vector o lista)

Es una estructura de datos en la que se almacenanuna coleccin de


datos del mismo tipo, con un nico nombre de variable.
El tipo de elemento almacenado
cualquier tipo vlido de C++.

Caractersticas

en

el

arreglo

puede ser

84

Todos sus elementos tienen un mismo nombre


Los elementos estn almacenados en posiciones contiguas
de memoria, estos a su vez se diferencian por un ndice. En
C++ el primer ndice de un arreglo es 0 y el ltimo ndice es
igual al nmero de elementos 1.
Utilizando el ndice se puede tener acceso directo a
cualquier elemento del arreglo.

Los arreglos pueden clasificarse en


- Unidimensionales: un solo ndice (lista o vectores)
- Bidimensionales: dos ndices (tabla o matrices)
- Multidimensional: varios ndices

El uso de los arreglos simplifica la programacin ya que utiliza un


solo nombre de variable para almacenar varios datos. Si
queremos utilizar una variable con 20 notas haremos la siguiente
declaracin nota[20] y accedemos a cada elemento utilizando un
ndice.
Vector: Coleccin de datos compuestos de un nmero de
elementos homogneos definidos.
Declaracin de arreglos
Tipo nombre [tamao]; Dnde:
-

Tipo es el tipo de base del arreglo y puede ser un tipo


incorporado
(int, float, char, double, etc) o un tipo
abstracto (un tipo creado por el programador como es el
caso de una estructura).
Nombre es el nombre del arreglo
Tamao indica cuantos elementos tiene el arreglo.

Tipo nombre [ndice] ;


El primer ndice es igual a 0 y el ndice del ltimo trmino es
igual al tamao-1.
Entonces para: intnota[ 5 ] ; Reserva
espacio en memoria para 5 nmeros enteros ubicados
en posiciones contiguas como puede observarse en la
siguiente representacin grfica.
ndice
0
1
2
3
4

Elemen
to
nota[0]
nota[1]
nota[2]
nota[3]
nota[4]

85

Cada elemento del


diferente ndice.

arreglo tiene el mismo

nombre

pero

Iniciacin de una arreglo unidimensional


Para utilizar un arreglo primero se deben asignar valores acada
uno de los elementos, para asignar valores a cada
elemento se escribe las siguientes sentencias:
nota[0] = 10; nota[1] = 5; nota[2] = 15; nota[3] = 7; nota[4] =
20;
Cada elemento individual es una variable indexada, ya que
debe usarse tanto un nombre de variable como un valor ndice
o subndice para hacer referencia al elemento. El valor ndice
da la posicin del elemento en el arreglo: nota[2] = 15;
Son ejemplos que utilizan los elementos del arreglo nota:
nota[0] = 19;
nota[1] = nota[0] + 5;
Suponiendo que i y j son variables enteras, las siguientes
variables indexadas son vlidas: nota[2*i]; Nota [j-i];.
Cuando se desea inicializar un arreglo que tiene muchos
elementos se utiliza el siguiente formato: intnota[5] =
{10,5,15,17,20};
Los elementos que conforman el arreglo se encierran entre
llaves { } separados por comas, el arreglo notas contiene 5
elementos.
Existe la posibilidad de dejar vaco los corchetes tal como se
muestra a continuacin: intnota[ ] = {10,5,15,17,20};

Operaciones con arreglo unidimensional


Las operaciones con un arreglo unidimensional involucran un
proceso secuencial que va desde el primer elemento hasta el
ltimo elemento, lo que implica el uso de las siguientes
estructuras repetitivas: while, do..while y for (recomendable).
-

LECTURA DE LOS ELEMENTOS DE UN ARREGLO

86

Una vez declarado un arreglo, se puede ingresar cada uno de


los elementos del arreglo tal como se muestra a continuacin:
for (i=0; i< n; i++)

Ejemplo:
constint n=4;
intnotas [n]; // Ingreso de notas
for (i=0; i< n; i++)
{
cout<< Ingresenotas : ;
cin>>notas [i];
}

PROCESOS UTILIZANDO ELEMENTOS DE UN ARREGLO

Una vez ingresados todos los elementos del arreglo se


pueden realizar clculos, generar expresiones, calcular
promedios, buscar un elemento del arreglo y ordenar el
arreglo, normalmente utilizando la estructura for.
Si consideramos un arreglo notas de tamao N, en general, el
recorrido completo del arreglo unidimensional puede hacerse
con el siguiente fragmento de cdigo:
for ( i=0; i < N; i++)
{
//sentencias con el elemento notas [i]
}
Conforme i vaya tomando los valores 0,1,2,3, . ,N-1 se
estar accediendo a los elementos notas[0], notas[1],
notas[2],..., notas [N-1]respectivamente.
-

SALIDA DE LOS ELEMENTOS DE UN ARREGLO:

Se puede mostrar en pantalla los elementos de un arreglo tal


como semuestra a continuacin:

87

clrscr( ); cout<<\n\n Notas ingresadas ;


for ( j=0; j < n; j++)
{
cout<< \nNota [<< j + 1 << ] ;
cout<<notas [ j ] ;
}
Tcnicas de bsqueda
-

Bsqueda lineal o secuencial

La bsqueda secuencial consiste en el recorrido de todo el


arreglo, desde el primer elemento hasta el ltimo, y de uno en
uno. La intencin es obtener el ndice del elemento buscado
dado que con el ndice se puede acceder al arreglo para
obtener informacin sobre el elemento. Sin embargo, una
bsqueda lineal tiene ventajas:
o
o

El algoritmo es simple
La lista no necesita estar en ningn orden particular

Si tenemos un arreglo de notas de tamao N, el pseudocdigo


para la bsqueda 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,10,10,11,12,13,15,17,18,19}
Introducir la nota que se busca: 13. La nota es encontrada en
la posicin ndice 5
Introducir la nota que se busca: 20. La nota no es encontrada
en la lista
-

Bsqueda binaria

88

La bsqueda binaria es ms eficiente para realizar bsquedas


en un arreglo que la bsqueda secuencial.
Una condicin necesaria es que el arreglo este ordenado
previamente. El algoritmo consiste en dividir el arreglo en dos
partes, luego se verifica en que seccin se ubica el nmero
que se busca y repetir estos pasos hasta lograr el xito o
fracaso en la bsqueda.
Se presentan tres posibilidades una vez que se realiza la
comparacin:
-

Elemento buscado es igual al elemento intermedio.


La bsqueda ha sido exitosa
Elemento buscado es mayor al elemento intermedio
Elemento buscado debe estar en la segunda mitad
de la lista
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,10,10,11,12,13,15,17,18,19}, Se desea buscar la
nota 18
1
2
3
4

5
6
7
8

Se asigna al primero = 0 y ltimo = 10


Se define el trmino central = (primero + ltimo)/2 =
0+10 = 5
A continuacin se evala notas [central] = nota [5] =
13
Se pregunta si nota buscada es igual que notas
[central], si es verdadero se encontr el elemento
buscado.
Si lo anterior es falso
Se pregunta si la nota buscada es mayor que nota
[central] (18 > 13), si es verdad.
Asignar a primero = central + 1, primero = 5 +1 = 6
Volver al paso 2 central = (primero + ltimo)/2 = (6 +
10)/2 = 8. Evaluar nota[8] este valor es 18. Al
preguntar si nota buscada = nota [central] es
verdadero entonces se encontr el elemento.
Si el paso 6 es falso asignar a ltimo = central -1 y
regresar al punto 2. los pasos 29 se deben realizar
mientras se cumpla primero <= ltimo y adems
encontrado sea falso (0).

Mtodos de ordenacin

Para ordenar datos, existen dos categoras principales de tcnicas


de ordenamiento, llamadas ordenamiento interno y externo.

89

Los ordenamientos internos se usan cuando las listas de datos no


son grandes y pueden ordenarse dentro de la memoria del
computador, por lo general en un arreglo.
Los ordenamientos externos se usan para conjuntos de datos
mucho ms grandes que se almacenan en archivos de disco o
cintas externas.
Ordenacin por seleccin
Es una tcnica de seleccin simple, donde el valor ms pequeo
se selecciona al inicio de la lista completa de datos y se
intercambia con el primer elemento en la lista. Despus de esta
primera seleccin e intercambio, el siguiente elemento ms
pequeo en las listas revisadas se selecciona e intercambia con el
segundo elemento en la lista. Dado que elemento ms pequeo ya
est en la primera posicin en la lista, este segundo recorrido slo
necesita considerar del segundo al ltimo elemento.
Para una lista con n elementos, este proceso se repite n 1 veces,
con cada recorrido a lo largo de la lista se requiere una
comparacin menos que el recorrido anterior.

Muestra de Ordenacin por seleccin

Ordenacin por intercambio


En un ordenamiento por intercambio, los elementos adyacentes de
la lista son intercambiados entre s, de tal manera que la lista
quede ordenada.
Sea un arreglo de notas de tamao N. La tcnica consiste en
ejecutar n-1 recorridos a lo largo del arreglo, donde en cada
recorrido se efectan comparaciones entre elementos adyacentes
intercambiando sus valores si estn desordenados utilizando una
variable temporal.

90

Ordenacin por Intercambio (burbuja): PRIMER RECORRIDO

Ejemplo: Pseudocdigo 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: Pseudocdigo 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

91

9.11.3.

Arreglo bidimensional: Matriz o tabla

Matriz: Coleccin de datos compuestos por dos ndices para ubicar


los elementos de las filas y las columnas de la matriz.
El siguiente arreglo de nmeros, se llama arreglo bidimensional de
nmeros enteros y consiste de dos filas y dos columnas, para reservar
almacenamiento para este arreglo, debe incluirse el nmero de filas y
el nmero de columnas en la declaracin del arreglo.
Sea m una matriz de 2x2

Declaracin de los arreglos bidimensionales


La forma general de declarar de un arreglo bidimensional es la
siguiente:
Tipo nombre [nmero de filas] [nmero de columnas]; Dnde:
-

Tipo: es el tipo de base del arreglo y puede ser un tipos escalar


(int, float, char, double, etc.) o un tipo abstracto (creado por el
programador).
Nombre: es el nombre del arreglo
Nmero: de filas y nmero de columnas

Considerar, por ejemplo un arreglo bidimensional llamada matrizque


consta de dos filas y dos columnas, su declaracin sera: int matriz
[ 2] [2];
Esto reserva espacio de memoria para un total de 4 nmeros enteros
(2x2) cuya distribucin grfica es

92

Operaciones con arreglos bidimensionales:


Para poder efectuar operaciones bidimensionales normalmentese
sigue un recorrido secuencial; del primero al ltimo elemento.
Dos son los recorridos ms usuales: recorrido por fila y recorridopor
columna, en ambos casos se requiere dos bucles anidados
(dos bucles for uno para la fila y otro para la columna).
-

Recorrido por filas

Se procesan primero los elementos de la primera fila, y luego


loselementos de la segunda fila y as sucesivamente.
El recorrido completo por filas se realiza con el siguiente cdigo:
for ( i = 0; f <numfila; f++)
{
for ( j = 0; c <numcolumna; c++)
{
// sentencias con el elemento arreglo [i][j]
}
}

Recorrido por columnas

Se procesan primero los elementos de la primera columna, a


continuacin los elementos de la segunda columna y as
sucesivamente.
El recorrido completo por columnas se realiza con el siguiente cdigo:
for ( c = 0; c <numcolumna; c++ )
{
for ( f = 0; f <numfila; f++)
{
// sentencias con el elemento arreglo [c][f]
}
}

93

Iniciacin de arreglos bidimensionales


Un arreglo puede ser inicializado en el momento de sudeclaracin. La
forma general de inicializacin es:
Tipo nombre [numfila1] [numcolumna1] = {lista_de valores}; Dnde:
- La lista de valores: es una lista de valores separado por comas, para
el caso de arreglos bidimensionales los valores se colocan siguiendo
el orden de las filas.
Si la lista de inicializaciones contiene menos elementos que los
indicadospor el tamao del arreglo, los elementos restantes son
inicializados a cero en forma automtica.
- En una secuencia de inicializacin de un arreglo puede omitirse el
tamao de los arreglos unidimensionales y el nmero de filas en el
caso de los arreglos bidimensionales. Esto genera arreglos
indeterminados y el compilador crea automticamente un arreglo
suficientemente grande para contener todos los inicializadores.
// Declara e inicializa un arreglo bidimensional indeterminado int c [][]
= {7,2,5,1,3,5,4,8,9}, el compilador crea un arreglo de 3 filas 3
columnas.

9.12.

Funciones y procedimientos

9.12.1.

Introduccin:

Con la finalidad de facilitar la programacin de aplicaciones


con un gran nmero de sentencias y/o Instrucciones, utilizaremos
la programacin modular. Dicha programacin consiste en dividir
un programa en unidades de menor tamao, donde cada fragmento
realiza una tarea explcita y nica. Cada uno de esos fragmentos
recibe el nombre de mdulo, en el lenguaje de programacin C++
los mdulos se llaman funcin eso procedimientos.
Dichos mdulos nos permite hacer pequeas porciones de cdigo
reutilizable, que pueden ser llamados desde elprograma principal
sinnecesidad de volver a repetirlos.

Programa modular

El funcionamiento del programa Modular, se basa en que el


Programa Principal llama, a una funcin por su nombre, la funcin

94

procesa sus instrucciones y luego devuelve al programa principal


la tarea realizada por la funcin.
nombre de la funcin (datos transmitidos a la funcin)
-

Nombre de la funcin: Esto identifica a la funcin llamada


Datos transmitidos a la funcin: Esto transmite datos a la
funcin

Asimismo, existe el concepto de procedimientos (proceso)el


cual no especifica el tipo de dato a devolver.

9.12.2.

Funciones predefinidas

El lenguaje de programacin Borland C++ cuenta con bibliotecas de


funciones predefinidas que podemos utilizar para la construccin de
nuestros programas.
La funcin sin se usa para determinar el seno de un nmero
valor1 = sin(3.14159);
valor2 = sin(x) - cos(y);
valor3 = sin(theta)/(sin(delta) - sin(delta-theta));

Funciones matemticas predefinidas

95

Funciones de biblioteca usadas en C++

9.12.3.

Funciones definidas por el usuario

Una funcin es un mdulo de programa (segmento de instrucciones)


que realiza una tarea especfica. Si la funcin utiliza argumentos,
debe declarar variables que acepten los valores de los argumentos.
Dichas variables son llamadas parmetros de funcin y son variables
locales a la funcin.
Una funcin retorna un valor al mdulo que lo llama
Un nombre de la funcin inicia con una letra o un subrayado ( _ ) y
contiene letras, nmeros o subrayado.

96

int mayor (int a, int b, int c);

Estructura de un programa principal y su mdulos

Declaracin de librera: #include<iostream.h>


Declaraciones de prototipo de funciones:
tipo_dato_devuelonombre_funcion (lista de parmetros)
Declaracin de variables
Declaracin de constantes globales
Definicin de las funciones
tipo_dato_devuelonombre_funcionNombre_funcion
parmetros)

(lista

de

{ <declaracin de variables locales>;


<cuerpo de la funcin>;
}
Programa principal:Voidmain() {// llamadas a las funciones por sus
nombre}

Declaracin de una funcin

Tipo_dato_devuelto Nombre_ funcin (lista de parmetros);


int mayor (int a, int b, int c);
Se declara una funcin para informar al compilador de los
atributos de la funcin, que ser definida posteriormente en el
programa.
La declaracin de una funcin consiste en escribir el prototipo de
la funcin antes de que dicha funcin sea definida en el programa.
-

Los prototipos

Un prototipo de funcin informa al compilador: el tipo de la


variable que retorna la funcin, nmero de parmetros que la
funcin espera recibir, los tipos de parmetros (no es
necesario el nombre de los parmetros) y el orden en el cual
se esperan dichos parmetros.

97

El compilador utiliza los prototipos para verificar las llamadas


de funcin.
-

Parmetros

Se denomina parmetros a las variables declarados en el


prototipo y debe corresponder con la definicin de la
funcin en el programa.Los parmetros son los datos de
entrada que necesita la funcin para realizar sus clculos. Los
parmetros estn separados por comas y se declaran igual
que las variables(tipo nombre).
A continuacin de la cabecera se encuentra el cuerpo de la
funcin que est entre un par de llaves ( {} ).

9.12.4.

Definicin de una funcin

Tipo_dato_devuelto Nombre_ funcin (lista de parmetros)


{
variables locales
<cuerpo de la funcin>;
}
ElTipo_dato_devuelto:Indica el tipo de valor que la funcin devolver
mediante el uso de return, su valor puede ser de cualquier tipo vlido.
Si no se especifica su tipo, entonces la computadora asume por
defecto que la funcin devolver un resultado entero.
Lista de parmetros: Lista de nombres de variables separadas por
comas en la que cada variable va asociada con su tipo. No siempre se
debe incluir parmetros en una funcin, la lista de parmetros
puede estar vaca.

Definicin de una funcin

Para definir una funcin debemos escribir el conjunto de


instrucciones que define la funcin. La definicin de una funcin
es en s la funcin misma, y est compuesta por:

98

El encabezado de la funcin que debe ser idntico


alprototipo de la funcin pero en ste caso no utilizar el
punto y coma (;),
Las variables locales
El cuerpo de la funcin

La instruccin return forma parte del cuerpo de la funcin y


tiene una doble finalidad:

a) Devolver un valor
b) Provocar la salida inmediata de la funcin que la contiene,
devolviendo el control de la ejecucin del programa a la lnea de
cdigo que llamo a la funcin.

Ejemplo:
floatprom( intnum1, intnum2) // cabecera de funcion
{ floatpromed; // declaracin de variable
promed = (num1 +num2) / 2.0;
return(promed); // valor devuelto
}
Void main() { int a=20 , b=50 ;
float respuesta;
respuesta = prom(a,b);
gotoxy(5,20);
cout<<promedio=<<respuesta;
getch();
}
Una funcin tiene un nico nombre, al utilizar este nombre en
otras partes del programa se puede ejecutar los enunciados
contenidos en la funcin. A esto se conoce como llamar a la

99

funcin. Una funcin puede ser llamada desde otra funcin, esta
tcnica se define como el anidamiento de funciones.
Para llamar a una funcin se escribe su nombre seguido por los
valores o parmetros de entrada que espera la funcin, estos
parmetros pasados a la funcin deben coincidir en nmero, tipo y
orden con los parmetros indicados en el prototipo de la funcin.
Una funcin es independiente, es decir una funcin puede ejecutar
sus tareas sin interferencia de otras partes del programa.
Una funcin devuelve un valor al programa que lo llam. Cundo
un programa llama a una funcin se ejecutan los enunciados
contenidos en sta y devuelve un valor al programa que lo llam.
Las funciones devuelven tipos de datos simples: entero, real,
carcter o lgico.
Tipos devueltos: float, int, double, char, etc.
Ejemplo: int factorial (int n) // La funcin factorial, devuelve un tipo
de dato entero.

Funciones con lista de parmetros y su valor devuelto


-

Declaracin de la funcin

Tipo_dato_devuelto Nombre_ funcin (lista de parmetros);


-

Definicin de la funcin

Tipo_dato_devuelto Nombre_ funcin (lista de parmetro)


{

<instrucciones>;

return;
}
*Lista de parmetros, puede ser: un dato simple, un vector
matriz, un puntero, cadena, etc.

Funciones sin lista de parmetros y su valor devuelto


-

Declaracin de la funcin

Tipo_dato_devuelto Nombre_ funcin (lista de parmetros);


-

Definicin de la funcin

100

Tipo_dato_devuelto Nombre_ funcin (lista de parmetro)


{

<instrucciones>;

return;
}
*Lista de parmetros, puede ser: un dato simple, un vector
matriz, un puntero, cadena, etc.

Procedimientos

La declaracin de procedimientos en C es muy similar a la


declaracin de las funciones pero no devuelven nada (void).
Entonces, en el cuerpo de un procedimiento no devolveremos
nada (no se escribe la instruccin return).
Tambin observamos diferencias al realizar la llamada, porque
ahora se llama directamente al procedimiento, sin necesidad de
usar una instruccin de asignacin (resultado= ).
La declaracin de los procedimientos devuelve un valor de tipo
void, es decir, vaco/nada.
- Partes necesarias de un procedimiento
1. La cabecera del procedimiento y debe ser de la siguiente
forma:
voidresta ( int a, int b)
2. La declaracin de variables para el procedimiento.
3. Las instrucciones del procedimiento para la resta.
El procedimiento termina y regresan automticamente al
procedimiento que las llam cuando se encuentra la ltima
llave }.

I.

Paso de parmetros por valor y por referencia

El lenguaje de programacin C++ proporciona dos mtodos para


pasar variables (parmetro) entre funciones:
a) Paso por Valor
La forma en que hemos declarado y pasado los parmetros de las
funciones hasta ahora es la que normalmente se conoce como
"por valor. Cuando los argumentos de llamada se pasan por
valor, se efecta una copia del valor argumento y esta se

101

pasa a la funcin llamada. Es decir el parmetro de la funcin slo


toma una copia del argumento.
b) Paso de parmetros por referencia
Procedimiento que permite modificar el valor de las variables.
Una variable consta, adems de su nombre, tipo y valor, de una
direccin de memoria en la que se ubica (valor numrico).
Para extraer la direccin de memoria a una variable se utiliza el
operador & antes de su nombre.
Para extraer el contenido de una direccin de memoria, se usa el
operador * antes de su nombre.
En la cabecera de la funcin se especifica cada parmetro por
referencia con el operador *. Dentro de la funcin, cambiaremos el
contenido de cada variable con *, para llamar a la funcin
usaremos el operador & para extraer la direccin de las
variables.

Partes necesarias de un procedimiento

Las funciones en C++ pueden establecer valores por omisino


ausencia (por defecto) para los parmetros.
Se pueden asignar argumentos por defecto a los parmetros de
una funcin.
Cuando se omite el argumento de un parmetro que es un
argumento por defecto, se utiliza automticamente este. Si se
pasan valores a los argumentos omitidos, se utiliza ese valor; si
no se pasa un valor a un parmetro opcional, se utiliza el
valor por defecto como argumento. El valor por defecto debe
ser una expresin constante.
void muestra(int fila, int columna, intnumero, char c = *);
muestra (4,0,40) bien muestra (4,0,40, # )
* el argumento explcito (# anula el carcter por
omisin)

voidfuncion1(int a, int b=0, int c=1); // Legal

102

funcion1(12, 10); // el valor para "c" es 1


funcion1(12); // los valores para "b" y "c" son 0 y 1
funcion1(); // el valor para "a" es obligatorio

II.

Variables

Variables locales y globales


-

C++ permite declarar variables en cualquier parte del


cdigo fuente.
Un identificador es local, cuando se define dentro del
cuerpo de una funcin, a este tipo de variable se le
denomina locales ya que son tiles dentro del cuerpo de la
funcin.
Un identificador es global, cuando estn definidos fuera
del cuerpo de cualquier funcin y se declara al principio del
programa. Generalmente
pueden
estar referidas por
cualquier funcin en el programa.

Las
variables
globales,
estn
disponibles
cualquierfuncin del programa, incluyendo a main ().

para

Las variables locales que tienen el mismo nombre quelas


variables globales no cambian el valor de las variablesglobales.

Las variables globales, se inicializan automticamenteen 0 (cero),


las locales no.
*Evitar el uso de variables globales y locales similares.

Funciones recursivas

Una funcin es recursiva


directamente o indirectamente.

cuando

se llama as misma

La Recursividad directa es el proceso por el cual una funcin se


llama as misma desde su propio cuerpo.
La Recursividad indirecta implica ms de una funcin.
Se define un programa en trminos recursivos, como una serie
de pasos bsicos finito.
Recursividad

103

Durante el proceso de compilacin, es importante resaltar en la


recursividad que cuando una funcin se llama as misma, una
nueva copia de sta funcin es la que se ejecuta.
Un proceso de recursividad debe tener una condicin para
terminar de ejecutar su proceso para generar resultados, de
lo contrario nunca terminara produciendo un bucle indefinido.

10.Problemas resueltos en Borland C++


10.1.

Estructuras asignativas y selectivas

10.1.1.
Disear un algoritmo que te envi el mensaje Creacin
de aplicaciones y debajo de este el mensaje utilizando Borland
C++ 5.0
Solucin:

104

10.1.2.
Escriba un algoritmo para calcular el rea de un
tringulo, el programa debe leer la base y la altura.
Solucin:

10.1.3.
Escribir un programa que permita leer tres notas de un
estudiante y luego calcular el promedio de estas.
Solucin:

105

10.1.4.
Disear un algoritmo que permita calcular el precio total
de una venta, el alumno deber de ingresar el precio del
producto y la cantidad de este.
Solucin:

10.1.5.
Disear un algoritmo que permita ingresar la cantidad de
un producto, el precio de este y el % de descuento a aplicar, y
luego mostrar:
- El subtotal = (precio) x (cantidad)
- El descuento = (subtotal) x (% de descuento)
- El total = (subtotal) (descuento)

106

El IGV = (18% total)


El total a pagar = total + IGV

Solucin:

10.1.6.
Disear un algoritmo para calcular el rea de un circulo,
se debe de ingresar el radio del crculo.
Solucin:

10.1.7.
Escriba un algoritmo que permita leer dos numeros y
luego mostrar para estos dos:
- La suma
- La diferencia
- El producto
- La divisin

107

Solucin:

10.1.8.
Disee un algoritmo que identifique si un nmero es
positivo o negativo
Solucin:

10.1.9.
Disee un algoritmo que lea un nmero, si este es
positivo se mostrara el numero al cuadrado pero si este es
negativo se finalizara el programa
Solucin:

108

10.1.10.
Escriba un programa que permita leer un numero
compuesto por ms de un digito y luego mostrar el numero
invertido.
Solucin:

10.1.11.
Disee un algoritmo que identifique si un numero
ingresado es par o impar
Solucin:

109

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

10.1.13.
Disear un algoritmo que lea un nmero y luego realice
lo siguiente: Identificar si el nmero es positivos o negativo y si
el nmero es o no mltiplo de 6.
Solucin:

110

10.1.14.
Disear un programa que permita ingresar 3 nmeros y
luego identificar el mayor de estos.
Solucin:

10.1.15.
Disear un programa que permita ingresar 5 notas y se
identifique la nota mayor y la nota menor.
Solucin:

111

10.1.16.
Escriba un algoritmo que permita ingresar 6 notas y
luego mostrar el promedio de las 5 mejores nota.
Solucin:

112

10.1.17.
Disear un algoritmo que permita ingresar 5
temperaturas tomadas en un da 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

Solucin:

113

10.1.18.
Escribir un algoritmo que calcule la raz cuadrada de un
nmero ingresado.
Solucin:

10.1.19.
Disee un algoritmo que permita ingresa 2 nmeros y
luego mostrar si estos son iguales o diferentes y tambin cual es
el mayor.

Solucin:

114

10.1.20.
Escribir un programa que permita leer una nota y escribir
la condicin acadmica del estudiante en el curso, segn la
siguiente informacin:
- De 0 a 6 condicin REPROBADO
- De 7 a 10 condicin DESAPROBADO
- De 11 a 16 condicin APROBADO
- De 17 a 20 condicin EXCELENTE

Solucin:

115

10.1.21.
Disear un algoritmo con la funcin espejo, que permita
ingresar un texto y luego mostrar el texto invertido
Solucin:

10.1.22.
Disear un algoritmo donde se halle la funcin =
volumen de un cubo, el usuario debe de ingresar el lado del
cubo.

Solucin:

116

10.1.23.
Escribir un programa que calcule un trmino de la serie
de Fibonacci. El usuario debe de ingresar un nmero y este ser
el trmino de la serie.
Solucin:

10.1.24.
Disee un programa que permita leer el promedio del
ciclo anterior de un estudiante y escribir la categora a la que
este pertenece, segn la siguiente informacin:
- De 0 a 5 categora D
- De 6 a 10 categora C
- De 11 a 15 categora B
- De 15 a 20 categora A
Solucin:

117

10.1.25.
Disear un programa que permita leer un nmero del
1 al 7 como selector de los das de la semana y escriba el da
de la semana correspondiente al da.
Solucin:

10.1.26.
Disear un programa que contenga dos funciones:
- Resta (param1, param2): permite calcular la resta de 2
nmeros enteros
- Multiplica (param1, param2): permite calcular el producto de
dos nmeros enteros
Solucin:

118

10.1.27.
Disear un programa que permita leer un nmero
entero y luego este debe pasar como parmetro en una funcin
sumar () y transformarlo sumando la unidad al valor ingresado.
Solucin:

10.1.28.
Disear un algoritmo que te muestre la informacin
siguiente: Impresora, 12, 125,52; deben de ir uno debajo del otro
y tambin alinear a la derecha esta informacin.
Solucin:

119

10.2.

Estructuras repetitivas

10.2.1.
Escribir un algoritmo que te muestre los nmeros del 0 al
10 en una columna, estos nmeros deben estar uno debajo del
otro.
Solucin:

120

10.2.2.
Disear un algoritmo que te muestre la tabla de
multiplicar( del 0 al 12) de un numero ingresado por el usuario
Solucin:

10.2.3.
Disear un algoritmo donde se ingrese dos nmeros
enteros y luego mostrar la suma de los nmeros desde el primer
nmero ingresado hasta el segundo nmero ingresado.
Solucin:

121

10.2.4.
Disear un algoritmo que te muestre la suma de los 200
primeros numeros enteros.
Solucin:

10.2.5.
Disear un programa que permita ingresar las notas de
un examen de 10 alumnos y luego mostrar: el nmero de
alumnos aprobados, el nmero de alumnos desaprobados y el
promedio general de los alumnos.

122

Solucin:

10.2.6.
Disear un algoritmo que permita ingresar 5 notas y
luego mostrar su promedio real, el promedio redondeado hacia
arriba y el promedio redondeado hacia abajo.
Solucin:

123

10.2.7.
Escribir un programa que determine todas las soluciones
enteras de la ecuacin A2 + B2= C2para A, B y C entre 1 y 25.
Solucin:

10.2.8.
Escribir un algoritmo para calcular la factorial de un
nmero ingresado.
Solucin:

124

10.2.9.
Escriba un programa que permita leer un numero
compuesto por ms de un digito y luego mostrar:
a) El nmero de dgitos
b) La suma de los dgitos totales
c) La suma de los dgitos pares
d) La suma de los dgitos impares
Solucin:

10.2.10.

Disear un algoritmo para calcular la siguiente


i=n

sumatoria:
Solucin:

ii
i=1

125

10.2.11.

Determinar la suma de los N primeros trminos de la


i=n

serie:

1+
I=1

xi
i!

Solucin:

10.2.12.

Disear un algoritmo para determinar la suma de los n


i=n

primeros nmeros de la serie:


Solucin:

i12
i=1

126

10.2.13.
Disear un algoritmo para obtener la suma de los n
primeros numeros consecutivos.

Solucin:

10.2.14.
Disear 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.
Solucin:

127

10.2.15.

Disear un programa usando funciones que permita


I=n

calcular la suma acumulada de la serie:

i
i+1
i=1

ingresa el nmero de trminos de la serie a sumar.


Solucin:

el usuario

128

10.2.16.
Disear un algoritmo que permita ingresar las notas de
un alumno y luego mostrar:
- La cantidad total de notas
- La cantidad de notas pares
- La cantidad de notas impares
- La suma de las notas
- La nota menor
Solucin:

10.3.

Arreglos

10.3.1.
Disear un programa que permita ingresar 10 notas por
teclado. Luego presente en pantalla el contenido del arreglo.
Solucin:

129

10.3.2.
Disear un programa que permita leer n notas y luego
obtener la suma de estas, el promedio y la nota menor.
Solucin:

10.3.3.
Disear un programa que permita leer nota y sexo de n
alumnos (n definido por el usuario) y luego generar un reporte

130

que permita conocer la cantidad de alumnos aprobados de sexo


masculino.

Solucin:

10.3.4.
Disear un algoritmo que permita ingresar n elementos y
luego mostrar la cantidad de elementos que se repiten
Solucin:

131

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

132

10.3.6.
Disear un algoritmo para leer una matriz A nxn y luego
mostrar la suma de los elementos de las filas y columnas
Solucin:

133

10.3.7.
Disear un algoritmo para ingresar n datos y luego
ordenarlos ascendentemente
Solucin:

134

10.3.8.
Disear un programa que permita ingresar nmeros
enteros en una matriz cuadrada de orden nxn (n es ingresado por
el usuario), luego se pide mostrar:
- La suma de la diagonal de la matriz
- La suma de la fila ingresada por el usuario
- La suma de la columna ingresada por el usuario
- La matriz ordenada por filas.

Solucin:

135

10.3.9.
Disear un programa que permita ingresar 10 notas por
teclado. Luego presente en pantalla el contenido del arreglo.
Solucin:

10.3.10.
Disear un programa que permita ingresar nmeros
enteros en una matriz de orden3x3, luego mostrarlo en forma

136

ordenada por filas. Las filas deben ser ordenadas en forma


secuencial y ascendente.
Solucin:

10.3.11.
Escribir un programa que permita almacenar N
elementos de tipo entero a un vector y determinar lo siguiente:
- La suma de los elementos del vector.
- El promedio de los elementos del vector.
- Mostrar los elementos mayores al promedio.

Solucin:

137

10.3.12.
Escribir un programa que permita almacenar N
elementos de tipo entero a un vector y determinar lo siguiente:
- La suma de los elementos del vector.
- El promedio de los elementos del vector.
- Mostrar los elementos mayores al promedio.

Solucin:

138

10.3.13.
Disear un programa para leer una matriz de nxn
elementos y calcular: La suma de sus elementos por fila y por
columna.

Solucin:

139

S-ar putea să vă placă și