Manual Algoritmos 2018 - H. Caselli G.

February 16, 2023 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download Manual Algoritmos 2018 - H. Caselli G....

Description

 

1ra. Edición-2018

 

1

 

 

Universidad Univers idad Nacional del Santa Facultad de Ingeniería Escuela Profesion Profesion al de Ingeniería de Sistemas e Informática

TABLA DE CONTENIDOS

Semana 01.- Introducción a los algoritmos, análisis de problemas y diseño de algoritmos ........... 3   Sem Se man ana a 02.- Es Estructu tructuras ras Se Secu cuen enciales ciales y Ope peracio racione nes s Bás Básicas icas.... ....... ...... ...... ....... ....... ...... ....... ....... ...... ....... ....... ...... ....... ....... ..... .. 9  Semana 03.- Estructuras Condicionales simples y dobles. Operadores de relación y operadores lógico lóg icos s Co Cond ndicion icionale ales s sim simple ples s y dob dobles les.. ............ ................... ............. ............. .............. ............. ............. ............. ............. .............. ............. ............. ......... 14  Sem Se man ana a 04.- Estru Estructura ctura d de e sele selecció cción nm múltiple últiple y de co control: ntrol: desd desde e... ...... ...... ....... ....... ...... ....... ....... ...... ....... ....... ...... ....... ....... ... 22  Semana 05.- Estructuras de control: mientras, hacer mientras. .................................................. 32  Sem Se man ana a 06.- Fu Func ncione iones, s, proce procedim dimiento ientos s y algo algoritmo ritmos s recu recursivos rsivos... ...... ...... ....... ....... ...... ....... ....... ...... ....... ....... ...... ...... ....... ...... 38  Semana 07.- Aplicaciones que combinan las diversas estructuras de la unidad ......................... 45  Semana ana 08.08.- Exam xamen de 1e 1era ra Unid nidad ad...... ............. .............. ............. ............. ............. ............. .............. ............. ............. ............. ............. .............. .......... ... 48  Semana 09.- Arreglos, Arreglos unidimensionales ...................................................................... 49  Semana 10.- Arreglos multidimensionales: Matrices ................................................................... 60  Semana 11.- Algoritmos de ordenamiento y búsqueda ............................................................... 71  Sem Se man ana a 12.- Ja Java va:: Es Estructu tructuras ras de con control: trol: mientras ientras,, ha hace cerr mientras ientras..... ....... ....... ...... ....... ....... ...... ....... ....... ...... ...... ....... ...... 79  Sem Se mana ana 13.- Java Java:: Imp Implem lementar entar Arreglos: Unidim Unidimens ensionales ionales y mu multltidime idimensiona nsionales. les. .. ..... ..... .... .... .... ..... ..... .. 83  Sem Se mana ana 14.- Java Java:: Imp Implem lementar entar funciones funciones,, proce procedim dimientos ientos y al algoritmo goritmos s recursivos recursivos.. ... ..... .... .... .... ..... ..... .... 88  Semana ana 15.- Exa Exam men de 2 2da da U Unid nidad ad...... ............. ............. ............. .............. ............. ............. ............. ............. .............. ............. ............. ............. ........... ..... 94  Semana ana 16 16..- Ta Tarea rea d de e Pro Produ ducc cción ión....... .............. ............. ............. ............. ............. .............. ............. ............. ............. ............. .............. ............. ............. ......... 95  Referencias Bibliográficas ........................................................................................................... 96 

 ALGORITMOS

Mg. Hugo Caselli Gismondi



 

 

Universidad Univers idad Nacional del Santa Facultad de Ingeniería Escuela Profesion Profesion al de Ingeniería de Sistemas e Informática

Introducción ión a los algoritmos, análisis de problema Semana 01Semana 01.- Introducc Semana 01.- Introducción a los algoritmos, análisis de problemas y diseño de algoritmos

 AL GORTIMOS  ALGORTIMOS ¿Qué ¿Q ué es un algoritm algoritmo? o? Es la secuencia de pasos (método) que nos permite resolver un problema determinado Además, debe cumplir estas condicione condiciones: s:   Finito:  El algoritmo debe acabar tras un número finito de pasos. Es más, es casi fundamental que sea en un número razonable de pasos.   Definible: el algoritmo debe definirse de forma precisa para cada paso, es decir, hay que evitar toda ambigüedad al definir cada paso. Puesto que el lenguaje humano es impreciso, los algoritmos se expresan mediante un lenguaje formal, ya sea matemático o de programación para un computador. Esto significa que ejecutando 2 veces el mismo algoritmo con los mismos datos de entrada debe darnos el mismo resultado.   Efectivo: se entiende por esto que una persona sea capaz de realizar el algoritmo de modo exacto por que se indica el orden de realización de cada •





paso También debe contar de las 3 partes siguientes:   Entrada: el algoritmo tendrá cero o más entradas, es decir, cantidades dadas antes de empezar el algoritmo. Estas cantidades pertenecen además a conjuntos especificados de objetos. Por ejemplo, pueden ser cadenas de caracteres, enteros, naturales, fraccionarios, etc. Se trata siempre de cantidades representativas del mundo real expresadas de tal forma que sean aptas para su interpretación por el computador.   Proceso: Donde se describe la transformación de los datos de entrada en un resultado válido.   Salida: el algoritmo tiene una o más salidas, en relación con las entradas. •





Algo de historia Uno de los algoritmos más antiguos conocidos es el algoritmo del matemático griego Euclides. El término algoritmo proviene del matemático Mohammed ibn Musa al-Khowarizmi, matemático persa (actual Irán), que vivió aproximadamente entre los años 780 y 850 d.C. (Siglo IX) El describió la realización de operaciones elementales en el sistema de numeración decimal. De al-Khwarizmi se obtuvo la derivación algoritmo. Los recursos que utiliza un algoritmo en relación a un computador son principalmente:   El tiempo: período transcurrido entre el inicio y la finalización del algoritmo.   La memoria: la cantidad (la medida varía según la máquina) que necesita el algoritmo para su ejecución. Obviamente, la capacidad y el diseño de la máquina pueden afectar al diseño del algoritmo. •



 ALGORITMOS

Mg. Hugo Caselli Gismondi



 

 

