laboratorio de algoritmia

27
 2 Introducción La principal razón para que las personas aprendan lenguajes y técnicas de programación es utilizar la computadora como una herramienta para resolver problemas. La resolución de un problema exige al menos los siguientes pasos: 1. Definición o análisis del problema 2. Diseño del algoritmo 3. Transformación del algoritmo en un programa 4. Ejecución y validación del programa Uno de los objetivos fundamentales de este curso es el aprendizaje y diseño de algoritmos, un algoritmo es un método para resolver un problema. Aunque la popularización del termino ha llegado con el advenimiento de la era informática, algoritmo proviene de Mohammed Al-Khowârizmî, matemático persa que vivió durante el siglo IX y alcanzo gran reputación por el enunciado de las reglas paso por paso para sumar, restar, multiplicar y dividir números decimales; la traducción al latín del apellido en la palabra algoritmus derivó posteriormente en algoritmo. Euclides, el gran matemático griego (del siglo IV antes de Cristo), que invento un método para encontrar el máximo común divisor de dos números, se considera con Al- Khowârizmî el otro gran padre de la algoritmia (ciencia que trata de los algoritmos)

Upload: christian-arana

Post on 02-Jun-2018

234 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Laboratorio de Algoritmia

8/10/2019 Laboratorio de Algoritmia

http://slidepdf.com/reader/full/laboratorio-de-algoritmia 1/26

  2

Introducción

La principal razón para que las personas aprendan lenguajes y técnicas de programación es utilizar lacomputadora como una herramienta para resolver problemas. La resolución de un problema exige al menos lossiguientes pasos:

1.  Definición o análisis del problema2.  Diseño del algoritmo3.  Transformación del algoritmo en un programa4.  Ejecución y validación del programa

Uno de los objetivos fundamentales de este curso es el aprendizaje y diseño de algoritmos, un algoritmo es unmétodo para resolver un problema. Aunque la popularización del termino ha llegado con el advenimiento de la erainformática, algoritmo  proviene de Mohammed Al-Khowârizmî, matemático persa que vivió durante el siglo IX yalcanzo gran reputación por el enunciado de las reglas paso por paso para sumar, restar, multiplicar y dividir números

decimales; la traducción al latín del apellido en la palabra algoritmus derivó posteriormente en algoritmo. Euclides, elgran matemático griego (del siglo IV antes de Cristo), que invento un método para encontrar el máximo común divisorde dos números, se considera con Al- Khowârizmî el otro gran padre de la algoritmia (ciencia que trata de losalgoritmos)

Page 2: Laboratorio de Algoritmia

8/10/2019 Laboratorio de Algoritmia

http://slidepdf.com/reader/full/laboratorio-de-algoritmia 2/26

  3

CAPITULO I

TEMA I.- Conceptos Básicos de la Arquitectura del Computador

Una computadora es una maquina electrónico mecánica la cual se utiliza para procesar información,desempeñar algún trabajo, etc

La computadora posee esencialmente dos partes:

Hardware.- Es el conjunto de componentes físicos de una computadora (equipo Físico)Software.- es el conjunto de programas que controlan el funcionamiento de una computadora (equipo Lógico)

1. HARDWAREConjunto de componentes físicos de una computadora. Se compone de :

1.1) Dispositivos De Entrada y Salida (Periféricos)Son dispositivos capaces de “leer” datos codificados. Algunos dispositivos físicos de E/S son el teclado, cintas,

discos magnéticos, el monitor, la impresora, etc.

1.2) Memoria Central o PrincipalAquí se almacenan:  Los datos que se envían para procesarse desde los dispositivos de almacenamiento.

 

Las instrucciones de programas que realizarán los procesos, y  Los resultados obtenidos listos para ser enviados a un dispositivo de almacenamiento secundario.

Almacena programas y datos durante su ejecución Las memorias se pueden clasificar en dos grupos:a)  Las de lectura solamente ROM (Read Only Memory), la información 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 información al faltarles la corriente eléctrica. Además permiten leer, escribir o modificar un datocuantas 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 secolocará un dato. Cada uno de estos casilleros pueden contener (según el diseño interno de la computadora) un grupoespecifico de bits (llamado palabra) que se transfiere y maneja con una sola operación. Así se tiene maquinas que

trabajan con 8 a 64 bits por palabra. Cada localización de palabra tiene asociado un nombre llamado dirección. En laRAM cualquier localización se alcanza especificando su dirección.

El tiempo para accesar una palabra se llama tiempo de acceso a la memoria que es un tiempo fijo, del orden delos nanosegundos (10-9 s).

La capacidad de memoria de una computadora se mide por bloques de 1024 caracteres, unidad que serepresenta con la letra K.Ejm:

Una máquina cuya memoria principal tenga 65536 caracteres de 8 bits cada uno se indica como64 K (64 x 1024 = 65536).

1 M = 1024 k 1 G = 1024 MEjm:

Una máquina con HD 1.28 Gb = 1.28 *1024 * 1024 * 1024 = 1374389535 b

1.3) La Unidad Central de Proceso UCP

Conjunto de circuitos electrónicos que permiten ejecutar cálculos sencillos como suma y multiplicación. Es elcerebro de la computadora, consta de 2 partes principales:

  Unidad de Control UC  Unidad Aritmética y lógica UAL

1. 3.1 Unidad Aritmética y Lógica

Realiza cálculos (+ , - , * , / ) y todas las operaciones lógicas (comparaciones: < , > , <> , = ).Cualquier operación aritmética / lógica se realiza trayendo los operandos necesarios a la UAL donde se realiza

la operación.

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

Page 3: Laboratorio de Algoritmia

8/10/2019 Laboratorio de Algoritmia

http://slidepdf.com/reader/full/laboratorio-de-algoritmia 3/26

Page 4: Laboratorio de Algoritmia

8/10/2019 Laboratorio de Algoritmia

http://slidepdf.com/reader/full/laboratorio-de-algoritmia 4/26

  5

3.2) Programa: Conjunto de instrucciones (ordenes dadas a la computadora) que permiten ejecutar una determinadatarea, es decir es un medio para lograr un fin. Es el algoritmo que se expresa en un formato determinado (lenguaje de

 programación)3.3) Lenguajes de Programación: Son lenguajes utilizados para desarrollar programas en computadoras. Los lenguajesmás utilizados son: C++, pascal, etc.

Lenguaje Máquina .- Escritos en lenguajes directamente inteligibles por la computadora (cadenas de 0 y 1)Ejm:

Dirección Contenido100 0010 0000 0000 0100

Lenguaje de Bajo Nivel (Ensamblador) formado por instrucciones conocidas como nemotécnicas.Ejm:

ADD m,n, p

Programa fuentePrograma

ensambladorPrograma Objeto

Lenguajes de Alto Nivel.- Diseñados para que las personas escriban y entiendan los programas más fácilmente que loslenguajes anteriores Son portables, es decir pueden ser ejecutados en diferentes tipos de computadoras.

