Manual Algoritmos 2018 - H. Caselli G.
February 16, 2023 | Author: Anonymous | Category: N/A
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
2
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
3
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
4
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
5
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
9
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