Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Laboratorio de Algoritmia

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 26

Introduccin

La principal razn para que las personas aprendan lenguajes y tcnicas de programacin es utilizar la
computadora como una herramienta para resolver problemas. La resolucin de un problema exige al menos los
siguientes pasos:
1. Definicin o anlisis del problema
2. Diseo del algoritmo
3. Transformacin del algoritmo en un programa
4. Ejecucin y validacin del programa
Uno de los objetivos fundamentales de este curso es el aprendizaje y diseo de algoritmos, un algoritmo es un
mtodo para resolver un problema. Aunque la popularizacin del termino ha llegado con el advenimiento de la era
informtica, algoritmo proviene de Mohammed Al-Khowrizm, matemtico persa que vivi durante el siglo IX y
alcanzo gran reputacin por el enunciado de las reglas paso por paso para sumar, restar, multiplicar y dividir nmeros
decimales; la traduccin al latn del apellido en la palabra algoritmus deriv posteriormente en algoritmo. Euclides, el
gran matemtico griego (del siglo IV antes de Cristo), que invento un mtodo para encontrar el mximo comn divisor
de dos nmeros, se considera con Al- Khowrizm el otro gran padre de la algoritmia (ciencia que trata de los
algoritmos)

CAPITULO I
TEMA I.- Conceptos Bsicos de la Arquitectura del Computador
Una computadora es una maquina electrnico mecnica la cual se utiliza para procesar informacin,
desempear algn trabajo, etc
La computadora posee esencialmente dos partes:
Hardware.- Es el conjunto de componentes fsicos de una computadora (equipo Fsico)
Software.- es el conjunto de programas que controlan el funcionamiento de una computadora (equipo Lgico)
1.

HARDWARE
Conjunto de componentes fsicos de una computadora. Se compone de :

1.1) Dispositivos De Entrada y Salida (Perifricos)


Son dispositivos capaces de leer datos codificados. Algunos dispositivos fsicos de E/S son el teclado, cintas,
discos magnticos, el monitor, la impresora, etc.
1.2) Memoria Central o Principal
Aqu se almacenan:
Los datos que se envan para procesarse desde los dispositivos de almacenamiento.
Las instrucciones de programas que realizarn los procesos, y
Los resultados obtenidos listos para ser enviados a un dispositivo de almacenamiento secundario.
Almacena programas y datos durante su ejecucin Las memorias se pueden clasificar en dos grupos:
a) Las de lectura solamente ROM (Read Only Memory), la informacin est grabada en el de manera
permanente e inalterable.
b) Las de lectura y escritura. RAM (Random Acess Memory) a diferencia de los ROM pierden su contenido
de informacin al faltarles la corriente elctrica. Adems permiten leer, escribir o modificar un dato
cuantas veces sea necesario. Constituye la parte modular del almacenamiento primario.
La RAM es como un estante con varios casilleros (celdas de almacenamiento), en cada uno de los cuales se
colocar un dato. Cada uno de estos casilleros pueden contener (segn el diseo interno de la computadora) un grupo
especifico de bits (llamado palabra) que se transfiere y maneja con una sola operacin. As se tiene maquinas que
trabajan con 8 a 64 bits por palabra. Cada localizacin de palabra tiene asociado un nombre llamado direccin. En la
RAM cualquier localizacin se alcanza especificando su direccin.
El tiempo para accesar una palabra se llama tiempo de acceso a la memoria que es un tiempo fijo, del orden de
los nanosegundos (10-9 s).
La capacidad de memoria de una computadora se mide por bloques de 1024 caracteres, unidad que se
representa con la letra K.
Ejm:
Una mquina cuya memoria principal tenga 65536 caracteres de 8 bits cada uno se indica como
64 K (64 x 1024 = 65536).
1 M = 1024 k
1 G = 1024 M
Ejm:
Una mquina con HD 1.28 Gb = 1.28 *1024 * 1024 * 1024 = 1374389535 b
1.3) La Unidad Central de Proceso UCP
Conjunto de circuitos electrnicos que permiten ejecutar clculos sencillos como suma y multiplicacin. Es el
cerebro de la computadora, consta de 2 partes principales:
Unidad de Control UC
Unidad Aritmtica y lgica UAL
1. 3.1 Unidad Aritmtica y Lgica
Realiza clculos (+ , - , * , / ) y todas las operaciones lgicas (comparaciones: < , > , <> , = ).
Cualquier operacin aritmtica / lgica se realiza trayendo los operandos necesarios a la UAL donde se realiza
la operacin.
1.3.2 Unidad de Control
Tiene las 3 funciones principales:
Leer e interpretar las instrucciones. Las instrucciones se trasladan a partir del almacenamiento primario a

la UC en donde se decodifica e interpreta. Esta indica a otros componentes del procesador que realicen las
operaciones necesarias para ejecutar la instruccin.
Dirigir las operaciones de los componentes internos del procesador.
Controlar el flujo de los programas, datos de entrada y de salida del almacenamiento primario.

1.4) Dispositivos de Almacenamiento Secundario (Memoria Auxiliar)


Dispositivos tales como cintas y discos magnticos para almacenar grandes cantidades de informacin.
1.5) Programa Almacenado
Para que una computadora procese datos es necesario instruirla. Esto es depositar un programa en la memoria
central, es decir la computadora posee un programa almacenado para proceso de datos.
Este programa contiene las instrucciones de las operaciones que debe realizar el procesador. La Unidad de
control hace efectiva cada instruccin del programa almacenado.
El programa almacenado necesita estar depositado en memoria en un cdigo legible para la mquina. Estos
cdigos son interpretados por la UC para llevar a cabo el proceso.
En resumen la operacin de una computadora puede describirse as:
La computadora acepta la informacin (programas y datos) a travs de una unidad de entrada y la
transfiere a la memoria.
Bajo control de un programa, la informacin almacenada en la memoria se recupera y lleva a una unidad
aritmtica y lgica para que sea procesada.
La informacin procesada sale de la computadora a travs de una unidad de salida.
Una unidad de control dirige todas las actividades dentro de la mquina.

2. SOFTWARE
Conjunto de programas que controlan el funcionamiento de la computadora. Estos pueden ser:
2.1) Sistema Operativo
Es un conjunto integrado de programas que se utilizan para administrar los recursos y operaciones de un sistema
de computacin.
2.2) Programas de Traduccin (Lenguajes de programacin)
Programas que transforma las instrucciones que preparan las personas en un lenguaje adecuado en los cdigos
del lenguaje mquina que requieren las computadoras.
2.3) Programas de Aplicacin
Programas que se escriben para realizar una tarea especfica.
Ejm:
Word para procesar textos;
Power Point para procesar diapositivas;
Excel para procesar formularios, facturas que impliquen ejecucin de clculos y operaciones matemticas.
3. ALGORITMO. PROGRAMA Y LENGUAJE DE PROGRAMACIN
3.1) Algoritmos: Conjuntos de pasos para resolver un problema. Son independientes del lenguaje de programacin en
que se pueden expresar.

3.2) Programa: Conjunto de instrucciones (ordenes dadas a la computadora) que permiten ejecutar una determinada
tarea, es decir es un medio para lograr un fin. Es el algoritmo que se expresa en un formato determinado (lenguaje de
programacin)
3.3) Lenguajes de Programacin: Son lenguajes utilizados para desarrollar programas en computadoras. Los lenguajes
ms utilizados son: C++, pascal, etc.
Lenguaje Mquina .- Escritos en lenguajes directamente inteligibles por la computadora (cadenas de 0 y 1)
Ejm:
Direccin
Contenido
100
0010 0000 0000 0100
Lenguaje de Bajo Nivel (Ensamblador) formado por instrucciones conocidas como nemotcnicas.
Ejm:
ADD m,n, p
Programa
ensamblador

Programa fuente

Programa Objeto