Ejm: BasicCobolFortranLispCPascal, etc.

3.4) Traductores de Lenguaje Programas que traducen los programas fuentes hechos en lenguaje de alto nivel a códigomáquina. Pueden ser:

Intérprete

Programa fuente InterpreteTraducción y

ejecución línea a línea

Compilador y fases: Compilación proceso de Traducción de programas fuente en programas objeto.

Programa fuente Compilador Programa objeto

Programa Objeto Montador o EnlazadorPrograma ejecutableen lenguaje máquina

3.4)  Fases en el proceso de programación:

  Definición y análisis del problema  Diseño del algoritmo

 

Codificación del programa  Depuración y verificación del programa  Documentación  Mantenimiento

TEMA II.- Algoritmos

1.- ETAPAS DE LA SOLUCIÓN DE UN PROBLEMA

La principal razón para que las personas aprendan lenguajes de programación es utilizar la computadora comoherramienta para la solución de problemas. Dos fases son muy identificadas para lograr la solución de problemas:

  Fase de resolución del problema  Fase de implementación (realización) en un lenguaje de programación.

Page 5: Laboratorio de Algoritmia

8/10/2019 Laboratorio de Algoritmia

http://slidepdf.com/reader/full/laboratorio-de-algoritmia 5/26

  6

 Analisis del

problema

Diseño delalgoritmo

Verificación del

algoritmo

Fase de resolución del problema

Codificación delalgoritmo

Ejecución del

programa

Validación del

programa

Programa de

trabajo

Fase de implementación del problema

 

1.1.- Fase de resolución del problemaEsta fase incluye, a su vez, el análisis del problema asi como el diseño y posterior verificación del algoritmo.

Análisis del problema. El primer paso para la solución de un problema es el análisis del mismo. Se debe examinarcuidadosamente el problema a fin de obtener una idea clara sobre lo que se solicita y determinar los datos necesarios

 para conseguirlo.

 Analisis del

problema

Datos de

entrada

Datos de salida

Resultados

Definición del

problema

 

Diseño del algoritmo. Puede ser definido como la secuencia ordenada de pasos, sin ambigüedades, que conducen a lasolución de un problema.

Verificación de algoritmos. Una vez terminado de escribir un algoritmo es necesario comprobar que realiza las tareas para las que se ha diseñado y produce el resultado correcto y esperado. Para esto aplicamos la Prueba de escritorio. Comprobación manual usando datos significativos que abarquen todo el posible rango de valores.1.2.- Fase de implementación

Una vez que el algoritmo esta diseñado, representado gráficamente mediante una herramienta de programación(Diagrama de flujo, diagrama de N-S o pseudocódigo) y verificado se debe pasar a esta fase de codificación, traducciónde un algoritmo a un determinado lenguaje de programación, que deberá ser completada con la ejecución ycomprobación 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 unsistema especifico o clase de problema, se denomina algoritmo. En otras palabras un algoritmo es una formula para lasolución de un problema.

Para realizar un proceso en la computadora se le debe suministrar al procesador un algoritmo adecuado, porejemplo al cocinero debe dársele 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 programación, y a la actividad de expresar un algoritmo en forma de programa se llama

Page 6: Laboratorio de Algoritmia

8/10/2019 Laboratorio de Algoritmia

http://slidepdf.com/reader/full/laboratorio-de-algoritmia 6/26

  7

Programación. Cada paso en el algoritmo esta expresado por medio de instrucciones, cada una de las cuales especificalas operaciones que debe realizar la computadora.

Para llegar a la realización de un programa es necesario el diseño previo de un algoritmo, de modo que sinalgoritmo no hay programa.

Los algoritmos son independientes tanto del lenguaje de programación en que se expresan como de lacomputadora donde se ejecutan, en cada problema el algoritmo se puede expresar en un lenguaje diferente de

 programación y ejecutarse en una computadora distinta, sin embrago el algoritmo será siempre el mismo. Así porejemplo en una analogía con la vida diaria, una receta de un plato de comida. Se puede expresar en español, ingles ofrancés, pero en cualquiera que sea el lenguaje, los pasos para la elaboración de el, se realizara sin importar el idioma.

En la ciencia de la computación y en la programación, los algoritmos mas importantes que los lenguajes de programación o las computadoras. Un lenguaje de programación es tan solo un medio para expresar un algoritmo y unacomputadora es solo un procesador para ejecutarlo. Tanto el lenguaje de programación como la computadora son losmedios para obtener un fin: conseguir que el algoritmo se ejecute y efectúe el proceso correspondiente.

Dada la importancia del algoritmo en la ciencia de la computación un aspecto muy importante será el diseño dealgoritmos. Para el diseño de la mayoría de los algoritmos se requiere creatividad, lógica, secuencia y orden. En esenciala solución de un problema se puede expresar mediante un algoritmo.

2.1.- Características de los algoritmos

Las características fundamentales de que debe cumplir todo algoritmo son:

  Un algoritmo debe ser preciso e indicar el orden de realización 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 algún momento, o sea, debe tener un

numero finito de pasos.

2.2.- Formas de representar los algoritmos

Para representar un algoritmo se debe utilizar algún método que permita independizar dicho algoritmo dellenguaje de programación elegido. Ello permitirá que un algoritmo pueda ser codificado indistintamente en cualquierlenguaje. Para conseguir este objetivo se precisa que el algoritmo sea representado gráficamente o numéricamente, demodo que las sucesivas acciones dependan de la sintaxis de ningún lenguaje de programación, es decir su codificación.

Los métodos usuales para representar un algoritmo son:

1.  Lenguaje español.2.  Formulas.3.  Diagramas de flujo.4.  Diagrama N-S (Nassi-Schneiderma).5.  Lenguaje de codificación de algoritmos (Pseudocodigo).

Los métodos 1 y 2 no suelen ser fáciles de transportar en un programa. Una descripción en español narrativa noes satisfactorio ya que es demasiado prolija y generalmente ambigua, una formula, sin embargo es un buen sistema derepresentación, por ejemplo la formula para halla el área de un circulo.

S =  x R 2 Signífica

1.  Eleve R al cuadrado2.  Reemplacé el valor de  el símbolo por 3.1415923.  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 técnicas de representación de algoritmos mas antigua y a la vezmas utilizada, un diagrama de flujo en un diagrama que utiliza los símbolos (cajas) estándares, cada caja representa uncomando. En su interior de las cajas los pasos a seguir por el algoritmo unidos por flechas entre si, denominadas líneasde flujo que indican la secuencia en que se deben ejecutar

Page 7: Laboratorio de Algoritmia

8/10/2019 Laboratorio de Algoritmia

http://slidepdf.com/reader/full/laboratorio-de-algoritmia 7/26

  8

Principales diagramas de flujo

Nro. Diagrama Función

1Terminal (representa el comienzo, “inicio”, y el final, “fin” de un programa.

Puede representar también una parada o interrupción programada que seanecesario realizar en un programa)

2

