2. Pseudocódigo Y Técnicas de Programación

20
. Pseudocódigo Y Técnicas de Programación .. Estructura de un Algoritmo. En esta materia vamos usar la siguiente estructura de Algoritmo. Primero se escriben las sentencias referidas a todo lo declarativo, que es donde se describen los datos (nombres de variables y tipo de dato para esa varaible) que se van a utilizar en el procedimiento de resolución (el ambiente) Variables. En la Parte de procesos, es donde se describen las acciones del algoritmo en sí (la lógica de resolución). Figura ..: Algoritmo En algún momento mencionamos las palabras reservadas que no son otra cosa que las palabras propias por ejemplo del Pseudocódigo. A continuación listamos las palabras reservadas de PSeInt. Proceso Subproceso Inproceso Denir Como Logico Entero Real Caracter Si Entonces Sino FinSi Para Paso Hacer Finpara Mientras FinMientras Repetir Escribir Leer Dimension Borra Pantalla .. Técnicas de Programación. ... Introducción Muchas veces, encontrar la solución a un problema no resulta una tarea sencilla. Primeramente hay que comprender bien cuál es el problema que se nos plantea, al cual le debemos encontrar su solución. Luego tendremos que identicar bien a la información que nos explicita el

Transcript of 2. Pseudocódigo Y Técnicas de Programación

Page 1: 2. Pseudocódigo Y Técnicas de Programación

2. Pseudocódigo Y Técnicas de Programación

2.1. Estructura de un Algoritmo.

En esta materia vamos usar la siguiente estructura de Algoritmo.Primero se escriben las sentencias referidas a todo lo declarativo, que es donde se describen losdatos (nombres de variables y tipo de dato para esa varaible) que se van a utilizar en elprocedimiento de resolución (el ambiente) Variables.En la Parte de procesos, es donde se describen las acciones del algoritmo en sí (la lógica deresolución).

Figura 2.1.: AlgoritmoEn algún momento mencionamos las palabras reservadas que no son otra cosa que las palabraspropias por ejemplo del Pseudocódigo.A continuación listamos las palabras reservadas de PSeInt.

Proceso Subproceso InprocesoDefinir Como Logico Entero Real CaracterSi Entonces Sino FinSiPara Paso Hacer FinparaMientras FinMientras RepetirEscribir Leer Dimension Borra Pantalla

2.2. Técnicas de Programación.

2.2.1. Introducción

Muchas veces, encontrar la solución a un problema no resulta una tarea sencilla. Primeramentehay que comprender bien cuál es el problema que se nos plantea, al cual le debemos encontrarsu solución. Luego tendremos que identificar bien a la información que nos explicita el55

Page 2: 2. Pseudocódigo Y Técnicas de Programación

Cátedra de Informática Departamento de ElectrónicaGuía Teórica de Informática Palabras claves: Lenguaje, Pseudocódigo , PSeInt, C++

Universidad Nacional de Misiones

enunciado del problema, es decir identificar los datos. Una vez fijados los datos debemosdeducir del enunciado cual es el o los resultados que nos debe brindar la solución del problema.Cumplimentadas estas dos etapas: identificación de datos e identificación de resultado, reciénestaremos en condiciones de comenzar a desarrollar una estrategia solución. Cuando laestrategia solución sea una secuencia de acciones, exactas, precisas y finitas que nuestroprocesador (ente: persona o máquina) puede ejecutar con el solo hecho de enunciarlas,estaremos formulando el algoritmo solución de nuestro problema.2.2.2. Técnicas de programación algorítmica

La elaboración de un algoritmo se puede realizar en forma totalmente libre, sin seguir loslineamentos de ningún modelo o en caso contrario aplicando las orientaciones de unprototipo.En el desarrollo de un algoritmo siguiendo un modelo establecido podemos citar, entreotros, a los siguientes modelos:2.2.3. Modelo declarativo

En este modelo se declara una serie de proposiciones, en general todo tipo de transformacionesque relatan el problema e individualizan su solución. Se indica qué es lo que se quiere obtener, nolos pasos necesarios para obtener la solución.Se trabaja por medio de cláusulas que respondena la particularidad que afirmando se afirma, llamado modus ponens (latín) .El modo ponens sebasa en una regla de deducción que podría representarse de la siguiente manera:Si proposicion1, entonces proposicion2Proposicion1Por lo tanto, proposicion2

Por ejemplo, un razonamiento que sigue las inferencias del modo ” afirmando se afirma”:Si está nublado, entonces no llega el sol.Está nublado.Por lo tanto, no llega el sol.