Lenguajes de Alto Nivel.- Diseados para que las personas escriban y entiendan los programas ms fcilmente que los
lenguajes anteriores Son portables, es decir pueden ser ejecutados en diferentes tipos de computadoras.
Ejm: Basic
Cobol
Fortran
Lisp
C
Pascal, etc.
3.4) Traductores de Lenguaje Programas que traducen los programas fuentes hechos en lenguaje de alto nivel a cdigo
mquina. Pueden ser:
Intrprete
Programa fuente

Interprete

Traduccin y
ejecucin lnea a lnea

Compilador y fases: Compilacin proceso de Traduccin de programas fuente en programas objeto.


Programa fuente

Compilador

Programa objeto

Programa Objeto

Montador o Enlazador

Programa ejecutable
en lenguaje mquina

3.4) Fases en el proceso de programacin:

Definicin y anlisis del problema


Diseo del algoritmo
Codificacin del programa
Depuracin y verificacin del programa
Documentacin
Mantenimiento
TEMA II.- Algoritmos

1.- ETAPAS DE LA SOLUCIN DE UN PROBLEMA


La principal razn para que las personas aprendan lenguajes de programacin es utilizar la computadora como
herramienta para la solucin de problemas. Dos fases son muy identificadas para lograr la solucin de problemas:
Fase de resolucin del problema
Fase de implementacin (realizacin) en un lenguaje de programacin.

Fase de resolucin del problema

Fase de implementacin del problema

Analisis del
problema

Diseo del
algoritmo

Codificacin del
algoritmo

Verificacin del
algoritmo

Ejecucin del
programa

Validacin del
programa

Programa de
trabajo

1.1.- Fase de resolucin del problema


Esta fase incluye, a su vez, el anlisis del problema asi como el diseo y posterior verificacin del algoritmo.
Anlisis del problema. El primer paso para la solucin de un problema es el anlisis del mismo. Se debe examinar
cuidadosamente el problema a fin de obtener una idea clara sobre lo que se solicita y determinar los datos necesarios
para conseguirlo.
Analisis del
problema

Definicin del
problema

Datos de
entrada

Datos de salida
Resultados

Diseo del algoritmo. Puede ser definido como la secuencia ordenada de pasos, sin ambigedades, que conducen a la
solucin de un problema.
Verificacin de algoritmos. Una vez terminado de escribir un algoritmo es necesario comprobar que realiza las tareas
para las que se ha diseado y produce el resultado correcto y esperado. Para esto aplicamos la Prueba de escritorio.
Comprobacin manual usando datos significativos que abarquen todo el posible rango de valores.
1.2.- Fase de implementacin
Una vez que el algoritmo esta diseado, representado grficamente mediante una herramienta de programacin
(Diagrama de flujo, diagrama de N-S o pseudocdigo) y verificado se debe pasar a esta fase de codificacin, traduccin
de un algoritmo a un determinado lenguaje de programacin, que deber ser completada con la ejecucin y
comprobacin del programa en una computadora.
2. CONCEPTO DE ALGORITMO
Es el conjunto de instrucciones que especifican la secuencia de operaciones a realizar, el orden para resolver un
sistema especifico o clase de problema, se denomina algoritmo. En otras palabras un algoritmo es una formula para la
solucin de un problema.
Para realizar un proceso en la computadora se le debe suministrar al procesador un algoritmo adecuado, por
ejemplo al cocinero debe drsele una receta, al pianista una partitura, y as sucesivamente considerando al cocinero y al
pianista como procesadores.
En la computadora el algoritmo ha de expresarse de una forma que recibe el nombre de programa, un programa
se escribe en un lenguaje de programacin, y a la actividad de expresar un algoritmo en forma de programa se llama

Programacin. Cada paso en el algoritmo esta expresado por medio de instrucciones, cada una de las cuales especifica
las operaciones que debe realizar la computadora.
Para llegar a la realizacin de un programa es necesario el diseo previo de un algoritmo, de modo que sin
algoritmo no hay programa.
Los algoritmos son independientes tanto del lenguaje de programacin en que se expresan como de la
computadora donde se ejecutan, en cada problema el algoritmo se puede expresar en un lenguaje diferente de
programacin y ejecutarse en una computadora distinta, sin embrago el algoritmo ser siempre el mismo. As por
ejemplo en una analoga con la vida diaria, una receta de un plato de comida. Se puede expresar en espaol, ingles o
francs, pero en cualquiera que sea el lenguaje, los pasos para la elaboracin de el, se realizara sin importar el idioma.
En la ciencia de la computacin y en la programacin, los algoritmos mas importantes que los lenguajes de
programacin o las computadoras. Un lenguaje de programacin es tan solo un medio para expresar un algoritmo y una
computadora es solo un procesador para ejecutarlo. Tanto el lenguaje de programacin como la computadora son los
medios para obtener un fin: conseguir que el algoritmo se ejecute y efecte el proceso correspondiente.
Dada la importancia del algoritmo en la ciencia de la computacin un aspecto muy importante ser el diseo de
algoritmos. Para el diseo de la mayora de los algoritmos se requiere creatividad, lgica, secuencia y orden. En esencia
la solucin de un problema se puede expresar mediante un algoritmo.
2.1.- Caractersticas de los algoritmos
Las caractersticas fundamentales de que debe cumplir todo algoritmo son:

Un algoritmo debe ser preciso e indicar el orden de realizacin de cada paso.


Un algoritmo debe ser definido si se sigue un algoritmo dos veces, se debe obtener el mismo resultado.
Un algoritmo debe ser finito si se sigue un algoritmo se debe terminar en algn momento, o sea, debe tener un
numero finito de pasos.

2.2.- Formas de representar los algoritmos


Para representar un algoritmo se debe utilizar algn mtodo que permita independizar dicho algoritmo del
lenguaje de programacin elegido. Ello permitir que un algoritmo pueda ser codificado indistintamente en cualquier
lenguaje. Para conseguir este objetivo se precisa que el algoritmo sea representado grficamente o numricamente, de
modo que las sucesivas acciones dependan de la sintaxis de ningn lenguaje de programacin, es decir su codificacin.
Los mtodos usuales para representar un algoritmo son:
1.
2.
3.
4.
5.

Lenguaje espaol.
Formulas.
Diagramas de flujo.
Diagrama N-S (Nassi-Schneiderma).
Lenguaje de codificacin de algoritmos (Pseudocodigo).

Los mtodos 1 y 2 no suelen ser fciles de transportar en un programa. Una descripcin en espaol narrativa no
es satisfactorio ya que es demasiado prolija y generalmente ambigua, una formula, sin embargo es un buen sistema de
representacin, por ejemplo la formula para halla el rea de un circulo.
S = x R2
Signfica
1.
2.
3.

Eleve R al cuadrado
Reemplac el valor de el smbolo por 3.141592
Multiplique el resultado del paso 1 por le paso 2

Sin embargo no es frecuente que un algoritmo pueda ser expresado por medio de una formula.
Diagramas de flujo
Un diagrama de flujo (FlowChart) es una de las tcnicas de representacin de algoritmos mas antigua y a la vez
mas utilizada, un diagrama de flujo en un diagrama que utiliza los smbolos (cajas) estndares, cada caja representa un
comando. En su interior de las cajas los pasos a seguir por el algoritmo unidos por flechas entre si, denominadas lneas
de flujo que indican la secuencia en que se deben ejecutar

Principales diagramas de flujo


Nro.

Diagrama

6
7
8

si

no