Entrada / Salida (cualquier tipo de introducción de datos en la memoria desde los

 periféricos, “entrada, o registro de la información procesada en un periférico“salida”) 

3Proceso (cualquier tipo de operación que pueda originar cambio de valor, formatoo posición de la información almacenada en la memoria, operaciones aritméticas,de transferencia, etc.)

4 si no

 

Desisción ( indica operacione slógicas o de comparación entre datos[normalmente dos] y en función del resultado de la misma determina cual de losdistintos caminos alternativos del programa se debe seguir; normalmente tienedos salida [SI , NO]

5Decisión múltiple (en función del del resultado de la comparación se seguirá unode los diferentes caminos de acuerdo con dicho resultado

6

Conector (sirve para enlazar dos partes cuales quiera de un ordinograma a través

de un conector en la salida y otro conector en la entrada. Se refiere a la conexiónen la misma página del diagrama)

7Líneas de conexión (indica el sentido de la ejecución de las operaciones y a la vezcomo unión entre bloques

8Conector (conexión entre dos puntos del organigrama situados en paginasdiferentes)

9

Llamada a subrutina o a un proceso predeterminado ( una subrutina en un moduloindependiente 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 símbolo de E /S)

11 Impresora (se utiliza en ocasiones en lugar del símbolo de E /S)

12 Teclado (se utiliza en ocasiones en lugar del símbolo de E /S)

13Comentario (se utiliza para añadir comentarios clasificados a otros símbolos deldiagrama de flujo. Se pueden dibujar a cualquier lado del símbolo)

Características 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, decisión 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 flechassignifica que la caja no necesita estar escrita debajo de su predecesora, sin embargo abusar demasiado de estaflexibilidad conduce a diagramas de flujo complicados e ininteligibles.

Ejemplo de diagrama de flujo:

Page 8: Laboratorio de Algoritmia

8/10/2019 Laboratorio de Algoritmia

http://slidepdf.com/reader/full/laboratorio-de-algoritmia 8/26

  9

 A>=0

 A

"EL NUMERO ES

POSITIVO

INICIO

"EL NUMERO ES

NEGATIVO"

FIN

SI NO

 

Diagramas de Nassi-Schneiderman (N-S)

El diagrama N-S de Nassi-Schneiderman (conocido tambien como Chapin) es como un diagrama de flujo en elque se omiten las flechas de unión y las cajas son contiguas. Las acciones sucesivas se escriben en cajas sucesivas ycomo en los diagramas de flujo se pueden escribir diferentes acciones en una caja.Ejemplo de diagrama de Nassi-Schneiderman (N-S)

Inicio

Leer (a)

True False

Escribir ("el numero ingresado esnegativo")

 A>=0

Escribir ("el numero ingresado espositivo")

fin 

Pseudocódigo

El pseudocódigo es un lenguaje de especificación (descripción de algoritmos). El uso de tal lenguaje hace el

 paso a la codificación final ( esto es la traducción al lenguaje de programación final)El pseudocódigo nació como un lenguaje similar al ingles y era un medio de representar básicamente lasestructuras de control de programación, se considera un primer borrador, el pseudocódigo no puede ser ejecutado porninguna computadora. La ventaja del pseudocódigo es que en su uso, en la planificación de un programa.Ejemplo de Pseudocódigo:

Inicio

Leer un valor para ASi el valor de A es mayor o igual que Cero entonces 

Escribir que el numero ingresado es positivoSino

Escribir que el numero ingresado es negativofin

2.3.- Componentes de un algoritmo

Page 9: Laboratorio de Algoritmia

8/10/2019 Laboratorio de Algoritmia

http://slidepdf.com/reader/full/laboratorio-de-algoritmia 9/26

  10

Para diseñar 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 descripción deactividades deberán ser refinados añadiendo detalles a los mismo e incluso, algunos de ellos, pueden requerir unrefinamiento adicional antes que podamos obtener un algoritmo claro preciso y completo. Este método de diseño de losalgoritmos en etapas, yendo de los conceptos generales a los de detalle a través de refinamientos sucesivos, se conocecomo método descendente (Top Down). En un algoritmo se debe considerar tres partes:

1.  Entrada: Información dada al algoritmo2.

 

Proceso: Operaciones o cálculos necesarios para encontrar la solución del problema3.  Salida: Respuestas dadas por el algoritmo o resultados finales de los cálculos.

Como ejemplo imagínese que desea desarrollar un algoritmo que calcule la superficie de un rectángulo proporcionándole 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?-  ¿Cuántos datos se introducira?-  ¿Cuantos son datos de entradas válidos?

Especificaciones de salida

-  ¿Cuáles son los datos de salida?-  ¿Cuántos datos de salida se produciran?-  ¿Qué precisión tendrán los resultados?-  ¿Se debe imprimir una cabecera?

El algoritmo en el primer diseño se podrá representar con los siguientes pasos

Paso 1 Entrada de base y altura desde periférico de entrada por ejemplo tecladoPaso 2 Cálculo de la superficie, multiplicando la base por la alturaPase 3 Salida por pantallas de base, altura y superficie.

Como habíamos mencionado antes el algoritmo debe ser independiente de cualquier lenguaje de programación particular pero fácilmente traducible a alguno de ellos.

EJERCICIOS PARA EL TEMA II.

1.- Algoritmo para hacer una tasa de te.

Análisis del problemaDatos de salida: Taza de teDatos de entrada: Bolsa de te, aguaDatos auxiliares: pitido de tetera, aspecto de la fusión.

Después 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 la tetera.2.  Llenar de agua.3.  Encender el fuego.4.  Poner la tetera al fuego.5.  Mientras no hierva el agua esperar.6.  Tomar la bolsa de te7.  Introducir en la tetera8.  Mientras no este hecho el te esperar9.  Echar el te a al taza.

10. 

Fin.

2.- Diseñar un algoritmo para cambiar una rueda de coche.

Análisis del problema

Page 10: Laboratorio de Algoritmia

8/10/2019 Laboratorio de Algoritmia

http://slidepdf.com/reader/full/laboratorio-de-algoritmia 10/26

  11

Datos de salida: Rueda reparadaDatos de entrada: Rueda pinchada, rueda de repuesto, herramientas

Después de desmontar la rueda se procede a reemplazar por el neumático bueno u se procede a guardartodas las herramientas

1.  Inicio.2.  Si gato del coche esta averiado llamar a la estación 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 están 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 están 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

Análisis del problemaDatos de salida: Ver la película.Datos de entrada: Nombre de la película, dirección de la sala, hora de proyecciónDatos auxiliares: Entrada, sitio.

Después 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 periódico.2.  Mientras no lleguemos a la cartelera pasar la hoja.3.  Mientras no se acabe al cartelera leer película.4.  Si nos gusta recortarla.5.  Elegir una de las películas seleccionadas

6. 

Trasladarse a la sala7.  Si NO hay entadas bifurcar al punto 16; caso contrario continuar8.  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 entrada11.  Leer el lugar de la entrada12.  Buscar lugar13.  Sentarse14.  Ver película15.  Fin

Ejercicios Propuestos

1. 

Compra una entrada para los toros.2.  Colocar la mesa para comer.3.  Cocer un huevo.4.  Lavar los platos del almuerzo.5.  Buscar el número telefónico de un compañero.6.  Repara un pinchazo de bicicleta7.  Pagar una multa de transito.8.  Hacer palomitas de maíz.9.  Cambiar el vidrio roto de una ventana10.  Hacer una llamada telefónica.11.  Quitar un foco quemado del techo.

Page 11: Laboratorio de Algoritmia

8/10/2019 Laboratorio de Algoritmia

http://slidepdf.com/reader/full/laboratorio-de-algoritmia 11/26

  12

CAPITULO II

TEMA III.- Elementos del Algoritmo

1.- ESTRUCTURAS DE DATOSUna estructura de datos es una colección de datos que pueden ser caracterizados por su organización y las

operaciones que se defina en ellas

Las estructuras de datos son muy importantes en los sistemas de computadora. Los tipos de datos másfrecuentes utilizados en los diferentes lenguajes de programación son:

Universo de datos

Datos simples

Estándar

Entero (integer)Real (real)Carácter (char)Lógico (boolean)

Definido por el

programador

Subrango (Subrange)Enumerativo (enumerated)

Datos estructurados

Estáticos

Array (vector / matriz)RegistroArchivo (Fichero)

ConjuntoCadena (string)

Dinámicos

Lista (pila / cola)Lista enlazadaÁrbolGrafo

Los tipos de datos simples o primitivos significan que no están compuestos por otras estructuras de datos; losmás frecuentes y utilizados por casi todos los lenguajes son: enteros, reales carácter (char) y lógicos (boolean), siendolos tipos subrango y enumerativos propios de lenguajes estructurados Pascal. Los tipos de datos compuestos estanconstruidos 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: estáticos y dinámicos.

Las Estructuras de datos estáticos son aquellas en las que el tamaño ocupado en memoria se define antes que el programa se ejecute y no puede modificarse dicho tamaño durante la ejecución del programa. Estas estructuras estánimplementadas en casi todos los lenguajes de programación array (vectores tablas  –  matrices), registros, ficheros (losconjuntos son específicos del lenguaje Pascal)

Las estructuras de datos dinámicos no tienen las limitaciones o restricciones en el tamaño de la memoriaocupada que son propias de las estructuras estáticas. Mediante el uso de un tipo de datos específico, denominado

 puntero, es posible construir estructuras de datos dinámicas que son soportadas por la mayoría de los lenguajes, y enaquellos que si tienen estas características ofrecen soluciones eficaces y efectivas en la solución de problemas de

 problemas complejos

1.1.- Datos de tipo numérico

El tipo numérico es el conjunto de los valores numéricos. Estos pueden representarse en dos formas distintas:

tipo numérico entero (integer o int)-  tipo numérico real (real o float)

Enteros.- El tipo entero es un subconjunto finito de los números enteros. Los enteros son números completos, no tienencomponentes fraccionarios o decimales y pueden ser negativos o positivos

Ejemplo:5  6 1340-15 4 020 17 -1200

Reales.- El tipo real consiste en un subconjunto de los números reales. Los números reales siempre tienen un puntodecimal y pueden ser positivos o negativos. Un número real consta de una parte entera y una parte decimal

Ejemplo:0.08 0.1 3.7485

-3.1 3745.2 -15.25Existe un tipo de representación denominado notación exponencial o científica y que se utiliza para númerosmuy grandes o muy pequeños

Ejemplo:

Page 12: Laboratorio de Algoritmia

8/10/2019 Laboratorio de Algoritmia

http://slidepdf.com/reader/full/laboratorio-de-algoritmia 12/26

  13

367520100000000000000se representa en notación científica descomponiéndola en grupos de tres dígitos:

367 520 100 000 000 000 000

y posteriormente en forma de potencias de 10

3.675201 x 1020 

del mismo modo: se representa:0.0000000000302579 3.02579 x 10-11 

En estas expresiones se considera mantisa al numero decimal y exponente el de la potencia de 103.675201 mantisa 20 exponente3.02579 mantisa -11 exponente

y se escribe:3.675201 E 203.02579 E -11

1.2.- Datos de tipo lógicos (booléanos)

El tipo lógico (también 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 según sea par o impar.

1.3.- Datos de tipo carácter y tipo cadena

El tipo carácter es el conjunto finito y ordenado de caracteres que la computadora reconoce. Un dato tipocarácter contiene un solo carácter.

Los caracteres que reconoce las diferentes computadoras no son estándar; sin embargo, la mayoría reconoce los

siguientes caracteres alfabéticos y numéricos:-  Caracteres alfabéticos (A, B, C, ..., Z) (a, b, c, ..., z)-  Caracteres numéricos (1, 2, 3, ..., 9, 0)-  Caracteres especiales (+, -, *, /, ^, ., ;, >, <, $, #, ...)

Una cadena (string) de caracteres es una sucesión de caracteres que se encuentran delimitados por una comilla(apóstrofo) o dobles comillas, según el tipo de lenguaje de programación. La longitud de una cadena de caracteres es elnúmero 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 ejecución del programa. Tales valores se llaman constantes. De igual forma existen otros valores que cambiaran durante la ejecucióndel programa a estos se les llamara variables.

Una constante es una partida de datos (objetos ) que permanecen sin cambios durante todo el desarrollo delalgoritmo o durante la ejecución del programa.

Una variable es un objeto o partida de datos cuyo valor puede cambiar durante el desarrollo del algoritmo oejecución del programa.

Una variable que es de un cierto tipo puede tomar únicamente valores de ese tipo. Una variable de carácter, porejemplo puede tomar valor sólo 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 variableLa forma de representar una variable y una constante es mediante los identificadores, estos suelen constar de

varios caracteres alfanuméricos, de los cuales el primero es normalmente es una letra, no existe espacios entre ellas,nunca empiezan con un número, nunca usan caracteres especiales, no podrán usar palabras reservadas.

Page 13: Laboratorio de Algoritmia

8/10/2019 Laboratorio de Algoritmia

http://slidepdf.com/reader/full/laboratorio-de-algoritmia 13/26

  14

Ejemplo:A123fila

 NOTASgrupo_dia

3.- EXPRESIONES

Las expresiones son combinaciones de constantes variables signos de operación, paréntesis y nombres defunciones especiales. Las mismas ideas son utilizadas en notación matemática tradicional, por ejemplo

a+(b+3)+  c +b+(b-5)+  c

Aquí los paréntesis indican el orden de calculo y   representa la función de raíz cuadrada. Cada expresióntoma un valor que se determina tomando los valores de las variables y constantes implicadas y la ejecución de lasoperaciones indicadas.

Una expresión consta de operandos y operadores según sea el tipo de objetos que se manipula las expresionesse clasifican en:

-  Aritmética-  Lógicas

Carácter

El resultado de la expresión aritmética es de tipo numérico, el resultado de la expresión relacional o y de unalógica es de tipo lógico, el resultado de una expresión carácter es de tipo carácter.

3.1.- Expresiones Aritméticas

Las expresiones aritméticas con analógicas a las formulas matemáticas. Las variables y constantes sonnuméricas (real o entera) y las operaciones son la aritméticas.

3.2.- Operadores aritméticos

Nro Operador Operación Operando Resultado

1 ¬,^,**,  Exponenciación Entero o real Entero o real2 + Suma Entero o real Entero o real3 - Resta Entero o real Entero o real4 * Multiplicación Entero o real Entero o real5 / División Entero o real Entero o real6 Div División entera Entero Entero7 Mod Modulo (resto) Entero Entero

Ejemplo:

Expresión Aritméticas Expresiones informáticas

2+6 2+65x3 5*362

6/2

68 6**8, 6¬8, 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 operación será igual a 619 mod 3; el resultado de esta operación será igual a 1

3.3.- Reglas de prioridad

Las expresiones que tienen dos o mas operandos requieren unas reglas matemáticas que permitan determinar elorden de las operaciones, se denomina reglas de prioridad o precedencia y son:

1.  Las operaciones que están encerradas entre paréntesis se evalúan primero, si existen diferentes paréntesisanidados (interiores unos a otros), las expresiones mas internas se evalúan primero.

Page 14: Laboratorio de Algoritmia

8/10/2019 Laboratorio de Algoritmia

http://slidepdf.com/reader/full/laboratorio-de-algoritmia 14/26

  15

2.  las operaciones aritméticas dentro de una expresión 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 expresión o subexpresión encerrada entre paréntesis, el

orden de prioridad en este caso es de izquierda a derecha.3.4.- Operadores de relación

Los operadores relacionales o de relación permiten realizar comparaciones de valores de tipo numérico ocarácter. Los operadores de relación sirve para expresar las condiciones en los algoritmos.

El formato general para las comparaciones es:

Expresión 1 operador de relación expresión 2

Operador 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 algorítmicas

Expresión Aritmética Expresión algorítmica

 P 

 N 

 M     M / N + P

Q P 

 N  M 

   M + N / (P –  Q)

Q P 

 N  M 

   (M + N) / (P –  Q)

 RQ

 p

nm

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

)(5   Y  X      5 * (X + Y)22  B A      A ^ 2 + B ^ 2

 A

 E U 

Y  X 

  (X + Y) / (U + W / A)

)(   W  Z Y 

 X     X / Y * (Z + W)

2.- Calcular el valor de las siguientes expresiones aritméticas

Expresión Operaciones Resultado

3+6*14 3+84

878+7*3+4*6  8+21+24  29+24 53-2^3  -8 -8(33+3*4)/5  (33+12)/5  45/5 9

Page 15: Laboratorio de Algoritmia

8/10/2019 Laboratorio de Algoritmia

http://slidepdf.com/reader/full/laboratorio-de-algoritmia 15/26

  16

2^2*3  4*3 123+2*(18-4^2)  3+2*(18-16)  3+2*2  3+4 716*6-3*2  96 –  6 90-4*7+2^3/4-5  -4*7+8/4-5   -28+8/4-5  -28+2-5  -26-5 -31

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

Expresión Operaciones ResultadoA + B + C  5+25+10 40A + B * C  5+25*10 255A + B / C  5+25/10  5+2.5 7.5A + B DIV C  5+ 25 DIV 10  5+2 7A + B MOD C  5+25 MOD 10  5+5 10(A + B) DIV C  (5+25) DIV 10  30 DIV 10 3A + (B / C)  5+(25/10)  5+ 2.5 7.5

4.- Calcular el valor de las siguientes expresiones relacionales

N1 N2 Operaciones Resultado

3 6 < Verdadero0 1 > Falso4 2 = Falso8 5 <= Falso9 9 >= Verdadero5 5 <> Falso

Ejercicios Propuestos

1.  Cual de los siguientes no son identificadores validos.a)  Xrayo

 b)  X_Rayoc)  R2D2d)

 

Xe)  45f)   N14g)  ZZZZh)  3 

