Manual de algoritmo y diagrama de flujo

Page 1

“Año

de la Inversión para el Desarrollo Rural y la Seguridad Alimentaria”

INTEGRANTES:    

MEGO RENGIFO, DAINA DELGADO MENESES LOANA RAMOS MEOÑO, MARIANA RAMOS CALDERON, NISMY

DOCENTE: NERYTA TARRILLO DAVILA

AÑO: 4 “A”

1


PRESENTACION En este presente trabajo se dará a conocer los conceptos básicos de ALGORITMOS Y DIAGRAMA DE FLUJO el cual habrán ejemplos realizados con este método. Y así mismo dar a conocer lo complejo tiende a ser todo esto.

2


DEDICATORIA A Dios quien ha permitido que la sabiduría dirija el camino de nuestras vidas y guíe nuestros pasos para alcanzar nuestras metas. A nuestros padres quienes siempre creyeron en nosotros y nos dieron todo el apoyo que necesitábamos. A mi grupo de compañeros, que me apoyaron y me permitieron entrar en su vida durante estos tres años de convivir dentro y fuera del salón de clase. A docentes y personas que directa o indirectamente

leyendo, opinando, corrigiendo,

teniéndonos paciencia, dando ánimo, acompañándonos en los momentos de crisis y en los momentos de felicidad.

3


MANUAL ALGORITMOS

En matemáticas, lógica, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus y este a su vez del matemático persa AlJuarismi1 ) es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a

4


quien deba realizar dicha actividad.2 Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución. Los algoritmos son el objeto de estudio de la algoritmia. En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas. Algunos ejemplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o las instrucciones que recibe un trabajador por parte de su patrón. Algunos ejemplos en matemática son el algoritmo de multiplicación, para calcular el producto, el algoritmo de la división para calcular el cociente de dos números, el algoritmo de Euclides para obtener el máximo común divisor de dos enteros positivos, o el método de Gauss para resolver un sistema lineal de ecuaciones.

Descripción del algoritmo El algoritmo de Johnson consiste en los siguientes pasos:

1.

Primero se añade un nuevo nodo q al grafo, conectado a cada uno de los

nodos del grafo por una arista de peso cero. 2. En segundo lugar, se utiliza el algoritmo de Bellman-Ford, empezando por el nuevo vértice q, para determinara para cada vértice v el peso mínimo h(v) del camino de q a v. Si en este paso se detecta un ciclo negativo, el algoritmo concluye. 3. Seguidamente, a las aristas del grafo original se les cambia el peso usando los valores calculados por el algoritmo de Bellman-Ford: una arista de u a v con tamaño w(u, v), da el nuevo tamaño w(u, v) + h(u) – h(v) 4. Por último, para cada nodo s se usa el algoritmo de Dijkstra para determinar el camino más corto entre s y los otros nodos, usando el grafo con pesos modificados. En el grafo con pesos modificados, todos los caminos entre un par de nodos s y t tienen la misma cantidad h(s) – h(t) añadida a cada uno de ellos, así que un camino que sea el más corto en el grafo original también es el camino más corto en el grafo modificado y viceversa. Sin embargo, debido al modo en el que los valores h(v) son computados, todos los pesos modificados de las aristas son no negativos, asegurando entonces la optimalidad de los caminos encontrados por el algoritmo de Dijkstra. Las distancias en el grafo original pueden ser calculadas a partir de las distancias calculadas por el algoritmo de Dijkstra en el grafo modificado invirtiendo la transformación realizada en el grafo.

Análisis de la complejidad La complejidad temporal de este algoritmo, usando montículos de Fibonacci en la implementación del algoritmo de Dijkstra, es de O(V2log V + VE): el algoritmo usa un tiempo de

5


O(VE) para la fase Bellman-Ford del algoritmo, y O(V log V + E) para cada una de las V instancias realizadas del algoritmo de Dijkstra.

Las etapas del algoritmo de Johnson están descritas en la siguiente ilustración: En la imagen de la izquierda tiene dos aristas negativas y no contiene ciclos negativos. En la segunda imagen se muestra el nuevo vértice q con peso 0 hacia todos los nodos. En la tercera imagen, se muestra el árbol de caminos mínimos calculado con el algoritmo de Bellman-Ford con q como vértice inicial, y los valores h(v) calculados para cada otro nodo como la longitud del camino más corto entre q y ese nodo. A modo de ilustración, en dicha imagen solo aparecen los caminos que se tomarían para determinar cada valor h(v). Nótese que todos estos valores h(v) no son positivos, porque q tiene una arista de unión con cada nodo de peso 0, y por tanto el camino más corto no puede ser mayor que ese valor. En la parte derecha se muestra el grafo modificado, hecho reemplazando el peso de cada arista w(u, v) por w(u, v) + h(u) – h(v). En este grafo modificado, todos los pesos de las aristas son positivos y el camino más corto entre dos nodos cualesquiera usa la misma secuencia de aristas que en el camino más corto entre los mismos dos nodos en el grafo original. El algoritmo concluye aplicando el algoritmo de Dijkstra para cada uno de los cuatro nodos originales en el grafo modificado (cuarta imagen).

Implementación La estructura de datos para almacenar el grafo consiste en una representación de cada vértice como una lista de las aristas que parten del mismo. Estas aristas constan de un origen, un destino y un peso. El conjunto de vértices se representa como un array de vértices y un índice que nos indica el último vértice empleado del array. La implementación del algoritmo devuelve una matriz de elementos precedentes y otra de distancias, mediante la primera se puede seguir el camino de menor coste desde un nodo dado

6


a cualquier otro nodo del grafo, y si paralelamente vamos sumando las distancias de la otra matriz, obtenemos los costes totales de dichos caminos mínimos.

Pseudocódigo