Universidad Nacional Nacional del Sa Santa nta Facultad de Ingeniería Escuela Profesion Profesion al de Ingeniería de Sistemas e Informática

 ANÁ LISIS DE PROB  ANÁLISIS PROBLEMA LEMAS S En nuestra vida cotidiana, cada que realizamos una actividad o tarea tomamos decisiones, que en definitiva es la manera de resolver micro problemas, que en su suma resuelven nuestros quehaceres diarios de manera inadvertida, es más, al comienzo, por ejemplo de muy niños aprendemos a lavarnos los dientes y esta actividad responde a una serie de tareas o actividades, que a medida que lo hemos resuelto una primera vez, el hecho se vuelve repetitivo y cada vez vamos mejorando la manera en como realizamos tal actividad y de igual manera ocurre para cualquier otra actividad que realicemos por primera vez.

De acuerdo con Cairo, para solucionar un problema debemos seguir las 3 siguientes etapas: a) Análisis profundo del problema b) Diseño y Construc Construcción ción del algoritmo c) Verificac Verificación ión del Algoritmo. Recordando reunir las siguientes características para los algoritmos: algoritmos: Preciso: Los pasos a seguir en el algoritmo deben ser indicados claramente. Definido: El algoritmo, si se sigue dos veces con un conjunto de datos idénticos de entrada, debe arrojar los mismos de resultados. Finito: Elsiempre algoritmo, independientemente la complejidad del mismo, siempre debe ser de longitud definida es decir debe tener un fin. a) Análisis de dell probl ema Para poder identificar y definir bien un problema es conveniente responder a las siguientes preguntas: 1) ¿Qué entradas se requieren? (tipo de datos con los cuales se trabaja y cantidad). 2) ¿Cuál es la salida deseada? (tipo de datos de los resultados y cantidad). 3) ¿Qué método produce la salida deseada? 4) Requisitos o requerimientos adicionales y restricciones a la solución. qu e hace el programa En esta etapa se determina que b) Diseño y const rucci ón del algoritmo En esta siguiente etapa se determina como   hace el programa la tarea solicitada.

Y por lo general optamos por dividir el problema y resolverlo por partes, luego  juntamos esas partes en un todo integrado, bajo la técnica de diseño descendente de arriba hacia abajo (diseño top-down) Para el diseño y construcción del algoritmo se utilizan herramientas tales como los diagramas de flujo, los diagramas de Nassi-Shneiderman, los pseudocódigos, pseudocódi gos, entre otros.

 ALGORITMOS

Mg. Hugo Caselli Gismondi



 

 

Universidad Univers idad Nacional del Santa Facultad de Ingeniería Escuela Profesion Profesion al de Ingeniería de Sistemas e Informática

1) Diagramas de Flujo En ingles se le conoce como flowchart, y es una representación gráfica del algoritmo. Los símbolos que emplean han sido normalizados por el ANSI (American National Standards Institute) y son los siguientes:

2) Diagramas de Nassi-Shneider Nassi-Shneiderman man Es un diagrama de flujo en base a cajas o bloques contiguos, donde se omiten las flechas, de igual amanera estos diagramas se leen de arriba hacia abajo. Los siguientes son los símbolos principales:

 ALGORITMOS

Mg. Hugo Caselli Gismondi



 

 

Universidad Nacional Nacional del Sa Santa nta Facultad de Ingeniería Escuela Profesion Profesion al de Ingeniería de Sistemas e Informática

Ejemplo de Diagrama N-S:

3) Pseudocódigo O falso lenguaje, es una descripción de alto nivel compacta e informal del principio operativo de un algoritmo que luego se traducirá en un programa computacional. Normalmente, el pseudocódigo omite detalles que no son esenciales para la comprensión humana del algoritmo. No existe una sintaxis estándar para el pseudocódigo, pero nosotros utilizaremos las siguientes convencion convenciones: es:   Asignación x  

y

Estructura secuencial  Sentencia1 Sentencia2 (.........)

Sentencian

 ALGORITMOS

Mg. Hugo Caselli Gismondi

6  

 

 

Universidad Nacional Nacional del Sa Santa nta Facultad de Ingeniería Escuela Profesion Profesion al de Ingeniería de Sistemas e Informática  

Selección Simple Si  condición entonces  entonces   Si condición  Sentencia(s) Fin_si  Fin_si  



  SelecciónSi  doble  condición  condición entonces  entonces   Si Sentencia(s)1 Caso contrario Sentencia(s)2  Fin_si  Fin_si  

 

Selección múltiple Si condición1 entonces  Si  entonces  Sentencia(s)1 Caso contrario Si  Si condición2 entonces Sentencia(s)2 (.........)

Caso contrario Si  Si condiciónn entonces Sentencia(s)n1 Caso contrario Sentencia(s)n2  Fin_si   

Selección Múltiple de CASOS Según expresión Según  expresión   hacer Caso valor1  Sentencia(s)1 Caso valor2  Sentencia(s)2 Caso valor3  Sentencia(s)3  (.........)

Caso contrario Sentencia(s)n  Fin_según 

 ALGORITMOS

Mg. Hugo Caselli Gismondi

7  

 

 

Universidad Nacional Nacional del Sa Santa nta Facultad de Ingeniería Escuela Profesion Profesion al de Ingeniería de Sistemas e Informática  

Estructura repetitiva (FOR) desde  0 hasta hasta n  n hacer desde i Sentencia(s)  Fin_desde 

o Para i Para 

0 hasta hasta n  n hacer

Sentencia(s)  Fin_para   

Estructura repetitiva (WHILE-DO)  Mientras condición   Mientras condición  hacer  Sentencia(s)  Fin_mientras 

 

Estructura repetitiva (DO-WHILE) Hacer  Sentencia(s)   Mientras  Mientras condición  condición 

c) Ve Verifi rifi cación del algoritmo Una vez que se ha 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. El modo inicial de comprobar un algoritmo es mediante su ejecución manual, usando datos significativos que abarquen todo el posible rango de valores y anotando en una hoja de papel las modificaciones que se den estos datos y en los del resto del algoritmo, en las diferentes fases hasta la obtención de los resultado r esultados. s. Este proceso se conoce como prueba de escritorio , que nos va a permitir depurar los errores del algoritmo y corregir y/o eliminar dichos errores. Siendo los errores lógicos   los que suelen estar en el diseño del algoritmo. Estos errores son los más difíciles de detectar, ya que más adelante el programa

puede producir de compilación ni de ejecución,Eny este sólo puede funcionar advertirse yelnoerror por laerrores obtención de resultados incorrectos. caso se debe volver a la fase de diseño del algoritmo, modificar el algoritmo, cambiar el programa fuente y compilar y ejecutar una vez más. Referencias Cairó Battistutti, O. (2005). Metodología de la Programación. Algoritmos, diagramas diagramas de flujo y programas. México: Alfaomeg Alfaomega. a. Joyanes Aguilar, L. (2008). FUNDAMENTOS DE PROGRAMACIÓN. Algoritmos, estructura de datos. Madrid. España: McGRAW-HILL McGRAW-HILL/INTERAMERICANA /INTERAMERICANA DE ESPAÑA, S. A. U. López García, J. (2009). Algoritmos y Programación. Programación. Guía para doce docentes. ntes. Bogota,