Funcin
Terminal (representa el comienzo, inicio, y el final, fin de un programa.
Puede representar tambin una parada o interrupcin programada que sea
necesario realizar en un programa)
Entrada / Salida (cualquier tipo de introduccin de datos en la memoria desde los
perifricos, entrada, o registro de la informacin procesada en un perifrico
salida)
Proceso (cualquier tipo de operacin que pueda originar cambio de valor, formato
o posicin de la informacin almacenada en la memoria, operaciones aritmticas,
de transferencia, etc.)
Desiscin ( indica operacione slgicas o de comparacin entre datos
[normalmente dos] y en funcin del resultado de la misma determina cual de los
distintos caminos alternativos del programa se debe seguir; normalmente tiene
dos salida [SI , NO]
Decisin mltiple (en funcin del del resultado de la comparacin se seguir uno
de los diferentes caminos de acuerdo con dicho resultado
Conector (sirve para enlazar dos partes cuales quiera de un ordinograma a travs
de un conector en la salida y otro conector en la entrada. Se refiere a la conexin
en la misma pgina del diagrama)
Lneas de conexin (indica el sentido de la ejecucin de las operaciones y a la vez
como unin entre bloques
Conector (conexin entre dos puntos del organigrama situados en paginas
diferentes)
Llamada a subrutina o a un proceso predeterminado ( una subrutina en un modulo
independiente del programa principal, que trecibe un entrada precedente de dicho
programa, realiza una tarea determinada y regresa, al terminar al programa
principal)

10

Pantalla (se utiliza en ocasiones en lugar del smbolo de E /S)

11

Impresora (se utiliza en ocasiones en lugar del smbolo de E /S)

12

Teclado (se utiliza en ocasiones en lugar del smbolo de E /S)

13

Comentario (se utiliza para aadir comentarios clasificados a otros smbolos del
diagrama de flujo. Se pueden dibujar a cualquier lado del smbolo)

Caractersticas de los diagramas de flujo


En un diagrama de flujo debe tener:
-

Debe tener una caja de terminal que indique el inicio


Debe tener una caja de terminal que indique el final
Si existen otras cajas normalmente son de proceso, decisin entrada /salida ,etc.

Se puede escribir mas de un paso del algoritmo en una sola caja excepto en al del inicio y fin, el uso de las flechas
significa que la caja no necesita estar escrita debajo de su predecesora, sin embargo abusar demasiado de esta
flexibilidad conduce a diagramas de flujo complicados e ininteligibles.
Ejemplo de diagrama de flujo:

INICIO

SI

A>=0

"EL NUMERO ES
POSITIVO

NO

"EL NUMERO ES
NEGATIVO"

FIN
Diagramas de Nassi-Schneiderman (N-S)
El diagrama N-S de Nassi-Schneiderman (conocido tambien como Chapin) es como un diagrama de flujo en el
que se omiten las flechas de unin y las cajas son contiguas. Las acciones sucesivas se escriben en cajas sucesivas y
como en los diagramas de flujo se pueden escribir diferentes acciones en una caja.
Ejemplo de diagrama de Nassi-Schneiderman (N-S)

Inicio
Leer (a)
A>=0
True

False

Escribir ("el numero ingresado es


positivo")

Escribir ("el numero ingresado es


negativo")

fin
Pseudocdigo
El pseudocdigo es un lenguaje de especificacin (descripcin de algoritmos). El uso de tal lenguaje hace el
paso a la codificacin final ( esto es la traduccin al lenguaje de programacin final)
El pseudocdigo naci como un lenguaje similar al ingles y era un medio de representar bsicamente las
estructuras de control de programacin, se considera un primer borrador, el pseudocdigo no puede ser ejecutado por
ninguna computadora. La ventaja del pseudocdigo es que en su uso, en la planificacin de un programa.
Ejemplo de Pseudocdigo:
Inicio
Leer un valor para A
Si el valor de A es mayor o igual que Cero entonces
Escribir que el numero ingresado es positivo
Sino
Escribir que el numero ingresado es negativo
fin

2.3.- Componentes de un algoritmo

Para disear un algoritmo se debe comenzar por identificar las tareas mas importantes para resolver le
problema y disponerlas en le orden en el que han de ser ejecutadas. Los pasos en esta primera descripcin de
actividades debern ser refinados aadiendo detalles a los mismo e incluso, algunos de ellos, pueden requerir un
refinamiento adicional antes que podamos obtener un algoritmo claro preciso y completo. Este mtodo de diseo de los
algoritmos en etapas, yendo de los conceptos generales a los de detalle a travs de refinamientos sucesivos, se conoce
como mtodo descendente (Top Down). En un algoritmo se debe considerar tres partes:
1.
2.
3.

Entrada: Informacin dada al algoritmo


Proceso: Operaciones o clculos necesarios para encontrar la solucin del problema
Salida: Respuestas dadas por el algoritmo o resultados finales de los clculos.

Como ejemplo imagnese que desea desarrollar un algoritmo que calcule la superficie de un rectngulo
proporcionndole su base y altura. Lo primero que deber hacer es plantearse y contestar a las siguientes preguntas:
Especificaciones de entrada
-

Qu datos son de entrada?


Cuntos datos se introducira?
Cuantos son datos de entradas vlidos?

Especificaciones de salida
-

Cules son los datos de salida?


Cuntos datos de salida se produciran?
Qu precisin tendrn los resultados?
Se debe imprimir una cabecera?

El algoritmo en el primer diseo se podr representar con los siguientes pasos


Paso 1
Paso 2
Pase 3

Entrada de base y altura desde perifrico de entrada por ejemplo teclado


Clculo de la superficie, multiplicando la base por la altura
Salida por pantallas de base, altura y superficie.

Como habamos mencionado antes el algoritmo debe ser independiente de cualquier lenguaje de programacin
particular pero fcilmente traducible a alguno de ellos.

EJERCICIOS PARA EL TEMA II.


1.- Algoritmo para hacer una tasa de te.
Anlisis del problema
Datos de salida:
Datos de entrada:
Datos auxiliares:

Taza de te
Bolsa de te, agua
pitido de tetera, aspecto de la fusin.

Despus de echar agua en al tetera, se pone al fuego y se espera a que el agua hierva (hasta que suene el
pitido de la tetera). Introducimos el te y se deja un tiempo hasta que este hecho.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.

Tomar la tetera.
Llenar de agua.
Encender el fuego.
Poner la tetera al fuego.
Mientras no hierva el agua esperar.
Tomar la bolsa de te
Introducir en la tetera
Mientras no este hecho el te esperar
Echar el te a al taza.
Fin.

2.- Disear un algoritmo para cambiar una rueda de coche.


Anlisis del problema

10

Datos de salida:
Datos de entrada:

Rueda reparada
Rueda pinchada, rueda de repuesto, herramientas

Despus de desmontar la rueda se procede a reemplazar por el neumtico bueno u se procede a guardar
todas las herramientas
1.
2.

Inicio.
Si gato del coche esta averiado llamar a la estacin de servicio y bifurcar al punto 11; en caso contrario,
continuar el proceso.
3. Levantar el coche con el gato.
4. Aflojar y sacar los tornillos de las ruedas.
5. Si NO todos los tornillos estn flojos y quitados, bifurcar al paso 4; en caso contrario, continuar el proceso.
6. Quitar la rueda.
7. Poner la rueda de repuesto.
8. Poner los tornillos y apretarlos.
9. Si NO estn puestos todos los tornillos volver al paso 8, en caso contrario continuar el proceso.
10. Bajar el gato.
11. Fin.
3.- Algoritmo para ir al cine
Anlisis del problema
Datos de salida:
Datos de entrada:
Datos auxiliares:

Ver la pelcula.
Nombre de la pelcula, direccin de la sala, hora de proyeccin
Entrada, sitio.

Despus de echar agua en al tetera, se pone al fuego y se espera a que el agua hierva (hasta que suene el
pitido de la tetera). Introducimos el te y se deja un tiempo hasta que este hecho.
1. Tomar el peridico.
2. Mientras no lleguemos a la cartelera pasar la hoja.
3. Mientras no se acabe al cartelera leer pelcula.
4. Si nos gusta recortarla.
5. Elegir una de las pelculas seleccionadas
6. Trasladarse a la sala
7. Si NO hay entadas bifurcar al punto 16; caso contrario continuar
8. Si hay cola, ponerse al ultimo.
9. Mientras no llegue a la taquilla avanzar.
10. Si NO hay entradas bifurcar al punto 16; caso contrario compra entrada
11. Leer el lugar de la entrada
12. Buscar lugar
13. Sentarse
14. Ver pelcula
15. Fin
Ejercicios Propuestos
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.

Compra una entrada para los toros.


Colocar la mesa para comer.
Cocer un huevo.
Lavar los platos del almuerzo.
Buscar el nmero telefnico de un compaero.
Repara un pinchazo de bicicleta
Pagar una multa de transito.
Hacer palomitas de maz.
Cambiar el vidrio roto de una ventana
Hacer una llamada telefnica.
Quitar un foco quemado del techo.

11

CAPITULO II
TEMA III.- Elementos del Algoritmo
1.- ESTRUCTURAS DE DATOS
Una estructura de datos es una coleccin de datos que pueden ser caracterizados por su organizacin y las
operaciones que se defina en ellas
Las estructuras de datos son muy importantes en los sistemas de computadora. Los tipos de datos ms
frecuentes utilizados en los diferentes lenguajes de programacin son:

Estndar
Datos simples
Definido por el
programador
Universo de datos
Estticos
Datos estructurados
Dinmicos

Entero (integer)
Real (real)
Carcter (char)
Lgico (boolean)
Subrango (Subrange)
Enumerativo (enumerated)
Array (vector / matriz)
Registro
Archivo (Fichero)
Conjunto
Cadena (string)
Lista (pila / cola)
Lista enlazada
rbol
Grafo

Los tipos de datos simples o primitivos significan que no estn compuestos por otras estructuras de datos; los
ms frecuentes y utilizados por casi todos los lenguajes son: enteros, reales carcter (char) y lgicos (boolean), siendo
los tipos subrango y enumerativos propios de lenguajes estructurados Pascal. Los tipos de datos compuestos estan
construidos basados en tipos de datos primitivos; el ejemplo mas representativo es la cadena (string) de caracteres.
Los tipos de datos simples pueden ser organizados en diferentes estructuras de datos: estticos y dinmicos.
Las Estructuras de datos estticos son aquellas en las que el tamao ocupado en memoria se define antes que el
programa se ejecute y no puede modificarse dicho tamao durante la ejecucin del programa. Estas estructuras estn
implementadas en casi todos los lenguajes de programacin array (vectores tablas matrices), registros, ficheros (los
conjuntos son especficos del lenguaje Pascal)
Las estructuras de datos dinmicos no tienen las limitaciones o restricciones en el tamao de la memoria
ocupada que son propias de las estructuras estticas. Mediante el uso de un tipo de datos especfico, denominado
puntero, es posible construir estructuras de datos dinmicas que son soportadas por la mayora de los lenguajes, y en
aquellos que si tienen estas caractersticas ofrecen soluciones eficaces y efectivas en la solucin de problemas de
problemas complejos
1.1.- Datos de tipo numrico

El tipo numrico es el conjunto de los valores numricos. Estos pueden representarse en dos formas distintas:
tipo numrico entero (integer o int)
tipo numrico real (real o float)

Enteros.- El tipo entero es un subconjunto finito de los nmeros enteros. Los enteros son nmeros completos, no tienen
componentes fraccionarios o decimales y pueden ser negativos o positivos
Ejemplo:
5
6
1340
-15
4
0
20
17
-1200
Reales.- El tipo real consiste en un subconjunto de los nmeros reales. Los nmeros reales siempre tienen un punto
decimal y pueden ser positivos o negativos. Un nmero real consta de una parte entera y una parte decimal
Ejemplo:
0.08
0.1
3.7485
-3.1
3745.2
-15.25
Existe un tipo de representacin denominado notacin exponencial o cientfica y que se utiliza para nmeros
muy grandes o muy pequeos
Ejemplo:

12

367520100000000000000
se representa en notacin cientfica descomponindola en grupos de tres dgitos:
367 520 100 000 000 000 000
y posteriormente en forma de potencias de 10
3.675201 x 1020
del mismo modo:
0.0000000000302579

se representa:
3.02579 x 10-11

En estas expresiones se considera mantisa al numero decimal y exponente el de la potencia de 10


3.675201 mantisa
20 exponente
3.02579 mantisa
-11 exponente
y se escribe:
3.675201 E 20
3.02579 E -11
1.2.- Datos de tipo lgicos (boolanos)
El tipo lgico (tambin denominado Booleano) es aquel dato que solo puede tomar uno de dos valores:
Cierto o Verdadero (true)
Falso (false)
Este tipo de datos se utiliza para representar las alternativas (si / no) a determinadas condiciones. Por ejemplo cuando se
pide si un valor entero es par, la respuesta ser verdadera o falsa segn sea par o impar.

1.3.- Datos de tipo carcter y tipo cadena


El tipo carcter es el conjunto finito y ordenado de caracteres que la computadora reconoce. Un dato tipo
carcter contiene un solo carcter.
Los caracteres que reconoce las diferentes computadoras no son estndar; sin embargo, la mayora reconoce los
siguientes caracteres alfabticos y numricos:
-

Caracteres alfabticos (A, B, C, ..., Z) (a, b, c, ..., z)


Caracteres numricos (1, 2, 3, ..., 9, 0)
Caracteres especiales (+, -, *, /, ^, ., ;, >, <, $, #, ...)

Una cadena (string) de caracteres es una sucesin de caracteres que se encuentran delimitados por una comilla
(apstrofo) o dobles comillas, segn el tipo de lenguaje de programacin. La longitud de una cadena de caracteres es el
nmero de ellos comprendido entre los separadores o limitadores. Algunos lenguajes tiene datos tipo cadena.
Ejemplo:
Hola Miguel
8 de octubre de 1879
Sr. Delgado
2.- CONSTANTES Y VARIABLES
Los programas de computadoras contienen ciertos valores que no deben cambiar durante la ejecucin del
programa. Tales valores se llaman constantes. De igual forma existen otros valores que cambiaran durante la ejecucin
del programa a estos se les llamara variables.
Una constante es una partida de datos (objetos ) que permanecen sin cambios durante todo el desarrollo del
algoritmo o durante la ejecucin del programa.
Una variable es un objeto o partida de datos cuyo valor puede cambiar durante el desarrollo del algoritmo o
ejecucin del programa.
Una variable que es de un cierto tipo puede tomar nicamente valores de ese tipo. Una variable de carcter, por
ejemplo puede tomar valor slo caracteres, mientras que una variable entera puede tomar solo valores enteros.
Si se intenta asignar un valor de un tipo a un variable de otro tipo se producir un error de tipo. Una variable se
identifica por los siguientes atributos:
NOMBRE que lo asigna y TIPO que describe el uso de la variable
La forma de representar una variable y una constante es mediante los identificadores, estos suelen constar de
varios caracteres alfanumricos, de los cuales el primero es normalmente es una letra, no existe espacios entre ellas,
nunca empiezan con un nmero, nunca usan caracteres especiales, no podrn usar palabras reservadas.

13

Ejemplo:
A123
fila
NOTAS
grupo_dia
3.- EXPRESIONES
Las expresiones son combinaciones de constantes variables signos de operacin, parntesis y nombres de
funciones especiales. Las mismas ideas son utilizadas en notacin matemtica tradicional, por ejemplo
a+(b+3)+ c

+b+(b-5)+ c

Aqu los parntesis indican el orden de calculo y representa la funcin de raz cuadrada. Cada expresin
toma un valor que se determina tomando los valores de las variables y constantes implicadas y la ejecucin de las
operaciones indicadas.
Una expresin consta de operandos y operadores segn sea el tipo de objetos que se manipula las expresiones
se clasifican en:
- Aritmtica
- Lgicas
- Carcter
El resultado de la expresin aritmtica es de tipo numrico, el resultado de la expresin relacional o y de una
lgica es de tipo lgico, el resultado de una expresin carcter es de tipo carcter.
3.1.- Expresiones Aritmticas
Las expresiones aritmticas con analgicas a las formulas matemticas. Las variables y constantes son
numricas (real o entera) y las operaciones son la aritmticas.
3.2.- Operadores aritmticos
Nro
1
2
3
4
5
6
7

Operador
,^,**,
+
*
/
Div
Mod

Operacin
Exponenciacin
Suma
Resta
Multiplicacin
Divisin
Divisin entera
Modulo (resto)

Operando
Entero o real
Entero o real
Entero o real
Entero o real
Entero o real
Entero
Entero

Resultado
Entero o real
Entero o real
Entero o real
Entero o real
Entero o real
Entero
Entero

Ejemplo:
Expresin Aritmticas
2+6
5x3
6
2
68

Expresiones informticas
2+6
5*3
6/2
6**8, 68, 6^8, 68

Los operadores div y mod realizan las operaciones siempre y cuando sus operandos sean datos de tipo entero.
Ejemplo:
19 div 3 ; el resultado de esta operacin ser igual a 6
19 mod 3; el resultado de esta operacin ser igual a 1
3.3.- Reglas de prioridad
Las expresiones que tienen dos o mas operandos requieren unas reglas matemticas que permitan determinar el
orden de las operaciones, se denomina reglas de prioridad o precedencia y son:
1.

Las operaciones que estn encerradas entre parntesis se evalan primero, si existen diferentes parntesis
anidados (interiores unos a otros), las expresiones mas internas se evalan primero.

14

2.

las operaciones aritmticas dentro de una expresin suelen seguir el siguiente orden de prioridad.

operador exponencial (,^,**,)

operadores *,/

operadores div y mod

operadores +,-

En caso de coincidir varios operadores de igual prioridad en una expresin o subexpresin encerrada entre parntesis, el
orden de prioridad en este caso es de izquierda a derecha.
3.4.- Operadores de relacin
Los operadores relacionales o de relacin permiten realizar comparaciones de valores de tipo numrico o
carcter. Los operadores de relacin sirve para expresar las condiciones en los algoritmos.
El formato general para las comparaciones es:
Expresin 1

operador de relacin

Operador
<
>
=
<=
>=
<>

expresin 2
Significado
Mayor que
Menor que
Igual
Menor o igual que
Mayor o igual que
Diferente de

EJERCICIOS PARA EL TEMA III.


1.- Escribir las siguientes expresiones en forma de expresiones algortmicas
Expresin Aritmtica

M
P
N
N
M
P Q
M N
P Q
n
p
R
Q
S
5 ( X Y )

Expresin algortmica
M/N+P
M + N / (P Q)
(M + N) / (P Q)

A B
X Y
E
U
A
X
(Z W )
Y
2

(M + N / P) / (Q R / S)

5 * (X + Y)
A^2+B^2
(X + Y) / (U + W / A)

X / Y * (Z + W)

2.- Calcular el valor de las siguientes expresiones aritmticas


Expresin
3+6*14
8+7*3+4*6
-2^3
(33+3*4)/5

Operaciones
3+84
8+21+24 29+24
-8
(33+12)/5 45/5

15

Resultado
87
53
-8
9

2^2*3
3+2*(18-4^2)
16*6-3*2
-4*7+2^3/4-5

4*3
3+2*(18-16) 3+2*2 3+4
96 6
-4*7+8/4-5 -28+8/4-5 -28+2-5 -26-5

12
7
90
-31

3.- Deducir el valor de las siguientes expresiones sabiendo que A = 5; B = 25; C = 10


Expresin
A+B+C
A+B*C
A+B/C
A + B DIV C
A + B MOD C
(A + B) DIV C
A + (B / C)

Operaciones
5+25+10
5+25*10
5+25/10 5+2.5
5+ 25 DIV 10 5+2
5+25 MOD 10 5+5
(5+25) DIV 10 30 DIV 10
5+(25/10) 5+ 2.5

Resultado
40
255
7.5
7
10
3
7.5

4.- Calcular el valor de las siguientes expresiones relacionales


N1
3
0
4
8
9
5

N2
6
1
2
5
9
5

Operaciones
<
>
=
<=
>=
<>

Resultado
Verdadero
Falso
Falso
Falso
Verdadero
Falso

Ejercicios Propuestos
1.

Cual de los siguientes no son identificadores validos.


a) Xrayo
b) X_Rayo
c) R2D2
d) X
e) 45
f) N14
g) ZZZZ
h) 3
2. Cual de los siguientes datos no son validos.
a)
234
b)
8.975
c)
12E 5
d)
0
e)
32,767
f)
1/2
g)
3.6E+7
h)
7E12
i)
3.5x10
j)
0,456
k)
0.000001
l)
224E1.5
3. Evalu la siguiente expresin para A = 2 y B = 5
3*A4*B/A^2