En los algoritmos escritos en este modelo sus acciones no se ejecutan secuencialmente, noexisten formas estructurales. Los algoritmos se fundamentan en dos nociones: la unificación y lavuelta atrás. La unificación establece que cada proposición determine un conjunto de nuevasproposiciones susceptibles de ser ejecutadas. La vuelta atrás permite regresar al punto departida. Algunos lenguajes de programación que responden a este paradigma son, por ejemplo:Prolog, Lisp, Maude, Sql.2.2.4. Modelo imperativo

En este modelo se detallan todos los pasos necesarios para encontrar la solución del problema.Las acciones se ejecutan secuencialmente, siguiendo una estructuración. Esta estructuración seimplementa a través de las estructuras de control.Ejemplo:

InicioCátedra de Informática rev1 56 de 143

Page 3: 2. Pseudocódigo Y Técnicas de Programación

Cátedra de Informática Departamento de ElectrónicaGuía Teórica de Informática Palabras claves: Lenguaje, Pseudocódigo , PSeInt, C++

Universidad Nacional de Misiones

Acción 1Acción 2Acción 3Hacer n veces

• Si expresión es verdadera entonces◦ Acción 4◦ Acción 5◦ Acción 6

• Sino◦ Acción 7◦ Acción 8

• Fin selecciónFin repeticiónAcción 9Acción 10Fin

Entre los lenguajes que responden a esta forma de desarrollar programas podemos mencionar,entre otros: Fortran, Pascal, C, etc.Nosotros utilizaremos este modelo imperativo aplicando una técnica específica que se desa-rrollará más adelante.

2.2.5. Modelo orientado a objetos

Los algoritmos que siguen este modelo se caracterizan porque tienen en cuenta las relacionesque existen entre todos los objetos que intervienen. Cada objeto o entidad que interviene en lasolución tiene una determinado conducta, estado e identificación.En este modelo no se debepreguntar: ¿qué hace el algoritmo?, sino preguntar: ¿quién o qué lo hace?. Algunos lenguajes deprogramación que siguen este modelo son: Smalltalk, C++, HTML, Java, etc.C++, es 10 años mas nuevo que C. C++ incorporó algo llamado Clases que está basado enObjetos. Este tema no se ve en Informática, si en Computación que se dicta en 3er. año de laCarrera de Ingeniería Electrónica.

2.3. Estructuras de Control. Programación Estructurada

En la construcción de un algoritmo las acciones que lo integran deben agruparse de la forma quedicha resolución lo exija.Existirán para un mismo algoritmo muchas formas de organizar sus acciones, primitivas o no,que conduzcan a la solución requerida.Pensaremos en esas organizaciones como noexcluyentes y que se podrán incluir o asociar entre ellas.Utilizaremos solamente tres únicasformas de disposición de las acciones.Cátedra de Informática rev1 57 de 143

Page 4: 2. Pseudocódigo Y Técnicas de Programación

Cátedra de Informática Departamento de ElectrónicaGuía Teórica de Informática Palabras claves: Lenguaje, Pseudocódigo , PSeInt, C++

Universidad Nacional de Misiones

1. Hay veces que las acciones necesitan agruparse o estructurarse en forma de serie osucesión.

2. Otras veces las acciones deberán reunirse en un proceso repetitivo.

3. En distintas ocasiones la agrupación de las acciones deberá responder a un proceso deselección, que divide el camino para agrupar las acciones siguientes entre dos o másopciones.

2.3.1. Estructuras de control

Llamaremos estructuras de control a las organizaciones que controlan la ejecución de las ac-ciones en un algoritmo.Las estructuras de control son las que establecen el orden de ejecución de las acciones.Permiten especificar la coordinación y regulación del algoritmo, porque dirigen la dirección quedebe seguir el flujo de información en el mismo.2.3.2. Programación estructurada (PE) =>Método Imperativo

La programación estructurada es una forma de desarrollar programas (algoritmos) queresponde al modelo imperativo.Es un conjunto de técnicas para desarrollar algoritmos fáciles de escribir, verificar, leer ymodificar.Los algoritmos desarrollados aplicando este modelo son más fáciles de “seguir” dado que losmismos NO implementan el uso de saltos: “ir de una línea a otra línea de algoritmo” (SALTO.)

Como en esta materia utilizaremos la programación estructurada, NO SE UTILIZARÁ, nien Pseudocódigo (PSeInt), ni en C++, las sentencias de SALTO incondicional.

