Documente Academic
Documente Profesional
Documente Cultură
MANUAL DE ALGORITMOS Y
LENGUAJE DE PROGRAMACIN
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)
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: +, -, /, *.
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.
+
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:
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]
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
10
Barra de herramientas
Icono
Descripcin
Abre un nuevo
documento.
Busca un fichero
(archivo).
Icono
Descripcin
Corregir indentado.
Buscar.
Ejecutar el algoritmo.
Deshacer y Rehacer
respectivamente.
Cortar.
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
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.
Accin
Operacin de salida
7.6.Tipos de variable
7.6.1. Simple
Numrica
Lgico
13
Carcter
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
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.
15
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:
17
Leer
Analicemos
lo
siguiente:
Escribir
18
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
19
Diagrama de flujo:
S
e
lectiva mltiple
Representacin:
Diagrama de flujo:
20
Mientras
Representacin:
Diagrama de flujo:
Para
21
Diagrama de flujo:
Repetir
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
24
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.
25
son:
ENTERO,
NUMERICO/REAL,
LOGICO,
Utilizar
elprimer
ltimo el
el ltimo
26
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.
28
29
Solucin:
30
31
32
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
Solucin:
F ( X )=
1+ X ( X +2)
X +3
+
2
1X (X2) X3
Solucin:
39
40
41
Solucin:
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.
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.
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:
49
50
51
Solucin:
52
Solucin:
53
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
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
9. BORLAND C++
58
59
Compilador
la traduccin
del lenguaje
60
Directivas definidas.
Una funcin principal main()
Declaraciones
y
definiciones
de
(sentencias), declaradas por el usuario.
funciones
secundarias
instrucciones
especiales
para
el
61
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:
-
62
Los identificadores
Palabras reservadas
63
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.
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).
65
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.
Ejemlos:
Constint
mes=30;
constcharrespuesta = S;
constfloat
pi=3.14;
Directiva #define
9.5.Tipos de operadores
9.5.1. Operadores aritmticos
66
Evaluacin de expresiones
Reglas:
-
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
68
69
cout<< es primo;
cout<< Hola Amigos;
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
71
72
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.
73
9.10.
Procesos de control
Procesos Secuenciales
Procesos Selectivos
Procesos Repetitivos
9.10.1.
Procesos secuenciales
74
9.10.2.
Procesos Selectivos
if (expresin lgica)
sentencia ;
-
Sentencias If
75
Ejemplo:
if (nota > 10)
cout<< curso aprobado ;
if (expresin lgica)
sentencia_1 ;
-
Sentencia If-else
76
Ejemplo:
if (( numero%2)==0)
cout<< El numero es par ;
else
cout<< El numero es impar ;
Observaciones
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
Observaciones
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
79
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
81
do
{
sentencia_1;
-
Sentencia do while
82
<sentencia_3>;
}
Sentencia for
83
9.11.
9.11.1.
Datos simple
Datos estructurales
ARREGLOS (arreglos)
CADENAS (char)
REGISTRO (Struct)
ARCHIVO (File)
Arreglos unidimensionales (vector o lista)
Caractersticas
en
el
arreglo
puede ser
84
Elemen
to
nota[0]
nota[1]
nota[2]
nota[3]
nota[4]
85
nombre
pero
86
Ejemplo:
constint n=4;
intnotas [n]; // Ingreso de notas
for (i=0; i< n; i++)
{
cout<< Ingresenotas : ;
cin>>notas [i];
}
87
El algoritmo es simple
La lista no necesita estar en ningn orden particular
Bsqueda binaria
88
5
6
7
8
Mtodos de ordenacin
89
90
91
9.11.3.
92
93
9.12.
Funciones y procedimientos
9.12.1.
Introduccin:
Programa modular
94
9.12.2.
Funciones predefinidas
95
9.12.3.
96
(lista
de
Los prototipos
97
Parmetros
9.12.4.
98
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.
Declaracin de la funcin
Definicin de la funcin
<instrucciones>;
return;
}
*Lista de parmetros, puede ser: un dato simple, un vector
matriz, un puntero, cadena, etc.
Declaracin de la funcin
Definicin de la funcin
100
<instrucciones>;
return;
}
*Lista de parmetros, puede ser: un dato simple, un vector
matriz, un puntero, cadena, etc.
Procedimientos
I.
101
102
II.
Variables
Las
variables
globales,
estn
disponibles
cualquierfuncin del programa, incluyendo a main ().
para
Funciones recursivas
cuando
se llama as misma
103
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
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.
sumatoria:
Solucin:
ii
i=1
125
10.2.11.
serie:
1+
I=1
xi
i!
Solucin:
10.2.12.
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.
i
i+1
i=1
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
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
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