2.  Cual de los siguientes datos no son validos.a)  234

 b)   – 8.975c)  12E –  5d)  0e)  32,767f)  1 / 2g)  3.6E+7h)

 

 – 7E12i)  3.5x10

 j)  0,456k)  0.000001l)  224E1.5

3.  Evalué la siguiente expresión para A = 2 y B = 53 * A –  4 * B / A ^ 2

4.  Evaluar la siguiente expresión4 / 2 * 3 / 6 + 6 / 2 / 1 / 5 ^ 2 / 4 * 2

5. 

Escribir las siguientes expresiones algebraicas en algorítmicas.

2

22

 z 

 y x  

  z 

 y x

2

23  

 d c

ba

 

Page 16: Laboratorio de Algoritmia

8/10/2019 Laboratorio de Algoritmia

http://slidepdf.com/reader/full/laboratorio-de-algoritmia 16/26

  17

724 2   x x  

5

3 x

 x

 y x

 bc

 xyz  12

12

 x x

 y y

   R  2  

3

3

4 R     212

2

2  y y x x  x    

6.  Escribir las siguientes expresiones algorítmicas en expresiones algebraicas.

a)  B ^ 2 –   4 * A * C b)  3 * X ^ 4 –  5 * X ^ 3 + X * 12  –  17c)  (B + D) / (C + 4)d)  (X ^ 2 + Y ^ 2) ^ (1 / 2)