Se considerarámal si el Alumnoutiliza este tipo de sentencias en la resolución de cualquierejercicio.Estas sentencias de hecho existen en C++ y en pseudocódigo.Si uno programa de una manera ordenada es totalmente inecesario el salto incondicional(goto) Concusión : NO USAR goto!!

Sin estos saltos, los posibles errores que pudieran existir en un algoritmo son más fáciles dedetectar y corregir.La organización del algoritmo aplicando esta técnica es más evidente, dadoque las acciones se encuentran agrupadas.La PE utiliza el diseño descendente o top down en eldesarrollo de los algoritmos.La Técnica que va de lo “general” a lo “particular”, es decir, consiste en diseñar los algoritmos enetapas, partiendo de los conceptos generales hasta llegar a los detalles.Cátedra de Informática rev1 58 de 143

Page 5: 2. Pseudocódigo Y Técnicas de Programación

Cátedra de Informática Departamento de ElectrónicaGuía Teórica de Informática Palabras claves: Lenguaje, Pseudocódigo , PSeInt, C++

Universidad Nacional de Misiones

Se podría continuar con más niveles de división. La ejecución de cada uno de los algoritmosintervinientes constituirá la ejecución del algoritmo principal. Cada uno de estos algoritmosdeberá reunir las siguientes características:1. Tener un solo punto de inicio y un solo punto de finalización.2. Toda acción de cada algoritmo es accesible, es decir, existe al menos un camino que vadesde el inicio hasta el fin del mismo,que se puede seguir y pasa a través de dicha acción.3. No existirán repeticiones que nunca concluyan, es decir, infinitas.

Podemos ver que esto coincide totalmente con la definición de Que es un Algoritmo? del capítilo1.Podríamos concluir: la producción de un algoritmo se realizará aplicando TOP – DOWN yademás:

"Un algoritmo podrá ser escrito utilizando únicamente tres tipos de estructuras u organizaciónde las acciones: secuencial, selectiva y repetitiva”.La conclusión anterior es la condición fundamental de la PE.

2.4. Organización secuencial

La llamamos así y no estructura de control secuencial porque entendemos que esta forma deinstaurar las acciones no realiza ninguna vigilancia entre las mismas, simplemente es unconjunto de acciones ordenadas de tal manera que cada acción determina cual es la siguienteacción.acción 1acción 2acción 3———–———–acción nEjemplo: Desarrollar en pseudocódigo el algoritmo correspondiente al siguiente enunciado:Dados dos números reales calcular su suma y su producto y mostrar los resultados.El código secuencial sería:Cátedra de Informática rev1 59 de 143

Page 6: 2. Pseudocódigo Y Técnicas de Programación

Cátedra de Informática Departamento de ElectrónicaGuía Teórica de Informática Palabras claves: Lenguaje, Pseudocódigo , PSeInt, C++

Universidad Nacional de Misiones

1 Proceso suma2 Definir n1, n2, sum, producto como real;3 Leer n1;4 Leer n2;5 sum=n1+n2;6 producto=n1*n2;7 Escribir "suma =",sum , " Producto= ", producto;89 FinProceso

El Diagrama de Flujo para este Pseudocódigo sería:

Figura 2.2.: Ejemplo secuencial: sumaSe puede decir que en este algoritmo las acciones Leer(), asignación de la variable suma,asignación de la variable producto y la acción Escribir() están en serie o secuencia. Es decir,cuando termina de ejecutarse una se continúa con la ejecución de la siguiente.En esta sección comenzaremos a conocer la sintaxis y semántica del lenguaje que entiendenuestro procesador. Veremos algunas de las acciones primitivas del lenguaje de Psuedocódigoque utilizamos en PSeInt.

2.5. Detalle de los Sentencias de PSeInt Comandos:

En la materia de Informática utilizaremos el software libre llamado PSeInt.En esta sección veremos algunas de las sentencias o comandos de este lenguaje depseudocódigo.Este es un resumen puede servir como guía rápida para consultas, para mas detalles remitirse ala Ayuda de PSeInt.Cátedra de Informática rev1 60 de 143

Page 7: 2. Pseudocódigo Y Técnicas de Programación

Cátedra de Informática Departamento de ElectrónicaGuía Teórica de Informática Palabras claves: Lenguaje, Pseudocódigo , PSeInt, C++

Universidad Nacional de Misiones