4.

Evaluar la siguiente expresin


4/2*3/6+6/2/1/5^2/4*2

5.

Escribir las siguientes expresiones algebraicas en algortmicas.

x2 y2
z2

3x 2 y
2z

ab
cd
16

x y 3x

x
5
y 2 y1
x 2 x1

4x 2 2x 7
xyz

4 3
R
3
6.

a
bc
2R

x 2 x x 2 y 2 y1 2
Escribir las siguientes expresiones algortmicas en expresiones algebraicas.
B^2 4*A*C
3 * X ^ 4 5 * X ^ 3 + X * 12 17
(B + D) / (C + 4)
(X ^ 2 + Y ^ 2) ^ (1 / 2)

a)
b)
c)
d)

TEMA IV.- Estructuras de control


Se denomina estructuras de control al conjunto de estructuras que controlan el modo de ejecucin de un
programa y estas son estructuras secuenciales, estructuras selectivas y estructuras repetitivas.
1.- ESTRUCTURAS DE ASIGNACIN
Las operaciones de asignacin es el modo de darles valores a una variable. La operacin de asignacin se
representa con el smbolo u operador . La operacin de asignacin se conoce como instrduccin o sentencia de
asignacin cuando se refiere a un lenguaje de programacin.
El formato general de una operacin de asignacin es:
Nombre de la variable expresin
Ejemplos:
A5
total3+6
N0
NN+1
M8<5
YCALLE
1.1.- Tipos de asignacin
Asignacin simple.- cuando a una variable le corresponde nada mas que un dato
Asignacin aritmtica- cuando a una variable le corresponde el resultado de una expresin aritmtica.
Asignacin lgica.- cuando a una variable le corresponde el resultado de una expresin lgica
Las asignaciones se usan tambin para dar vida a dos elementos muy importantes en un algoritmo y estos son:
Contador.- Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad constante cada vez que
se produce un determinado suceso o accin, los contadores frecuentemente se usan el las estructuras repetitivas con la
finalidad de contar sucesos o acciones internas de un bucle. Los contadores siempre deben realizar la operacin de
inicializacin y posteriormente las sucesivas de incremento o decremento respectivamente
Acumulador.-son variables cuyo valor se incrementa o decrementa en una cantidad variable. De la misma forma que el
contador necesita inicializarse para luego incrementase o decrementarse segn el parmetro
Interruptores.-Un interruptor, bandera o switch es una variable que pude tomar valores verdad o falso a lo largo de la
ejecucin de un programa, comunicando as informacin de un aparte a otra del mismo. Pueden ser utilizados para el
control de bucles.
En Las asignaciones no se pueden asignar valores a una variable de un tipo diferente al suyo. Se presentara un
error si se trata de asignar valores de tipo carcter a una variable numrica o una valor numrico a una variable de tipo
carcter.
2.- MODELO DE ESCRITURA DE UN ALGORITMO
Como se menciono en un comienzo la herramienta mas adecuada para la escritura es el pseudocdigo. Usando
pseudocdigo los algoritmos se presentaran en esta forma:

17

Algoritmo <nombre del algoritmo>


//Declaracin de constantes
Const
<nombre_de_constante1 = valor1>
// declaracin de variables
var
<tipo_de_dato>:<nombre_de_variable> [, <nombre_de_variable2>, ...]
// los datos deben ser declarados antes de ser usados
inicio
<accin1>
<accin2>
// se pueden usar todas las estructuras de control
.....
<accin N>
fin
3.- ESTRUCTURAS SECUENCIALES
Se caracterizan porque una accin se ejecuta detrs de otra. El flujo del programa coincide con el orden fsico
en el que se ha ido poniendo las instrucciones.
Diagrama de flujo

Diagrama N-S

Pseudocdigo

ACCION 1
ACCION 2
ACCION 3

ACCION 1
ACCION 1

ACCION 2

ACCION 2

ACCION 3

ACCION 3

4.- FUNCIONES INTERNAS


En los lenguajes de programacin existen ciertas funciones predefinidas o internas que aceptan unos
argumentos y producen un valor denominado resultado. Como funciones numricas se usarn:
Nro
1
2
3
4
5
6
7
8
9
10
11
12

Funcin
ABS(X)
ARCTAN(X)
COS(X)
CUADRADO (X)
INT(X)
EXP(X)
LN(X)
LOG10(X)
SQRT(X)
ROUND(X)
SIN(X)
TRUNC(X)