TEMA IV.- Estructuras de control

Se denomina estructuras de control al conjunto de estructuras que controlan el modo de ejecución de un

 programa y estas son estructuras secuenciales, estructuras selectivas y estructuras repetitivas.

1.- ESTRUCTURAS DE ASIGNACIÓN

Las operaciones de asignación es el modo de darles valores a una variable. La operación de asignación serepresenta con el símbolo u operador . La operación de asignación se conoce como instrducción o sentencia deasignación cuando se refiere a un lenguaje de programación.

El formato general de una operación de asignación es:

Nombre de la variable expresión

Ejemplos:A5total3+6

 N0 N N+1M8<5Y‟CALLE‟ 

1.1.- Tipos de asignación

Asignación simple.- cuando a una variable le corresponde nada mas que un datoAsignación aritmética- cuando a una variable le corresponde el resultado de una expresión aritmética.Asignación lógica.- cuando a una variable le corresponde el resultado de una expresión lógica

Las asignaciones se usan también 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 quese produce un determinado suceso o acción, los contadores frecuentemente se usan el las estructuras repetitivas con lafinalidad de contar sucesos o acciones internas de un bucle. Los contadores siempre deben realizar la operación deinicialización y posteriormente las sucesivas de incremento o decremento respectivamenteAcumulador.-son variables cuyo valor se incrementa o decrementa en una cantidad variable. De la misma forma que elcontador necesita inicializarse para luego incrementase o decrementarse según el parámetroInterruptores.-Un interruptor, bandera o switch es una variable que pude tomar valores verdad o falso a lo largo de laejecución de un programa, comunicando así información de un aparte a otra del mismo. Pueden ser utilizados para elcontrol de bucles.