Colombia: Fundación Gabriel Piedrahita Uribe.

 ALGORITMOS

Mg. Hugo Caselli Gismondi

8  

 

 

Universidad Univers idad Nacional del Santa Facultad de Ingeniería Escuela Profesion Profesion al de Ingeniería de Sistemas e Informática

Semana 02 Semana 02.- Estructuras Secuenciales y Operaciones Básicas  

Estructura Estruct ura gene general ral de un prog rama

Luego de analizar el problema y de plantear una solución algorítmica lógica vía cualquiera de las herramientas antes mencionadas (diagramas de flujo, diagramas Nassi-Shneiderman y/o pseudocódigo), debemos trasladar esa solución a código del lenguaje de programación con el cual vamos a trabajar (en nuestro caso el lenguaje de programación seleccionado será JAVA), el diseño de la estructura general de un programa tiene los siguientes componentes que se muestran en la figura siguiente: PROCESO

Entrada

Salida

Programa (algoritmo de solución) 

La entrada de datos se puede proporcionar desde teclado y/o disco principalmente, existen otras formas de proporcionar entradas como los scanner y otros periféricos que no son de interés para el curso. Con estas entradas alimentaremos al algoritmo que los procesara, para enseguida obtener datos de salida que se presentaran en dispositivos periféricos de salida como pantalla, disco, impresoras, etc. La salida se puede contextualizar como el acto de escribir de manera genérica. Antes de abordar la estructura secuencial, es necesario que nos familiaricemos con ciertos conceptos que participaran en la implementación de un algoritmo en un lenguaje de programación. Conceptos f undamentale undamentaless a) Tipos de datos Empezaremos reconociendo los datos a procesar por un computador que se clasifican en: • Simples • Estructurados

La principal característica de los datos simples es que hacen referencia a un único valor a la vez. Dentro de este grupo de datos se encuentran: los números enteros, los números reales, los caracteres, los booleanos, los enumerados Los datos estructurados  se caracterizan por el hecho de que con un nombre (identificador de variable estructurada) se hace referencia a un grupo de casillas de memoria. Es decir, un dato estructurado tiene varios componentes. Cada uno de los componentes puede ser a su vez un dato simple o estructurado.

 ALGORITMOS

Mg. Hugo Caselli Gismondi



 

 

Universidad Univers idad Nacional del Santa Facultad de Ingeniería Escuela Profesion Profesion al de Ingeniería de Sistemas e Informática

A continuación, trataremos los datos simples: enteros, reales, caracteres y booleanos; y el dato estructurado: cadena de caracteres. Posteriormente estudiaremos los datos estructurados arreglos.  

Datos numéricos Dentro de los tipos de datos numéricos encontramos los números enteros y los números reales. Los enteros son números que pueden estar precedidos del signo + o y que no tienen parte decimal. Por ejemplo: 128 256 -2114 18580 Los reales son números que pueden estar precedidos del signo + o y que tienen una parte decimal. Por ejemplo: 9.3 256.0 -71.568 16000.50   Datos alfanumérico alfanuméricoss Dentro de este tipo de datos encontramos los de tipo carácter (simple) y cadena de caracteres (estructurado). Son datos cuyo contenido pueden ser letras del abecedario (a,b,c,...,z; A. B, C, ….. , Z), dígitos (0, 1, 2 ..... 9) o símbolos especiales (#, $, * ,* , %, /,..., etc.). Es necesario indicar que, si bien este tipo de datos pueden contener números, no pueden ser utilizados para realizar operacioness aritméticas. operacione Un dato tipo carácter contiene un solo carácter, y se escribe entre apostrofes. Por ejemplo: ‘b’ ‘A' ‘$’ ‘8' Un dato tipo cadena de caracteres contiene un conjunto de caracteres, y se escribe entre comillas. La longitud de una cadena depende de los lenguajes de programación, aunque normalmente se acepta una longitud máxima de 255. Por ejemplo: “ABCD” “$5_6” “Charly García”  

Datos lógicos Dentro de este tipo de datos encontramos los booleanos. Son datos que sólo pueden tomar dos valores: verdadero (true) o falso (false).

 

Identificadores Los datos que se procesan en un lenguaje de programación, sean simples o estructurados, tienen un nombre que permite su identificación, es por ello que se denominan identificadores y se forman de acuerdo a ciertas reglas (las mismas pueden variar dependiendo del lenguaje de programación utilizado): El primer carácter que forma un identificador debe ser una letra (a, b, c,…, z, A, B, C,… Z), el subrayado (_) o e símbolo dólar ($). Los demás caracteres pueden ser letras (a, b, c...,z, A, B, C,….Z), dígitos (0,1,2,...,9). La longitud del identificador varía en cada lenguaje de programación. Por ejemplo: SUMA Nota_01 color

 

Constantes Las constantes son datos que no cambian durante la ejecución de un programa. Para nombrar las constantes utilizamos los identificadores que mencionamos anteriormente.

 ALGORITMOS

Mg. Hugo Caselli Gismondi

10 

 

 

Universidad Nacional Nacional del Sa Santa nta Facultad de Ingeniería Escuela Profesion Profesion al de Ingeniería de Sistemas e Informática

Existen tantos tipos de constantes como tipos de datos, por lo tanto, puede haber constantes de tipo entero, real, carácter, cadena de caracteres, etc. Es muy importante que los nombres de las constantes sean representativos de la tarea que desempeñan dentro del programa de tal manera que no tenemos que adivinar que significan. Por ejemplo: PI = 3.141516 radio = 20  

Variables Las variables son objetos que pueden cambiar su valor durante la ejecución de un programa. Para nombrar las variables utilizaremos los identificadores que hemos explicado con anterioridad. Al igual que las constantes, pueden existir tantos tipos de variables como tipos de datos. De igual manera el nombre de las variables que incorporamos e un programa deben ser representativas de la tarea que desempeñan dentro del programa de tal manera que no tenemos que adivinar que significan. Por ejemplo: Suma radio nota_01

 

Operaciones aritmética aritméticass Para poder realizar operaciones aritméticas empleamos los operadores aritméticos entre operandos una operación aritmética será(números, un número.constantes o variables). El resultado de Los operadores aritméticos básicos son: potencia (^) 1, multiplicación (*), división (/), suma (+), resta (-). Las expresiones aritméticas se evalúan de izquierda a derecha teniendo en cuenta la jerarquía de los operadores aritméticos, los operadores de igual nivel también su evaluación es de izquierda a derecha, si deseamos alterar el orden de cálculo utilizamos los paréntesis ejecutándose primero los paréntesis más interiores. Jerarquía de los opera operadores dores aritm aritméticos éticos Jerarqu ía Operador Operación Mayor Altera orden de () cálculo ^ * /

menor

+ -

Potencia Multiplicación – división Suma - resta

Por ejemplo: Sí n1 = 12 y n2 = 14 Promedio = n1 + n2 / 2 Promedio = 19. Que es muy distinto a: Promedio = (n1 + n2) / 2 Promedio = 13.

1

 El circunflejo (^) debe ser reemplazado por la función adecuada en JAVA

 ALGORITMOS

Mg. Hugo Caselli Gismondi

11 

 

 

Universidad Nacional Nacional del Sa Santa nta Facultad de Ingeniería Escuela Profesion Profesion al de Ingeniería de Sistemas e Informática

Estruct ura Secue Estructura Secuencial ncial La estructura de control secuencial conocida también como estructura lineal. Se compone de instrucciones que deben ejecutarse en forma consecutiva, una tras otra, siguiendo una línea de flujo. Aplica para problemas muy sencillos. Esta estructura forma parte de soluciones de problemas complejos en las que se la utiliza mezclada con estructuras iterativas y condicionales. condicionales.

Esta estructura puede contener cualquiera de las siguientes instrucciones o sentencias:   Declaración de variables   Asignación de valores   Entrada de datos   Procesamiento de datos (operaciones)   Reporte de resultados.

Ejemplo 2.1 Dado el nombre y las notas de examen escrito y de prácticas de la primera unidad de un alumno de la Escuela de Educación Secundaria, elabore un algoritmo que imprima el nombre y el promedio de las calificaciones de Juan quien tuvo 09 en examen escrito y 14 en prácticas, tenga en cuenta que el examen escrito tiene peso 2. Solución  Constantes Nombre = Juan NotaEE = 9 NotaPR = 14

Variable Promedio

Diagrama de flujo

(tipo: Cadena) (tipo: entero) (tipo: entero)

(tipo: real)

Proceso (operación) Obtener el promedio: (NotaEE*2+NotaPR)/3.0 Salida Nombre y Promedio

 ALGORITMOS

Mg. Hugo Caselli Gismondi

12 

 

 

Universidad Nacional Nacional del Sa Santa nta Facultad de Ingeniería Escuela Profesion Profesion al de Ingeniería de Sistemas e Informática Diagrama Nassi-Shneiderman

Inicio Nombre = “Juan” NotaEE = 9 NotaPR = 14 Promedio = (NotaEE*2+N (NotaEE*2+NotaPR)/3 Escribir Nombre, PromediootaPR)/3 Fin Pseudocódigo

Inicio   Nombre 

“J uan” Not aEE 9 Not aPR 14 14 Promedio  ( Not aE aEE*2+ E*2+Not aPR aPR)) / 3   Nombre, Promedio  Escribir Nombre Fin  Ejercicios 2.1 Determine el producto de tres enteros cualquiera.