Descripcin
Valor absoluto de x
Arcotangente de x
Coseno de x
Cuadrado de x
Entero de x
e elevado a x
Logaritmo neperiano de x
Logaritmo base 10 de x
Raiz cuadrada de x
Redondeo de x
Seno de x
Parte entera de x

Ejemplos:

18

Tipo argumento
Entero o real
Entero o real
Entero o real
Entero o real
Real
Entero o real
Entero o real
Entero o real
Entero
Real
Entero o real
Real

Resultado
Entero o real
Real
Real
Entero o real
Entero
Real
Real
Real
Real
Entero
Real
Entero

Funcin
Resultado
ABS(9)
9
ABS(-12)
12
CUADRADO (4)
16
ROUND(6.6)
7
ROUND(3.1)
3
ROUND(-3.2)
-3
TRUNC(5.6)
5
TRUNC(3.1)
3
TRUNC(-3.8)
-3
EJERCICIOS PARA EL TEMA IV.
1.- Escribir las siguientes expresiones algebraicas en algortmicas.

a)

3 8 8
3
2 lo 3
e

b)

3 cos

1
2

34

2.- Determine que valores toma las variables siguientes despus de realizar las operaciones
Expresin de Asignacin
A 4
B A
B A + 3
A 5
B A + 6
A A + 1
B A 5
A 3
B 20
CA + B
B A + B
A B C

Resultado

3.- Ejercicios con estructuras secuenciales


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

9.
10.
11.
12.

13.

14.

Obtener la edad de una persona en meses, si se ingresa su edad en aos y meses. Ejm: 3 aos 4 meses da 40
meses.
Colocar a un apellido el prefijo Profesor Ejm: ingresado Gmez imprima Profesor Gmez
Escriba un algoritmo que permita convertir un valor ingresado en pies a metros. Si 1 pie = 30.48 cm.
Ingresado un ngulo en grados sexagesimales, lo convierta a radianes. 180 grados sexagesimales =
3.1416 radianes.
Convertir una velocidad expresada en km/h a m/s Nota 1Km=1000 m y 1h=3600 s.
Calcular y mostrar el rea de un tringulo conocidos la base y altura.
Calcular el rea y permetro de un tringulo, conocidos sus lados.
Calcule el inters (int) generado por un capital depositado (capdep) durante cierta cantidad de perodos
(cp) a una tasa de inters determinada (tasa) expresada en porcentaje. Use la frmula: Monto =
(capdep) * (1 + tasa / 100)cp Int = Monto capdep
Escriba un algoritmo que lea la velocidad en km/h y el nmero de horas transcurridas por un mvil,
para determinar la distancia recorrida.
Determine el promedio de 3 nmeros reales.
Haga un algoritmo que permita mostrar el nombre y el salario semanal del empleado de una compaa.
El algoritmo debe permitir ingresar el nombre, el nmero de horas trabajadas y la tarifa por hora.
Hacer un algoritmo que me permita ingresados dos nmeros calcular las 4 operaciones bsicas (suma,
resta, multiplicacin, divisin) y potencia con exponente real . El algoritmo debe mostrar los nmeros y
los resultados.
Hacer un algoritmo que permita ingresar un ngulo en grados sexagesimales y calcule y muestre el
seno, coseno y tangente de dicho ngulo. Nota: Para funciones trigonomtricas el ngulo debe ser
expresado en radianes
Un corredor reporta el nmero de minutos que corre en un ao. Escribir un programa que d como
salida la cantidad de tiempo equivalente en meses, semanas, das, horas y minutos.

19

CAPITULO III
TEMA V.- Estructuras de seleccin
1.- OPERADORES LGICOS
Los operadores lgicos o bolanos bsicos son:

NO (NOT)
A
Verdadero
Falso

No A
Falso
Verdadero

Y (AND)
A
Verdadero
Verdadero
Falso
Falso

B
Verdadero
Falso
Verdadero
Falso

AyB
Verdadero
Falso
Falso
Falso

O (OR)
A
Verdadero
Verdadero
Falso
Falso

B
Verdadero
Falso
Verdadero
Falso

AyB
Verdadero
Verdadero
Verdadero
Falso

Estos operadores con respecto a las prioridades son los ltimos en resolverse
2.- ESTRUCTURAS SELECTIVAS O DECISIN
Para la aplicacin se debe tener en cuenta las expresiones lgicas cuyo valor siempre verdadero o falso.
Recuerde que existes dos constantes lgicas, verdad (true) y falso (false) y que las variables lgicas pueden tomas solo
estos dos valores, se denomina tambin expresiones booleanas.
Las expresiones lgicas se forman combinando constantes lgicas y otras expresiones loginas, utilizando los
operadores lgicos not, and y or, y los operadores de relacin.
En conclusin la estructuras selectivas o decisin o comparacin o pregunta, se ejecutan unas acciones u otras
segn se cumpla o no un adeterminada condicin; pueden ser: simples, dobles, o multiples.
2.1.- Simples.- Se evala la condicin si esta y si esta da como resultado verdad se ejecuta una determinada accin o
grupo de acciones, en caso contrario se salta dicho grupo de acciones.
Diagrama de flujo

Diagrama N-S

20

Pseudocdigo

SI <condicin> entonces
<Accin o acciones>
fin_si

CONDICION
SI

NO
CONDICION

ACCION
O ACCIONES

SI
ACCION
O
ACIONES

2.2.- Dobles.- Cuando el resultado de evaluar la condicin es verdad se ejecuta una determinada accin o grupo de
acciones y si el resultado es falso otra accin o grupo de acciones diferentes.
Diagrama de flujo

Diagrama N-S
CONDICION
SI

SI

NO

NO
CONDICION

ACCION 1

ACCION 1

ACCION 2

Pseudocdigo
SI <condicin> entonces
<Accin 1>
SI_NO
<Accin 2>
fin_si

ACCION N

2.3.- Mltiples.- Se ejecutan unas acciones u otras segn el resultado que se obtenga al evaluar una expresin. Se
considera que resultado ha de hacer un tipo ordinal es decir de un tipo de datos en el que cada uno de los elementos que
construyen el tipo, excepto el primero y el ultimo, tienen un nico predecesor y un nico sucesor
Diagrama de flujo

Diagrama N-S
CONDICION
V1

CONDICION

V2

V3

Vn

ACCION ACCION ACCION ACCION


1
2
3
N
ACCION 1

ACCION 1

ACCION N