En Las asignaciones no se pueden asignar valores a una variable de un tipo diferente al suyo. Se presentara unerror si se trata de asignar valores de tipo carácter a una variable numérica o una valor numérico a una variable de tipocarácter.

2.- MODELO DE ESCRITURA DE UN ALGORITMO

Como se menciono en un comienzo la herramienta mas adecuada para la escritura es el pseudocódigo. Usando pseudocódigo los algoritmos se presentaran en esta forma:

Page 17: Laboratorio de Algoritmia

8/10/2019 Laboratorio de Algoritmia

http://slidepdf.com/reader/full/laboratorio-de-algoritmia 17/26

  18

Algoritmo <nombre del algoritmo>//Declaración de constantesConst

<nombre_de_constante1 = valor1>// declaración de variablesvar

<tipo_de_dato>:<nombre_de_variable> [, <nombre_de_variable2>, ...]// los datos deben ser declarados antes de ser usadosinicio

<acción1><acción2>// se pueden usar todas las estructuras de control.....<acción N>

fin

3.- ESTRUCTURAS SECUENCIALES

Se caracterizan porque una acción se ejecuta detrás de otra. El flujo del programa coincide con el orden físicoen el que se ha ido poniendo las instrucciones.

Diagrama de flujo Diagrama N-S Pseudocódigo

 ACCION 1

 ACCION 2

 ACCION 3

 

 ACCION 1

 ACCION 2

 ACCION 3

 

ACCION 1ACCION 2ACCION 3

4.- FUNCIONES INTERNAS

En los lenguajes de programación existen ciertas funciones predefinidas o internas que aceptan unosargumentos y producen un valor denominado resultado. Como funciones numéricas se usarán:

Nro Función Descripción Tipo argumento Resultado1 ABS(X) Valor absoluto de x Entero o real Entero o real2 ARCTAN(X) Arcotangente de x Entero o real Real3 COS(X) Coseno de x Entero o real Real4 CUADRADO (X) Cuadrado de x Entero o real Entero o real5 INT(X) Entero de x Real Entero6 EXP(X) e elevado a x Entero o real Real7 LN(X) Logaritmo neperiano de x Entero o real Real8 LOG10(X) Logaritmo base 10 de x Entero o real Real9 SQRT(X) Raiz cuadrada de x Entero Real

10 ROUND(X) Redondeo de x Real Entero11 SIN(X) Seno de x Entero o real Real12 TRUNC(X) Parte entera de x Real Entero

Ejemplos:

Page 18: Laboratorio de Algoritmia

8/10/2019 Laboratorio de Algoritmia

http://slidepdf.com/reader/full/laboratorio-de-algoritmia 18/26

  19

Función Resultado

ABS(9) 9ABS(-12) 12

CUADRADO (4) 16ROUND(6.6) 7ROUND(3.1) 3ROUND(-3.2) -3

TRUNC(5.6) 5TRUNC(3.1) 3TRUNC(-3.8) -3

EJERCICIOS PARA EL TEMA IV.

1.- Escribir las siguientes expresiones algebraicas en algorítmicas.

a) 

3

8

32

83

loe

 

 b)  42

1cos3

3e  

2.- Determine que valores toma las variables siguientes después de realizar las operaciones

Expresión de Asignación Resultado

A 4B AB A + 3A 5B A + 6A A + 1B A –  5A 3B 20CA + B

B A + BA B –  C

3.- Ejercicios con estructuras secuenciales 

1.  Obtener la edad de una persona en meses, si se ingresa su edad en años y meses. Ejm: 3 años 4 meses da 40meses.

2.  Colocar a un apellido el prefijo Profesor Ejm: ingresado Gómez imprima Profesor Gómez

3.  Escriba un algoritmo que permita convertir un valor ingresado en pies a metros. Si 1 pie = 30.48 cm.

4.  Ingresado un ángulo en grados sexagesimales, lo convierta a radianes. 180 grados sexagesimales =

3.1416 radianes.

5.  Convertir una velocidad expresada en km/h a m/s Nota 1Km=1000 m y 1h=3600 s.

6.  Calcular y mostrar el área de un triángulo conocidos la base y altura.

7. 

Calcular el área y perímetro de un triángulo, conocidos sus lados.

8.  Calcule el interés (int) generado por un capital depositado (capdep) durante cierta cantidad de períodos

(cp) a una tasa de interés determinada (tasa) expresada en porcentaje. Use la fórmula: Monto =

(capdep) * (1 + tasa / 100)cp

Int = Monto –  capdep

9.  Escriba un algoritmo que lea la velocidad en km/h y el número de horas transcurridas por un móvil,

para determinar la distancia recorrida.

10. 

Determine el promedio de 3 números reales.

11.  Haga un algoritmo que permita mostrar el nombre y el salario semanal del empleado de una compañía.

El algoritmo debe permitir ingresar el nombre, el número de horas trabajadas y la tarifa por hora.

12.  Hacer un algoritmo que me permita ingresados dos números calcular las 4 operaciones básicas (suma,

resta, multiplicación, división) y potencia con exponente real . El algoritmo debe mostrar los números y

los resultados.

13.  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 trigonométricas el ángulo debe ser

expresado en radianes

14.  Un corredor reporta el número de minutos que corre en un año. Escribir un programa que dé como

salida la cantidad de tiempo equivalente en meses, semanas, días, horas y minutos.

Page 19: Laboratorio de Algoritmia

8/10/2019 Laboratorio de Algoritmia

http://slidepdf.com/reader/full/laboratorio-de-algoritmia 19/26

  20

CAPITULO III

TEMA V.- Estructuras de selección

1.- OPERADORES LÓGICOS

Los operadores lógicos o boléanos básicos son:

NO (NOT)

A No A

Verdadero FalsoFalso Verdadero

Y (AND)

A B A y B

Verdadero Verdadero VerdaderoVerdadero Falso Falso

Falso Verdadero FalsoFalso Falso Falso

O (OR)

A B A y B

Verdadero Verdadero VerdaderoVerdadero Falso Verdadero

Falso Verdadero VerdaderoFalso Falso Falso

Estos operadores con respecto a las prioridades son los últimos en resolverse

2.- ESTRUCTURAS SELECTIVAS O DECISIÓN

Para la aplicación se debe tener en cuenta las expresiones lógicas cuyo valor siempre verdadero o falso.Recuerde que existes dos constantes lógicas, verdad (true) y falso (false) y que las variables lógicas pueden tomas soloestos dos valores, se denomina también expresiones booleanas.

Las expresiones lógicas se forman combinando constantes lógicas y otras expresiones loginas, utilizando losoperadores lógicos not, and y or, y los operadores de relación. 