2.2 Determinar la suma de las N primeros números enteros de acuerdo a la siguiente formula: 2.3 Estimar el número de páginas de un texto que puede almacenar en la memoria de un computador. A un promedio de 300 palabras por página y 10 caracteres por palabra. Asumir que un carácter ocupa un (1) Byte. El tamaño de la memoria del computador debe ingresarse expresado en Kilobytes. Recuerde que un Kilobyte = 1024 bytes. 2.4 Dado la base y la altura de un rectángulo, calcule el área y el perímetro del mismo. 2.5 Determine y muestre el cuadrado y el cubo de un número. 2.6 Suponga que está a cargo de una veterinaria, y se tienen los datos de las mascotas: nombre, peso (en libras) y longitud (en pies). Muestre el nombre de la mascota, su peso expresado en Kilogramos y su longitud expresada en metros. Recuerde: 1 libra = 0.453592 Kilogramo y 1 pie = 0.3047 Referencias diagramas Cairó Battistutti, O. (2005). Metodología de la Programación. Algoritmos, diagramas de flujo y programas. México: Alfaomeg Alfaomega. a. Joyanes Aguilar, L. (2008). FUNDAMENTOS DE PROGRAMACIÓN. Algoritmos, estructura de datos. Madrid. España: McGRAW-HILL McGRAW-HILL/INTERAMERICANA /INTERAMERICANA DE ESPAÑA, S. A. U.

 ALGORITMOS

Mg. Hugo Caselli Gismondi

13 

 

 

Universidad Univers idad Nacional del Santa Facultad de Ingeniería Escuela Profesion Profesion al de Ingeniería de Sistemas e Informática

Semana 03 Semana 03.- Estructuras Condicionales simples y dobles. Operadores de relación y operadores lógicos Condicionales simples y dobles.

A medida que avanzamos, encontramos que la mayoría de los problemas no se logran resolver con estructuras secuenciales, pues siempre hemos de tomar una decisión, hay diversas alternativas por las cuales elegir sobre la base de evaluar una condición determinada. Para poder conseguir solucionar estos problemas utilizaremos las estructuras selectivas o condicionales o de selección y en este primer momento la estructura de selección simple, la cual gráficamente se representa con un rombo. Diagrama de flujo Cuando la condición es verdadera, se ejecutan las instrucciones (acciones) que están incluidas en se el ejecuta rectángulo contrario, no nadadel y seproceso, continúacaso con el resto del programa.

Nassi-Shneiderman

Pseudocódigo Si   condición  condición entonces  entonces   Si Sentencia(s) Fin_si  Fin_si  

Sentencia Sí Evalúa una condición que es una expresión booleana, que de ser verdadera ejecuta la(s) sentencia(s), de otro modo se continúa con las sentencias que siguen a la

instrucción Sí.

 ALGORITMOS

Mg. Hugo Caselli Gismondi

14 

 

 

Universidad Nacional Nacional del Sa Santa nta Facultad de Ingeniería Escuela Profesion Profesion al de Ingeniería de Sistemas e Informática

Para la condición que es una expresión booleana, iniciaremos utilizando los operadores relacionale relacionaless  que se detallan a continuación: Operador

Nombre

Ejemplo

Significado

<

menor que

a

mayor que

a>b

a es

mayor que b

== !=

igual a no igual a

a==b a!=b

a es igual a b a no es igual a b

=b

a es

menor que o igual a b