Tipos Arista = REGISTRO o : NATURAL d : NATURAL peso : INT sig : NATURAL FIN LAristas = PUNTERO A Arista TGrafo = ARRAY [1..N] DE LAristas THv = ARRAY [1..N] DE ENTERO TVector = ARRAY [1..N] DE ENTERO TMatriz = ARRAY [1..N] DE TVector //suponemos ig>1 PROC Johnson (↓grafo: TGrafo; ↓ig: NATURAL; ↑ distancias: TMatriz ; ↑ previos: TMatriz) VARIABLES i : NATURAL p : LAristas min_caminos : THv aux_dist, aux_prev : TVector INICIO grafo[ig] ← nueva_arista(ig,1,0,NULO) inc(ig) p ← grafo[ig] PARA i ← 2 HASTA ig-2 HACER p^.sig ← nueva_arista(ig,i,0,NULO) p ← p^.sig FIN BellmanFord(grafo,ig, min_caminos) PARA i ← 1 HASTA ig-1 HACER p ← grafo[i] MIENTRAS (p != NULO) HACER p^.peso ← p^.peso + min_caminos[p^.o] min_caminos[p^.d] p ← p^.sig FIN FIN PARA i ← 1 HASTA ig-2 HACER

7


Dijkstra(grafo,i, aux_dist,aux_prev)

// devuelve los

caminos mínimos desde el último nodo // a todos los demás previos[i] ← aux_prev; CalcularDistancias(grafo, previos, aux_dist,distancias); // este algoritmo realiza la transformación inversa a la // que habíamos hecho antes sobre los pesos, para obtener // las distancias reales FIN FIN

Un algoritmo es un conjunto finito de instrucciones o pasos que sirven para ejecutar una tarea o resolver un problema. Tipos Algoritmos estáticos, es decir, algoritmos que funcionan siempre igual, independientemente del tipo de problema tratado. Por ejemplo, los sistemas basados en el método de resolución. Algoritmos probabilísticos, es decir, algoritmos que no utilizan valores de verdad booleanos sino continuos. Por ejemplo, los sistemas basados en lógica difusa. Algoritmos adaptativos, es decir, algoritmos con cierta capacidad de aprendizaje. Por ejemplo, los sistemas basados en redes neuronales. Deterministico, sí en cada paso del algoritmo, es posible predecir la salida para una entrada dada. No determinísticos, sí existe uno ó más pasos en el algoritmo, para el cual es posible predecir cual será la salida. Características de los Algoritmos: Las características fundamentales que debe cumplir todo algoritmo son: •Un algoritmo debe ser preciso e indicar el orden de realización de cada paso. •Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez. •Un algoritmo debe ser finito. Si se sigue un algoritmo se debe terminar en algún momento; o sea, debe tener un numero finito de pasos. La definición de un algoritmo debe definir tres partes: Entrada, Proceso y Salida.

8


CARACTERISTICAS DE LOS ALGORITMOS Las características fundamentales que debe cumplir todo algoritmo son:  Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.  Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el

mismo resultado cada vez.  Un algoritmo debe ser finito. el algoritmo se debe terminar en algún momento; o sea, debe

tener un número finito de pasos.  Un algoritmo debe ser legibles: El texto que lo describe debe ser claro, tal que permita

entenderlo y leerlo fácilmente. Un algoritmo debe definir tres partes: Entrada, Proceso y Salida. Ejemplo: el algoritmo de receta de cocina se tendrá:  Entrada: ingrediente y utensilios.  Proceso: elaboración de la receta en la cocina.  Salida: terminación del plato (por ejemplo, Pollo al horno)

PROPIEDADES DE UN ALGORITMO Las propiedades de un algoritmo son puntos guías a seguir para su elaboración, ya que éstos permiten un mejor desarrollo del problema.

1. Enunciado del problema. El enunciado del problema debe de ser claro y completo. Es importante que conozcamos exactamente lo que deseamos que haga el computador. Mientras esto no se comprenda, no tiene caso pasar a la siguiente etapa.

2. Análisis de la solución general. Entendido el problema, para resolverlo es preciso analizar:  Los datos de entradas que nos suministran.

El proceso al que se requiere someter esos datos a fin de obtener los resultados esperados.  Los datos o resultados que se esperan.  Áreas de trabajo, fórmulas y otros recursos necesarios.  Definir condiciones si las hay

Diferentes alternativas de solución. Analizando el problema, posiblemente tengamos varias formas de resolverlo. Lo importante es determinar cuál es la mejor alternativa: la que produce los resultados esperados en el menor tiempo.

3. Elaboración Del Algoritmo Los conocimientos adquiridos anteriormente son las herramientas necesarias para llevar a cabo la elaboración de un algoritmo a través de un problema. Se recomienda tomar en cuenta cada una de las propiedades de un algoritmo, ya que de ahí se inicia el proceso de elaboración.

9


Definición formal En general, no existe ningún consenso definitivo en cuanto a la definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un cálculo o un problema abstracto, es decir, que un número finito de pasos convierten los datos de un problema (entrada) en una solución (salida). 1 2 3 4 5 6 Sin embargo cabe notar que algunos algoritmos no necesariamente tienen que terminar o resolver un problema en particular. Por ejemplo, una versión modificada de la criba de Eratóstenes que nunca termine de calcular números primos no deja de ser un algoritmo. A lo largo de la historia varios autores han tratado de definir formalmente a los algoritmos utilizando modelos matemáticos como máquinas de Turing entre otros.8 9 Sin embargo, estos modelos están sujetos a un tipo particular de datos como son números, símbolos o gráficas mientras que, en general, los algoritmos funcionan sobre una vasta cantidad de estructuras de datos.3 1 En general, la parte común en todas las definiciones se puede resumir en las siguientes tres propiedades siempre y cuando no consideremos algoritmos paralelos: Tiempo secuencial. Un algoritmo funciona en tiempo discretizado –paso a paso–, definiendo así una secuencia de estados "computacionales" por cada entrada válida (la entrada son los datos que se le suministran al algoritmo antes de comenzar). Estado abstracto. Cada estado computacional puede ser descrito formalmente utilizando una estructura de primer orden y cada algoritmo es independiente de su implementación (los algoritmos son objetos abstractos) de manera que en un algoritmo las estructuras de primer orden son invariantes bajo isomorfismo. Exploración acotada. La transición de un estado al siguiente queda completamente determinada por una descripción fija y finita; es decir, entre cada estado y el siguiente solamente se puede tomar en cuenta una cantidad fija y limitada de términos del estado actual.