En conclusión la estructuras selectivas o decisión o comparación o pregunta, se ejecutan unas acciones u otras

según se cumpla o no un adeterminada condición; pueden ser: simples, dobles, o multiples.

2.1.- Simples.- Se evalúa la condición si esta y si esta da como resultado verdad se ejecuta una determinada acción ogrupo de acciones, en caso contrario se salta dicho grupo de acciones.

Diagrama de flujo Diagrama N-S Pseudocódigo

Page 20: Laboratorio de Algoritmia

8/10/2019 Laboratorio de Algoritmia

http://slidepdf.com/reader/full/laboratorio-de-algoritmia 20/26

  21

CONDICION

 ACCIONO ACIONES

NO

SI

 

CONDICION

SI

 ACCIONO ACCIONES

 

SI <condición> entonces

<Acción o acciones>fin_si

2.2.- Dobles.- Cuando el resultado de evaluar la condición es verdad se ejecuta una determinada acción o grupo deacciones y si el resultado es falso otra acción o grupo de acciones diferentes.

Diagrama de flujo Diagrama N-S Pseudocódigo

CONDICION

 ACCION 1

NOSI

 ACCION N

 

CONDICION

SI

 ACCION 1

NO

 ACCION 2

 

SI <condición> entonces

<Acción 1>SI_NO

<Acción 2> 

fin_si

2.3.- Múltiples.- Se ejecutan unas acciones u otras según el resultado que se obtenga al evaluar una expresión. 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 queconstruyen el tipo, excepto el primero y el ultimo, tienen un único predecesor y un único sucesor

Diagrama de flujo Diagrama N-S Pseudocódigo

CONDICION

 ACCION 1 ACCION N ACCION 1

 

CONDICION

V1

 ACCION

1

V nV2 V3

 ACCION

2

 ACCION

3

 ACCION

N

 

Según_sea <expresion> hacer

<lista1>:<Acción 1><lista2>:<Acción 2>.......................

SI_NO

<Acción n> 

fin_segun

EJERCICIOS PARA EL TEMA V.

1.- Ejercicios con estructuras selectivas