En JAVA el operador de igualdad es ==, no confundir con el simple = que es asignación. Operadores lógico s Operadores Los operadores lógicos son: && AND (el resultado es verdadero si ambas expresiones son verdaderas) || OR (el resultado es verdadero si alguna expresión es verdadera) ! NOT (el resultado invierte la condición de la expresión)

AND y OR trabajan con dos operandos y retornan un valor lógico basadas en las denominadas tablas de verdad. El operador NOT actúa sobre un operando. Estas tablas de verdad son conocidas y usadas en el contexto de la vida diaria, por ejemplo: "si llueve Y tengo clases, utilizaré chompa", "si NO llueve, saldré a pasear", "si hay una buena película O tengo compañía, iré al cine". Las tablas de verdad de los operadores AND, OR y NOT se muestran en las tablas siguientes: Tabla de verdad del operador lógico AND x

y

resultado

true true

true

true false

false

false true false false

false false

Tabla de verdad del operador lógico OR x

y

resultado

true true

true

true false

true

false true

true

false false

false

Tabla de verdad del operador lógico NOT

 ALGORITMOS

x

resultado

true

false

false

true

Mg. Hugo Caselli Gismondi

15 

 

 

Universidad Univers idad Nacional del Santa Facultad de Ingeniería Escuela Profesion Profesion al de Ingeniería de Sistemas e Informática

Ejemplos:

Los operadores AND y OR combinan expresiones relacionales cuyo resultado viene dado por la última columna de sus tablas de verdad. Por ejemplo: (a a>c) en entt on onces ces mayo r = caso con cont t ra ar i o si ( b>a y b>c) ent ent onces mayor = b Caso co con nt r ar i o si ( c>a y c>b) en entt onces may ayor or = c f i n_ s i I mpr i mi r “El nú núm mer o mayo ayorr es: “ mayo ayorr Fi n

 

Nassi-Shneiderman -----------  Implemente su solución -----------------

Otra solución(2) solución(2)  

Diagrama de flujo

 ALGORITMOS

Mg. Hugo Caselli Gismondi

24 

 

 

 

Universidad Univers idad Nacional del Santa Facultad de Ingeniería Escuela Profesion Profesion al de Ingeniería de Sistemas e Informática

Pseudocódigo I ni c i o a = 1, b = 2, c = 3 mayor = 0 si ( a>b) en entt on onces ces si ( a>c) ent once ces s may ayor or = a caso ca so c co ont r ar i o may ayor or = c f i n_ s i caso ca so c co ont r ar i o si ( b>c) ent once ces s may ayor or = b caso ca so c co ont r ar i o may ayor or = c f i n_ s i f i n_ s i I mpr i mi r “ El nú núm mer o mayor es: “ mayo ayorr Fi n

 

Nassi-Shneiderman -----------  Implemente su solución -----------------

Otra solución(3) solución(3)   

Diagrama de flujo

 

Pseudocódig Pseudocódigoo y   Nassi-Shneiderman -----  Implementar Implementar solución -----

 ALGORITMOS

Mg. Hugo Caselli Gismondi

25 

 

 

Universidad Univers idad Nacional del Santa Facultad de Ingeniería Escuela Profesion Profesion al de Ingeniería de Sistemas e Informática

Como se habrá dado cuenta a medida que hay más valores entre las cuales elegir, el uso de las sentencias si (if) anidadas, le da mayor complejidad a nuestras soluciones, es por ello tenemos en los lenguajes de programación una alternativa para que nuestro código sea más legible a través de la selección múltiple de casos, en la cual se evaluará una expresión que puede tomar valores distintos, de tal manera que si la expresión es 1 se ejecutará el juego de sentencias 1 para ese caso, si toma valor 2 el  juego de sentencias 2 para este caso, así sucesivamente, sucesivamente, luego de lo cual se proseguirá con las demás sentencias del programa.  Diagrama

de flujo

  Pseudocódigo

Nassi-Shneiderman   Nassi-Shneiderman

Según  Según expresión  expresión hacer Caso valor1  Sentencia(s)1 Caso valor2  Sentencia(s)2 Caso valor3  Sentencia(s)3  (.........)

Caso contrario Sentencia(s)n  Fin_según 

Ejemplo 4-2 Luego de ingresar el nombre de la persona, solicitar ingresar un número entre 1 y 7, luego de lo cual en usuario debe recibir el mensaje de que día de la semana se trata.

Solución  Diagrama

 ALGORITMOS

de Flujo Mg. Hugo Caselli Gismondi

26  

 

 

Universidad Nacional Nacional del Sa Santa nta Facultad de Ingeniería Escuela Profesion Profesion al de Ingeniería de Sistemas e Informática

 Diagrama

de Nassi-Shneiderman

  Pseudocódigo

Inicio Leer nombre, numDia Según numDia hacer   Caso  1: diaSemana=”Lunes” Caso  2: diaSemana=”Martes”   Caso  3: diaSemana=”Miércoles”   diaSemana=” Caso  4: diaSemana =” Jueve Jueves” s” diaSemana=” Viernes”   Caso  5: diaSemana=” diaSemana=” Sá Caso  6: diaSemana=” Sábado” bado”  

 ALGORITMOS

Mg. Hugo Caselli Gismondi

27  

 

 

Universidad Nacional Nacional del Sa Santa nta Facultad de Ingeniería Escuela Profesion Profesion al de Ingeniería de Sistemas e Informática

Caso  7: diaSemana=”Domingo” Por defecto : diaSemana=”” Fin_según Imprimir nombre, diasemana Fin   Ejercicios

4.1 Desarrolle el algoritmo que solicite ingresar 2 datos en variables de tipo entero, enseguida evalúe la siguiente función 25 * Y Si X = 1 25 ^ Y Si X = 2 Valor = 25 / Y Si X = 3 1. Para cualquier valor de X Utilice selección múltiple de casos. 4.2 Construya un algoritmo utilizando selección múltiple de casos, que luego de ingresar la categoría y el sueldo de un trabajador, calcule la bonificación correspondiente por cumplimiento de metas, de acuerdo con el siguiente cuadro: Categor Ca tegoría ía Tasa Bon Bonifificaci icaci ón A 20% B 15% C 10% D 5% Al final debe imprimir la categoría, sueldo, bonificación y sueldo incrementado.