En resumen, un algoritmo es cualquier cosa que funcione paso a paso, donde cada paso se pueda describir sin ambigüedad y sin hacer referencia a una computadora en particular, y además tiene un límite fijo en cuanto a la cantidad de datos que se pueden leer/escribir en un solo paso. Esta amplia definición abarca tanto a algoritmos prácticos como aquellos que solo funcionan en teoría, por ejemplo el método de Newton y la eliminación de Gauss-Jordan funcionan, al menos en principio, con números de precisión infinita; sin embargo no es posible programar la precisión infinita en una computadora, y no por ello dejan de ser algoritmos.10 En particular es posible considerar una cuarta propiedad que puede ser usada para validar la tesis de Church-Turing de que toda función calculable se puede programar en una máquina de Turing (o equivalentemente, en un lenguaje de programación suficientemente general):

10


Aritmetizabilidad. Solamente operaciones innegablemente calculables están disponibles en el paso inicial.

Medios de expresión de un algoritmo Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programación específico. La descripción de un algoritmo usualmente se hace en tres niveles:

1.

Descripción de alto nivel. Se establece el problema, se

selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles. 2. Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución. 3. Implementación. Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones. También es posible incluir un teorema que demuestre que el algoritmo es correcto, un análisis de complejidad o ambos.

Ejemplo de algoritmos: •

Mostrar su nombre, sexo edad y estado civil, que son ingresados por teclado

ALGORITMO datopersonal INICIO CARACTER nombre[30], sexo, Ec Entero edad 1.-LEER nombre, sexo, edad, Ec

11

// Ec = estado civil


2.-MOSTRAR nombre, sexo, edad , Ec FIN

2.- Ingresar por teclado el nombre y la edad de cualquier persona e imprima tanto el nombre como la edad ALGORITMO edad INICIO CARACTER nombre[30]. Entero edad

1.-LEER nombre, edad 2.-MOSTRAR nombre, edad FIN

3.- Ingresar por teclado el nombre y la edad de cualquier persona e imprima, solo si la persona es mayor de edad, el nombre de la persona. ALGORITMO adulto INICIO CARACTER nombre Entero edad 1.- LEER nombre, edad 2.- SI (edad >= 18) ENTONCES a)MOSTRAR nombre FINSI FIN 4.- .- Ingresar por teclado el nombre y la edad de cualquier persona e imprima solo si la persona es mayor de edad, el nombre de la persona, de lo contrario, imprima un mensaje que diga : “no puede votar�. ALGORITMO votar

12


INICIO Cadena nombre Entero edad 1.-LEER nombre , edad 2.-SI ( edad >= 18) ENTONCES a)MOSTRAR nombre SINO a)MOSTRAR “no puede votar� FINSI FIN

5.- Ingresar por teclado el nombre, la edad y el sexo de cualquier persona e imprima, solo si la persona es de sexo masculino y mayor de edad, el nombre de la persona. NOTA: suponga que en el campo denominado sexo el numero 1 es masculino o el numero 2 es femenino ALGORITMO sex INICIO Cadena nombre

Entero sexo , edad 1.-LEER nombre, sexo, edad 2.-SI (sexo = 1) y (edad>= 18) ENTONCES a)MOSTRAR nombre. FINSI FIN

6.- Ingresar por teclado el nombre, la edad, el sexo (1 o 2) y el estado civil de cualquier persona e imprima solo si la persona es un hombre soltero mayor de edad, el nombre de la persona. NOTA: en el campo de estado civil se graba el numero 1 en vez de soltero, el numero 2 en vez de casado o el numero 3 en vez de otro.

13


ALGORITMO hombsolt INICIO Cadena nombre Entero edad , sexo, ec

// ec =estado civil.

1.-LEER nombre, edad, sexo, ec. 2.-SI (sexo = 1) y (ec = 1) y (edad >= 18) ENTONCES a)MOSTRAR nombre FINSI FIN

7.-Lea de un registro el nombre, la edad, el sexo y el estado civil de cualquier persona e imprima, solo si la persona es hombre o mujer menor de edad o es hombre casado de cualquier edad, el nombre de la persona y un mensaje que diga “usted no se manda”. En los demás casos imprima el nombre de la persona solamente. ALGORITMO mensaje INICIO CARÁCTER nombre[30] , s, ec Entero, e

// s = sexo,

e = edad

// ec = estado civil

1.-LEER nombre, e, s, ec 2.-SI (s = “M”) o ((s = “F”) y (e < 18)) o ((s = “M”) y ( ec = “C”)) ENTONCES a)MOSTRAR nombre, “usted no se manda” SINO a)MOSTRAR nombre. FINSI FIN

8.-Ingrese un numero e imprima el numero y el valor absoluto del mismo.

14


ALGORITMO valorabsoluto INICIO Real , x, VA

// {x es el numero}

1.-LEER x 2.-VA  abs (x) 3.- MOSTRAR VA

// VA es el valor absoluto

FIN 9.-Ingrese un número y calcule e imprima su raíz cuadrada. Si el numero es negativo imprima el número y un mensaje que diga “tiene raíz imaginaria” ALGORITMO RC INICIO Real ,num, RC 1.-LEER num 2.- SI (num >= 0) ENTONCES a. RC  sqrt (num) b. MOSTRAR RC SINO a. MOSTRAR num “tiene raíz imaginaria” FINSI FIN

10.-Ingrese dos números desde el teclado e imprima solo los positivos ALGORITMO pos INICIO Real A, B 1.-LEER A, B 2.-SI (A>0)

15


ENTONCES MOSTRAR A FINSI 3.-SI (B>0) ENTONCES MOSTRAR B FINSI FIN 11.-Ingrese dos números desde el teclado e imprima ambos números sólo si son positivos ALGORITMO numpos INICIO Real , A, B 1.-LEER A, B 2.-SI (A>0) y (B>0) ENTONCES a)MOSTRAR A, B FINSI FIN 12.-Ingrese dos números desde el teclado e imprima ambos números si por lo menos uno de ellos es positivo ALGORITMO num INICIO Real A ,B 1.-LEER A, B 2.-SI (A>0) o (B>0) ENTONCES a) MOSTRAR A, B FINSI FIN 13.-Ingrese dos números desde el teclado e imprima ambos números solo si son de diferente signo y distintos de cero ALGORITMO signosop INICIO

16


Real A, B 1.-LEER A, B 2.-SI ( A≠ B ) y ( B≠0 ) ENTONCES a) SI (A<0 ) y (B>0) o (A>0) y (B<0) ENTONCES 1) MOSTRAR A, B FINSI FINSI FIN

14.-Ingrese dos números desde el teclado. Calcule la suma e imprima los números leídos y la suma. ALGORITMOsum INICIO Real, A, B, S

// S, es la suma

1.- LEER A, B 2.- S A + B 3.- MOSTRAR A, B, S FIN

15.- Lea dos números de un mismo registro. Calcule la suma de los números. Imprima los números leídos y sólo si suma es negativa. Imprímala también ALGORITMOsuma INICIO Real A, B, S 1.- LEER A, B 2.- S  A + B 3.- SI ( S < 0 ) ENTONCES a) MOSTRAR A, B, S SINO

17

// S es la suma


a) MOSTRAR A, B FINSI FIN

16.- Lea dos números de un mismo registro y calcule el cociente de dividir el primero por el segundo. Imprima el cociente. Si el segundo número es cero no ejecute el cálculo e imprima un mensaje que diga : “la división no es posible”. ALGORITMO cociente INICIO Real A, B , COC

// COC es el cociente

1.-LEER A, B 2.- SI ( B = 0) ENTONCES a. MOSTRAR “la división no es posible” SINO a. COC  A / B b. MOSTRAR COC “es el cociente” FINSI FIN

17.- Leer de un mismo registro el nombre de un empleado, su salario básico por hora y el número de horas trabajadas en el mes. Calcular su salario mensual e imprimir tanto el nombre como su salario mensual ALGORITMO salario INICIO Cadena nombre Real SxH, SM mensual Entero HT

18

// SxH es salario por hora, SM, salario // HT es el número de horas trabajadas


1.- LEER nombre SxH, HT 2.- SM  SxH * HT 3.- MOSTRAR nombre, SM FIN

18.- Leer un número y calcular el 5% del número leído. Obtener tanto el número como el porcentaje calculado ALGORITMO porciento INICIO Real Num , PC

// PC es el porcentaje

1.- LEER , Num 2.- PC  (5/100) * Num 3.- MOSTRAR PC, Num FIN

19.- Leer de un registro el nombre de un empleado, su salario básico por hora, el número de horas trabajadas en el período y el porcentaje de retención en la fuente. Calcular el salario bruto, el valor de la retención y su salario neto.

ALGORITMO retencion INICIO Real SxH, P, R, SB, SN, HT

// SxH salario por hora, P porcentaje de

retención, R Retención, SB Salario bruto, SN salario neto, HT, horas trabajadas. Cadena , nombre

19


1.- LEER nombre Sxh, HT, P 2.- SBSxH * HT 3.- R(P*SB)/100 4.- SNSB-R 5.- MOSTRAR SB, R, SN, nombre FIN

20.-Para un salario bruto hasta de $1.500, no hay retención. Para un salario bruto de $1500 a $ 3.000 el porcentaje de retención es de 5%. Para un salario bruto mayor de $3000 el porcentaje de retención es 8%. Obtener el nombre del empleado, el salario bruto, el valor de la retención y el salario neto. Se debe leer el nombre y el salario. ALGORITMO salario neto INICIO Cadena, nombre Real, SB, SN, Ret

// SB salario bruto, SN salario neto, Ret retención

1.- LEER nombre , SB 2.- SI (SB <= 1500) ENTONCES a) Ret  0 SINO 1) SI ( SB > 3000) ENTONCES a) Ret(8/100) * SB SINO a) Ret (5/100)*SB FINSI FINSI 3.- SN SB - Ret 4.-MOSTRAR nombre, SB, Ret, SN FIN

20


21.- Leer de un registro el nombre de un empleado , el salario básico por hora y el número de horas trabajadas durante una semana. Calcular el salario neto, teniendo en cuenta que si el número de horas trabajadas durante la semana es mayor de 48, esas horas demás se consideran horas extras y tienen un 35 % de recargo. Imprima el nombre del empleado y el salario neto. ALGORITMO sueldoneto INICIO Real, Sb, Ht, SN, Sextr, Extr

// Sb salario por hora, Ht horas trabajadas,

Extr hora extra // SN salario neto, Sextr, salario por hora extra CARACTER Nombre[30] constante Tr = 0.35

// Tr tasa de recargo

1.- LEER nombre, Sb, Ht, 2.-SI ( Ht>48) ENTONCES a)ExtrHt-48 b)Sextr Sb+Sb*Tr c)SN(48*Sb) + (Extr*Sextr) SINO a)SNSb*Ht FINSI 3.- MOSTRAR nombre, SN FIN

22.-Obtenga los 100 primeros números naturales. ALGORITMO ciennum INICIO Entero, i

1.- PARA i 1 HASTA i 100 HACER

21


a) MOSTRAR i FINPARA

23.- Obtener los números pares comprendidos entre 1 y 1000 ALGORITMO numpar INICIO Entero i 1.- PARA i 2 HASTA i  1000 INC = 2 HACER a) MOSTRAR i FINPARA FIN

24.- Leer de un registro un número entero positivo y obtener los múltiplos de 3 comprendidos entre 1 y el número leído. ALGORITMO mult3 INICIO Entero i, N 1.- LEER N 2.- PARA i 1 HASTA i  N

HACER

a) SI ( i MOD 3 = 0 ) ENTONCES 1. MOSTRAR i FINSI FINPARA FIN

25.- Lea los veinte primeros registros de un archivo, cada uno de los cuales contienen un nombre. Imprimir los nombres. ALGORITMO nombre

22


INICIO Entero, i CARACTER nombre[30] 1.- PARA i 1 HASTA i 20 HACER a) LEER nombre b) MOSTRAR nombre FINPARA FIN

26.- Leer varios registros cada uno de ellos, conteniendo un nombre. El número de estos registros se encuentra grabado en un registro que precede a los anteriores. Imprimir cada uno de los hombres leídos. ALGORITMO nombres INICIO CARACTER nombre Entero i, N 1.- LEER NReg 2.- PARA i1 HASTA iNReg HACER a) LEER nombre b) MOSTRAR nombre FINPARA FIN

27.- Leer un conjunto de registros cada uno de ellos conteniendo el código y el nombre de cada uno de los estudiantes de la universidad. El último registro del conjunto (registro centinela) contiene el código 9999999 y es utilizado sólo para chequear el final de los registros. Imprima cada uno de los códigos leídos. Lógicamente la información del registro centinela no se imprime porque no pertenece a ningún estudiante. ALGORITMO estudiante INICIO

23


Entero cod

// cod es el código.

CARACTER nombre[30] 1.- LEER cod, nombre 2.- MIENTRAS (cod ≠ 9999999) HACER a) MOSTRAR cod , nombre b) LEER cod, nombre FINMIENTRAS FIN

28.-Imprimir cuatro columnas. En la primera columna, los enteros del 1 al 50 . En las otras columnas, la segunda, la tercera y la cuarta potencia de los enteros de la primera columna ALGORITMOpotencia INICIO Entero , i , pot2, pot3, pot4 1.- PARA i 1 HASTA i 50 HACER a)pot2 sqr ( i ) b)pot3 pot2 * i c)pot4 pot2 * pot2 d) MOSTRAR i , pot2, pot3, pot4 FINPARA FIN

29.- Calcule la suma de los100 primeros números naturales ALGORITMO suma INICIO Entero suma, i 1.- suma  0 2.- PARA i 1 HASTA i  100 HACER

24


a) suma suma + i FINPARA 3.-MOSTRAR suma FIN

30.- Obtener la suma de los números pares comprendidos entre 1 y 100 ALGORITMO sum INICIO Entero i , suma 1.- suma  0 2.-PARA i  2 HASTA i 100 INC = 2 HACER a) suma  suma + i FINPARA 3.-MOSTRAR suma FIN

31.- Encuentre la calificación promedio para un gran número, aunque desconocido, de calificaciones de exámenes. Estas vienen grabadas en registros. La calificación más alta posible es 10.0 ALGORITMO calificación INICIO Real calificación, Promedio, Totcal

// Totcal suma de las

calificaciones, //

Entero, n

n es el número de

calificaciones 1.- Totcal  0 2.- n  0 3.- LEER calificación 4.- MIENTRAS (calificacion >=0 y calificación <= 10 ) HACER a) Totcal  Totcal + calificación

25


b) n n + 1 c) LEER calificación FINMIENTRAS 5.-Promedio Totcal / n 6.-MOSTRAR Promedio FIN

32.-Leer una serie de números. Encontrar el valor absoluto (magnitud) de cada número. Imprimir tanto los números como sus valores absolutos. Use centinela 999 ALGORITMO valorabsoluto INICIO Real num, VA, num número

// VA valor absoluto,

1.-LEER num 2.-MIENTRAS ( num ≠ 999) HACER

{999 es el valor centinela}

a) VA  abs ( num) b) MOSTRAR VA “es el valor absoluto de” num c) LEER num FINMIENTRAS FIN

33.- Leer una serie de números. Obtener el cuadrado y el cubo de cada número e imprimir tanto los números como sus cuadrados y sus cubos. ALGORITMO potencia INICIO Real num, cuadrado, cubo 1.- LEER num 2.- MIENTRAS ( num ≠ -999) HACER a) cuadradosqr ( num ) b) cubo cuadrado*num

26

{-999 valor centinela}


c) MOSTRAR cuadrado, cubo,num d) LEER num

FINMIENTRAS FIN 34.- Leer una serie de pares de números y obtener de cada par el número mayor. Imprima un mensaje especial si los números son de igual valor. Los numeros son precedidos por la cantidad de registros

ALGORITMO mayornum INICIO Real A, B 1.- LEER nreg 2.- PARA i 1 HASTA i  nreg

HACER

a) LEER A, B b) SI (A = B)

ENTONCES 1) MOSTRAR A, B, “son iguales”

SINO 1) SI ( A>B) ENTONCES a. MOSTRAR A “es el mayor” SINO a. MOSTRAR B “es el mayor” FINSI FINSI FINPARA

FIN 35.- Leer una serie de grupos de tres números y obtener el número mayor y el número menor de cada terna. Escriba un mensaje si por lo menos dos de cada tres números son iguales. ALGORITMO ternasmayormenor INICIO Real A, B, C Entero, cant 27


1.-MOSTRAR "ingrese la cantidad de ternas" 2.-LEER cant 3.-PARA i1 HASTA icant HACER a) LEER A, B, C b)SI (A=B) o (B=C) o (A=C) ENTONCES 1) MOSTRAR "por lo menos 2 de los 3 números son =" SINO 1) MENA 2) SI (B<MEN) ENTONCES a) MENB FINSI 3) SI (C<MEN) ENTONCES a) MENC FINSI 4) MOSTRAR MEN "es el menor" 5) MAYA 6) SI (B > MAY) ENTONCES a)MAYB FINSI 7) SI (C > MAY) ENTONCES a)MAYC FINSI 8) MOSTRAR MAY "es el mayor" FINSI FINPARA FIN 36.-Identifique y obtenga el número medio de un conjunto de tres números únicos. EL número medio es aquel que no es el menor ni el mayor.

28


ALGORITMO numeromedio INICIO Real A, B, C. 1.-MOSTRAR "ingrese tres números distintos" 2.-LEER A, B, C 3.-SI ( A>B) ENTONCES a) SI (A>C) ENTONCES 1)SI (B>C) ENTONCES a)MEDB SINO a) MEDC FINSI SINO 1)MEDA FINSI SINO a) SI (B>C)ENTONCES 1)SI (A>C)ENTONCES a)MEDA SINO a)MEDC FINSI SINO 1)MEDB FINSI FINSI 4.-MOSTRAR MED "es el número medio" FIN

29


37.- El Dane está interesado en saber el número de personas mayores de 18 años, tanto hombres como mujeres en la ciudad de Medellín . Calcule e imprima el resultado de esta investigación. Se deben leer registros que contiene cada uno el sexo y el número de años. ALGORITMO dane INICIO Entero edad, h, m, sexo 1.-h 0 2.-m0 3.-LEER edad , sexo 4.-MIENTRAS (edad ≠ 999) a) SI (edad >= 18) y (sexo = 1) ENTONCES 1)hh + 1 SINO 1) SI (edad > = 18) y (sexo = 2) ENTONCES a)mm + 1 FINSI FINSI b) LEER edad, sexo FINMIENTRAS 5.- MOSTRAR h, m FIN

38.-Una tienda de libros y géneros diversos al menudeo ofrecen un descuento de cortesía del 10% para profesores. Muestre como la computadora puede calcular e imprimir el 10% de 1.00, 1.10, 1.20, etc hasta $25.00. ALGORITMO menudeo INICIO Real , desc //desc es el descuento Entero, i 1.- i1.00

30


2.- MIENTRAS (i < = 25.00) HACER a) desc  0.10 * i b) MOSTRAR desc c) i  i + 0.10 FINMIENTRAS FIN

39.-Un vendedor desea calcular su comisión total sobre la venta de varios artículos. Al vendedor le corresponde el 5% de su comisión sobre artículos cuyo precio es menor de $100 y el 7.5 % de comisión sobre aquellos artículos cuyo precio es de $100 o más. Suponga que el vendedor hizo N ventas ALGORITMO comisión INICIO Constantes TC1 = 0,05 TC2 = 0.075 Entero N , i. Real comision ,tcom, venta 1.-men  0 2.-may  0 3.-MOSTRAR " ingrese el número de ventas que hizo " 4.- LEER N 5.- i  1 6.-MIENTRAS (i <= N ) HACER a) LEER precio, nart b) SI (precio< 100) ENTONCES 1)venta (nart*precio) 2)comision  venta * tc1 SINO 1)venta (nart*precio)

31


2) comision  venta * tc2 FINSI c) tcom  tcom + comision d) i  i + 1 FINMIENTRAS 7.- MOSTRAR tcom FIN 40.-Coldeportes de Antioquia está interesado en promover el básquetbol y para ello desea conocer personas que tengan las siguientes características, edad máxima: 18 años, estatura mínima: 1.80 metros, peso máximo: 80 kilos. Lea identificación. Edad , estatura y peso. Use centinela identificacion 99999 ALGORITMO basquet INICIO Entero identificación, edad Real, estatura, peso 1.- LEER identificación, edad, estatura, peso 2.- MIENTRAS (identificación ≠ 99999) HACER a) SI (edad <= 18) y (estatura >=1.80 ) y (peso<=80) ENTONCES 1) MOSTRAR identificación, edad, estatura , peso FINSI b) LEER, identificación, edad, estatura, peso FINMIENTRAS FIN

41.-Lea de un mismo registro A, B, C (coeficientes de la ecuación cuadrática. Calcule e imprima x1 y x2 (raíces de la ecuación ) Recuerde que x1 y x2 se pueden calcular sólo sí a) B2 - 4. AC >= O b) A ≠ 0. ALGORITMO ecuación INICIO Real, x1, x2 , A, B, C

32


1.-LEER A, B, C 2.-SI ( A ≠ 0 ) ENTONCES a) Disc  sqr (B) – 4*A*C b) SI (Disc >= 0)

ENTONCES 1) X1( - B + sqrt(Disc) ) / (2*A) 2)X2( - B - sqrt(Disc) ) / (2*A) 3) MOSTRAR x1, x2 SINO MOSTRAR “Tiene raices imaginarias” FINSI FINSI FIN

42.-Se tienen registro con los datos de los estudiantes de una universidad, así: código del estudiante, nombre del estudiante. Valor crédito del estudiante, número de créditos tomados, valor del recargo en la matrícula. Se requiere leer los registros e imprimir un listado con la siguiente información por estudiante: código, nombre del estudiante, valor crédito, número de créditos, valor del recargo, valor total pagado por estudiante. También se debe calcular e imprimir al final del listado el total pagado por todos los estudiantes y el promedio por estudiante. Use codigo de centinela = 9999 ALGORITMO pago INICIO Entero, código, n, ct

// n, número de estudiantes, ct créditos

tomados Real, vc, rec, totpag, p //

vc valor crédito, ,rec valor de recargo,

totpag total pagado CARÁCTER nombre[30] 1.- n 0 2.- totpag 0 3.- LEER código, nombre, vc, ct, rec

33


4.- MIENTRAS ( cod ≠ 9999) HACER a) PE ( vc* ct) + rec b) n n + 1 c) totpag  totpag + PE d) MOSTRAR cod, nombre, vc, ct, rec, PE e) LEER cod, nombre, vc, ct, rec

FINMIENTRAS 5.-P totpag / n 6.-MOSTRAR p,“es el promedio” FIN 43.-Se tiene un conjunto de registros de los empleados de una compañía, cada registro contiene los siguientes datos: número del empleado, nombre del empleado, salario básico por hora, horas trabajadas en el mes, deducciones, Se requiere leer los registros e imprimir un listado con la siguiente información por empleado : número del empleado , nombre del empleado, salario básico por hora, horas trabajadas, deducciones, salario mensual. También se debe calcular e imprimir al final del listado, el total de salarios pagados a todos los empleados y el promedio salarial por empleado. ALGORITMO compañía

INICIO Entero, num, i

// num, número del empleado, nov, nombre, sh salario por

hora, // ht, horas trabajadas,d, deducciones i, número de empleados, tot, // Total pagado, SM, salario mensual, P, promedio salarial//,

Real, sh, ht, d, tot sm , p CARÁCTER nomb [30] 1.- i  0 2.- tot 0 3.- LEER num, nomb, sh, ht, d 4.- MIENTRAS ( num ≠ 9999) HACER a) i i + 1 b) sm  (sh * ht) – d c) tot  tot + sm d) MOSTRAR num, nomb, sh, ht, d, sm e) LEER num, nomb, sh, ht, d FINMIENTRAS 5.- MOSTRAR tot 6.- itot/ i 7.- MOSTRAR P “es el promedio salarial por empleado” FIN 34


44.-Calcular e imprimir los salarios que se adeudan a trabajadores, basados en tasa a 1.5 veces la tasa regular, cuando Las horas trabajadas excedan de 40 por semana

ALGORITMO salarios INICIO Real, ht, d, ext ,td

// ht, horas trabajadas, d deuda, sh salario básico por hora,

extr, // horas extras, TD total de la deuda

1.-LEER ht, sh 2.- MIENTRAS ( ht ≠ 0 ) HACER a) SI ( ht > 40) ENTONCES 1) Extr ht – 40 2) D  1.5 * extr * sh 3) MOSTRAR D 4) TD  TD + D FINSI b) LEER ht. Sh FINMIENTRAS 3. MOSTRAR TD FIN 45.- Dado que un peso de mañana tiene menor valor que un peso de hoy (fenómeno económico que llamamos inflación) las empresas cuando calculan los futuros ingresos transformados a pesos de hoy superan el monto de la inversión hecha. La fórmula general para el cálculo del valor actual es :

VA = C / (1 + i) N

donde: C es la cantidad del ingreso i

es la tasa de inflación

N son los años en consideración

Una empresa tiene información sobre la tasa de inflación, la inversión y los ingresos calculados para diez años seguidos. Con ésta desea saber si al cabo de dicho tiempo ha recuperado la inversión, hablando en pesos del día en que se hace la misma ALGORITMO inflación INICIO Entero, N Real, VA,. C, inv, i, den

35


1.-LEER i , inv , C, N 2.- denexp( N * ln (1+i)) 3.- VA  C / den 4.- SI ( VA > inv ) ENTONCES a) MOSTRAR “recupera inversión” SINO a) MOSTRAR “ no recupera la inversión” FINSI

5.- MOSTRAR VA FIN

Algoritmos como funciones Teoría de la computabilidad.

36


Esquemática de un algoritmo solucionando un problema de ciclo hamiltoniano.

Un algoritmo se puede concebir como una función que transforma los datos de un problema (entrada) en los datos de una solución (salida). Más aun, los datos se pueden representar a su vez como secuencias de bits, y en general, de símbolos cualesquiera.1 9 11 Como cada secuencia de bits representa a un número natural (véase Sistema binario), entonces los algoritmos son en esencia funciones de los números naturales en los números naturales que sí se pueden calcular. Es decir que todo algoritmo calcula una función donde cada número natural es la codificaciónde un problema o de una solución. En ocasiones los algoritmos son susceptibles de nunca terminar, por ejemplo, cuando entran a un bucle infinito. Cuando esto ocurre, el algoritmo nunca devuelve ningún valor de salida, y podemos decir que la función queda indefinida para ese valor de entrada. Por esta razón se considera que los algoritmos son funciones parciales, es decir, no necesariamente definidas en todo su dominio de definición. Cuando una función puede ser calculada por medios algorítmicos, sin importar la cantidad de memoria que ocupe o el tiempo que se tarde, se dice que dicha función es computable. No todas las funciones entre secuencias datos son computables. El problema de la parada es un ejemplo.

Análisis de algoritmos Como medida de la eficiencia de un algoritmo, se suelen estudiar los recursos (memoria y tiempo) que consume el algoritmo. El análisis de algoritmos se ha desarrollado para obtener valores que de alguna forma indiquen (o especifiquen) la evolución del gasto de tiempo y memoria en función del tamaño de los valores de entrada. El análisis y estudio de los algoritmos es una disciplina de las ciencias de la computación y, en la mayoría de los casos, su estudio es completamente abstracto sin usar ningún tipo de lenguaje de programación ni cualquier otra implementación; por eso, en ese sentido, comparte las características de las disciplinas matemáticas. Así, el análisis de los algoritmos se centra en los principios básicos del algoritmo, no en los de la implementación particular. Una forma de plasmar (o algunas veces "codificar") un algoritmo es escribirlo en pseudocódigo o utilizar un lenguaje muy simple tal como Lexico, cuyos códigos pueden estar en el idioma del programador. Algunos escritores restringen la definición de algoritmo a procedimientos que deben acabar en algún momento, mientras que otros consideran procedimientos que podrían ejecutarse eternamente sin pararse, suponiendo el caso en el que existiera algún dispositivo físico que fuera capaz de funcionar eternamente. En este último caso, la finalización con éxito del algoritmo no se podría definir como la terminación de este con una salida satisfactoria, sino que el éxito estaría definido en función de las secuencias de

37


salidas dadas durante un periodo de vida de la ejecución del algoritmo. Por ejemplo, un algoritmo que verifica que hay más ceros que unos en una secuencia binaria infinita debe ejecutarse siempre para que pueda devolver un valor útil. Si se implementa correctamente, el valor devuelto por el algoritmo será válido, hasta que evalúe el siguiente dígito binario. De esta forma, mientras evalúa la siguiente secuencia podrán leerse dos tipos de señales: una señal positiva (en el caso de que el número de ceros sea mayor que el de unos) y una negativa en caso contrario. Finalmente, la salida de este algoritmo se define como la devolución de valores exclusivamente positivos si hay más ceros que unos en la secuencia y, en cualquier otro caso, devolverá una mezcla de señales positivas y negativas.

Ejemplo de algoritmo El problema consiste en encontrar el máximo de un conjunto de números. Para un ejemplo más complejo véase Algoritmo de Euclides.

Descripción de alto nivel Dado un conjunto finito de números, se tiene el problema de encontrar el número más grande. Sin pérdida de generalidad se puede asumir que dicho conjunto no es vacío y que sus elementos están numerados como

.

Es decir, dado un conjunto tal que

para todo elemento

se pide encontrar que pertenece al conjunto

.

Para encontrar el elemento máximo, se asume que el primer elemento ( ) es el máximo; luego, se recorre el conjunto y se compara cada valor con el valor del máximo número encontrado hasta ese momento. En el caso que un elemento sea mayor que el máximo, se asigna su valor al máximo. Cuando se termina de recorrer la lista, el máximo número que se ha encontrado es el máximo de todo el conjunto.

Descripción formal El algoritmo puede ser escrito de una manera más formal en el siguiente pseudocódigo: Algoritmo Encontrar el máximo de un conjunto

38


función max( //

)

es un conjunto no vacío de números// ←

//

es el número de elementos de

//

← para ←

hasta

si

hacer

entonces ←

devolver Sobre la notación: • "←" representa una asignación: toma el valor de

significa que la variable

;

• "devolver" termina el algoritmo y devuelve el valor a su derecha (en este caso, el máximo de

Implementación En lenguaje C++: int max(int c[], int n) int i, m = c[0]; for (i = 1; i < n; i++) if (c[i] > m) m = c[i]; return m;

39

).


Diagrama de flujo

40


Diagrama de flujo que expresa un algoritmo para calcular la raíz cuadrada de un número

Diagrama de flujo. Los diagramas de flujo son descripciones gráficas de algoritmos; usan símbolos conectados con flechas para indicar la secuencia de instrucciones y están regidos por ISO. Los diagramas de flujo son usados para representar algoritmos pequeños, ya que abarcan mucho espacio y su construcción es laboriosa. Por su facilidad de lectura son usados como introducción a los algoritmos, descripción de un lenguaje y descripción de procesos a personas ajenas a la computación. Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programación específico.

Pseudocódigo El pseudocódigo (falso lenguaje, el prefijo pseudo significa falso) es una descripción de alto nivel de un algoritmo que emplea una mezcla de lenguaje natural con algunas convenciones sintácticas propias de lenguajes de programación, como asignaciones, ciclos y condicionales, aunque no está regido por ningún estándar. Es utilizado para describir algoritmos en libros y publicaciones científicas, y como producto intermedio durante el desarrollo de un algoritmo, como los diagramas de flujo, aunque presentan una ventaja importante sobre estos, y es que los algoritmos descritos en pseudocódigo requieren menos espacio para representar instrucciones complejas.

41


El pseudocódigo está pensado para facilitar a las personas el entendimiento de un algoritmo, y por lo tanto puede omitir detalles irrelevantes que son necesarios en una implementación. Programadores diferentes suelen utilizar convenciones distintas, que pueden estar basadas en la sintaxis de lenguajes de programación concretos. Sin embargo, el pseudocódigo, en general, es comprensible sin necesidad de conocer o utilizar un entorno de programación específico, y es a la vez suficientemente estructurado para que su implementación se pueda hacer directamente a partir de él. Así el pseudodocódigo cumple con las funciones antes mencionadas para representar algo abstracto los protocolos son los lenguajes para la programación. Busque fuentes más precisas para tener mayor comprensión del tema.

Sistemas formales La teoría de autómatas y la teoría de funciones recursivas proveen modelos matemáticos que formalizan el concepto de algoritmo. Los modelos más comunes son la máquina de Turing, máquina de registro y funciones μrecursivas. Estos modelos son tan precisos como un lenguaje máquina, careciendo de expresiones coloquiales o ambigüedad, sin embargo se mantienen independientes de cualquier computadora y de cualquier implementación.

Implementación Muchos algoritmos son ideados para implementarse en un programa. Sin embargo, los algoritmos pueden ser implementados en otros medios, como una red neuronal, un circuito eléctrico o un aparato mecánico y eléctrico. Algunos algoritmos inclusive se diseñan especialmente para implementarse usando lápiz y papel. El algoritmo de multiplicación tradicional, el algoritmo de Euclides, la criba de Eratóstenes y muchas formas de resolver la raíz cuadrada son sólo algunos ejemplos.

42


Variables Son elementos que toman valores específicos de un tipo de datos concreto. La declaración de una variable puede realizarse comenzando con var. Principalmente, existen dos maneras de otorgar valores iniciales a variables:

1. 2.

Mediante una sentencia de asignación. Mediante un procedimiento de entrada de datos (por ejemplo:

'read'). Ejemplo: ... i:=1; read(n); while i < n do begin (* cuerpo del bucle *) i := i + 1 end; ...

Estructuras secuenciales La estructura secuencial es aquella en la que una acción sigue a otra en secuencia. Las operaciones se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso. La asignación de esto consiste, en el paso de valores o resultados a una zona de la memoria. Dicha zona será reconocida con el nombre de la variable que recibe el valor. La asignación se puede clasificar de la siguiente forma :

1.

Simples: Consiste en pasar un valor constante a una variable

(a ← 15) 2. Contador: Consiste en usarla como un verificador del número de veces que se realiza un proceso (a ← a + 1) 3. Acumulador: Consiste en usarla como un sumador en un proceso (a ← a + b) 4. De trabajo: Donde puede recibir el resultado de una operación matemática que involucre muchas variables (a ← c + b*2/4). Un ejemplo de estructura secuencial, como obtener la área de un triángulo: Inicio ... float b, h, a; printf("Diga la base"); scanf("%f", &b); printf("Diga la altura"); scanf("%f", &h);

43


a = (b*h)/2; printf("El área del triángulo es %f", a) ... Fin

EJEMPLOS  Volumen de un prisma – diagrama de flujo Realizar el algoritmo y diagrama de flujo para calcular el volumen de un prisma recto. Diagrama de flujo:

El volumen de un prisma recto es el producto del área de una de las bases por la distancia entre ellas (altura) Pseudocódigo Proceso volumenPrisma Escribir "VOLUMEN DE UN PRISMA RECTO"; Escribir "Ingresar el area de la base"; Leer abase; Escribir "Ingresar la altura"; Leer altura; volumen <- abase*altura;

44


Escribir "El volumen del prisma es: ", volumen; FinProceso

 Porcentaje de números pares e impares

Realizar el diagrama de flujo de un algoritmo que lea N números e imprima el porcentaje de números pares e impares.

Pseudocódigo Proceso PorcentajeNumeros Escribir "Ingrese la cantidad de numeros:"; Leer cant; par <-0; Para i<-1 Hasta cant Con Paso 1 Hacer Escribir "Ingrese el numero ", i, " :"; Leer num; Si num%2 = 0 Entonces par <- par + 1; FinSi FinPara porcentaje <- par/cant*100.0; Escribir "El porcentaje de : "; Escribir " - numeros pares: ", porcentaje; Escribir " - numeros impares: ", 100 - porcentaje; FinProceso

45


 Perímetro de un triangulo Ejercicio: Realizar el diagrama de flujo para hallar el perímetro de un triangulo, el valor de los lados del triangulo se debe ingresar por teclado.

Pseudocódigo Proceso PerimetroTriangulo Escribir "PERIMETRO DE UN TRIANGULO"; Escribir "Ingresar los lados: "; Escribir "Lado 1: "; Leer L1; Escribir "Lado 2: "; Leer L2; Escribir "Lado 3: "; Leer L3; perimetro <- L1+L2+L3;

46


Escribir "Perimetro = ",perimetro; FinProceso

 Suma y promedio de 10 números - Diagrama de Flujo Realizar un diagrama de flujo de un programa que permita la carga de 10 valores por teclado y muestre la suma de los valores ingresados y su promedio.

Pseudocódigo Proceso SumaNumeros suma<-0; // se pide que se ingrese los numeros Para i<-1 Hasta cant Con Paso 10 Hacer Escribir "Ingrese el numero ",i; Leer numero; suma <- suma + numero; FinPara Escribir "La suma es: ",suma; Escribir "El promedio es: ", suma/10; FinProceso

47


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.