Variables y Expresiones booleanas Char Sexo, EstCiv, GradInstSexo [ 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 

Page 21: Laboratorio de Algoritmia

8/10/2019 Laboratorio de Algoritmia

http://slidepdf.com/reader/full/laboratorio-de-algoritmia 21/26

  22

( 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 exámenes 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 ó más.

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

También debe mostrar el sueldo neto

19.  Hacer un algoritmo que me permita determinar el numero de calorías necesarias de acuerdo al sexo: Si

el sexo es “femenino”, el numero de calorías diarias que se necesitan consumir equivalen 16 veces el pes o

del cuerpo en libras. Si el sexo es “masculino”, el número de calorías 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 comisión es del 3%. Si el monto es $150.00 omás, la tasa de comisión deberá ser 5%. Calcular y mostrar la comisión.

22.  Encontrar cual de tres valores leídos ( A, B, C) por la computadora, es el menor

23.  Encontrar cual de tres valores leídos ( A, B, C) por la computadora, es el mayor.

24.  Ordenar e Mostrar ascendentemente los 3 valores leídos (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 más de S/.1000.00.

26.  El impuesto de ventas es del 6% en cualquier venta de $500.00 o menos, pero sólo 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 según su desempeño. Una calificación 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 calificación y el mensaje apropiado.

28. 

Dada 3 calificaciones de examen, imprime “mejorando” si la tercera calificación es más alta que elpromedio de los dos primeros exámenes; imprime “empeorando” si la tercera calificación es 5 o más

puntos por debajo del promedio.

2.- Selectiva múltiple:

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:

Número_Producto Precio_Unitario

100 24.05

247 105.00

16 10.35

240 16.00

Si la cuenta total es de s/.1000.00 o más, 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%.

30.  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.

31.  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)

32.  Dados 3 números que representan una fecha, el segmento deberá imprimir la fecha. Si los números

ingresados son: 11, 7, 85 la fecha a imprimir sería Noviembre, 7 de 1985.

33. 

Escriba un algoritmo que lea un número entero positivo N (debe validar la entrada). Si N termina en0,5,7 u 8 se cambia por el doble, si termina en 1 u 9 por la décima parte, en otro caso que mantenga su

valor.

34.  La tasa de impuestos sobre sueldos está basada en claves e ciudad, como se muestra en la tabla: Clave de

ciudad Tasa de impuesto

Page 22: Laboratorio de Algoritmia

8/10/2019 Laboratorio de Algoritmia

http://slidepdf.com/reader/full/laboratorio-de-algoritmia 22/26

  23

“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.

Page 23: Laboratorio de Algoritmia

8/10/2019 Laboratorio de Algoritmia

http://slidepdf.com/reader/full/laboratorio-de-algoritmia 23/26

  24

CAPITULO IV

TEMA VI.- Estructuras Repetitivas

Las computadoras están especialmente diseñadas para todas aquellas aplicaciones en las cuales una operación oconjunto de ellas deben repetirse muchas veces. Un tipo muy importante de estructura es el algoritmo necesario pararepetir una o varias acciones un numero determinado de veces. Un programa que lee una lista de números puede repetir

la misma secuencia de mensajes al usuario e instrucciones de lectura hasta que se lean todos los números de un archivo.Las estructuras que repiten una secuencia de instrucciones un numero determinado de veces o denominadas bucles, y se llama iteración al hecho de repetir la ejecución de una secuencia de acciones.

Tomaremos el siguiente ejemplo: Se desea sumar una lista de números escrito por teclado (por ejemplo,calificaciones de los alumnos de una clase). El medio conocido hasta ahora es leer los números y añadir sus valores auna variable SUMA que contenga las sucesivas sumas parciales. La variable SUMA se hace igual a cero y acontinuación se incrementa en le valor del numero cada vez que uno de ellos se lea. El algoritmo que resuelve este

 problema es:

INICIO

NUMERO

S = 0

S = S + NUMERO

NUMERO

S = S + NUMERO

NUMERO

S = S + NUMERO

INICIO

 

Y así sucesivamente para cada número de la lista. En otras palabras el algoritmo repite muchas veces lasacciones:

NUMERO

S = S + NUMERO

 

Tales opciones repetitivas se denomina bucles o lazos. La acción (o acciones) que se repiten en un bucle sedenomina iteración. Las dos principales preguntas a realizarse en el diseño de un bucle son:

Page 24: Laboratorio de Algoritmia

8/10/2019 Laboratorio de Algoritmia

http://slidepdf.com/reader/full/laboratorio-de-algoritmia 24/26

  25

  ¿Qué contiene el bucle?  ¿Cuántas veces se debe repetir?

Cuando se utiliza un bucle para sumar una lista de números, se necesita saber cuantos números se han desumar. Para ello necesitaremos conocer algún medio para detener el bucle. En el ejemplo siguiente usaremos la técnicade solicitar al usuario el numero que se desea, por ejemplo, N. Existen dos procedimientos para contar el numero deiteraciones usar la variable TOTAL que se inicializa a la cantidad de numerosa que se desea y a continuación sedecrementa en uno cada vez que el bucle se repite (este procedimiento añade una acción 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 iteración hastallegar al numero deseado.

INICIO

N

S=0

TOTAL=N

NUMERO

S = S + NUMERO

TOTAL=TOTAL-1

INICIO

TOTAL>0

SI

NO

"La suma de

numeros es:",S

 

Inicio

S0 

Leer(n)

TOTAL N

Mientras TOTAL>0 Hacer

Leer(numero)

S  S + numero

TOTAL  TOTAL –  1Fin_mientras

Escribir(“La suma de números es:”,S) 

Fin 

1.- TIPOS DE BUCLES:

  Independientes: cuando son externos unos a otros  Anidados: cuando están 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)

Page 25: Laboratorio de Algoritmia

8/10/2019 Laboratorio de Algoritmia

http://slidepdf.com/reader/full/laboratorio-de-algoritmia 25/26

  26

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 número especificado de veces y de modoautomático controla el numero de iteraciones o pasos a través del cuerpo del bucle.

Diagrama de flujo Diagrama N-S Pseudocódigo

Para Var=Val. ini.,

Val. fin., Variación

 ACCIONES A

REPETIR

 

 ACCIONES A REPETIR

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

Siguiente (fin_para)

 

PARA V=VI HASTA VF PASOS VP<Acción 1>.......................<Acción N>

SIGUIENTE V

NOTA:

V- VariableVI- Valor InicialVF- Valor FinalVP- Valor de secuencia de incrementoo decremento 

3.- ESTRUCTURA REPETITIVA WHILE (MIENTRAS)

La estructura repetitiva WHILE  (mientras o hacer mientras) es aquella en que el cuerpo del bucle se repitemientras se cumple una determinada condición. Cuando se ejecuta la instrucción WHILE, lo primero que se verifica esla condición (una expresión bolean). Si se evalúa falsa, el programa finaliza el bucle y sigue la instrucción acontinuación en el cuerpo del algoritmo, si la expresión booleana es verdadera, entonces se ejecuta el cuerpo del bucle,y de nuevo se evalúa la expresión booleana, este proceso se repite una y otra vez minetras el resultado de la expresión

 booleana (condición) sea verdadera.

Diagrama de flujo Diagrama N-S Pseudocódigo

CONDICION

SI

NO

 ACCIONES A

REPETIR

 

MIENTRAS CONDICION

 ACCIONES A REPETIR

 

MIENTRAS condición HACER

<Acción 1>

<Acción 2>.......................<Acción 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 decomprobar la condición de repetición. En la estructura mientras si el valor de la expresión booleana es inicialmentefalsa, 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 condición determinada que se comprueba alfinal del bucle.

Este bucle se repite siempre y cuando el valor de la condición booleana sea falsa, los opuesto de la sentenciaWHILE

Diagrama de flujo Diagrama N-S Pseudocódigo

CONDICION

SI

NO

 ACCIONES A

REPETIR

 

REPETIR CONDICION

 ACCIONES A REPETIR

 

REPETIR

<Acción 1><Acción 2>.......................<Acción N>

HASTA_QUE condición 

EJERCICIOS PARA EL TEMA VI

Page 26: Laboratorio de Algoritmia

8/10/2019 Laboratorio de Algoritmia

http://slidepdf.com/reader/full/laboratorio-de-algoritmia 26/26

  27

1.- Estructuras repetitivas

35.  Mostrar un listado con los números de 1 al 100.36.  Mostrar los números pares de 2 al 200.37.  Mostrar los números pares de 2 hasta un número N (que es leído por la computadora)38.  Mostrar la sumatoria de los números del 1 al 100 .39.  Mostrar dos listados uno con los números impares de 1 a 999 y otro con los pares de 2 a 1000.

40. 

Mostrar un listado con los números del 1 al 100, con su respectivo cuadrado al lado. Cada pareja en una

línea.

41.  Mostrar un listado con los valores de 1, 2, ....., 1000 unidades de un producto , junto con su costo

respectivo, si el precio unitario es leído por la computadora.

42.  Producir el mismo listado anterior si existe una promoción 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.

43.  Mostrar la tabla de multiplicar del 4 .44.  Mostrar la tabla de multiplicar de un número cualquiera N, que sea leído por la computadora.

45.  Mostrar las tablas de multiplicar del 4 y del 5.46.

 

Mostrar un listado con los números consecutivos de M a N, siendo M y N dos valores que son leídos por

la computadora, tales que M < N.

47. 

Imprimir un listado que contenga en cada línea: Número par del 2 al 200; múltiplos de 3 del 3 al 300;múltiplos de 4 del 4 al 400.

48.  Resolver la función f (x)= x3 + x

2  –  5 para valores de x de 0 a 10 , incrementándose de 1 en 1.

49.  Resolver la función y = 3.5 x3  –  2.1 x

2 + 3, PPAAR R AA x que toma valores de 1 al 20, de 1 en 1.

50.  Resolver la función z= (4 x3  –  x

2 ) / ( x + 3 ) para valores de x de – 10 hasta N en incrementos de 0.5. N es

leído por el computador y se debe evitar la división por cero.

51.  Mostrar los enteros de 1 a N ( N es leído por la computadora ) con su respectivo cuadrado. Suponga que

el cuadrado se halla de la siguiente manera :

Número Resultado del cuadrado obtenido así

1 1 = 1

2 1 + 3 = 4

3 1 + 3 + 5 = 9

52. 

Mostrar los números de Fibonacci menores de 100. Estos se calculan sumando los dos anteriores. Así: 0,

1, 1, 2, 3, 5, 8, 13, ...53.  Mostrar los 100 primeros números de la serie de Fibonacci

54.  Mostrar los números primos menores de 500.Primo es el número divisible por si mismo y por 1.

55.  Obtener los perímetros de triángulos, ingresando sus lados por teclado. Terminar cuando uno o mas

lados ingresados sea cero.

56. 

Mostrar los perímetro de varios triángulos ingresados sus lados por teclado, hasta que ya no desee.

57.  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

58.  Hacer un algoritmo que permita determinar todos los divisores de un número ingresado por el teclado.

59.  Hacer un algoritmo que permita simplificar una fracción. Ejm 15/18 = 5/6

60.  Calcular la distancia recorrida por un móvil, leyendo las entradas adecuadas (velocidad y tiempo) hasta

que ya no desee continuar.

61. 

Convertir diferentes valores ingresados en pulgadas a centímetros. Hasta que el valor de pulg sea cero.

62. 

Mostrar el nombre y el salario semanal de cada empleado de una compañía. (120 empleados)63.  Calcular el total de las calificaciones de tres exámenes tomados a cada uno de sus alumnos ( 25

alumnos). El nombre del alumno debe quedar impreso junto con su calificación promedio.