4.3 Para este ejercicio previo, se solicita elaborar un algoritmo de solución utilizando selección múltiple de casos. Que solicite ingresar nombre y nota del Estudiante, se evalúe de tal manera que, si tiene entre 20 y 18 se le considere Excelente, entre 17 y 15 se considera Bueno , entre 14 y 11 se considera Regular , entre 10 y 6 Malo   y finalmente entre 5 y 0 Pésimo. Se debe imprimir el nombre del estudiante y su condición. 4.4 Desarrolle el algoritmo que luego de ingresar 3 números enteros diferentes, los muestre de manera descendente. (Selección múltiple) 4.5 Construya e algoritmo que solicite ingresar un número entero, se debe determinar e imprimir este número es positivo, negativo o nulo. 4.6 Elabore el algoritmo que solicite ingresar un nu numero mero entero, se debe determinar si es par o impar. 4.7 El costo de las llamadas telefónicas internacionales depende de la tarifa por la distancia geográfica entre los países de origen y destino, así como de los minutos hablados. Los costos respectivos a los diversos destinos desde Perú a cada continente o región se muestran a continuación:  ALGORITMOS

Mg. Hugo Caselli Gismondi

28  

 

 

Universidad Nacional Nacional del Sa Santa nta Facultad de Ingeniería Escuela Profesion Profesion al de Ingeniería de Sistemas e Informática

Código 15 20 25 30 35

Conti nente/región América Europa Asia África Oceanía

Ta Tari rifa fa (S/.) (S/.) 1.25 1.75 2.25 2.00 2.50

Ingrese nombre de usuario, código y minutos hablados, determine el costo.

Iniciamos el procesamiento de más de un dato, utilizando la estructura repetitiva desde  la cual es muy útil cuando se conoce el número de veces que se desea procesar un conjunto de instrucciones, es decir el número de iteraciones es constante o fijo. Esta estructura luego de ejecutar las sentencias que contiene en el número indicado, de manera automática sede el paso a las siguientes instrucciones que continúan en el programa  programa   Diagrama

de Flujo

  Pseudocódigo Pseudocódigo  

desde   i 0 hasta hasta n  n hacer desde Sentencia(s)  Fin_desde

o Para Para   i

0 hasta hasta n  n hacer

Sentencia(s)  Fin_para 

 ALGORITMOS

Mg. Hugo Caselli Gismondi

29 

 

 

 

Universidad Univers idad Nacional del Santa Facultad de Ingeniería Escuela Profesion Profesion al de Ingeniería de Sistemas e Informática

Nassi-Shneiderman

La sentencia desde  proporciona una forma compacta para iterar sobre un rango de valores. Los programadores a menudo se refieren a él como el "bucle" debido a la forma en la que se realiza un bucle varias veces hasta que una condición particular está satisfecha.  satisfecha.  Ejemplo 4-3 Obtenga la suma de los 100 primeros números enteros.

Solución  Diagrama

de Flujo

  Pseudocódigo

Inicio suma  suma   0 desde  desde  x  1 hasta hasta   n con paso 1 paso 1   hacer suma suma+x  suma+x Fin_desde Escribir suma  Fin 

 ALGORITMOS

Mg. Hugo Caselli Gismondi

30 

 

 

 

Universidad Nacional Nacional del Sa Santa nta Facultad de Ingeniería Escuela Profesion Profesion al de Ingeniería de Sistemas e Informática

Nassi-Shneiderman

Ejemplo 4-4 Obtenga la tabla de multiplicar del 5   Pseudocódigo Inicio desde  desde  x  1 hasta hasta   12 con paso 1 paso 1   hacer Escribir x, “ * 5 = “, 5*x Fin_desde Fin 

Implementar solución en Diagrama de flujo y Nassi-Shneiderman Ejercicios 4.8 Modifique el ejemplo 4-4 de tal manera que se pueda ver la tabla de multiplicar

4.9

del número que uno indique. Amplié el ejercicio anterior de forma que se pueda ver las tablas de multiplicar del 0 al 12.

4.10 Teniendo en cuenta que un número es perfecto si “la suma de sus divisores excepto el mismo es igual al propio número”. Elabore el algoritmo que calcule e imprima los números perfectos menores o iguales a N. 4.11 Elabore el algoritmo que permita ingresar 10 valores enteros positivos cualquiera utilizando el teclado, luego debe mostrar la suma de los valores ingresados y el promedio. 4.12 Construya el algoritmo que lea la nota de 10 alumnos, al final nos debe reportar cuantos alumnos hay aprobados y cuantos desaprobados. 4.13 Desarrolle el aalgoritmo lgoritmo que lea 1100 números entero enteros, s, debe reportar cuan cuantos tos de los valores ingresados son múltiplo de 3 y 5, debe tener en cuenta que hay ciertos números que son múltiplos de 5 y de 3 a la vez.

 ALGORITMOS

Mg. Hugo Caselli Gismondi

31 

 

 

Universidad Univers idad Nacional del Santa Facultad de Ingeniería Escuela Profesion Profesion al de Ingeniería de Sistemas e Informática

Semana 05 Semana 05.- Estructuras de control: mientras, hacer mientras.  

Estructuras repetitivas

La ventaja de tener un computador es que puede resolver problemas que conllevan manejar operaciones que son repetitivas para cuando una persona lo realiza, es por ello que los lenguajes de programación nos brindan sentencias que permiten realizar estas tareas de una manera mucho más sencilla, de allí el gran auge que tuvieron las aplicaciones informáticas que automatizaron el trabajo para hacerlo más rápido y eficiente. Estas estructuras se conforman como bucles o rizos (loops), denominándose iteración el conjunto de sentencias que se ejecutan repetidas veces.

La estructura mientras (while) es aquella que primero evalúa la condición y luego ejecuta el conjunto de sentencias que contiene, si la condición es falsa, no se ejecuta ninguna sentencia dentro del cuerpo de la sentencia while y se prosigue con la siguiente sentencia después del bucle mientras. Diagrama de flujo

Pseudocódigo Pseudocódig o

Estructura repetitiva (WHILE-DO) (WHILE-DO)  Mientras condición  condición   hacer   Mientras Sentencia(s)   Fin_mientras 

Nassi-Shneiderman

 ALGORITMOS

Mg. Hugo Caselli Gismondi

32 

 

 

Universidad Nacional Nacional del Sa Santa nta Facultad de Ingeniería Escuela Profesion Profesion al de Ingeniería de Sistemas e Informática

Contadores En las estructuras repetitivas se hace necesario contar las acciones que ocurren en cada iteración del bucle, para ello se utilizan los contadores que contendrá las sumas parciales sucesivas de los diferentes valores que pueden ser de incremento o decremento que debe ser constante tanto positivo como negativo. En definitiva, el contador es una variable de tipo entero. Ejemplo:

contador = 0 contador = contador + 1

cont = 0 cont = cont – 1

// se iniciali inicializa za // se decrementa