Pseudocdigo
Segn_sea <expresion> hacer
<lista1>:<Accin 1>
<lista2>:<Accin 2>
.......................
SI_NO
<Accin n>
fin_segun

EJERCICIOS PARA EL TEMA V.


1.- Ejercicios con estructuras selectivas
Variables y Expresiones booleanas
Char Sexo, EstCiv, GradInst
Sexo
[ puede ser 1=Hombre; 2=Mujer]
EstCiv
{ puede ser : C =casado ; S =soltero }
GradInst
{ Puede ser 1=Iletrado , 2= letrado }
a) Si es hombre y es casado
Sexo = 1 AND EstCiv = C
b) No es hombre ni casado
NOT (Sexo = 1 AND EstCiv = C)
c)
No es hombre y no es casado

21

( NOT (Sexo = 1 ) ) AND ( NOT ( EstCiv = C ) )


d) Es iletrado o letrado
GradInst = 1 OR GradInst = 2
15. Si la clave de sexo es H sume 1 a la variable hombres, en caso contrario sume 1 a la variable mujeres.
16. Si el promedio de 3 calificaciones de exmenes es mayor 59.5 mostrar Aprueba.y su nota
17. Una variables dados contiene un valor entre 2 y 12. El programa deber mostrar un mensaje: usted
pierde $5 y restar 5 a la variable dinero, si el valor de dados es 7 o menos. usted gana $5 y sumar 5 a la
variable dinero; si el valor de dados es 8 ms.
18. Hacer un algoritmo que permita calcular y mostrar el impuesto a los sueldos, si el ingreso es leido por
teclado. La tasa se considera de acuerdo a:
Ingreso Tasa de impuestos
Menor de S/.8000.00
2.0
Tambin debe mostrar el sueldo neto
19. Hacer un algoritmo que me permita determinar el numero de caloras necesarias de acuerdo al sexo: Si
el sexo es femenino, el numero de caloras diarias que se necesitan consumir equivalen 16 veces el peso
del cuerpo en libras. Si el sexo es masculino, el nmero de caloras que se necesitan consumir es de 18
veces el peso corporal en libras. Nota 1 lb = 453.6 g ( 0.4536 kg ) o 1 kg = 2.2 lb.
20. Dadas las variables que representen las horas y minutos, sume 1 minuto al tiempo ( ejm. 5:59 ser 6:00 y
4:40 ser 4:41 ). El algoritmo debe mostrar la nueva hora
21. Si el monto de las ventas es menor de $150.00 la tasa de comisin es del 3%. Si el monto es $150.00 o
ms, la tasa de comisin deber ser 5%. Calcular y mostrar la comisin.
22. Encontrar cual de tres valores ledos ( A, B, C) por la computadora, es el menor
23. Encontrar cual de tres valores ledos ( A, B, C) por la computadora, es el mayor.
24. Ordenar e Mostrar ascendentemente los 3 valores ledos (A,B,C diferentes) por una computadora
25. Determine el impuesto local dado el ingreso. Regla; 2% del ingreso si el ingreso es menor o igual a S/.
1000.00 y 5% del ingreso; si el ingreso es ms de S/.1000.00.
26. El impuesto de ventas es del 6% en cualquier venta de $500.00 o menos, pero slo del 3.5% en una venta
superior a los $500.00. Si el impuesto es mayor de $350.0 se deber sumar al impuesto una multa del 6%. El
algoritmo debe mostrar la venta, el impuesto total incluyendo la multa y el total a pagar
27. Los jugadores de la Alianza son calificados segn su desempeo. Una calificacin superior a 93 se
considera excelente; entre 75 y 93 se considera buena, debajo del 75 se considera deficiente. EL
programa debe mostrar, el nombre, la calificacin y el mensaje apropiado.
28. Dada 3 calificaciones de examen, imprime mejorando si la tercera calificacin es ms alta que el
promedio de los dos primeros exmenes; imprime empeorando si la tercera calificacin es 5 o ms
puntos por debajo del promedio.
2.- Selectiva mltiple:
29. Calcule la cuenta de un cliente para un pedido de cierta cantidad de unidades de un producto.
Suponemos que solo se dispone de cuatro productos. Entre ellos:
Nmero_Producto
100
247
16
240

30.

31.

32.
33.

34.

Precio_Unitario
24.05
105.00
10.35
16.00

Si la cuenta total es de s/.1000.00 o ms, se hace un descuento del 2%; si es mas de s/.800.00 y menos de
s/.1000.00 se hace un descuento del 1%.
La entrada consta de estos elementos; nombre, un ingreso bruto de la persona y la clave del municipio (
M= miraflores, S= Surco, L= La Molina ). Los tres municipios tienen diferentes tasas de impuestos
2%,1.5% y 3% respectivamente. Escriba un programa que imprima un listado del nombre, clave del
municipio, ingreso bruto, tasa de impuestos e impuesto.
Dado un valor que representa un tiro de dados, imprima uno de estos mensajes con base al valor
obtenido con los dados: usted gana (7,11) , usted pierde (2,12) ,vuelva a tirar ( cualquier otro
valor)
Dados 3 nmeros que representan una fecha, el segmento deber imprimir la fecha. Si los nmeros
ingresados son: 11, 7, 85 la fecha a imprimir sera Noviembre, 7 de 1985.
Escriba un algoritmo que lea un nmero entero positivo N (debe validar la entrada). Si N termina en
0,5,7 u 8 se cambia por el doble, si termina en 1 u 9 por la dcima parte, en otro caso que mantenga su
valor.
La tasa de impuestos sobre sueldos est basada en claves e ciudad, como se muestra en la tabla: Clave de
ciudad Tasa de impuesto

22

M
0.005
R
0.01
J
0.03
B
0.035
otros
0.001
Determine los impuestos de un sueldo anual para la clave de ciudad determinados.

23

CAPITULO IV
TEMA VI.- Estructuras Repetitivas
Las computadoras estn especialmente diseadas para todas aquellas aplicaciones en las cuales una operacin o
conjunto de ellas deben repetirse muchas veces. Un tipo muy importante de estructura es el algoritmo necesario para
repetir una o varias acciones un numero determinado de veces. Un programa que lee una lista de nmeros puede repetir
la misma secuencia de mensajes al usuario e instrucciones de lectura hasta que se lean todos los nmeros de un archivo.
Las estructuras que repiten una secuencia de instrucciones un numero determinado de veces o denominadas
bucles, y se llama iteracin al hecho de repetir la ejecucin de una secuencia de acciones.
Tomaremos el siguiente ejemplo: Se desea sumar una lista de nmeros escrito por teclado (por ejemplo,
calificaciones de los alumnos de una clase). El medio conocido hasta ahora es leer los nmeros y aadir sus valores a
una variable SUMA que contenga las sucesivas sumas parciales. La variable SUMA se hace igual a cero y a
continuacin se incrementa en le valor del numero cada vez que uno de ellos se lea. El algoritmo que resuelve este
problema es:
INICIO

S = 0

NUMERO

S = S + NUMERO

NUMERO

S = S + NUMERO

NUMERO

S = S + NUMERO

INICIO

Y as sucesivamente para cada nmero de la lista. En otras palabras el algoritmo repite muchas veces las
acciones:
NUMERO

S = S + NUMERO

Tales opciones repetitivas se denomina bucles o lazos. La accin (o acciones) que se repiten en un bucle se
denomina iteracin. Las dos principales preguntas a realizarse en el diseo de un bucle son:

24

Qu contiene el bucle?
Cuntas veces se debe repetir?
Cuando se utiliza un bucle para sumar una lista de nmeros, se necesita saber cuantos nmeros se han de
sumar. Para ello necesitaremos conocer algn medio para detener el bucle. En el ejemplo siguiente usaremos la tcnica
de solicitar al usuario el numero que se desea, por ejemplo, N. Existen dos procedimientos para contar el numero de
iteraciones usar la variable TOTAL que se inicializa a la cantidad de numerosa que se desea y a continuacin se
decrementa en uno cada vez que el bucle se repite (este procedimiento aade una accin mas al cuerpo del bucle:
TOTALTOTAL-1) o bien inicializar la variable TOTAL e 0 o en 1, e ir incrementando en uno a cada iteracin hasta
llegar al numero deseado.
Inicio