Observar :Cada línea que termina una sentencia debe tener punto y coma (;).Utilizar Perfil UNaM-FIO en PSeInt (Menú Configurar->Opciones de Lenguaje y buscarUNaM-FIO)

2.5.1. Inicio y Fin de un Proceso

Para comenzar a escribir un programa es necesario iniciar con el comando Proceso seguido delnombre del proceso (Ej: Proceso Sumador), el nombre no debe llevar espacios y esrecomendable que sea lo más representativo a lo que hace el código. Al finalizar se debe colocarel comando FinProceso, esto cierra el código del programa.Ejemplo:Proceso Sumador

..

..FinProceso

2.5.2. Asignación

Esta instrucción permite almacenar el valor en una variable, ya sea resultado de una operación obien el valor de otra variableEl comando es <variable> = <expresión>; primero evalúa la expresión de la derecha y luegoasigna el resultado a la variable de la izquierda. Es importante que el tipo de variable queinvolucra a la expresión coincida con el tipo de variable de asignación.C = A + B; J = 8;2.5.3. Definición de Variable

La instrucción Definir nos permite explicitar el tipo de una o más variables que se utilizarán en elprograma. Antes de usar una variable en el proceso, es necesaria indicar que va a existir, esto esdefinirla y a la vez es necesario indicar de que tipo va a ser, para ello luego de los nombres de lasvariables, se coloca el indicador como, y luego el tipo de variable Los tipos de variablespermitidos son : REAL ENTERO LOGICO CARACTER

Ejemplo:Definir A como ENTERO;Definir b como REAL;Cátedra de Informática rev1 61 de 143

Page 8: 2. Pseudocódigo Y Técnicas de Programación

Cátedra de Informática Departamento de ElectrónicaGuía Teórica de Informática Palabras claves: Lenguaje, Pseudocódigo , PSeInt, C++

Universidad Nacional de Misiones

2.5.4. Operadores

Este pseudolenguaje dispone de un conjunto básico de operadores que pueden ser utilizadospara la construcción de expresiones más o menos complejas. Las siguientes tablas exhiben latotalidad de los operadores de este lenguaje reducido:

Figura 2.3.: OperadoresLa jerarquía de los operadores matemáticos es igual a la del álgebra, aunque puede alterarsemediante el uso de paréntesis. Para el caso de los operadores & y |, la evaluación se realiza encortocircuito.Esto significa que si dos existen dos expresiones y la primera se evalúa como falso será falso yno se evalúa la segunda, eso si están unidas por el operador &.Para el caso de que estén unidas por el operador | y la primera se evalúa como Verdadero, lasegunda no se evalúa ya que no altera el resultado.Esto se puede entender mirando la tabla de Operaciones Lógicas Binarias del Álgebra de Boolevistas en el capítulo 1.2.5.5. Ingreso de Datos

La instrucción Leer <variable>; permite ingresar datos cuando se ejecute el programa, se puedeingresar una o más variables en el mismo comando, estos datos se ingresan desde el teclado enel caso de una computadora.Para ingresar datos a una variable es necesario que la misma esté definida con nombre y tipo devariable.Ejemplo:Definir A como REAL;Leer A;En la representación de Leer , se puede ver un Paralelogramo con una flechita hacia adentro.Cátedra de Informática rev1 62 de 143

Page 9: 2. Pseudocódigo Y Técnicas de Programación

Cátedra de Informática Departamento de ElectrónicaGuía Teórica de Informática Palabras claves: Lenguaje, Pseudocódigo , PSeInt, C++

Universidad Nacional de Misiones

2.5.6. Salida de Datos

La instrucción Escribir <variable> nos permite mostrar en pantalla un valor, ya sea el contenidode una variable, el resultado directo de una expresión o bien un texto.El comando podría ser:

Escribir <variable>;

Escribir <expresión>;

Escribir “TEXTO“;O una combinación de estas separadas por coma ( ,) donde se evalúa cada una de lasexpresiones y muestra en pantalla el contenido, en el caso de mostrar un texto siempre debeestar entre comillas dobles.Ejemplo:Definir A como ENTERO;Leer A; Escribir “La Variable ”, A, “ es un entero”;En la representación de Escribir , se puede ver un Paralelogramo con una flechita hacia afuera.� Actividad Propuesta

Desarrollar la estrategia solución correspondiente a cada uno de los siguientes enunciados y elalgoritmo en pseudocódigo y el diagrama de flujo en el caso que le resulte interesante, de lossiguientes problemas.1. Teniendo como dato el radio de un círculo, calcular y mostrar, expresado en centímetros:

a) La longitud de la circunferencia que tiene dicho radio.b) El área del círculo correspondiente al radio.c) El volumen de la esfera correspondiente al radio.

Además se dispone como dato del valor de 1cm en otra unidad de medida de longitud, seadel sistema métrico u otro y del nombre de la nueva unidad. Se pide calcular y mostrar losresultados obtenidos en los puntos a, b y c convertidos a la nueva unidad, identificando co-rrectamente los resultados.2. La serie numérica de Fibonacci declara que cada término de la misma es la suma de los dostérminos anteriores. Teniendo como datos el término N1 y el posterior N2, calcular y mostrarlos 5 términos siguientes. Los dos primeros términos se llaman semilla y son el 0 y el 1.3. Ingresar un número entero N, calcular y mostrar la sumatoria de los 5 enteros posteriores aN.4. Teniendo como dato un número par N, calcular y mostrar los cinco impares siguientes a él.5. Se deja al lector tratar de hacer el Diagrama de Flujo y escribir el Pseudocódigo del siguienteEjercicio. Se ingresan la base y la altura de un triángulo rectángulo. Mostrar por pantalla elPerímetro y la Superficie del mismo.

Cátedra de Informática rev1 63 de 143

Page 10: 2. Pseudocódigo Y Técnicas de Programación

Cátedra de Informática Departamento de ElectrónicaGuía Teórica de Informática Palabras claves: Lenguaje, Pseudocódigo , PSeInt, C++

Universidad Nacional de Misiones

2.6. Organización selectiva o decisión

Hasta ahora vimos solo código que se ejecutaba de manera Secuencial... es decir no habíaninguna Bifurcación, por lo tanto solo existía un camino.Algunas veces es necesario establecer una condición en la resolución de un problema. Esacondición después de ser evaluada divide la resolución del problema en dos posibles vías ocaminos:

si el resultado de la condición es verdadero, se toma el camino del verdadero,si dicho resultado es falso, se toma el camino del falso.

En nuestros algoritmos la condición la expresaremos mediante la construcción de una expresiónalgorítmica válida. A partir de esta nueva estructura surgen varias que son un clásico encualquier lenguaje conocida en C++ como: if, if/else , for , while, do/while, switch, las cualesveremos a continuación.

2.6.1. Condición Si-Entonces (if)

La ejecución de estas sentencias depende del valor de la condición lógica. Al evaluar la expresiónlógica, devuelve un Verdadero o un Falso. Si la expresión lógica es Verdadera se realizan lasinstrucciones que están bajo la indicación. La sintaxis sería:

Si <expresión que se evalúa> Entoncesinstrucciones......FinSI

Veamos un Ejemplo:

1 Proceso if023 definir a, b como entero;4 leer a;5 leer b;6 Si a>b Entonces7 Escribir "El primer número ", a, " es mayor que el Segundo ", b ," ingresado";8 FinSi9 FinProceso

Notar que la acción se toma cuando se sale por Verdadero.Cátedra de Informática rev1 64 de 143

Page 11: 2. Pseudocódigo Y Técnicas de Programación

Cátedra de Informática Departamento de ElectrónicaGuía Teórica de Informática Palabras claves: Lenguaje, Pseudocódigo , PSeInt, C++

Universidad Nacional de Misiones

Figura 2.4.: if

Ejemplo:Dada la edad de un alumno mostrar con cartel aclaratorio si la misma supera los 20años.

Figura 2.5.: Ejemplo Selección SimpleObservación: Ver que no dice "años", esto es así por que los caracteres como , ñ o letrasacentuadas pueden aparece de manera errónea.Cátedra de Informática rev1 65 de 143

Page 12: 2. Pseudocódigo Y Técnicas de Programación

Cátedra de Informática Departamento de ElectrónicaGuía Teórica de Informática Palabras claves: Lenguaje, Pseudocódigo , PSeInt, C++

Universidad Nacional de Misiones

Observación:Ver que para el caso del if ó Si Entonces.. el camino del Verdadero SIEMPRE tiene almenosuna sentencia.Ver que para el caso del if ó Si Entonces.. el camino del FalsoNO tieneNINGUNASentencia.

2.6.2. Condición Si-entonces-sino (if-else)

Este tipo de estructura organiza la ejecución de las acciones después de la evaluación de unaexpresión.Los resultados posibles de la expresión establecida podrán ser: verdadero (V) ó falso (F), por lotanto las acciones siguientes a ser ejecutadas tienen dos posibles caminos, PERO SIEMPREdebe existir una acción al menos por el verdadero.