En ambos casos el contador incrementa o decrementa en un valor constante igual a 1.  Ac umul  Acum ul ado adores res De igual manera en las estructuras repetitivas será necesario mantener cantidades variables de sumas sucesivas, a esto se denomina acumulador, que se diferencia del contador por que los incrementos o decrementos no son constantes sino variables. Ejemplo:

Total = 0 Total = Total + X

// se inicializa // X es variable no constante

Ejemplo 5-1 Obtenga la suma de los 100 primeros números enteros. Solución

 Diagrama

de Flujo

 

Diagrama de Nassi-Shneiderman Nassi-Shneider man

 

Pseudocódigo

I ni c i o x = 0, s uma = 0 mi en entt r as ( x0

o también tener presente que

0! = 1

n! =

Solución NO Recursiva  INICIO fact 1 Escribir “Ingrese número para calcular factorial: “  “  Leer n  Si n=0 entonces fact 1  1  caso_contrario Desde i Desde  i 1 hasta hasta n  n con paso 1 paso 1 hacer fact  fact*i Fin_desde Fin_si Escribir “El factorial de “, n, ” es = “, fact fact    FIN

Solución Recursiva   ALGORITMOS

Mg. Hugo Caselli Gismondi

42 

 

 

Universidad Univers idad Nacional del Santa Facultad de Ingeniería Escuela Profesion Profesion al de Ingeniería de Sistemas e Informática

INICIO //Programa principal Escribir “Ingrese número para calcular factorial: “  “  Leer n  F factorial(n) Escribir “El factorial de “, n, ” es = “, F  FIN Función factorial(x) factorial(x)    Si x=0 entonces retornar 1  caso_contrario retornar x*factorial(x-1) Fin_si Fin_función

Ejercicios 1.1 Elaborar eell algoritmo para una aplica aplicación ción que calcule calc ule el área de un circulo, triangulo o cuadrado. Se debe solicitar que figura geométrica se va a evaluar, luego de lo cual debemos ingresar los datos que sean necesarios. Generar una función para cada caso.  Areacírculo radio 2 * π    =

 Areatriángulo   =  Areacuadrado

base * altura

=

2 lado   * lado

1.2 Construya eell algoritmo para una aplicación que cconvierta onvierta un número núme ro en base decimal a binario, para ello utilice una función a la cual se le pasará el número, dicha función devolverá el número convertido a binario en una cadena. Sabemos que, para convertir un número decimal a binario, debemos dividir entre 2 y sucesivamente el resultado también entre 2 hasta que no se pueda dividir más, el residuo de cada división formará el número binario que se almacenará en una cadena. 1.3 Elabore el algoritmo para, una aplicación que cuente el número de cifras de un número entero positivo que debemos ingresar por el teclado. Devolver el número de cifras con una función a la cual se le pasará el número.

 ALGORITMOS

Mg. Hugo Caselli Gismondi

43 

 

 

Universidad Univers idad Nacional del Santa Facultad de Ingeniería Escuela Profesion Profesion al de Ingeniería de Sistemas e Informática

1.4 Construya el algoritmo que a través de un menú de opciones permita obtener las áreas de un cuadrado, triángulo y círculo cada una de ellas en un procedimiento distinto que será invocado al elegir la opción que le corresponde. Debe dar la posibilidad de poder continuar con el cálculo de otra área. 1.5 Elabore el algoritmo recursivo que permita resolver una división por el método de restas sucesivas. 1.6 Construya un algoritmo recursivo qque ue permita in invertir vertir un número. Ejem Ejemplo: plo: Entrada: 123, Salida: 321 1.7 Elabore un alg algoritmo oritmo recur recursivo sivo que perm permita ita sumar los dígitos de un núm número. ero. Ejemplo: Entrada: 123, Resultado: 6

 ALGORITMOS

Mg. Hugo Caselli Gismondi

44 

 

 

Universidad Univers idad Nacional del Santa Facultad de Ingeniería Escuela Profesion Profesion al de Ingeniería de Sistemas e Informática

Semana 07 Semana 07.- Aplicaciones que combinan las diversas estructuras de la unidad  

Alcanzamos una serie de ejemplos que combinan las diversas estructuras de tal manera que podamos controlar el ingreso de ciertos valores válidos Ejemplos 7.1. Construya el algoritmo que muestre un pequeño menú de 4 opciones con números, cada que se seleccione uno nos diga que opción se eligió. Se debe restringir al usuario para que solo pueda digitar esos números. Solución

 ALGORITMOS

Mg. Hugo Caselli Gismondi

45 

 

 

Universidad Nacional Nacional del Sa Santa nta Facultad de Ingeniería Escuela Profesion Profesion al de Ingeniería de Sistemas e Informática

7.2. Modifique el algoritmo anterior, que luego de elegida cualquier opción permita preguntar si se desea continuar, de elegirse la opción desea continuar debe mostrarse el menú de opciones nuevamente, caso contrario darle un mensaje de despedida al usuario.

 ALGORITMOS

Mg. Hugo Caselli Gismondi

46  

 

 

Universidad Nacional Nacional del Sa Santa nta Facultad de Ingeniería Escuela Profesion Profesion al de Ingeniería de Sistemas e Informática

7.3. Diagrama de flujo maqueta de Proyecto de Producción de la asignatura.

 ALGORITMOS

Mg. Hugo Caselli Gismondi

47  

 

 

Universidad Univers idad Nacional del Santa Facultad de Ingeniería Escuela Profesion Profesion al de Ingeniería de Sistemas e Informática

EJERCICIOS

7.1 7.2 7.3

Elabore el algoritmo que solo permita leer S o N. Construya el algoritmo que cuente e imprima los múltiplos de 3 partiendo de la unidad hasta un valor máximo ingresado. Elaborar el algoritmo que cuente e imprima los números que son múltiplo de 2 o

de 3 para valores a partir de 1 y un número leído no mayor o igual que 200. 7.4 Generar el algoritmo que imprima el mayor y el menor de 5 números leídos. 7.5 Construya el algori algoritmo tmo que cuente, su sume me e iimprima mprima llos os múltipl múltiplos os de 2 que hay entre dos valores, siendo el segundo valor mayor que el primero. 7.6 Escriba el algoritmo que permita ingresar ho horas, ras, minutos y segundos y que permita indicar la hora correcta. Ejemplo se ingresa 3 horas, 121 minutos 121 segundos la respuesta debe ser 5 horas 03 minutos 01 Segundo. 7.7 Generar el algoritmo que solicite leer un número menor o igual a 2000 luego del cual se debe escribir su equivalente en números romanos. 7.8 Escriba la línea en pseudocódigo equivalente, a las siguientes fórmulas matemáticas: a)  Z  =

c) 7.9

Y  = a n

 AB

2

+

b)