INICIO

S=0

S0
Leer(n)

TOTALN

TOTAL=N

NO
TOTAL>0

Mientras TOTAL>0 Hacer

SI
NUMERO

Leer(numero)
S S + numero

S = S + NUMERO

TOTAL TOTAL 1
Fin_mientras

TOTAL=TOTAL-1

"La suma de
numeros es:",S

Escribir(La suma de nmeros es:,S)

INICIO

Fin

1.- TIPOS DE BUCLES:

Independientes: cuando son externos unos a otros


Anidados: cuando estn dispuestos de tal modo que unos son interiores a otros

Bucle A

Bucle B

Bucle C

Bucles independientes

Bucles anidados

2.- ESTRUCTURA REPETITIVA FOR (PARA)

25

En muchas ocasiones se conoce de antemano el numero de veces que se desea ejecutar las acciones de un
bucle. En estos casos en los que el numero de iteraciones es fijo se deber usar la estructura FOR (para)
La estructura FOR ejecuta las acciones del cuerpo de un bucle un nmero especificado de veces y de modo
automtico controla el numero de iteraciones o pasos a travs del cuerpo del bucle.
Diagrama de flujo

Para Var=Val. ini.,


Val. fin., Variacin

Diagrama N-S

Para Variable=val. Inicial, Val. Final, Pasos


ACCIONES A REPETIR

ACCIONES A
REPETIR

Siguiente (fin_para)

Pseudocdigo
PARA V=VI HASTA VF PASOS VP
<Accin 1>
.......................
<Accin N>
SIGUIENTE V
NOTA:
V- Variable
VI- Valor Inicial
VF- Valor Final
VP- Valor de secuencia de incremento
o decremento

3.- ESTRUCTURA REPETITIVA WHILE (MIENTRAS)


La estructura repetitiva WHILE (mientras o hacer mientras) es aquella en que el cuerpo del bucle se repite
mientras se cumple una determinada condicin. Cuando se ejecuta la instruccin WHILE, lo primero que se verifica es
la condicin (una expresin bolean). Si se evala falsa, el programa finaliza el bucle y sigue la instruccin a
continuacin en el cuerpo del algoritmo, si la expresin booleana es verdadera, entonces se ejecuta el cuerpo del bucle,
y de nuevo se evala la expresin booleana, este proceso se repite una y otra vez minetras el resultado de la expresin
booleana (condicin) sea verdadera.
Diagrama de flujo

Diagrama N-S

NO
CONDICION

MIENTRAS

SI
ACCIONES A
REPETIR

CONDICION

ACCIONES A REPETIR

Pseudocdigo

MIENTRAS condicin HACER


<Accin 1>
<Accin 2>
.......................
<Accin N>
FIN_MIENTRAS

4.- ESTRUCTURA REPETITIVA REPEAT (REPETIR)


Existen muchas situaciones en las que se desea que un bucle se ejecute por lo menos una vez antes de
comprobar la condicin de repeticin. En la estructura mientras si el valor de la expresin booleana es inicialmente
falsa, el cuerpo del bucle no se ejecutar; por ello se necesitan otros tipos de estructuras repetitivas.
La estructura repeat (repetir) se ejecuta hasta que se cumpla la una condicin determinada que se comprueba al
final del bucle.
Este bucle se repite siempre y cuando el valor de la condicin booleana sea falsa, los opuesto de la sentencia
WHILE
Diagrama de flujo

Diagrama N-S

ACCIONES A
REPETIR

ACCIONES A REPETIR
NO
CONDICION

REPETIR

CONDICION

SI

EJERCICIOS PARA EL TEMA VI

26

Pseudocdigo

REPETIR
<Accin 1>
<Accin 2>
.......................
<Accin N>
HASTA_QUE condicin

1.- Estructuras repetitivas


35.
36.
37.
38.
39.
40.
41.
42.

43.
44.
45.
46.
47.
48.
49.
50.
51.

52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.

Mostrar un listado con los nmeros de 1 al 100.


Mostrar los nmeros pares de 2 al 200.
Mostrar los nmeros pares de 2 hasta un nmero N (que es ledo por la computadora)
Mostrar la sumatoria de los nmeros del 1 al 100 .
Mostrar dos listados uno con los nmeros impares de 1 a 999 y otro con los pares de 2 a 1000.
Mostrar un listado con los nmeros del 1 al 100, con su respectivo cuadrado al lado. Cada pareja en una
lnea.
Mostrar un listado con los valores de 1, 2, ....., 1000 unidades de un producto , junto con su costo
respectivo, si el precio unitario es ledo por la computadora.
Producir el mismo listado anterior si existe una promocin que consiste en un descuento del 10% para
cantidades entre 100 y 200 unidades y del 15% para cantidades entre 201 y 500 unidades y del 20% para
compras mayores.
Mostrar la tabla de multiplicar del 4 .
Mostrar la tabla de multiplicar de un nmero cualquiera N, que sea ledo por la computadora.
Mostrar las tablas de multiplicar del 4 y del 5.
Mostrar un listado con los nmeros consecutivos de M a N, siendo M y N dos valores que son ledos por
la computadora, tales que M < N.
Imprimir un listado que contenga en cada lnea: Nmero par del 2 al 200; mltiplos de 3 del 3 al 300;
mltiplos de 4 del 4 al 400.
Resolver la funcin f (x)= x3 + x2 5 para valores de x de 0 a 10 , incrementndose de 1 en 1.
Resolver la funcin y = 3.5 x3 2.1 x2 + 3, PARA x que toma valores de 1 al 20, de 1 en 1.
Resolver la funcin z= (4 x3 x2 ) / ( x + 3 ) para valores de x de 10 hasta N en incrementos de 0.5. N es
ledo por el computador y se debe evitar la divisin por cero.
Mostrar los enteros de 1 a N ( N es ledo por la computadora ) con su respectivo cuadrado. Suponga que
el cuadrado se halla de la siguiente manera :
Nmero
Resultado del cuadrado obtenido as
1
1
=
1
2
1+3
=
4
3
1+3+5
=
9
Mostrar los nmeros de Fibonacci menores de 100. Estos se calculan sumando los dos anteriores. As: 0,
1, 1, 2, 3, 5, 8, 13, ...
Mostrar los 100 primeros nmeros de la serie de Fibonacci
Mostrar los nmeros primos menores de 500.Primo es el nmero divisible por si mismo y por 1.
Obtener los permetros de tringulos, ingresando sus lados por teclado. Terminar cuando uno o mas
lados ingresados sea cero.
Mostrar los permetro de varios tringulos ingresados sus lados por teclado, hasta que ya no desee.
Escriba un algoritmo para determinar las posibles adquisiciones que se pueden hacer con 87 soles sin
que sobre dinero de 3 productos de 5 , 7 y 19 soles
Hacer un algoritmo que permita determinar todos los divisores de un nmero ingresado por el teclado.
Hacer un algoritmo que permita simplificar una fraccin. Ejm 15/18 = 5/6
Calcular la distancia recorrida por un mvil, leyendo las entradas adecuadas (velocidad y tiempo) hasta
que ya no desee continuar.
Convertir diferentes valores ingresados en pulgadas a centmetros. Hasta que el valor de pulg sea cero.
Mostrar el nombre y el salario semanal de cada empleado de una compaa. (120 empleados)
Calcular el total de las calificaciones de tres exmenes tomados a cada uno de sus alumnos ( 25
alumnos). El nombre del alumno debe quedar impreso junto con su calificacin promedio.

27

También podría gustarte