Si la expresión es verdadera se ejecutarán la/s acciones que están en el camino del verdaderoSi la expresión es falsa se ejecutarán la/s acciones que están en el camino del falso.

Figura 2.6.: Ejemplo Selección Simple

En lenguaje C, las sentencias de Selección Si-Entonces-No, se conoce como if-else.Donde expresión es una expresión lógica algorítmica válida y/o una variable lógica. La cláusulasino puede faltar dependiendo de la condición planteada, en ese caso es una selección simpleincompleta. El margen que se establece para el entonces y el sino es para que el algoritmo seamás legible.

Cátedra de Informática rev1 66 de 143

Page 13: 2. Pseudocódigo Y Técnicas de Programación

Cátedra de Informática Departamento de ElectrónicaGuía Teórica de Informática Palabras claves: Lenguaje, Pseudocódigo , PSeInt, C++

Universidad Nacional de Misiones

Observación:Ver que para el caso del if -else ó Si Entonces Sino.. el camino del Verdadero SIEMPREtiene al menos una sentencia.Ver que para el caso del if-else ó Si Entonces.. Sino el camino del Falso SIEMPRE tiene almenos una sentencia.

Ejemplos: 1) Dados dos números reales distintos mostrar el mayor.

Figura 2.7.: Ejemplo Selección Simple� Actividad Propuesta:

1. Se deja al lector tratar de hacer el De hacer el Diagrama de Flujo del siguiente Pseudocódigo.1 Proceso if2 Definir a,b Como Entero;3 Leer a;4 Si a>0 Entonces5 Escribir "El nro. es positivo";6 Sino7 Si a<0 Entonces8 Escribir "El nro. negativo";9 Sino10 Escribir "El nro. es cero";11 FinSi12 FinSi13 FinProceso

2. Un año es bisiesto si es divisible por 4 y no es por 100, o si es divisible por 400. Desarrolle unalgoritmo donde se lea o ingrese desde la entrada estándar un valor entero correspondientea un año cualquiera y determine si es o fue bisiesto.3. Leer la nota de un alumno (numérica) y mostrar un mensaje diciendo si está reprobado (<4), aprobado (>=4 y < 7), bueno (>=7 y <9), distinguido (= 9) o sobresaliente (= 10). Mostrar

Cátedra de Informática rev1 67 de 143

Page 14: 2. Pseudocódigo Y Técnicas de Programación

Cátedra de Informática Departamento de ElectrónicaGuía Teórica de Informática Palabras claves: Lenguaje, Pseudocódigo , PSeInt, C++

Universidad Nacional de Misiones

un mensaje si la nota es incorrecta. Este algoritmo debe hacerse de dos maneras distintas:con decisiones secuenciales y decisiones anidadas.4. Leer las coordenadas cartesianas (x, y) de un punto del plano y calcular e imprimir el cua-drante (I, II, III, IV) al cual pertenece el punto.5. Se ingresa por teclado un número positivo de uno o dos dígitos (1..99). Mostrar un mensajeindicando cuantos dígitos tiene el número ingresado.6. Se tiene como datos 4 valores numéricos enteros distintos. Calcular y mostrar la suma delmayor número y el menor número de los 4 dados.

2.6.3. Selección Múltiple Según (switch)

La ejecución de esta sentencia depende del valor de una variable, que va seguido del comandoSegun, esto evalúa la variable y finaliza con FinSegun.Esta instrucción permite ejecutar opcionalmente varias acciones posibles, al ejecutarse, seevalúa el contenido de la variable y se ejecuta la secuencia de instrucciones asociada con dichovalor que se detallan luego del comando Hacer.Es importante destacar que NO HAY COMPARACIÓN u EXPRESIÓN DE RELACIÓN, dentro luegode Segun , si no que solamente evalúa una variable.Cada opción está formada por uno o más contantes separados por comas, dos puntos y unasecuencia de instrucciones.Si una opción incluye varios números, la secuencia de instrucciones asociada se debe ejecutarcuando el valor de la variable es uno de esos números.Se debe agregar una opción final, denominada De Otro Modo, cuya secuencia de instruccionesasociada se ejecutará sólo si el valor almacenado en la variable no coincide con ninguna de lasopciones anteriores.Este sentencia se utiliza normalmente para la creación de Menúes.