2

 A  B

(

m = 1200

(1 +

 x +  y

+

n

1

a n 1b + −

 p

n ( n − 1)  

1.2

 

a n 2b 2 −  

+

n( n − 1)( n − 2)

1.2.3

)(1 +

 p

1200

 p

1200

 N 

)



) N   L

1

a n 3b 3 −

Dado el siguiente algoritmo en pseudocódigo que incluye una función recursiva, diga qué valor se produciría para N=5. Efectué la prueba de escritorio para ello. INICIO //Programa principal Leer N Escribir N, “ sumado a 5 hasta “, N, “ veces es = “, sumaXT(N) FIN SumaXT(entero x) Si x==0 entonces Retornar 5 Caso contrario Retornar sumaXT(x-1) sumaXT(x-1)+5 +5 Fin_si Fin_sumaXT

Semana 08. Examen de 1era Unidad

 ALGORITMOS

Mg. Hugo Caselli Gismondi

48  

 

 

Universidad Univers idad Nacional del Santa Facultad de Ingeniería Escuela Profesion Profesion al de Ingeniería de Sistemas e Informática

Semana 09 Semana 09.- Arreglos, Arreglos unidimensionales  

El trabajar con variables simples a medida que tenemos que evaluar más datos sería muy complicado, pues debemos incluir tantas variables para su procesamiento como datos incluyamos, es por ello que los lenguajes de programación incluyen tipos de datos estructurados como los arreglos (del inglés arrays) que están asociados a los conceptos matemáticos de vector y por extensión matriz, que nos van a permitir manipular juegos de valores del mismo tipo, pero definiendo una sola variable, como veremos a continuación.  ARREGL OS  ARREGLOS Un arreglo es una estructura de datos interna por cuanto su manejo se da a nivel de la

memoria RAM del computador, reconociéndose los siguientes tipos: Unidimensionales (vector), Bidimensionales (matrices) y Multidimensionales (cubos), cualquiera de ellos es en un conjunto finito de elementos del mismo tipo de datos primitivos, los cuales se pueden identificar por su posición en el arreglo. Un arreglo puede ser de tipo entero, todos sus elementos serán valores enteros; o puede ser de tipo cadena y contendrá solo elementos de cadenas, nunca una combinación de tipos de datos. Esto significa que pueden ser: Numéricos y Alfanuméricos. Cada elemento puede tener un elemento simple, los elementos pueden ser primitivos, la longitud del arreglo se fija cuando se crea. La desventaja de trabajar con arreglos es que al manejarse a nivel de memoria RAM, cuando uno apague el computador toda la data se perderá.

 ARREGL  ARREGLOS OS UNIDIMENS UNIDIMENSIONAL IONALES ES O vectores, también conocidos como listas o arrays son un conjunto de datos

homogéneos de tamaño n, para acceder a cada dato del arreglo hay que referenciarlo a través de un índice o subíndice. Para poder utilizar un arreglo debemos separarle espacio en la memoria, de acuerdo con la necesidad del tratamiento de datos de un problema particular, para ello es necesario declarar y crear el arreglo de la siguiente manera: Declaración: Creación:

Ti po_da _datt o[ ] Nombr e_A _Arr r egl o Nombr e_A e_Arr r eg egll o nuevo  Ti po_da o_datt o[ t amañ año] o]

en l a mi sma l í nea ea:: Declaración y creación  en  Ti po_dat o[ ] Nombr e_ e_A Ar r egl o nuevo  Ti po_da o_datt o[ t amañ año] o]  ALGORITMOS

Mg. Hugo Caselli Gismondi

49 

 

 

Universidad Univers idad Nacional del Santa Facultad de Ingeniería Escuela Profesion Profesion al de Ingeniería de Sistemas e Informática

Un error común es manipular un arreglo no válido, que puede ser un valor negativo o un número mayor a la longitud del arreglo. Tamaño del arreglo Ejemplos Declaración: Creación:

ent er o[ ] not as   not as ent er o[ 15]   nuevo  en

Declaración y creación  en en l a mi sma l í nea ea:: ent er o[ ] not as ent er o[ 15] nuevo  ent Se puede declarar e inicializar el arreglo con valores de la siguiente manera: entt er o not as en {11, 15 15, 1 18 8, 12 12, 10 10} Luego puede ser manipulado dentro del código de solución en su forma simple: not as[ í ndi ce ce]] Operaciones con Arreglos Un arreglo al ser un dato estructurado, es posible darle mantenimiento a través de una serie de operaciones como el recorrido, búsqueda, modificación, altas y bajas entre las más básicas y esenciales. RECORRIDO Por ahora iniciaremos con el recorrido que nos será de utilidad para poder resolver

una serie de casos básicos. El recorrido consiste en visitar cada celda del arreglo de manera secuencial, utilizando cualquier estructura de control repetitiva, siempre debemos tener en cuenta de no rebasar los límites del arreglo, los índices no pueden ser menores que cero (underflow) o superiores al tamaño máximo definido para dicho arreglo (overflow). EJEMPLO 9-1 Se tienen las notas de examen escrito de 5 alumnos: 15, 9, 17, 8, 14. Elabore el diagrama de flujo que presente las 5 notas a través de la pantalla. EJEMPLO 9-2 Sobre la base del ejercicio anterior, determinar la mayor nota y reportarla, elabore el diagrama Nassi-Shneiderman correspondiente. EJEMPLO 9-3 De los datos de los ejercicios previos determine la mayor nota, la menor nota y el promedio de los 5 estudiantes. Elabore el pseudocódigo de solución.

 ALGORITMOS

Mg. Hugo Caselli Gismondi

50 

 

 

Universidad Univers idad Nacional del Santa Facultad de Ingeniería Escuela Profesion Profesion al de Ingeniería de Sistemas e Informática

RPTA EJEMPLO 9-1

RPTA EJEMPLO 9-2 

 ALGORITMOS

Mg. Hugo Caselli Gismondi

51 

 

 

Universidad Nacional Nacional del Sa Santa nta Facultad de Ingeniería Escuela Profesion Profesion al de Ingeniería de Sistemas e Informática

RPTA EJEMPLO 9-3 INICIO entero notaEE[] {14, 11, 7, 18, 9} entero may entero  may 0, men 999, suma 0 real prom real  prom 0.0 desde i desde i 0 hasta hasta i  i=longitud  (notaEE) -1 con (notaEE) con   paso 1 hacer  paso 1 hacer    Escribir notaEE[i] suma suma + notaEE[i] si (notaEE si  (notaEE > may) entonces entonces     may notaEE[i] fin_si  fin_si   si (notaEE si  (notaEE
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF