Você está na página 1de 79

UNIVERSIDAD NACIONAL DE EDUCACION

ENRIQUE GUZMAN Y VALLE


LA CANTUTA

DAET - FATEC

ALGORITMICA Y PROGRAMACION
1. INTRODUCCION
El objetivo a tener en cuenta para empezar el tratamiento y a obtencin de la
informacin en forma mecanizada en el rea de informtica son:
Resolver problemas creativamente
Ser eficientes en el intento
Al mnimo costo
Si no dispone de nuevos recursos usar los disponibles

1.1 ALGORITMO
Un algoritmo es un mtodo para resolver un problema mediante una serie de
pasos precisos, definidos y finitos
Caractersticas:

Preciso (indicar el orden de realizacin en cada paso)


Definido (si se sigue dos veces, obtiene el mismo resultado cada vez)
Finito (tiene fin; un numero determinado de pasos)
los algoritmos se pueden expresar por formulas, diagrama de flujo o N-S y
pseudocodigos.

1.2 PROGRAMA
Es la descripcin de un algoritmo en un lenguaje de programaci6n, es
decir, un lenguaje orientado a optimizar la descripcin de los pasos que
debe realizar el ordenador para alcanzar el objetivo final del algoritmo.
Segn el objetivo del programa y el lenguaje en el que se
describe, se distinguen diversos tipos de programas:
Fuente: es el programa escrito por el programador a partir del algoritmo.
En el caso de no emplear un lenguaje de descripcin formal de
algoritmos, es el primero que introducimos en el ordenador, origen, por
tanto, de todo el proceso para conseguir que el ordenador ejecute nuestro
algoritmo, razn por la cual se le llama "fuente". El programa fuente se

Ing. lvaro Enrique Chvez Zubieta

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

caracteriza por ser relativamente independiente del ordenador en el que se debe


ejecutar. Introducimos el programa fuente en el ordenador mediante un
programa "editor".
Objeto: es el programa obtenido por el ordenador a partir del programa fuente,
despus de un proceso de compilacin, realizado a su vez por un programa
compilador. En este proceso se traducen las instrucciones (pasos) descritos
por el programador en el programa fuente, a operaciones directamente
interpretables por el ordenador real en el que se debe ejecutar el programa.
Ejecutable o Binario: es el programa obtenido por el ordenador a partir del
programa objeto, despus de un proceso de "montaje", realizado a su vez
por un programa "montador" o "linker". En este proceso se complementa
el programa objeto obtenido a partir del fuente, escrito por el
programador, can otros programas objeto, escritos por otros
programadores. En general, todos los programas objeto deben ser
montados con programas suministrados por el fabricante del ordenador o del
compilador, y agrupados en la denominada "biblioteca del sistema" (System
Library), donde se encuentran recopilados (a modo de biblioteca) todos los
programas necesarios para realizar operaciones bsicas en el ordenador,
como por ejemplo: leer caracteres o nmeros del teclado, escribir en la
pantalla, realizar operaciones aritmticas, etc.

1.3 Lenguaje de programacin.


Es el lenguaje empleado por el programador para dar al ordenador
las instrucciones necesarias para la ejecucin de un algoritmo
determinado, constituyendo un programa fuente.
Existen diversos tipos de lenguajes de programaci6n, segn la
proximidad de su gramtica y tipos de instrucciones a las especficas del
ordenador en el que deba ejecutarse el programa:
De Alto Nivel: son aquellos en los que las instrucciones son descritas en
un lenguaje pr6ximo al empleado por los humanos. Permiten la ejecucin
del programa en ordenadores muy diversos y requieren su traduccin a
las caractersticas de cada ordenador en concreto, mediante el proceso

Ing. lvaro Enrique Chvez Zubieta

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

de compilaci6n. Ejemplos de este tipo de lenguajes son: PASCAL,


FORTRAN, BASIC, COBOL, ADA, C, MODULA-2, etc.).
De Bajo Nivel o Ensambladores: son aquellos en los que las
instrucciones se corresponden de forma casi univoca con las ejecutables
por el ordenador. Estos programas son difcilmente interpretables por los
humanos no iniciados en el lenguaje, y no requieren su traducci6n a un
ordenador concreto, sino que tan s6lo hace falta cambiar la sintaxis para
obtener el programa objeto, siguiendo un proceso denominado
"ensamblado", realizado por un programa llamado ensamblador, que
sustituye a la fase de compilacin.

2. LA RESOLUCIN DE PROBLEMAS CON COMPUTADORA


El proceso de resolucin de un problema con una computadora conduce a la
escritura de un programa y a sus ejecuciones la misma. Aunque el proceso de disear
programas esencialmente un proceso creativo, se puede considerar una serie de
fases o pasos comunes que generalmente deben seguir todos los programadores.
las fases de resolucin de un problema con computadora son:
Anlisis del problema
Diseo del problema
Codificacin
Compilacin y ejecucin
Verificacin
Depuracin
documentacin
Las 2 primeras fases conducen a un diseo detallado escrito en forma de
algoritmo.
Durante 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 fase de compilacin y ejecucin traduce y ejecuta el programa. En las fases de
verificacin y depuracin el programador busca errores de las etapas anteriores y los
elimina. Comprobara que mientras mas tiempo se gaste en la fase de anlisis y diseo,

Ing. lvaro Enrique Chvez Zubieta

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

menos se gastara en la depuracin del programa. Por ultimo, se debe realizar la


documentacin del programa.

2.1.- ANLISIS DEL PROBLEMA


Es preciso realizarse las siguientes preguntas para poder definir bien un
problema

Qu entradas se requieren (tipo y cantidad)?

Cul es la salida deseada (tipo y cantidad)?

Qu mtodo produce la salida deseada?

Ejemplo

Determinar el mayor de tres nmeros enteros.


Pasos del algoritmo:
INICIO

Obtener el primer nmero, denominado NUM1


Obtener el segundo nmero, denominado NUM2

Entrada

Obtener el tercer nmero , y se denomina NUM3

Compara NUM1 con NUM2 y seleccionar el mayor;


si los dos enteros son iguales, seleccionar NUM1.
Llamar a este nmero MAYOR.
Compara MAYOR con NUM3 y seleccionar el mayor ;

Proceso

si los dos enteros son iguales, seleccionar el MAYOR.


Denominar a este nmero MAYOR.
Presentar el valor MAYOR

Salida

FIN

2.2. - DISEO DEL ALGORITMO


En esta etapa se determina como hace el programa la tarea solicitada. Los
mtodos mas eficaces para el proceso de diseo se basan en la divisin del
problema en subproblemas y a continuacin dividir estos problemas en otros de nivel
mas bajo, este

diseo se conoce como diseo descendente (top down) o

modular.

Ing. lvaro Enrique Chvez Zubieta

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

Cada subproblema es resuelto mediante un modulo (subprograma) que tiene un solo


punto de entrada y un solo de salida.

Nivel n : desde el exterior


Lo que hace?

Nivel n+1: Vista desde el interior


como lo hace?

HERRAMIENTAS DE DISEO DE UN ALGORITMO


a. Diagrama de flujos
Representan grficamente en un algoritmo

Ejemplo:

Ing. lvaro Enrique Chvez Zubieta

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

b. PSEUDOCODIGO
Herramienta de programacin en la que las instrucciones se escriben en palabras
similares al ingles o espaol, que facilitan tanto la escritura como la lectura de
programas
Ejemplo:

2.3. - CODIFICACION DE UN PROGRAMA


Es la escritura en un lenguaje de programacin de la representacin del algoritmo
desarrollado en las etapas precedentes

2.4. - COMPILACIN Y EJECUCIN DE UN PROGRAMA


La codificacin se debe realizar sobre un programa editor, posteriormente el
programa fuente se convierte en un archivo de programa que se guarda en disco
El programa fuente debe ser traducido a lenguaje maquina este proceso se realiza con
el compilador y el sistema operativo que se encarga prcticamente de la compilacin.
El proceso de compilacin determina un programa objeto que todava no es
ejecutable directamente. Suponiendo que no existe errores en el programa fuente, se
instruye al S.O. para que realice la fase de enlace (LINK) , carga del programa objeto
con las libreras del programa del compilador para producir un programa ejecutable.
Turbo C++ compila y ejecuta con una sola orden, mientas que los compiladores
clsicos siguen un proceso similar al proceso anterior: compilar, enlazar y ejecutar

Ing. lvaro Enrique Chvez Zubieta

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

2.5. - VERIFICACIN Y DEPURACIN DE UN PROGRAMA


La verificacin o compilacin de un programa es la ejecucin del programa
con una amplia variedad de datos de entrada, llamada datos de test o prueba, que
determina si el programa tiene errores (bugs)Para realizar la verificacin se debe
desarrollar una amplia gama de datos de test :
Valores normales de entrada, Valores extremos de entrada que comprueben los
limites del programa y valores de entrad que comprueben aspectos especiales del
programa.
La depuracin es el proceso de encontrar los errores del programa y corregir o
eliminar dichos errores.
Tipos de errores:
Errores de compilacin: Se producen normalmente por un uso incorrecto de las
reglas del lenguaje de programacin y suelen ser errores de sintaxis. Si existe un
error de sintaxis, la pc no puede comprender la instruccin, no se obtendr el
programa objeto y el compilador imprimir una lista de todos los errores
encontrados durante la compilacin.
Errores de ejecucin: Estos errores se producen por instrucciones que la Pc
puede comprender pero no ejecutar. Ejemplos tpicos son: division por cero y
races cuadradas de numero negativos. En estos casos se detiene la ejecucin
del programa y se imprime un mensaje de error.
Errores lgicos: se producen en la lgica del programa y la fuente de error suele
ser el diseo del algoritmo. Estos errores son mas difcil de detectar, ya que el
programa puede funcionar y no producir errores de compilacin ni de ejecucin, y
solo se puede advertir el error por la obtencin de resultados incorrectos. En este

Ing. lvaro Enrique Chvez Zubieta

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

caso se debe volver a la fase de diseo del algoritmo, modifica el algoritmo,


cambiar el programa fuente y compilar y ejecutar una vez mas.

2.6. - DOCUMENTACIN Y MANTENIMIENTO


Consta de describir los pasos a dar en la resolucin de un problema. La
documentacin puede ser interna o externa. La documentacin interna es la contenida
en lneas de comentarios. La documentacin externa incluye anlisis, diagrama de flujo
y/o pseudocodigos , manuales de usuario con instrucciones para ejecutar el programa
y para interpretar los resultados.

El siguiente esquema representa un resumen general de la tarea a desarrollar en la


elaboracin y ejecucin de un programa

Ing. lvaro Enrique Chvez Zubieta

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

3.- ALGORITMICA
Como se defini en el apartado anterior la obtencin del algoritmo para el
desarrollo de una informacin mecanizada (la informtica) conlleva a utilizar
herramientas de diseo de resolucin de problemas, la cual nos basaremos en
el pseudocodigo. En general definiremos la estructura que debe tener un
algoritmo bajo los siguientes conceptos:

3.1.- Accin.
Es cada uno de los pasos en los que hemos descrito un algoritmo.
Las acciones son operaciones elementales que podemos expresar en un
lenguaje algortmico. Sern ms o menos complejas dependiendo del
nivel de detalle de descripci6n del algoritmo. Los algoritmos descritos de
forma muy general estn desglosados en acciones muy complejas,
mientras que los descritos de forma detallada estn desglosados en
acciones muy sencillas, pr6ximas al lenguaje de programacin

3.2.- SENTENCIA.
Es una instruccin que podemos expresar en un lenguaje de
programacin. La precisin de las sentencias determina la precisin de la
ejecucin del programa, y para conseguirla deben ajustarse a una sintaxis
muy concreta.
Por extensin, se denomina tambin sentencia a las acciones
expresadas en un lenguaje algortmico.

3.2.1.- TIPOS DE SENTENCIAS


En la descripcin de un algoritmo o programa debemos expresar, no
solo las acciones a realizar, sino tambin las condiciones en las que
estas deben realizarse. Para
conseguir controlar la secuencia (orden) en la que deben ejecutarse
cada una de las sentencias de un algoritmo, se ha definido un
reducido, pero suficiente, numero de tipos de
sentencias:
Secunciales: son aquellas que se ejecutan en secuencia, es

Ing. lvaro Enrique Chvez Zubieta

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

decir, despus de la anterior y antes de la siguiente. Son las


acciones elementales que se deben ejecutar para alcanzar el
objetivo final del algoritmo. Un caso particular de sentencia
secuencial es la de asignacin, descrita en la seccin siguiente
Selectivas: son aquellas que permiten condicionar la ejecucin de
una o mas sentencias al cumplimiento de una condicin. En
general, podemos decir que permiten seleccionar una accin a
realizar entre varias alternativas
Iterativas: son las que permiten conseguir que una determinada
accin se ejecute ms de una vez.

4. - SENTENCIA DE ASIGNACION
Son las sentencias en las que, como su nombre indica, se asigna un
valor a una variable.

4.1. - QU ES UNA VARIABLE?


Es una entidad con nombre nico en un algoritmo y a la que
se le puede asignar un valor y luego realizar algn tipo de clculo
o comparacin.
Las variables pueden asumir valores numricos, alfanumricos
y lgicos.
El nombre de la variable debe cumplir con las siguientes reglas:
-

El nombre de una variable esta formada por una coleccin de


caracteres alfabticos (A..Z,a..z), dgitos (0..9) y por el
carcter subrayado ( _ ).

El nombre de una variable siempre debe comenzar por un


carcter alfabtico o por el carcter subrayado.

El nombre de una variable NO DEBE comenzar con un digito.

El nombre de una variable no debe contener espacios en


blanco o caracteres especiales tales como (, #, ., :, ;, %, &, @,
etc).

El nombre de una variable no debe coincidir con una palabra


clave de un algoritmo (SI, SINO, MIENTRAS, PARA,
REPETIR, etc)

Ing. lvaro Enrique Chvez Zubieta

10

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

Ejemplos:

DECLARACION

VALIDEZ

abc

VALIDO

a123

VALIDO

1a2b

NO VALIDO

_MiVariable

VALIDO

Mi_Variable

VALIDO

Mi_123456

VALIDO

_1_2_3

VALIDO

Mi@Variable

NO VALIDO

4.2.- EXPRESION.
Una expresin es la descripcin de una o varias operaciones
a realizar sobre una o varias variables, es decir, una sentencia que
evala una formula matemtica.
Los operadores que intervienen en las expresiones son:

MATEMATICO
OPERADOR

RELACIONAL
SIGNIFICADO

OPERADOR

SIGNIFICADO

>

MAYOR

SUMAR

<

MENOR

RESTAR

>=

MAYOR o IGUAL

MULTIPLICAR

<=

MENOR o IGUAL

DIV

DIVISION ENTERA

IGUAL

DIVISION REAL

<>

DIFERENTE

MOD, %

RESTO ARTIMETICO

, ^,**

POTENCIACION

LOGICO
C

SIGNIFICADO

CONJUNCION

DISYUNCION

NO

NEGACION

Ing. lvaro Enrique Chvez Zubieta

11

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

ASIGNACIN / AGRUPACION

OPERADOR

SIGNIFICADO

ASIGNAR

()

AGRUPAR

Ejemplo
a 1000
X (a+b) * 5

4.3.- PREDENCIA
La dificultad que representa escribir una formula matemtica en
forma de sentencia, es decir, en una sola lnea de texto, en los
lenguajes de programacin y en los algortmicos se subsana
mediante unas reglas de precedencia, que determinan de forma
inequvoca el orden en el que se ejecutara cada una de las
operaciones indicadas en la expresin. Las podemos resumir de la
forma siguiente:
-

se evalan los parntesis, primero los mas interiores.

dentro de un parntesis o expresin, las operaciones se


ejecutaran en el siguiente orden:
- (signo), not
div (division entera), mod (modulo), and (y logica)

Ing. lvaro Enrique Chvez Zubieta

12

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

+, - (resta), or (o logica)
Las operaciones del mismo grupo (ej. * y /) se evaluan de izquierda
a derecha.
Expresin Matemtica

Expresin Algortmica

2A
2A + 3B
(2A + 3B) / (2A)
[(5C x 6D) / (3E)] x 5A
[(2X + 3Y) x (5Y 2X)]/2A

4.4.- TIPO DE DATOS

Al declarar una variable, se especifica tanto su nombre, como el


tipo al que pertenece. El nombre sirve para distinguirla de cualquier otra
variable empleada en el algoritmo. El tipo indica la forma en que debe
evaluarse las operaciones aplicadas sobre la variable en el algoritmo..
Podemos considerar tres clases generales de tipos de datos:
Tipos de datos elementales: son aquellos predefinidos en el
lenguaje, es decir, aquellos que el ordenador ya sabe como
almacenar y a nivel de algoritmos lo usaremos de forma genrica.
Tipos de datos estructurados: Aquellos en los que, a diferencia de
los tipos anteriores, cada variable puede almacenar mes de un dato
simultneamente.
En este capitulo trataremos los tipos de datos elementales que
usaremos a nivel de algoritmos
NUMERICOS

Entero

Real

ALFANUMERICOS

Ing. lvaro Enrique Chvez Zubieta

13

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

Carcter (CHAR)

Cadena (STRING)

DAET - FATEC

LOGICOS (Verdad o Falso)


Para declarar variables en un algoritmo se hace uso de la siguiente
sintaxis:
Tipo_Dato: Lista_variables
Ejemplo:
ENTERO:

a, b, c

REAL:

x, y, z

CARCTER: car1, car2


CADENA:

texto1, texto2

LOGICO:

estado, ok, done

Si las variables a, b, c y d contienen los valores 10, 20, 30 y 5


respectivamente, evaluar:
EXPRESION

RESULTADO

(a + b) DIV d
(a + b) MOD d
(a > b) Y (c < d)
NO (a > b) O ( c <> d)

4.5.- CONVERSIN ENTRE TIPOS DE DATOS


En los lenguajes de programacin de bajo como de alto nivel nos
permite realizar conversiones entre tipos de datos numricos
(enteros y reales), as como trabajar con caracteres como si fuesen
nmeros enteros. como ejemplo tenemos:
Entero - Real
b ENTERO(13.45)

Ing. lvaro Enrique Chvez Zubieta

se trunca el valor de seria b 13

14

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

a REAL(12).el valor de la variable a 12.0


Entero Carcter
Cada carcter tiene asociado un cdigo ASCII los caracteres
pueden interpretarse como nmeros enteros
x CHAR(48)

X0

Y ENTERO ( a )

Y 97

C CHAR(97)

C a

A CHAR ( U +3)

AX

OPERACIN CADENAS
Para manipular cadenas presenta las siguientes operaciones
Comparacin: Las comparaciones de cadenas de caracteres se
hacen segn el orden de los caracteres en el cdigo ASCII y con los
operadores de relacin.
`0 < `1

`1 < `2

`8 < `9

`A < `B

`C < `D

`M > `B

`a < `h

`m > `b

`p < `r

Concatenacin: Otra operacin bsica que se pueda realizar con


cadenas es la concatenacin. La operacin de concatenacin. La
concatenacin es el proceso de combinar dos o ms cadenas en
una sola cadena.
Mediante el operador de concatenacin (+)
Frase = Perro que ladra + no muerde, +mientras est ladrando
Producira una sola cadena almacenada en la variable Frase:
Perro que ladra no muerde, mientras est ladrando

4.6.- SENTENCIAS DE ENTRADA Y SALIDA


Como caso particular de sentencia de asignacin, mencionaremos
aqu, por su utilidad, las sentencias de entrada y salida de datos:
Leer (<expresin lista de variables>).
Permite asignar a las variables contenidas en la lista los valores

Ing. lvaro Enrique Chvez Zubieta

15

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

tecleados por el usuario en el teclado del ordenador. Junto con la


lista de variables, en esta sentencia podemos especificar un texto
que se visualizar en la pantalla del ordenador al solicitar los valores
de las variables de la lista, para orientar al usuario sobre las
variables a las que sern asignados los valores solicitados.
Escribir (<expresin lista de variables>).
Permite presentar en la pantalla del ordenador los valores de las
variables contenidas en la lista. Como en el caso anterior, adems
de las variables podemos especificar un texto explicativo de los
valores visualizados.

4.7.- ESTRUCTURA BASICA DE UN ALGORITMO


ALGORITMO nombre_algoritmo
DECLARACIONES DE VARIABLES
Nombre_variable : tipo

..
.

INICIO

..
..

INSTRUCCIONES
Y/ O SENTENCIAS

FIN

Ejemplo 1.
Ingrese un nmero entero, luego smele 2 unidades y visualcelo

Algoritmo sumar a numero


variables
entero: n
INICIO
leer( n )
nn+2
escribir( n )
FIN

Ing. lvaro Enrique Chvez Zubieta

16

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

Ejemplo 2.
Algoritmo mitad de numero
variables
entero:

INICIO
leer(n)
n n DIV 2
escribir( n )
FIN
Ejemplo 3.
Ingrese el precio y la cantidad comprada de un producto, luego
calcule y visualice el total a pagar por la compra realizada.
Algoritmo total a pagar
Variables
entero:

cantidad

real:

precio, total

INICIO
leer( cantidad, precio )
total cantidad * precio
escribir( total )
FIN
Ejemplo 4.
Una empresa decide otorgar una bonificacin del 5% del haber bsico
por cada hijo a todos sus trabajadores. Calcule el total a pagar a un
trabajador.
Algoritmo pago con bonificacion
variables
entero : NroHijos
real:
constante

Hbasico, bonificacion, total

valorBoni = 0.05
INICIO
leer(Hbasico, NroHijos)
bonificacion (Hbasico * valorBoni) * NroHijos
total Hbasico + bonificacion
escribir( total )
FIN

Ing. lvaro Enrique Chvez Zubieta

17

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

Ejemplo 5.
Una tienda otorga un descuento del 2.5% por cada 5 productos
adquiridos, calcular el total a pagar por una compra.

Algoritmo Compra en oferta


variables
entero:

cantidad

real: precio, VCompra, descuento, total, factorCompra