1 Proceso switch2 Definir a Como Caracter;3 Escribir "Ingrese una opción: ";4 Escribir "1-Primer Alternativa";5 Escribir "2-Segunda Alternativa";6 Escribir "S-Salir";7 Leer a;8 Segun(a)9 ’1’: Escribir "Ud. eligió 1er. opción";10 ’2’: Escribir "Ud. eligió 2da. opción";11 ’S’: Escribir "Ud. eligió salir ";12 De otro Modo: Escribir "Ud. eligió una opción no valida";13 FinSegun14 FinProceso

El equivalente en Diagrama de flujo sería:Cátedra de Informática rev1 68 de 143

Page 15: 2. Pseudocódigo Y Técnicas de Programación

Cátedra de Informática Departamento de ElectrónicaGuía Teórica de Informática Palabras claves: Lenguaje, Pseudocódigo , PSeInt, C++

Universidad Nacional de Misiones

Figura 2.8.: switch

� Actividad Propuesta:

Desarrollar la estrategia solución correspondiente a cada uno de los siguientes enunciados y elalgoritmo en pseudocódigo de los siguientes problemas:1. Ingresar un número válido de día. Mostrar el nombre del día de la semana correspondiente.

2.7. Estructuras Repetitivas.

2.7.1. Ciclo Para (for)

La instrucción Para ejecuta una secuencia de instrucciones un número determinado de veces,definido por el valor seguido del comando Hasta.Al ingresar al bloque, la variable de control recibe el valor inicial y se ejecuta la secuencia deinstrucciones que forma el cuerpo bucle. Luego se incrementa la variable de control en un pasode unidades determinado y se evalúa la condición de fin. Se repite el ciclo hasta que de falso lacondición.Si se omite la cláusula Con Paso <paso>, la variable de control se incrementará en 1.Ejemplo:Definir i como ENTERO;

Escribir “Los primeros números pares son: “;

Para i=0 Hasta 10 Con Paso 2 Hacer Escribir i, “; “;

FinPara

Veamos otro ejemplo:Cátedra de Informática rev1 69 de 143

Page 16: 2. Pseudocódigo Y Técnicas de Programación

Cátedra de Informática Departamento de ElectrónicaGuía Teórica de Informática Palabras claves: Lenguaje, Pseudocódigo , PSeInt, C++

Universidad Nacional de Misiones

1 Proceso for23 Definir i , x como ENTERO;4 Escribir "Ingrese un numero: ";5 Leer x;6 Escribir "Motraremos los primeros pares menores a ",x ;7 Para i=0 Hasta x Con Paso 2 Hacer8 Escribir i;9 FinPara1011 FinProceso

El equivalente en Diagrama de flujo sería:

Figura 2.9.: forEn las figuras precedentes , se muestran dos alternativas de visualizar el diagrama de flujo paraun ciclo for. Se recomienda al lector asociar los contenidos del ciclo for en las dos imágenes.Existen varias alternativas que se pueden usar en la sentencia Para, se recomienda ver la ayudadel PSeInt.Notar que se evalúa i<x , pero solamente se escribe Hasta x, no va la expresión de com-paración.

Notar que NO necesariamente debe comenzar en Cero.Notar que NO necesariamente el incremento o paso debe ser de 2.

� Actividad Propuesta:

Desarrollar la estrategia solución correspondiente a cada uno de los siguientes enunciados y elalgoritmo en pseudocódigo de los siguientes problemas.1. Calcular y mostrar el valor de S, Solicitar el valor de N al usuario. S=∑i=N

i=0 1/2i

2. Teniendo como datos dos enteros a y b, calcular y mostrar:ab .3. Los datos son valores numéricos enteros. Calcular y mostrar los tres valores mayores ingre-sados.

Cátedra de Informática rev1 70 de 143

Page 17: 2. Pseudocódigo Y Técnicas de Programación

Cátedra de Informática Departamento de ElectrónicaGuía Teórica de Informática Palabras claves: Lenguaje, Pseudocódigo , PSeInt, C++

Universidad Nacional de Misiones

2.7.2. Ciclo Mientras ( while)

La instrucción Mientras ejecuta una secuencia de instrucciones seguidas del comando Hacermientras una condición sea verdadera. Al ejecutarse esta instrucción, primero se evalúa lacondición. Si la condición resulta verdadera, se ejecuta una vez la secuencia de instruccionesque forman el cuerpo del ciclo.Luego se vuelve a evaluar la condición y, si es verdadera, la ejecución se repite. Caso contrario deque sea falsa, sale del ciclo y el programa continúa abajo del comando FinMientras.Tener en cuenta que las instrucciones del cuerpo del ciclo pueden no ejecutarse nunca, si alevaluar por primera vez la condición resulta ser falsa. Por otro lado, si la condición siempre esverdadera, al ejecutar esta instrucción se produce un ciclo infinito. A fin de evitarlo, lasinstrucciones del cuerpo del bucle deben contener alguna instrucción que modifique la o lasvariables involucradas en la condición, de modo que ésta sea falsificada en algún momento y asífinalice la ejecución del ciclo.Veamos un ejemplo:

1 Proceso while2 Definir A, L como ENTERO;3 L=0;4 Mientras L<250 Hacer5 Leer A; L=L+A;6 FinMientras78 FinProceso

La representación sería:

Figura 2.10.: while2.7.3. Ciclo Repetir - Mientras ( do- while)

La sentencia Repetir entra a un bucle, donde se ejecuta las instrucciones que le proceden, yluego evalúa una condición determinada por el comando Mientras Que <condición>; si estaCátedra de Informática rev1 71 de 143

Page 18: 2. Pseudocódigo Y Técnicas de Programación

Cátedra de Informática Departamento de ElectrónicaGuía Teórica de Informática Palabras claves: Lenguaje, Pseudocódigo , PSeInt, C++

Universidad Nacional de Misiones

condición es verdadera el ciclo sigue ejecutándose, sale del mismo una vez que la condiciónevaluada es falsa.Se debe tener en cuenta que el cuerpo del ciclo se ejecuta al menos una vez, ya que primeroejecuta las instrucciones y luego evalúa la condición de fin. Al igual que el Lazo Mientras, hay quemodificar en el cuerpo del bucle la o las variables que intervienen en la condición, de manera talque en algún momento obtengamos un falso, y no quedemos en un bucle infinito.Veamos un ejemplo:1 Proceso do_while2 Definir suma,x Como Entero;3 suma = 0;4 Repetir5 Escribir "Ingrese un número del acumulador: ";6 Leer x;7 suma=suma +x;8 Mientras Que (suma<100)9 FinProceso

La representación sería:

Figura 2.11.: do-while

� Actividad Propuesta:

Desarrollar la estrategia solución correspondiente a cada uno de los siguientes enunciados y elalgoritmo en pseudocódigo de los siguientes problemas.1. Se ingresan números por teclado, los cuales se van acumulando hasta que se ingresa el cero.Alli se deberá mostrar el acumulado de los números ingresados. Resolver este ejercicio conwhile y con do-while y compara ambos.

2.7.4. Declaración de Arreglos

Para declarar un arreglo es necesario primero declarar la variable con el comando Definirindicando también el tipo de dato ( indicados en capítulo 1).Cátedra de Informática rev1 72 de 143

Page 19: 2. Pseudocódigo Y Técnicas de Programación

Cátedra de Informática Departamento de ElectrónicaGuía Teórica de Informática Palabras claves: Lenguaje, Pseudocódigo , PSeInt, C++

Universidad Nacional de Misiones

Luego en otra línea se introduce el comando Dimension seguido del nombre del arreglo yadeclarado como variable y la dimensión entre corchetes.Se pueden definir arreglos de una dimensión o de varias dimensiones.La sintaxis es:Dimension <variable>[<elementos>,. . . ,<elementos>];Ejemplo:

Definir Vec, Mat como REAL Dimension Vec[25], Mat[5,5];2.7.5. Borrado de Pantalla

Se puede utilizar una instrucción para limpiar la pantalla en la que se ejecuta el código yposiciona al cursor en la esquina superior izquierda.La sintaxis es Borrar Pantalla; y es útil cuando se necesita refrescar la pantalla.2.7.6. Espera o Pausa

Sirve para pausar el programa, continuando con el ingreso de cualquier tecla apretada por elusuario, o bien se puede colocar la instrucción de esperar tantos segundos o milisegundos. Lassintaxis se pueden observar en el siguiente ejemplo.Ejemplo:Esperar Tecla;

Esperar 4 Segundos;

Esperar 115 Milisegundos;

Cátedra de Informática rev1 73 de 143

Page 20: 2. Pseudocódigo Y Técnicas de Programación

Cátedra de Informática Departamento de ElectrónicaGuía Teórica de Informática Palabras claves: Lenguaje, Pseudocódigo , PSeInt, C++

Universidad Nacional de Misiones

Cátedra de Informática rev1 74 de 143