INICIO
leer( cantidad, precio )
Vcompra cantidad * precio
factorCompra (cantidad DIV 5) * 0.025
descuento Vcompra * factorCompra
total vCompra descuento
escribir( total )
FIN
Ejemplo 6
Ingresar un numero comprendido entre 0 y 255 y obtener su codigo
ascii equivalente
Algorimo ejemplo 6
var
Erntero: n
Cadena: r
INICIO
Escribir ("\n Ingrese un valor numrico entero positivo comprendido
entre 0 y 256:")
leer (n)
r CHAR(n)
Escribir ("Valor original=", n, " Valor equivalente en codigp ASCII
es =", r)
FIN

Ing. lvaro Enrique Chvez Zubieta

18

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

Ejemplo 7
Un ejemplo donde se observa la concatenacin de cadenas

Algoritmo ejemplo 7;
Variable
CADENA [40]: Cad1,Cad2,Cad3
INICIO
Cad1 := `Programa
Cad2 := ` de computadora
Cad3 := Cad1+Cad2

//concatenacin de cadenas

ESCRIBIR (`La frase completa es = ` Cad3)


FIN

PROBLEMAS PROPUESTOS
1. Convertir grados centgrados a farenheit a partir de la siguiente formula:
GradosFar =1.8 * GradosCent+32
.
2. La nota final del curso de sistema de procesamiento de datos se obtiene de
acuerdo a las siguientes formulas:

PF=(Ep+2Ef+Pp)/4
Ef=(2Pe+Py)/3
Pp=(2Pa+Pc)/3

Donde:
PF

Promedio final

Ep
Ef
Pp
Pe
Py

Examen Parcial
Examen final
Promedio de practicas
Prueba escrita del examen final
proyecto

Pa
Pc

promedio de practicas de aula


Promedio de notas de concepto del profesor

Ing. lvaro Enrique Chvez Zubieta

19

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

Segn reglamento, la nota mnima aprobatoria es 10.5 y los promedios


parciales no se redondean
3. calcular el area de un rectangulo ingresando sus lados por teclado
4. convertir una hora expresada en segundos a horas, minutos y segundos
5. Escriba el algoritmo que permita el ingreso de los siguientes datos de una
persona :
Nombre, Sexo, Estado Civil, Salario bsico y porcentaje de bonificacin
por tiempo de servicio, (porcentaje respecto a su salario bsico del 25%).
El algoritmo reportar finalmente el monto neto a cobrar por el trabajador.
Nota : No considere descuentos de ley.

6. Que muestre el resultado de la siguiente expresin, sabiendo q x es una


variable de tipo entera

7. Desarrollar un algoritmo que nos permita mostrar el monto a pagar en soles


y dlares si compramos en una farmacia un perfume de US$ 21 y una caja
de vitaminas por 85 soles.
8. Que realice las siguientes operaciones matemticas con dos nmeros:
Suma, Resta, Multiplicacin, Divisin y la suma de sus respectivas races
cuadradas.
9. Que muestre el permetro de un pentgono irregular.
10. Un alumno de tercer ciclo a desarrollado el siguiente programa para otorgar
bonificaciones a los trabajadores en funcin de su salario bsico, revise Ud.
la solucin, ubique Ud. errores y explique el criterio para otorgar dicho
beneficio.
ALGORITMO BONIFIC
VARIABLES
Nombre, direccin :
Telfono
:
Salario, bonific.
:

Caracter (30)
Caracter (6)
Numrico

INICIO
LEERr (nombre,direccin,telfono)
LEER (salario)
bonific salario*0.1
neto salario + bonif
ESCRIBIR (neto)

Ing. lvaro Enrique Chvez Zubieta

20

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

FIN
11. Que determine el neto a pagar por parte de un cliente sabiendo que el
producto lo llevar con dos descuentos sucesivos, el primero del 12% y el
segundo del 15%.
No considere IGV.
12. Escriba un programa que cuente las vocales de una palabra.
13. Escriba un programa que lea una cadena de caracteres en minscula y la convierta a
mayscula

5.- SENTENCIAS SELECTIVAS.


Las sentencias selectivas, me permiten evaluar una expresin o
expresiones y segn el resultado de esta evaluacin se procesan un grupo
de instrucciones y/o sentencias.
Estas estructuras se procesan solo 1 vez.
Las estructuras selectivas se clasifican en :
Condicional Simple (si / fin_si)
Condicional Doble (si / si_no / fin_si)
Condicional Anidada (Similar a Condicional Doble)
Condicional Mltiple (en_caso / fin_en_caso

5.1.- CONDICIONAL SIMPLE


Se emplea para evaluar una expresin o expresiones, si el resultado de
esta evaluacin es un valor lgico verdadero (true), entonces se
procesaran un grupo de instrucciones o sentencias.

Sintaxis:

SI ( Expresion<es> ) ENTONCES
:
INSTRUCCIONES :
TRUE
Y/O
:
SENTENCIAS
FIN-SI

Ing. lvaro Enrique Chvez Zubieta

21

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

EJEMPLO 1

Ingrese 2 nmeros enteros y visualice el mayor de los 2 nmeros


ingresados
Algoritmo Numero mayor
var
entero:
a, b, mayor
INICIO
leer( a, b)
mayor a
si( b > a ) entonces
mayor b
fin_si
escribir( mayor )
FIN
EJEMPLO 2
Ingrese un nmero entero y luego visualice un mensaje indicando si el
nmero ingresado es PAR o IMPAR.

Algoritmo enteros pares e impares


variables
entero:
n, resto
INICIO
leer( n )
resto n MOD 2
si ( resto = 0 ) entonces
escribir(PAR)
fin_si
si ( resto <> 0 ) entonces
escribir(IMPAR)
fin_si
FIN

5.2.- DOBLE CONDICIONAL

Se emplea para evaluar una expresin o expresiones, si el resultado


de esta evaluacin es un valor lgico verdadero (true), entonces se
procesaran un grupo de instrucciones o sentencias, caso contrario
(false) se procesara otro grupo de instrucciones o sentencias.

Ing. lvaro Enrique Chvez Zubieta

22

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

Sintaxis:
SI ( Expresion<es> ) ENTONCES
INSTRUCCIONES :
:
Y/O
:
SENTENCIAS

TRUE

SINO
INSTRUCCIONES
Y/O
SENTENCIAS

FALSE
:
:
:

FIN-SI
EJEMPLO 1
Calcular el mayor valor de 2 nmeros enteros.
Algoritmo Entero mayor
variables
entero: a, b, mayor
INICIO
leer(a, b)
si( a > b ) entonces
mayor a
si_no
mayor b
fin_si
escribir(mayor)
FIN
EJEMPLO 2
Ingrese un nmero entero, si es 2 cifras visualice la suma de sus cifras, caso
contrario visualice su doble.
Algoritmo Calculo de cifras
Variables:
entero: n, a, b
INICIO
leer( n )
si( n >= 10 ) Y ( n <= 99 ) entonces

Ing. lvaro Enrique Chvez Zubieta

23

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

a n DIV 10
b n MOD 10
escribir( a + b )
si_no
escribir( n * 2 )
fin_si
FIN

5.3.- CONDICION ANIDADA


Esta estructura se emplea cuando se requiere condicionar dentro de otra
condicional, es decir cuando dentro de una condicional simple o doble existe otra
condicional simple o doble.
SINTAXIS:
SI ( Expresion<es> ) ENTONCES
SI (Expresion<es>) ENTONCES
:

SINO
:

FIN-SI
SINO
SI (Expresion<es>) ENTONCES
:
SINO
:
FIN-SI
FIN-SI
EJEMPLO 1
Ingrese el puntaje obtenido por un postulante y luego visualice a que carrera ingreso,
segn la siguiente tabla:
Puntaje
[ 70 90 >
[ 90 100 >
[ 100 120 >
[ 120 150 >
[ 150 a ms

Carrera
Contabilidad
Administracin
Derecho
Ingeniera
Medicina

SI NO LOGRO
INGRESO,
VISUALIZAR
CUANTOS PUNTOS
LE FALTO

Algoritmo Puntaje
var
entero:
puntaje
INICIO
leer( puntaje )
si (puntaje >= 70) Y (puntaje < 90) entonces
escribir(Contabilidad)
si_no
si (puntaje >= 90) Y (puntaje < 100) entonces
escribir (Administracin)

Ing. lvaro Enrique Chvez Zubieta

24

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

si_no
si (puntaje >= 100) Y (puntaje < 120) entonces
escribir (Derecho)
si_no
si (puntaje >= 120) Y (puntaje < 150) entonces
escribir (INGENIERIA)
si_no
si (puntaje >= 150) entonces
escribir (MEDICINA)
si_no
escribir (LE FALTO:, 70-Puntaje)
fin_si
fin_si
fin_si
fin_si
fin_si
FIN

5.4.- CONDICIONAL MULTIPLE


Se utiliza para evaluar una variable de tipo numrico entero o carcter, con una lista
de valores posibles, para luego procesar un grupo de instrucciones y/o sentencias.
Simplifica el uso de condicionales anidadas.
Sintaxis:
CASO (Variable) HACER
Lista_1: Instrucciones_Sentencias
Lista_2: Instrucciones_Sentencias
:

OPCIONAL

Lista_N: Instrucciones_Sentencias
OTRO CASO:
Instrucciones_Sentencias
FIN_CASO
EJEMPLO 1
Ingresar un nmero entre 1 y 5, y luego visualizar su equivalente en letras.
Algoritmo Ejemplo1
var
entero:

INICIO
leer( n )
CASO ( n ) HACER
1: escribir(UNO)
2: escribir(DOS)
3: escribir(TRES)

Ing. lvaro Enrique Chvez Zubieta

25

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

4: escribir(CUATRO)
5: escribir(CINCO)
OTRO_CASO : escribir(# FUERA DE RANGO)
FIN_CASO
FIN

EJEMPLO 2
Ingrese nmero entre 1 y 99, luego visualice su equivalente en romanos.
Algoritmo Ejemplo2
variables
entero:
n, a, b
INICIO
leer( n )
si ( n >= 1) Y ( n <= 99 ) entonces
a n DIV 10 : b n MOD 10
CASO ( a ) HACER
1: escribir(X)
2: escribir(XX)
:
9: escribir(XC)
FIN_CASO
CASO ( b ) HACER
1: escribir(I)
2: escribir(II)
:
9: escribir(IX)
FIN_CASO
fin_si
FIN

EJEMPLO 3
Calcular el total a pagar por su consumo telefnico, sabiendo que su renta bsica
es de S/. 50 (60 minutos libres), y que el cobro por minutos adicionales se factura
segn la siguiente tabla.
Minutos
Consumidos
< 60 100 ]

Costo x
Minuto
0.007

<100 200 ]
<200 400 ]

0.005
0.004

<400 500 ]
<500 Ms

0.003
0.002

Ing. lvaro Enrique Chvez Zubieta

26

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

OBSERVACION
SOLO SE PUEDE UTILIZAR RANGO DE VALORES EN LA ESTRUCTURA
CASO-SEA
CASO RANGO DE NUMEROS HACER
1..9 :

ESCRIBIR(ES UNA UNIDAD)

10..99 :

ESCRIBIR(ES UNA DECENA)

100..999: ESCRIBIR(ES UNA CENTENA)


:
:
FIN DE CASO
Algoritmo Ejemplo5
Variables
entero: minutos
real:

totalConsumo, rentaBasica

INICIO
rentaBasica 50
leer( minutos )
CASO ( minutos ) HACER
1 .. 60

: totalConsumo 0

61 ..100 : totalConsumo (Minutos 60 ) * 0.007


101..200 : totalConsumo (40 * 0.007) + (Minutos 100) * 0.005
201..400 : totalConsumo (40 * 0.007) + (100 * 0.005 ) + (Minutos 200) *
0.004
401..500 : totalConsumo (40 * 0.007) + (100 * 0.005 ) + (200 * 0.004)
+ (minutos 100) * 0.003
OTRO_CASO :
totalConsumo (40 * 0.007) + (100 * 0.005 ) + (200 * 0.004) + (100 *
0.003) + (minutos 500) * 0.002
FIN_CASO
totalConsumo totalConsumo + rentaBasica
escribir( totalConsumo )
FIN

Ing. lvaro Enrique Chvez Zubieta

27

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

PROBLEMAS PROPUESTOS
1. Un restaurante ofrece un descuento del 10% para consumos de hasta S/.
50 y un 20% para consumos mayores. Que determine el monto neto a
cobrar aun cliente sabiendo que adems se cobrar el 18% de IGV.
2. desarrollar una algoritmo que muestre un mensaje indicando si un usuario
es o no mayor de edad

3.

Que muestre un mensaje indicando si un usuario est apto o no, de


acuerdo a su edad para votar en las prximas elecciones.

4. Una tienda presenta la siguiente escala de descuentos de acuerdo a los montos


de compra:
Total(S/.)

Dcto (%)

Mayor a 250

25

Mayor a 180

20

Mayor a 100

10

Desarrollar un algoritmo que considere el neto a pagar por un usuario


sabiendo que adicionalmente se cobrar el IGV.

5. Desarrollar un algoritmo Que admita el ingreso de un nmero entero, positivo y mayor


a 10,

mostrando un mensaje que indique si es mltiplo de 3, de 7 de ambos.

6. Desarrollar un algoritmo Que admita el ingreso de 3 nmeros, e imprima cual de ellos es el


mayor as como el promedio de los dos mayores.
Por ejemplo :
Si se ingresan

28 , 56 , 15 mostrar

Mayor

56

Promedio

42

7. Desarrollar un algoritmo Que calcule el valor de la siguiente expresin matemtica:

Ing. lvaro Enrique Chvez Zubieta

28

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

Donde a y b son valores ingresados por el usuario


8. El gobierno ha implementado como parte de su programa social un subsidio familiar, que
ser otorgado por vez nica a las madres de familia trabajadoras bajo la siguiente reglamentacin :
a) Las familias que tienen hasta 2 hijos reciben S/. 70.00,las que
tienen entre 3 y 5 hijos reciben S/. 90.00 y las que tienen mas
hijos reciben S/. 120.00.
b) Si la madre de familia fuese viuda recibir adicionalmente S/. 20.00.
Que determine el monto por subsidio que recibir una trabajadora bajo las condiciones ya
indicadas

9. Determinar las races de una ecuacin de segundo grado del tipo : Ax2+Bx+
C=0 Considerar las races imaginarias.
Las races se obtienen segn :

10. La CIA de Telfonos cobra por el servicio de llamadas locales de acuerdo a la


siguiente escala: Si el nmero de minutos mensuales no excede a 50, la tarifa
por minuto es de S/. 0.30 y si fuera mayor la tarifa por minuto adicional ser de
S/. 0.45. PC: Que muestre el total a pagar por el servicio local considerando IGV.

11. Modificar el algorimo anterior considerando que por no exceder de los 50


minutos el costo por minuto ser de S/. 0.30, si fuese mayor pero no excede los 150 minutos
se cobrar S/. 0.45, pero si el periodo fuese mayor a 150
minutos, por los minutos adicionales se cobrar S/. 0.75.

12. Determine el neto a cobrar por un trabajador sabiendo que tiene derecho a una
bonificacin dependiendo de su estado civil y del nmero de hijos, segn:
ESTADO CIVIL

PORCENTAJE

Casado

13

Viudo

15

Divorciado

Soltero

Adicionalmente se le abonar el 1% por cada hijo con un mximo de 4%.

Ing. lvaro Enrique Chvez Zubieta

29

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

13. Que admita el ingreso de un nmero entero positivo menor a 1000 e imprima si este es
par o impar
14. Que muestre el neto a pagar por un televisor sabiendo que la tienda se encuentra en
realizacin ofreciendo los siguientes descuentos :
MARCA

19"

21"

SANSUMG

12

13

AIWWA

13

15

PAMASONIC

14

12

LGG

12

14

TOMY

13

15

Tome Ud. en cuenta las siguientes consideraciones :

El precio de lista a ingresar est en dlares, debiendo mostrar el neto en


soles y dlares.

Considere IGV 18%.

15. Que admita el ingreso de un nmero de 3 cifras y lo muestre invertido Ejemplo


Ingresa

908

Muestra

809

Ingresa

640

Muestra

46

6.- SENTENCIAS ITERATIVAS


Las sentencias iterativas son las que permiten ejecutar ms de una
vez una sentencia (compuesta).
En toda sentencia iterativa tenemos asociados los siguientes conceptos:
Sentencia del bucle: Sentencia, generalmente compuesta, que se
ejecutara en cada iteracin (ejecucin o pasada) del bucle.
Condicin de ejecucion: expresion booleana, que puede tomar solo dos
valores (cierta o falsa), del resultado de cuya evaluacion se deduce la
ejecuci6n o no de la sentencia del bucle una vez (mas).
lnicializacion: establecimiento del estado inicial o de entrada de las
variables, cuyo valor condiciona la ejecucin de la sentencia del bucle,
antes de ejecutarse este por primera vez.
Consideraremos que una variable influye en la ejecucin del bucle cuando

Ing. lvaro Enrique Chvez Zubieta

30

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

es referenciada bien en la sentencia del bucle, o bien en la condicin de


ejecucin del bucle.
Condicin final o de salida: estado de las variables manejadas en el
bucle, que determina la no ejecucin del bucle ninguna vez ms. Tambin
la podemos interpretar como el estado de esas variables despus de
ejecutarse la sentencia del bucle por ltima vez

6.1.- SENTENCIA PARA.


La sentencia PARA es la mas sencilla de utilizar de las sentencias
iterativas. La emplearemos cuando el nmero de iteraciones del bucle se
conozca antes de iniciarse la ejecucin de este. Una variable de contaje,
(contador) va contando las pasadas (iteraciones) por el bucle
SINTAXIS:

PARA ContadorV.Inicial HASTA V.Final DE Inc


:
:
Instrucciones
:
y/o sentencias
:
FIN-PARA

Contador: es la variable empleada para contabilizar las iteraciones del


bucle realizadas.
Valor inicial: el resultado de su evaluacin determina el valor inicial, del
contador, es decir, el valor con el que se ejecutara por primera vez el
bucle.
Valor final: el resultado de su evaluacion determina el valor final, del
contador, es decir, el valor con el que se ejecutara por ultima vez el bucle.
Incremento (Inc): Determina la forma en la que se modificara el contador
al final de cada ejecucin del bucle. Su valor se sumara o restara al
<contador>, segn hayamos definido el modo de la sentencia sea
ascendente o descendente.
La indicacin de este valor en la sentencia es opcional, caso de no
indicarse, el valor que toma por defecto es 1.

Ing. lvaro Enrique Chvez Zubieta

31

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

Instrucciones o Sentencia del bucle: es la que constituye el


denominado "cuerpo del bucle". En general ser una sentencia
compuesta, es decir, que estar formada por mas de una sentencia
simple, aunque puede ser una sola accin, o incluso no existir (accin
nula).
Ejemplo 1
Desarrollar el algoritmo q calcule la suma del 1 al 10
ALGORITMO sumatoria;
VAR
ENTERO: i, j, sum:
INICIO
Inicializa sumatoria;
Suma 0
PARA i 1 HASTA 10
Calcula termino i-esimo;
ji
Suma Suma + j
FIN-PARA
escribe ( "La suma es ", sumatoria );
FIN.
Ejemplo 2
Visualizar los nmeros de 2 cifras pares.
ALGORITMO Ejemplo 2
VARIABLES
ENTERO: N
INICIO
PARA N 10 HASTA 98 DE 2
ESCRIBIR( N )
FIN-PARA
FIN
Ejemplo 3
Visualizar todos los nmeros de 2 cifras compuestos por cifras diferentes.

ALGORITMO Ejemplo3
VARIABLES

Ing. lvaro Enrique Chvez Zubieta

32

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

ENTERO : N, A , B
INICIO
PARA N 10 HASTA 99
A N DIV 10
B N MOD 10
SI ( A <> B ) ENTONCES
ESCRIBIR( N )
FIN-SI
FIN-PARA
FIN
Ejemplo 4
Ingrese un nmero entero y luego calcule la suma de todos los nmeros impares
menores al nmero ingresado.
ALGORITMO Ejemplo 4
VARIABLES
ENTERO: N, SUMA, I
INICIO
LEER( N )
SUMA 0
PARA I 1 HASTA N-1
SI ( I MOD 2 <> 0 ) ENTONCES
SUMA SUMA + I
FIN-SI
FIN-PARA
ESCRIBIR ( SUMA )
FIN

6.2.- SENTENCIA MIENTRAS.


En la sentencia PARA, debemos conocer el numero exacto de veces que
se deben ejecutar las sentencias del bucle. Cuando esto no es posible,
deberemos emplear la sentencia MIENTRAS para conseguir ejecutar
varias veces las sentencias del bucle. En esta sentencia el nmero de
iteraciones depende de la evaluaci6n de una condici6n.

La sentencia MIENTRAS tiene la siguiente sintaxis:

MIENTRAS (Expresin<es>) HACER


:

VERDAD

:
:

Ing. lvaro Enrique Chvez Zubieta

Instrucciones
y/o sentencias
33

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

FIN-MIENTRAS
Condicin de ejecucin (expresion<es>): es una expresin que puede
tomar los valores cierto o falso.
Instrucciones y/o sentencia de bucle: Es la sentencia que se debe
ejecutar en el caso de que el condicin ejecucin sea cierto. Puede ser
una sentencia compuesta.
Ejemplo 1
Visualizar los 3 primeros nmeros naturales.
ALGORITMO Ejemplo1
VARIABLES
ENTERO:
N
INICIO
N 1 //inicializacin
MIENTRAS( N <= 3 ) HACER //condicin
ESCRIBIR( N )
N N + 1 //incremento
FIN-MIENTRAS
FIN
Ejemplo 2
Hallar la media de un conjunto de valores enteros de entrada acabado en el nmero 1.
ALGORITMO media;
VARIABLES
ENTERO: i, j, sum
INICIO
Inicializa suma y contador de elementos leidos ;

Sum 0

i0

Leer (j)
MIENTRAS ( j <> -1 ) HACER
Cuenta elemento leido;

I i +1
Lo suma a la suma de todos los anteriores; leer (elemento)

Sum sum + j
Leer (j)
FIN-MIENTRAS
Escribir (" La media es ", Sum DIV i )
FIN.

Ing. lvaro Enrique Chvez Zubieta

34

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

Ejemplo 3
Usando la instruccin mientras hacer un algoritmo para un programa que
imprima la serie 1, 3, 5, 7,9.
Algoritmo ejemplo 3
Variables
Entero I
Inicio
I1
Mientras I<=9 hacer
escribir (I)
II+2
fin mientras
Fin
Ejemplo 4
Calcular y visualizar la suma de los nmeros de 2 cifras que estn compuestos por
cifras diferentes.
ALGORITMO Ejemplo 4
VARIABLES
ENTERO
N, SUMA, A, B
INICIO
N 10 : SUMA 0
MIENTRAS ( N <= 99 ) HACER
A N DIV 10
B N MOD 10
SI ( A <> B ) ENTONCES
SUMA SUMA + N
FIN-SI
NN+1
FIN-MIENTRAS
ESCRIBIR(LA SUMA ES:, SUMA)
FIN

Ejemplo 5
Ingrese un nmero entero y calcule la suma de las cifras del nmero.
ALGORITMO Ejemplo 5
VARIABLES

Ing. lvaro Enrique Chvez Zubieta

35

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

ENTERO: N, Cifra, Suma


INICIO
LEER( N )
SUMA 0
MIENTRAS( N <> 0 )HACER
Cifra N MOD 10
SUMA SUMA + Cifra
N N DIV 10
FIN-MIENTRAS
ESCRIBIR(LA SUMA ES:, SUMA)
FIN
Ejemplo 6
Escriba el algoritmo para un programa de nmina usando un ciclo mientras con
centinela. Para cada empleado, el programa debe leer el nombre, sexo, horas de
trabajo, sueldo por hora e imprimir el pago. La segunda parte debe imprimir el pago
promedio para las mujeres y el pago promedio para los hombres
Variables
pht : valor del pago por hora trabajada.
nht : cantidad de horas trabajadas.
sexo : valor numrico que indica (1 masculino, 2 femenino)
ptt : valor del pago por persona.
sumasm: guarda la suma de pagos a los varones.
sumasf: guarda la suma de pagos a las mujeres.
sm : guarda la cantidad de varones ingresados.
sf : guarda la cantidad de mujeres ingresadas.
nombre: guarda los nombres de las personas.
centinela: valor numrico que permite finalizar el programa.
Comentario: para este caso cualquier nmero asignado a la variable
sexo, diferente de 1 o 2, har que la variable centinela se cargue a 1,
hecho que obligar la salida del sistema.

Algoritmo Ejemplo 6
Entero: pht, nht, sexo, ptt, sumasm, sumasf, sm, sf, nombre, centinela
INICIO
Sumasm 0
Sumasf 0

Ing. lvaro Enrique Chvez Zubieta

36

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

Sm 0
Sf 0
MIENTRAS ( centinela <> 1 ) HACER
LEER (sexo)
SI sexo<>1 o sexo <> 2 entonces
Centinela 1 //aqu se origina la salida
Sm 1
Sf 1
SI-NO
Si sexo 1 entonces
sm sm+1
LEER ( nombre, nht, pht )
ptt nht*pht
ESCRIBIR ( nombre,ptt )
sumasm sumasm+ptt
SI-NO
sf sf+1
LEER( nombre, nht, pht )
ptt nht*pht
ESCRIBIR( nombre, ptt )
sumasf sumasf+ptt
FIN SI
FIN SI
FIN MIENTRAS
ESCRIBIR (sumasm, sumasm/sm )
ESCRIBIR ( sumasf, sumasf/sf )
Fin

Ejemplo 7
Calcular la suma de los n primeros terminos del desarrollo de Taylor de la
serie (para n = 3):

Algoritmo ejemplo 7
Variables
Entero: i, f;
Real: s;

Ing. lvaro Enrique Chvez Zubieta

37

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

INICIO
s 1,0
i 0
f 1
Escribir (ingresar el el termino n de la serie de Taylor)
Leer (n)
Mientras (i < n) Hacer
i i + 1;
f f * 1;
s s + 1,0/f;
Fin-Mientras
Escribir (Valor de la suma es:, s)
FIN

6.3.- Sentencia REPETIR.


En la sentencia MIENTRAS, la condicin de ejecucin del bucle se
verifica antes de haber ejecutado Este por primera vez. Por tanto, es
necesario inicializar las variables empleadas para determinar su ejecucin
antes de entrar por primera vez en este, lo cual puede tener como
consecuencia que el bucle no Ilegue a ejecutarse nunca. Si queremos
evitar ambas cosas, es decir:

tener que inicializar las variables de control del bucle y

ejecutar al menos una vez el bucle,

Debemos emplear la sentencia REPETIR. En esta sentencia, el numero de


iteraciones depende de la evaluacin de una condicin, como en la MIENTRAS,
pero esta evaluacin se realiza despus de cada ejecuci6n del bucle
Sintaxis:

REPETIR
FALSO

:
Instrucciones
:
y/o sentencias
:
HASTA_QUE(Expresion<es>)

Condicin o expresin<es> de salida: es una expresi6n que puede


tomar los valores cierto o falso.

Ing. lvaro Enrique Chvez Zubieta

38

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

Instrucciones y/o sentencia de bucle: es la sentencia que se debe volver


a ejecutar en el caso de que el resultado de la evaluacin de <condicin
salida> sea falso. Puede ser una sentencia compuesta.

Ejemplo 1
Visualizar los 5 primeros nmeros naturales.
ALGORITMO Ejemplo1
VARIABLES
ENTERO

INICIO
N 1
REPETIR
ESCRIBIR( N )
NN+1
HASTA_QUE ( N > 5 )
FIN
Ejemplo 2
Ingrese un nmero entero y luego visualice todos sus divisores.
ALGORITMO Ejemplo 2
VARIABLES
ENTERO N, Divisor, Resto
INICIO
LEER( N )
Divisor 1
REPETIR
Resto N MOD Divisor
SI( Resto = 0 )ENTONCES
ESCRIBIR (Divisor)
FIN-SI
Divisor Divisor + 1
HASTA_QUE ( Divisor > N )
FIN

Ing. lvaro Enrique Chvez Zubieta

39

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

Ejemplo 3
Hallar la media de un conjunto de valores enteros de entrada acabado en el
nmero -1
ALGORITMO media_R;
VAR
ENTERO: I, J, sum
INICIO
Sum 0
I0
REPETIR
LEER (J)
II+1
Sum Sum + J
HASTA_ QUE (J = -1)
Sum Sum J

II-1

ESCRIBIR ("La media es ", sum DIV i )


FIN
PROBLEMAS PROPUESTOS
1. Desarrolle Ud. empleando un pseudocdigo cada una de las siguientes series :

3, 4, 5, 6, 7 . . . 65

12, 15, 18, 21, 24, . . . 78

97, 92, 87, 82, 77, 72, 67 . . . 2

S = 5 + 9 + 13 + 17 + . . . 45

OP = 167 - (3 + 6 + 9 + . . . + 27 )

P = 4 * 6 * 8 * . . . * 18

3, 9, 15, 21, 27 . . . ( 45 trminos )

56, 53, 50, 47 . . . ( 25 trminos )

3,6,9,12,15, 4,8,12,16,20,5,10,15,20,25,6,12,18, . . . ( n trminos)

3,6,9,4,8,12,16,5,10,15,20,25, 6,12, . . . ( n trminos)

1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3 . . .

( 60 trminos )

1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3 . . .

( 47 trminos )

1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 1, 2, 3, 4, 5, 6, 1, 2, 3,4, 5, 1 . . . 1, 2

Ing. lvaro Enrique Chvez Zubieta

40

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

5, 6, 8, 11, 15, 20, 26, 33 . . .

( 22 trminos )

1, 1, 2, 3, 5, 8, 13, 21, 34, . . .

( 31 trminos )

DAET - FATEC

2. Que acepte 15 nmeros de un usuario e imprima su media aritmtica y su


media armnica.
3. Escriba un algoritmo que lea del teclado un nmero entero y que compruebe si es
menor que 5. Si no lo es, debe volver a leer un nmero, repitiendo la operacin
hasta que el usuario escriba un valor correcto. Finalmente debe escribir por pantalla
el valor ledo.

4. Modifique el algoritmo del problema 4 para que, en vez de comprobar que el


nmero es menor que 5, compruebe que se encuentre en el rango (5,15).
5. Modifique el algoritmo del problema 5 para que cuente las veces que ha ledo un
nmero del teclado y escriba el resultado por pantalla.
6. Modifique el algoritmo del problema 6 para que se realicen 10 lecturas del teclado
como mximo.
7. Que admita el ingreso de 30 nmeros enteros e imprima cuantos de ellos
son positivos, negativos o nulos. Adicionalmente se deber mostrar el promedio
de los positivos, de los negativos y el promedio de todos los nmeros
ingresados.
8. Que permita imprimir nombre y sueldo de tres empleados, mostrando luego
los nombres en orden ascendente respecto de sus salarios, esto es primero
quien gana menos y finalmente quien gana mas.

9. Que imprima los 50 primeros nmeros capicas mayores que 100

10. Que ingrese un nmero y muestre un mensaje indicando si es primo o no


11. Que muestre por lo menos 5 nmeros perfectos
12. Que imprima los 50 primeros trminos de la serie de Fibronacci
13. Que calcule el factorial de un nmero dado. Se sabe que este se obtiene
Segn

Ing. lvaro Enrique Chvez Zubieta

41

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

14. Que desarrolle la nmina para una compaa que tiene 16 empleados,
algunos de los cuales son hombres y otras mujeres. Para cada empleado se
debe leer el nombre, el sexo, las horas de trabajo y el sueldo por hora.
La primera parte de la impresin debe dar el nombre y el pago de cada
empleado. La segunda parte, el total de pagos para cada sexo, as como el
promedio de los pagos a los hombres y el promedio de los pagos a las
mujeres.

15. Que permita ingresar varios sueldos como valor numrico, verificando si
cada uno de ellos supera los US$ 750.00. El programa termina cuando
ingresemos un valor negativo.
16. Que admita el ingreso de los precios de N productos (entre 1 y 30),
obteniendo el precio promedio, el precio mayor y el precio menor.
17. Que permita imprimir el crecimiento de las clulas de una planta si se sabe
que da a da se obtuvieron los siguientes resultados en centmetros:

3 5 7 10 13 17 21 26 31 ...

Mostrar adems en cuantos das superar los 500 cm


18. Que permita ingresar el monto comprado en una ferretera e imprima el nmero mnimo
de billetes y monedas en actual circulacin necesarios para la
cancelacin.
19. Que muestre los elementos del siguiente tringulo :

1
2

1
2
3

1
2
3
4

1
2
3

1
2

20. Que muestre el reporte de pagos que realizar un usuario a un prestamista


sabiendo que los prstamos se realizan bajo las siguientes condiciones:

El monto mnimo que se otorga en prstamo es US$ 2500.

Los pagos se realizarn en forma mensual, amortizando por cada vez un 20%

Ing. lvaro Enrique Chvez Zubieta

42

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

del saldo

Se cancelar adems un 5% mensual por concepto de inters, respecto al


saldo.

Cuando el saldo sea menor a US$ 250, se deber cancelar el ntegro del saldo.
El modelo del reporte a generar es el siguiente :

PRESTAMO:
MES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

AMORTIZACIN
2400.00
1920.00
1536.00
1228.80
983.04
786.43
629.15
503.32
402.65
322.12
257.70
206.16
164.93
131.94
105.55
84.44
67.55
54.04
216.00

US$ 12,000.00
INTERES
600.00
480.00
384.00
307.20
245.76
196.61
157.29
125.83
100.66

TOTAL
3000.00
2400.00
1920.00
1536.00
1228.80
983.04
786.43
629.15
503.32

SALDO
9600.00
7680.00
6144.00
4915.20
3932.16
3145.73
2516.58
2013.27
610.61

80.53
64.42
51.54
41.23
32.99
26.39
21.11
16.89
13.51
10.81

402.65
322.12
257.70
206.16
164.93
131.94
105.55
84.44
67.55
226.81

1288.49
1030.79
824.63
659.71
527.77
422.21
337.77
270.22
216.17

Ing. lvaro Enrique Chvez Zubieta

43

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

7.- SUBPROGRAMAS
En este tema se estudia el mecanismo ms importante y bsico de la organizacin y
construccin de los programas,
Un subprograma es un bloque de instrucciones y/o sentencias que tiene nombre
propio y puede ser invocado cuantas veces sea necesario desde el bloque principal
del algoritmo (figura N1) o desde otro subprograma (figura N2)

Figura N 1

Figura N 2

FILOSOFIA DE LA CONSTRUCCION DE SUBPROGRAMAS SINTAXIS:

La transferencia de informacin desde un programa hacia un subprograma o


entre subprogramas y de recogida de resultados de los mismos, se hace el
envi de informacin mediante parmetros y recogida de resultados mediante
la devolucin de valores.

Finalmente el mbito (scope) de visibilidad de datos locales y globales, son


tambin parte esencial del curso que se explican en este capitulo.

Ing. lvaro Enrique Chvez Zubieta

44

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

7.1.- METODOLOGA DE PROGRAMACIN DESCENDENTE


La programacin descendente o top-down analiza los problemas desde lo
ms abstracto a lo mas concreto, descomponiendo el problema general en
problemas mas sencillos y de menor envergadura.
Al realizar este anlisis se van aislando problemas concretos mas pequeos, por
ejemplo, al tratar de calcular una serie de Taylor, se ve que hace falta el valor de
factoriales y de potencias:

Se trata pues de resolver primero estos problemas ms sencillos, del


clculo del factorial y de la potencia de un numero y despus combinarlos
dividindolos, en el ejemplo, y sumndolos:

o incluso

siendo termino:
termino(x, n) = potencia(x, n)/factorial(n)
En programacin es esencial esta posibilidad de descomponer un
problema en sub-problemas, o un algoritmo en sub-algoritmos. Para ello
conforme se escribe un programa se pueden tambin escribir
subprogramas que resuelven los sub-problemas del programa principal
siendo estos subprogramas soluciones a las que se llama cuando haga
falta en el programa principal

7.2. LOS SUBPROGRAMAS Y LA PROGRAMACION ESTRUCTURADA


Los subprogramas son la primera aproximacin, el primer paso
imprescindible para organizar los algoritmos y el cdigo de programacin.
Aunque hay formas ms amplias de organizar mayores volmenes de
cdigo pero los subprogramas son las soluciones a los pequeos

Ing. lvaro Enrique Chvez Zubieta

45

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

problemas organizadas de manera que se puedan utilizar por el resto del


cdigo y dems subprogramas.
La programacin estructurada es una tcnica de programacin que
agrupa:

La abstraccin del problema

Diseo descendente

Sentencias secunciales, selectivas e iterativas

Los Sub-Programas se implementan a travs de Procedimientos o Funciones

7.3.- PROCEDIMIENTOS
Un Procedimiento es un subprograma que realiza una tarea
determinada para luego retornar al punto del algoritmo desde donde fue
invocado.
Para llamar a un procedimiento se hace uso del nombre del mismo,
opcionalmente se puede pasar valores si es que el procedimiento
implementa parmetros.
El paso de valores a los parmetros de un procedimiento se puede
hacer por valor y/o referencia.(direccin de memoria) de una variable

Estructura de un procedimiento
Opcional

PROCEDIMIENTO Nombre(Lista_Parametros)
VARIABLES
:

mbito local

INICIO
:
:

Instrucciones
y/o sentencias

FIN-PROCEDIMIENTO

La lista de parmetros puede ser opcional de acuerdo al diseo del


algoritmo puede recibir o no parmetros

El mbito local de las variables hace referencia a que las variables


declaradas solo tienen alcance dentro del subprograma

Ejemplo 1

Ing. lvaro Enrique Chvez Zubieta

46

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

Implementar un procedimiento que permita visualizar un texto un


nmero determinado de veces.
ALGORITMO Ejemplo1
VARIABLES

mbito global

ENTERO
N
PROCEDIMIENTO Imprime(CADENA Texto, ENTERO Numero)
VARIABLES
Lista de
ENTERO
I
parmetros

INICIO
PARA I 1 HASTA Numero
ESCRIBIR( Texto )
FIN-PARA
FIN-PROCEDIMIENTO

mbito local

INICIO
LEER( N )
Escribir (HOLA, N)
Escribir (MUNDO, 20)
Escribir (ALGORITMOS, 50)
FIN
Ejemplo 2
Implementar un procedimiento que visualice un recuadro
ALGORITMO Recuadro;
PROCEDIMIENTO Estrellas ( )
INICIO
Entero: I
PARA I 1 HASTA 15 HACER
escribir (`*)
FIN-PARA
FIN-PROCEDIMIENTO
INICIO
Estrellas ( )
ESCRIBIR (`Mensajes);
Estrellas ()
FIN

Ing. lvaro Enrique Chvez Zubieta

47

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

Ejemplo 3
Implementar un procedimiento que imprima el mayor valor de 2 nmeros
enteros.
ALGORITMO Ejemplo 2
VARIABLES
ENTERO
A, B
PROCEDIMIENTO ImprimeMayor( ENTERO M, ENTERO N)
INICIO
SI( M > N )ENTONCES
ESCRIBIR( M )
SINO
ESCRIBIR( N )
FIN-SI
FIN-PROCEDIMIENTO
INICIO
LEER ( A, B )
ImprimeMayor( A, B)
FIN
Ejemplo 4
Mediante un algoritmo hallar el permetro y el area usando procedimientos
ALGORITMO ejemplo 4
Variable
Real: X,Y,A,P
PROCEDIMIENTO Geometra (REAL Longitud, REAL Anchura, REAL:
INICIO
rea, REAL Permetro)
rea Longitud * Anchura;
Permetro 2 * (Longitud + Anchura)
ESCRIBIR ('El rea es: ', A)
ESCRIBIR ('El permetro es: ' P)
FIN-PROCEDIMIENTO
INICIO
ESCRIBIR ('Introducir longitud: ')
LEER (X)
ESCRIBIR ('Introducir anchura: ')
LEER (Y)
Geometra (X,Y,A,P); (* Llamada al procedimiento *)
FIN
Ejemplo 5

Ing. lvaro Enrique Chvez Zubieta

48

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

Mediante un algoritmo hacer un intercambio de valores de dos variables con un


procedimiento.
Algoritmo Ejemplo 5
Variables
Real: x,y
Caracter: resp
PROCEDIMIENTO cambio (REAL a, REAL b)
Variables
Real: aux
INICIO
aux a
ab;
b aux ;
Escribir (Ahora el valor de a es a y el valor de b es b)
FIN-PROCEDIMIENTO
INICIO
HACER
ESCRIBIR ('Introduzca el valor para x ')
LEER (x)
ESCRIBIR ('Introduzca el valor para y ')
LEER (y)
Cambio (x, y)
ESCRIBIR ('Desea continuar (S/N)?')
LEER (resp)
MIENTRAS (resp = 'N') O (resp = 'n')
FIN
Ejemplo 6
Hacer un algoritmo que calcule el salario bruto de un empleado atravez de un
procedimiento de clculo tomando como parmetro el salario bruto. Finalmente,
debe calcular la deduccin de la Caja y del Banco Popular y el salario neto.
La salida del programa debe ser la siguiente:
El empleado (nombre), cdula No. (id_empleado), obtuvo un salario neto de...
Algoritmo Salario;

Ing. lvaro Enrique Chvez Zubieta

49

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

Variables
Entero : id_empleado,i,n;
Cadena [40]: nom_empleado :
Real: sal_bruto,salario_neto,tod_ded:
Cadena: resp
PROCEDIMIENTO calcula ( REAL: sal_brut )
Variables
REAL: cc_ss,b_p
INICIO
cc_ss sal_brut * 0.08;
b_p sal_brut * 0.01;
tod_ded c_ss + b_p;
salario_neto sal_brut - tod_ded
FIN-PROCEDIMIENTO

INICIO
ESCRIBIR ('Digite el nmero de empleados a procesar: ')
LEER (n)
ESCRIBIR ('Id. del empleado ',i,' de ',n,' : ')
LEER (id_empleado)
ESCRIBIR ('Nombre: ')
LEER (nom_empleado)
ESCRIBIR ('Salario bruto: ')
LEER (sal_bruto)
calcula(sal_bruto)
ESCRIBIR ('El salario neto de ', nom_empleado , ' es ',salario_neto)
ESCRIBIR ('Sus deducciones fueron ',tod_ded:)
FIN

7.4.- FUNCION
Una funcin es un subprograma que procesa un grupo de instrucciones y/o
sentencias para luego devolver un nico valor, esto es lo que la diferencia
de un procedimiento.
Las funciones pueden contener opcionalmente parmetros.

Ing. lvaro Enrique Chvez Zubieta

50

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

Las funciones se invocan por su nombre seguido de los valores que se


pasaran a sus respectivos parmetros formales.
Una funcin puede llamar a otra funcin inclusive puede llamarse a si
misma (recursividad).

Sintaxis:

Opcional

FUNCION Nombre (Lista_Parametros): TIPO DE DATO


VARIABLES
:

mbito local

INICIO
:
Instrucciones
y/o sentencias

:
RETORNAR (VALOR)
FIN-FUNCION

La lista de parmetros puede ser opcional de acuerdo al diseo del


algoritmo puede recibir o no parmetros

El mbito local de las variables hace referencia a que las variables


declaradas solo tienen alcance dentro del subprograma

El valor a retornar es el resultado de procesar las sentencias de la


funcin y esta se asigna a una variable global del algoritmo
principal.

Ejemplo 1
Crear una funcin que retorne el cuadrado de un nmero entero
ALGORITMO Ejemplo1
VARIABLES
ENTERO

FUNCION Cuadrado( ENTERO N ) : ENTERO


INICIO
RETORNAR( N * N )
FIN-FUNCION

INICIO
LEER( M )
ESCRIBIR( Cuadrado( M ) )

Ing. lvaro Enrique Chvez Zubieta

51

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

FIN

Ejemplo 2
Crear una funcin que retorne el mayor valor de 2 nmeros enteros
ALGORITMO Ejemplo2
VARIABLES
ENTERO

A, B

FUNCION Mayor( ENTERO M,ENTERO N) : ENTERO


INICIO
SI ( M > N ) ENTONCES
RETORNAR ( M )
SINO
RETORNAR ( N )
FIN-SI
FIN-FUNCION
INICIO
LEER( A, B )
ESCRIBIR (Mayor( A, B) )
FIN
Ejemplo 3
Crear una funcin que retorne la suma de la cifras de un nmero entero.
ALGORITMO Ejemplo3
VARIABLES
ENTERO

FUNCION SumaCifras(ENTERO N ) : ENTERO


VARIABLES
ENTERO

SUMA, Cifra

INICIO
SUMA 0
MIENTRAS ( N <> 0 ) HACER
Cifra N MOD 10
SUMA SUMA + Cifra
N N DIV 10
FIN-MIENTRAS
RETORNAR( Suma )
FIN-FUNCION

Ing. lvaro Enrique Chvez Zubieta

52

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

INICIO
LEER( M )
ESCRIBIR( SumaCifras( M ) )
FIN
EJEMPLO 4
Construir un algoritmo empleando una funcin al ingresar un numero en base 10 y
la base a convertir que devuelva como resultado en una cadena al formato
numrico en las siguientes bases:

Binario

Octal

Hexadecimal
ALGORITMO conversion cadena
VARIABLES:
ENTERO
: num_A, base_A
CADENA[20] : resultado
FUNCION conversin _ base ( entero: nun, entero: base): CADENA
VARIABLES
CADENA : carcter, cad_nul, cad_resul
ENTERO: residuo
INICIO.
Cad_resul
MIENTRAS ( nun>0 ) hacer
residuo num MOD base
SI (residuo>=0 Y residuo<9) HACER
Caracter CHAR(residuo+48)
SINO
Caracter CHAR(residuo+55)
FIN-SI
cad_resul carcter+cad_resul
nun nun DIV base
FIN-MIENTRAS
RETORNAR ( cad_resul)
FIN-FUNCION

Ing. lvaro Enrique Chvez Zubieta

53

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

INICIO
Escribir(ingresar numero a convertir )
Leer(nun_A)
Escribir(ingrese la base a convertir)
Leer(base_A)

En caso base_A sea


2: resultado conversin_base (nun_A, base_A)
8: resultado conversin_base (nun_A, base_A)
16: resultado conversin_base (nun_A, base_A)
OTRO CASO
ESCRIBIR( base no definida)
FIN-CASO
ESCRIBIR (nun_A, base_A, resultado)
FIN
Ejemplo 5
Sean a, t IR, leer el valor del ngulo a en grados sexagesimales, Calcular la
tangente del ngulo, desarrollarlo usando procedimientos y funciones
Algoritmo CalculoTangente
variables
REAL : t, angulo

PROCEDIMIENTO LeerGrados()
INICIO
Escribir('Angulo en grados?: ')
Leer(angulo)
FIN-PROCEDIMIENTO

FUNCION TanGrados(REAL:angSexa): REAL;


CONSTANTE
Pi 3.141592

Ing. lvaro Enrique Chvez Zubieta

54

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

VARIABLE
REAL angRad
INICIO
angRad: angSexa * Pi/180
TanGrados: Sin(angRad)/Cos(angRad)
RETURN (TanGrados)
FIN-FUNCION

INICIO
LeerGrados()
t TanGrados(angulo)
Escribir (t)
FIN
Ejemplo 6
Calcular una serie de Taylor, aplicando procedimiento y funciones, donde la
cantidad de trminos lo determina el usuario al ingresar el valor de n. y el x

Algoritmo ejemplo 6
Variables
ENTERO : term
REAL: Staylor, X
PROCEDIMIENTO Leerterm()
INICIO
Escribir (Ingresar el nmero de trminos de la serie de Taylor:')
Leer (term)
Escribir (Ingresar el valor de X en la serie de Taylor: ')
Leer (X)
FIN-PROCEDIMIENTO

FUNCION exponecial (ENTERO: N):REAL


VARIABLES
REAl : T

Ing. lvaro Enrique Chvez Zubieta

55

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

INICIO
TXN
RETORNAR (T)
FIN-FUNCION
FUNCION factorial (ENTERO : M):ENTERO
INICIO
SI (M<>0) HACER
RETORNAR (M*(M+1))
SINO
RETORNAR (1)
FIN-SI
FIN-FUNCION

INICIO
Leerterm()
Staylor 0
PARA n 0 HASTA term HACER
Staylor Staylor + exponecial(n) / factorial.(n)
FIN-PARA
Escribir ( Staylor )
FIN

PROBLEMAS PROPUESTOS
1. Desarrollar un algoritmo que devuelva la suma de los elementos de la
siguiente serie :

14, 17, 20, 23, 26, 29 . . .

44

2. Que dibuje en pantalla un cuadrado formado por asteriscos.

3. Que devuelva la suma de los 250 primeros nmeros impares.

4. Que modifique el salario de un empleado sabiendo que


recibir un incremento de sueldo.

Ing. lvaro Enrique Chvez Zubieta

56

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

5. Que devuelva el promedio de prcticas de un alumno si se


sabe que de las 15 evaluaciones se eliminar la menor.
6. Que permita realice la consistencia de un nmero entero
comprendido entre 10 y 50
7. Que permita el ingreso de un nmero entero entre dos valores
contenidos en un rango definido por el usuario.
8. Que admita un nmero correspondiente a un mes del ao y lo
devuelva expresado en letras. El valor que se ingresa debe
ser consistenciado.
9. Que muestre el monto total para un trabajador sabiendo que
le corresponde un porcentaje de bonificacin.
10. Que devuelva el factorial de un nmero.
11. Que muestre el valor de la serie que se indica, se indicar
como parmetro el valor mximo que puede tomar un
elemento de la serie.
3 , 6, 10, 15, 21, 28, 36, 45, . .
12. Que muestre el neto a pagar por el almuerzo que ingerir un
alumno del curso de algoritmo, sabiendo que elegir su
combinacin de acuerdo al siguiente men de opciones :
MENU:
[A]

JUGOS

[B]

HAMBURGUESA

[C]

POSTRES

OPCION:
Donde:
JUGOS
[A
[B

FRESAS CON LECHE


SURTIDO

Ing. lvaro Enrique Chvez Zubieta

S/.
4.50
3.00

57

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA
[C

DAET - FATEC

PAPAYA

3.00

PYE DE MANZANA
MOUSSE DE LIMN
CHEESE CAKE

S/.
4.50
4.00
5.00

POSTRES
[A
[B
[C

HAMBURGUESA
[1
[2
[3
[4
[5
[6

SUPER BURGUER
POLLO
CON CHORIZO
CON TOCINO
CRIOLLA
SIMPLE

S/.
9.00
7.50
6.00
6.00
5.50
4.00

13. En una empresa se van a producir aumentos de sueldos a los trabajadores


en base a la siguiente escala
SUELDO
S/.
501 - ms
351 - 500
201 - 350
hasta 200

AUMENTO
(%)
10
15
20
25

La empresa cuenta con 50 trabajadores. Se pide desarrollar un modulo


para calcular el total de personas que recibirn el 10,15,20 y 25 % de
aumento, as como el total a desembolsar por la empresa.
14. Que admita el ingreso de una fecha y posteriormente muestre el
calendario del ao ingresado. Considere que la fecha deber estar
perfectamente consistenciada.
15. Un estudiante ha registrado 20 instituciones que dictan el curso de Visual
Java++, a diferentes costos.
Que nos permita determinar el costo promedio del curso, el costo ms
elevado y el costo ms bajo. Se sabe adems que ningn costo es mayor a
1000.00 nuevos soles.

Ing. lvaro Enrique Chvez Zubieta

58

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

16. Que permita ingresar 4 notas. Imprimir el promedio de las 3 notas mas
bajas y el promedio de las 3 notas mas altas.
17. Que ingrese 8 notas para N alumnos. Si se anulan las 2 notas mas bajas,
se pide devolver el promedio.
18. Desarrollar un modulo que ingrese N sueldos. Imprimir el % de los que
ganan menos de 1,000.00 y el % de los que ganan mas de 2,000.00
nuevos soles.
19. Que indique si en un grupo de 5 hermanos, y en base a sus edades,
hubiera mellizos, trillizos, cuatrilizos o quintillizos

Edades 8, 12, 15, 17, 21


Edades 7, 14, 14, 16, 18
Edades 12, 14, 14, 18, 18

Mostrar Todas las edades son diferentes


Mostrar Hay un par de mellizos
Mostrar Hay dos pares de mellizos

Ing. lvaro Enrique Chvez Zubieta

59

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

8.- DATOS ESTRUCTURADOS


Una estructura de datos es una coleccin de datos que pueden ser caracterizados
por su organizacin y las operaciones que se definen en ella.
Dentro de ellas encontramos distintos tipos, los tipos de datos ms frecuentes en
los diferentes lenguajes son:

simples o estticos
ESTRUCTURADOS

arrays (vectores/matrices)
registros
ficheros
conjuntos
cadenas (string)

listas (pilas/colas)
compuestos o dinmicos listas enlazadas
rboles
grafos
Las estructuras estticas son aquellas en las que el tamao de memoria ocupado se
define antes de que el programa se ejecute y no puede modificarse durante la
ejecucin
Las estructuras dinmicas son aquellas en las que no se debe definir previamente el
tamao de memoria

8.1 ARRAY UNIDIMENSIONAL: VECTOR.


Un vector es una estructura de datos en la que podemos almacenar un
determinado nmero de datos, todos ellos del mismo tipo de dato, ordenados en
una sola dimensin.
Para poder referirnos a un elemento del arreglo en particular es necesario utilizar un
ndice que vendr ser la numeracin consecutiva de cada espacio que ocupa un dato
en el arreglo
Las operaciones que se pueden hacer con un vector son:
(a) Asignacin
(b) lectura/escritura
(c) recorrido (acceso secuencial)

Ing. lvaro Enrique Chvez Zubieta

60

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

(d) actualizar (aadir, borrar, insertar)


(e) ordenacin
(f) bsqueda
Sintaxis:
VARIABLES
Tipo _ elemento: Nombre_del_Array[tipo _ ndice] (SE DEFINE EL ARRAY)
Tipo : variable ndice

(SE DEFINE EL INDICE DEL ARRAY)

Nombre del Array: Es el nombre de la nueva variable de tipo vectorial. En base a


este se la llamara en todo el desarrollo del algoritmo tanto para leer como
almacenar datos del mismo tipo
Tipo_ ndice: Indica el tamano del array, es decir, el numero de variables del
mismo tipo que se alinean dentro del vector. [<limite inferior> .. <Iimite superior>]
Tipo _ elemento: es el tipo de todos los elementos del vector, el tipo basico, que
puede a su vez ser de cualquier tipo (elemental, estructurado).
En un computador un vector ocupa tantas posiciones de memoria como resulte de
multiplicar las ocupadas por una variable de tipo_elemento por el nmero de
elementos del vector, indicado por tipo_ndice

a.- ASIGNACIN:
Es darle un valor a un elemento de un vector
Pseudocdigo
A[3] 5
Para la asignacin como para otro procesos se debe recurrir a estructuras
repetitivas (para, mientras o repetir).
Como ejemplo tenemos 3 tipos de vectores que almacenan distintos tipos de
datos en cada una de las siguientes figuras:

A:

18

56

34

A[4]

ndice

A[6]
ndice

A
B
C
D
E
F
B:
Ing. lvaro Enrique Chvez Zubieta

B[5]

10

B[9]

61

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

C:

DAET - FATEC

ESTHER

FLOR

NOEMI

ERICKA

ROSA

C[2]

ndice

C[5]

El acceso a cada uno de ellos lo haremos a travs de los ndices de cada


vector esto se describe en los siguientes algoritmos:
Cual seria el resultado del siguiente pseudocdigo?
INICIO
PARA ndice 1 HASTA 10 HACER
Escribir B[ndice] //sin cambiar de lnea
INDICEINDICE+1
Fin del PARA
FIN
Rspta: ABCDEFGHI

Cual seria el resultado del siguiente pseudocdigo?


INICIO
PARA ndice 1 HASTA 5 HACER
Escribir C[ndice] // cambiar de linea
Indice indice+1
Fin del PARA
FIN
Rspta:
Esther
Flor
Noemi
Ericka
Rosa

Ing. lvaro Enrique Chvez Zubieta

62

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

Ejemplo 1
A cada uno de los 55 elementos del vector CARGA se le debe asignar el valor 0

Algoritmo Ejemplo1
Constante:
A = 1;
B = 55;
Variables
ENTERO: CARGA[1..55]
ENTERO: I
PROCEDIMIENTO asigna ( )
INICIO
PARA I A HASTA B HACER

{* se define el ciclo de 1 a 55 *}

CARGA[I] 0; {* asigna la valores *}


FIN -PROCEDIMIENTO
PROCEDIMIENTO salida ( )
Variables
CHAR: H
INICIO
ESCRIBIR ('se termino de asignar el valor de 0 a cada elemento del
vector CARGA)
ESCRIBIR (Presione cualquier tecla ')
LEER (H) {* esta instruccin y la anterior son para dar tiempo para *}
{* ver resultados *}
FIN-PROCEDIMENTO {* fin del procedimiento salida *}
INICIO
asigna( )
salida;
FIN

b.- LECTURA/ESCRITURA:

Ing. lvaro Enrique Chvez Zubieta

63

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

Es una operacin de entrada salida sobre un vector. Manejado por estructuras


repetitivas.

EJEMPLO 2
Escriba un algoritmo que, dado un vector de 10 enteros, escriba todos sus
elementos por pantalla. Supongamos que el primer elemento del vector tiene
ndice 1
ALGORITMO EJEMPLO 2
VARIABLES

SE DEFINE EL ARRAY
DE 10 ELEMENTOS

ENTERO: v [110]
ENTERO: i
INICIO
i1

VARIABLE INDICE DEL


ARRAY

MIENTRAS i <= 10 HACER


ESCRIBE El elemento , i, vale , v[i]
i i+1
FIN MIENTRAS
FIN

EJEMPLO 3
Escriba un algoritmo que, dado un vector de enteros, cuente los elementos
que estn en el rango [10, 50) y que escriba el resultado por pantalla
ALGORITMO EJEMPLO 3
VARIABLES
ENTERO: v [110]
ENTERO: i ,CUENTA
INICIO
i1
cuenta 0
MIENTRAS i <= 10 HACER
SI v[i] >= 10 Y v[i] < 50 ENTONCES
cuenta cuenta + 1
FINSI
i i+1

Ing. lvaro Enrique Chvez Zubieta

64

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

FIN MIENTRAS
ESCRIBE total
FIN
Ejemplo 4
Ingresar por teclado cada uno de los 5 elementos de un vector de nombre vec. Y
luego leerlos y presentarlos por pantalla en orden inverso al que entraron (de 5 a 1)

Algoritmo EJEMPLO 4
Constantes:
A=1
B=5
VARIABLES
ENTERO: vec[1..5]
ENTERO: I
PROCEDIMIENTO escribir( )
INICIO
PARA I A HASTA B HACER
ESCRIBIR (Ingrese vec[, I , ]: )
LEER ((vec[I])
FIN-PARA
FIN-PROCEDIMIENTO
PROCEDIMIENTO lectura
INICIO
PARA I B HASTA A HACER DE -1
ESCRIBIR (vec[, I ,) = ,vec[I])
FIN-PROCEDIMIENTO
PROCEDIMIENTO salida ( )
Variables
CHAR: H
INICIO
ESCRIBIR ('se termino de asignar el valor de 0 a cada elemento del
vector CARGA)
ESCRIBIR (Presione cualquier tecla ')
LEER (H) {* esta instruccin y la anterior son para dar tiempo para *}
{* ver resultados *}

Ing. lvaro Enrique Chvez Zubieta

65

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

FIN-PROCEDIMENTO {* fin del procedimiento salida *}

INICIO
Escribir( )
Leer( )
Salida( )
FIN.
c.- RECORRER:
Esta operacin se realiza cuando uno lee el vector, y se aplica tanto cuando se
busca un elemento de un vector o cuando se desea listar el mismo, como lo vimos
en el ejemplo anterior.

d.- ACTUALIZAR:
Aadir: Se denomina as a la operacin de agregar un nuevo, elemento al final del
vector. la nica condicin necesaria para esta operacin consiste en la
comprobacin de espacio libre en memoria.
Ejemplo:
Dado el vector U de k=7 elementos aadir un elemento ms al vector
Algoritmo
I 0
REPETIR
I I +1
HASTA QUE ( U[I] = 0 O i > k)
SI (i <= k) ENTONCES
escribir( ingresar un nuevo elemento del vector)
leer(U[I])
SINO
escribir(No ms lugar)
FIN-SI

e.- BORRAR:
Es eliminar un elemento de un vector se puede hacer de dos maneras una es
reemplazar el elemento por el utilizado como seal. Puede servir pero no es
recomendado en proyectos pequeos. Pero no as en grandes. El otro mtodo

Ing. lvaro Enrique Chvez Zubieta

66

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

consiste en mover los elementos que se encuentran debajo de l una posicin


hacia arriba, colocando una bandera en la ltima celda.
Ambos mtodos tienen el paso de bsqueda en comn utilizado en aadir, lo que
varan son los pasos posteriores al Si. (Solo representaremos estos pasos)
Mtodo rudimentario
Algoritmo de elimina (rudimentario)
Pseudocdigo
Y 0
REPETIR
I I +1
HASTA QUE ( U[I] = 0 o I > k )
SI I <= k ENTONCES
U[I] 0
SINO
escribir (No existe el elemento)
FIN_SI
Mtodo Optimo
Algoritmo de elimina (optimo)
Pseudocdigo
I 0
Lee (Aux)
REPETIR
I I +1
HASTA QUE (U[i] = Aux O I > k)
Si (i <= k) ENTONCES
REPETIR
U[I] U[I + 1]
I I +1
HASTA QUE (U[i] = 0 O I > k)
SINO
Escribir (No existe el elemento)
FIN_SI

Ing. lvaro Enrique Chvez Zubieta

67

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

f.- INSERTAR:
Se debe trabajar sobre un vector ordenado. Consiste en introducir un nuevo
elemento al vector sin que este pierda el orden. Para ello se debe comprobar que
haya lugar libre en el vector, luego de lo cual se deber desplazar hacia bajo los
elementos necesarios como para generar un espacio libre en la posicin adecuada
sin que se pierda el orden.
Algoritmo de inserta (Ordenado creciente)
Pseudocdigo
I 0
Lee ( Aux )
REPETIR
I I +1
HASTA QUE ( U[i] = 0 O I > B)
SI ( I < =B) entonces
I I -1
MIENTRAS (U[i] > Aux)
U[I+1] U[I]
I I -1
FIN-MIENTRAS
U[I+1] Aux
SINO
Escribir ( No hay lugar)
FIN-SI

g.- ORDENACIN:
La ordenacin o clasificacin es, el proceso de clasificar datos en algn orden o
secuencia especfica como creciente o decreciente. Existen varios mtodos de
ellos elegiremos el de intercambio (decantacin).
Algoritmo de ordena (Ordenado creciente)
Pseudocdigo
I 0
REPETIR
I I +1
HASTA QUE ( U[i] = 0 O I > B )
P I -1

Ing. lvaro Enrique Chvez Zubieta

68

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

PARA I 1 hasta P -1 hacer


PARA J 1 hasta P - I hacer
si ( U[J] > U[J +1] ) entonces

(intercambiar)

Aux U[J]
U[J] U[J +1]
U[J +1] Aux
fin si
fin-para
fin-para

h.- BSQUEDA:
La bsqueda de un dato dentro de un array consiste en determinar si un elemento
N pertenece o no al conjunto de datos y posicin que el ocupa en el conjunto.
Los distintos tipos de bsqueda se pueden clasificar en:
Bsqueda secuencial
Bsqueda binaria
Bsqueda por transformacin de claves (hash)
En este capitulo solo no se abordara este tema
EJEMPLO 5
Escriba un algoritmo que lea un nmero real del teclado y busque dicho nmero en
un vector de N nmeros reales, donde N es una constante a la que le daremos un
valor cualquiera. Si se encuentra el nmero, se debe escribir por pantalla el ndice
del elemento que lo contiene.
Supongamos que:

a. Que el algoritmo no necesita leer el contenido del vector.


b. Ningn elemento del vector se repite.
ALGOTIRMO EJEMPLO 3
CONSTANTES
n = 100
VARIABLES
REAL: a[1...n]
ENTERO: i
REAL: valor

Ing. lvaro Enrique Chvez Zubieta

69

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

BOOLEAN: encontrado

INICIO
LEER ( valor)
i1
encontrado FALSO
MIENTRAS ((i<=n) Y (NO encontrado)) HACER
SI a[i] = valor ENTONCES
encontrado VERDADERO
ESCRIBE El valor se ha encontrado en la posicin, i
FINSI
i i+1
FIN MIENTRAS
FIN
EJEMPLO 6
Escriba un algoritmo que busque el valor mximo de los elementos de un vector de
N nmeros reales, donde N es una constante a la que le daremos un valor
cualquiera. El algoritmo debe escribir por pantalla el valor mximo.
Supongamos que:
a. Que el algoritmo no necesita leer el contenido del vector.
ALGOTIRMO EJEMPLO 4 (bsqueda del mximo)
CONSTANTES
n =100
VARIABLES
REAL: a [1 n]
ENTERO: i
REAL: max
INICIO
LEE (valor)
max a[1]
PARA i 2 HASTA n HACER
SI a[i] > max ENTONCES
max a[i]

Ing. lvaro Enrique Chvez Zubieta

70

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

FINSI
FIN PARA
ESCRBE (El valor mximo es, max)
FIN

I.- COPIA DE UN ARRAY:


Un array puede ser asignado a otro array, si y solo si, ambos tienen el mismo tipo y
el mismo tamao.
Ejemplo:

Variable
Entero: alfa [1..30]
Entero: Gama [1..30]
Entero: Beta [1..40]
Alfa := Gama; {nica expresin vlida}.
Beta := Alfa;
Gama := Beta;.
8.2. - Array bidimensionales (Tablas)
Un array bidimensional (tabla o matriz) es un array con dos ndices, al igual que los
vectores que deben ser ordinales. Para localizar o almacenar un valor en el array se
deben especificar dos posiciones (dos subndices), uno para la fila y otro para la
columna. Los elementos se referencian con el formato:
T [3,4] elemento de la fila 3 y columna 4

7
A[2,5]18

18

A[5,2]3

A[5,7]14

A[7,5]14

14

Esta matriz es capaz de conservar 35 datos (5*7)

Ing. lvaro Enrique Chvez Zubieta

Mal!!!.. Excede el
primer ndice

71

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

Para acceder aun dato lo hacemos mediante las estructuras repetitivas comenzando
por cada fila, recorriendo por las columnas donde se desarrolla las mismas
operaciones ya mencionadas en un array unidimensional

Pseudocodigo
inicio
PARA indice1=1 hasta 5 hacer
PARA indice2=1 hasta 7 hacer
Ingresar dato en A[indice1][indice2]
Fin-PARA
Fin-PARA
Fin
Sintaxis de los arrays bidimensionales

REAL: Tabla [ 1..10 , 4..25 ]


N filas

N columnas

Ejemplo 7
Calcular el valor promedio de los elementos de una matriz
ALGOTIRMO EJEMPLO 7 (bsqueda del mximo)
CONSTANTE:
n=50
VARIABLES
REAL: a [1 n]
REAL: b [1 n]
ENTERO: i, j, n
REAL: suma , promedio
INICIO
PARA I 1 hasta n
PARA J 1 hasta n

Ing. lvaro Enrique Chvez Zubieta

72

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

leer M(I, J)
fin-PARA
fin-PARA
suma 0
PARA I 1 HASTA n HACER
PARA J 1 HASTA n HACER
suma suma + M(I, J)
FIN-PARA
FIN-PARA
promedio suma / (cantfila * cantcolumna)
Escribir (promedio)
PARA I 1 HASTA n HACER
PARA J 1 HASTA n HACER
Escribir M(I, J)
FIN-PARA
FIN-PARA
FIN

CONSTANTES DE TIPO ARRAY (TIPEADAS)


En los lenguajes de programacin permite que las constantes con tipo (tipeadas)
puedan ser de casi cualquier tipo. Las constantes con tipo, no son constantes en el estricto
sentido, sino variables inicializadas, es decir, variables que tienen un valor inicial especfico
en la cabecera del programa.
Ejemplos

const
ENTERO A [1..5] = (10,20,30,40,50);
const ( vectores )
ENTERO Dias_Por_Mes[l..l2] = (31,28,31,30,31,30,31,31,30,31,30,31);

Ing. lvaro Enrique Chvez Zubieta

73

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

PROBLEMAS PROPUESTOS
1. Calcular el promedio y la desviacin estndar de un conjunto de N nmeros ledos
del teclado.
La desviacin estndar se calcula con la siguiente frmula

Donde : X i = dato i-simo


P = promedio
N = nmero de datos

2. Elaborar un algoritmo que capture en un vector (T) la temperatura

de cada da

de una semana y que realice lo siguiente :

a) Imprimir la temperatura promedio.


b) Formar un vector (D) que contenga las diferencias de cada
temperatura con respecto al promedio.
c) Imprimir la menor temperatura y el nmero de da en que ocurri.

3. Elabore un algoritmo que encuentre la mayor diferencia entre 2 nmeros


consecutivos y las posiciones de stos, en un vector de N nmeros enteros.

4. Dado un vector V de N nmeros enteros, cambie cada elemento menor que 10 por
0 y cada elemento mayor que 20 por 1. Encuentre cuntos elementos quedaron sin
cambiar

Ing. lvaro Enrique Chvez Zubieta

74

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

5. Elaborar un algoritmo que capture en una matriz las calificaciones obtenidas por un
grupo de N estudiantes y que realice lo siguiente :

a) Formar un vector de tamao N que contenga los promedios de cada


estudiante.
b) Calcular el promedio del grupo en el examen 3.
c) Imprimir el mayor promedio y el nmero del estudiante que lo obtuvo.
d) Imprimir el total de alumnos aprobados y reprobados (la calificacin
mnima aprobatoria es 70)
e) Imprimir el nmero de alumnos que reprobaron el examen 1
6. Disee un algoritmo que lea un vector desordenado A, compuesto de n nmeros
enteros e imprmase este vector en la misma secuencia, pero ignorando los
valores duplicados que se encuentren en l. Tambin se necesita saber el nmero
de elementos que permanecen (m); por ejemplo, dado el siguiente vector

compuesto por 10 enteros, el vector comprimido que resulta estar dado por
Con m =6
7. Desarrollar un algoritmo que lea una matriz cuadrada de tamao n y
determine si se trata de una matriz simtrica o no. Una matriz es simtrica
si los valores de cada fila son iguales los de su columna correspondiente;
por ejemplo la siguiente matriz es simtrica:

8. Una empresa de ventas a domicilio maneja 10 artculos diferentes y


cuenta con 50 vendedores. En un arreglo de 50x10 se tienen
almacenadas las cantidades de cada artculo vendidas por cada

Ing. lvaro Enrique Chvez Zubieta

75

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

vendedor. Adems, los precios de cada artculo estn almacenados en un


vector de tamao 10. Se desea elaborar un algoritmo para imprimir lo
siguiente :
a) La cantidad de dinero recopilado por cada vendedor.
b) El nmero del vendedor que recopil la mayor cantidad de dinero.
c) El nmero del artculo ms vendido (entre todos los vendedores).
d) El total de vendedores que no vendieron ningn artculo nmero
ocho

9. Elabore un algoritmo que lea una matriz cuadrada de tamao N de nmeros


enteros, calcule la suma de los elementos de las diagonales (principal e
inversa y guarde estos elementos en dos vectores (DP y DI).
Ejemplo para N=4 :
Suma DP = 20 Suma DI = 23

10. Elabore un algoritmo que lea los datos de una matriz cuadrada de tamao
N y realice las siguientes operaciones:

a) Imprima la suma de los elementos de la diagonal principal


b) Imprima cuntos "0" hay en la matriz
c) Imprima una matriz igual pero con las diagonales intercambiadas.
d) Imprima el nmero mayor de la matriz

11. Elabore un algoritmo que lea los datos de una matriz cuadrada de tamao N, y
que intercambie los elementos de la matriz triangular superior con los elementos
correspondientes simtricamente de la matriz triangular inferior.

Ing. lvaro Enrique Chvez Zubieta

76

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

12. Dada una matriz cuadrada de tamao N, encuentre la suma de todos los
elementos que no son de la "periferia" de la matriz.

Por ejemplo

13. Se tienen dos vectores A y B de tamaos n y m respectivamente. Cada arreglo


contiene nombres de personas ordenados alfabticamente. Elabore un algoritmo
que forme un tercer vector C ordenado alfabticamente que contenga los nombres
de A y B. Ejemplo :

14. Se tienen los costos de produccin de tres departamentos (dulces, bebidas y


conservas), correspondientes a los 12 meses del ao anterior.

Ing. lvaro Enrique Chvez Zubieta

77

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

Elaborar un algoritmo que pueda proporcionar la siguiente informacin:


a) En que mes (nmero) se registr el mayor costo de produccin de
dulces?
b) Promedio anual de los costos de produccin de bebidas.
c) En que mes se registr el menor costo de produccin de bebidas?
d) Cul fue el departamento que tuvo el menor costo de produccin en
Agosto?

15. Elaborar un algoritmo para controlar las reservaciones y cancelaciones de


boletos para las funciones de una obra de teatro.
- El teatro cuenta con 300 asientos, 200 en la planta baja y 100 en la planta
alta.
- Los asientos estn numerados del 1 al 200 en la planta baja y del 1 al 100 en
la alta.
- Hay 2 funciones, a las 6 y a las 9 de la noche.

Se debe preguntar si se desea planta baja o alta, la funcin deseada y el


nmero de asiento deseado, y se debe imprimir el precio del boleto.
Para las cancelaciones, preguntar el nombre y la funcin
16. Una lnea area realiza 3 vuelos diarios a Europa, uno a Pars, uno a
Madrid y uno a Londres.
Elabore un algoritmo que controle las reservaciones y cancelaciones de
Lugares.
NOTAS:

Cuando hay una reservacin, se preguntar el No. de vuelo ( 1 Pars , 2


Madrid, 3 Londres ), el nombre de la persona, y si desea seccin de
fumar o de no fumar.

Cuando hay una cancelacin, se preguntar el nombre de la persona y


el No. de vuelo.

Ing. lvaro Enrique Chvez Zubieta

78

UNIVERSIDAD NACIONAL DE EDUCACION


ENRIQUE GUZMAN Y VALLE
LA CANTUTA

DAET - FATEC

Cada vuelo tiene 100 asientos. Del 1 al 50 es la seccin de no fumar, y


del 51 al 100 es la seccin de fumar.

Se asignar el primer asiento que se encuentre desocupado en la


seccin deseada del vuelo correspondiente.

Ing. lvaro Enrique Chvez Zubieta

79

Você também pode gostar