ejemplos de algoritmos en pseudocodigo

51
Recopilación de Ejemplos de algoritmos en PSeudoCodigo con pseint Nota: estos ejemplos se encuentran desactualizados. Si bien continúan siendo válidos, algunas operaciones pueden simplificarse gracias a nuevas características del intérprete, y hay además aspectos del lenguaje que no están cubiertos en ninguo de estos ejemplos (como la definición de funciones o subprocesos). Finalmente, la sintaxis de un ejemplo puede variar según el perfil de lenguaje con que el usuario configure al intérprete. Para obtener una lista más completa de ejemplos, y visualizar su sintaxis adaptada a una cierta configuración consulte la ayuda del editor. AdivinaNumero : simple juego en el que hay que adivinar un nro aleatorio entre 1 y 100 en menos de 10 intentos. Factorizacion : descompone un numero en sus factores primos. Hanoi : juego de las torres de Hanoi, donde se deben mover discos entre tres torres cumpliendo ciertas limitaciones, hasta colocarlos todos en la ultima torre. Matematicas : presenta un menu que permite realizar diferentes operaciones matematicas sobre un numero (funciones trigonometricas, calcular valor absolto, truncar, determinar si es primo, hallar el factorial, hallar la raiz cuadrada, etc.). Mayores : Busca los dos mayores de una lista de N datos Modulo : Ejemplo trivial del uso del operador de módulo (MOD o %). OrdenaLista : ordena una lista de nombres alfabeticamente. Promedio : calcula el promedio de una lista de datos. Página 1 de 51

Upload: pirata-unac

Post on 09-Feb-2016

224 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Ejemplos de Algoritmos en PSeudoCodigo

Recopilación de Ejemplos de algoritmos en PSeudoCodigo con pseint

Nota: estos ejemplos se encuentran desactualizados. Si bien continúan siendo válidos, algunas operaciones pueden simplificarse gracias a nuevas características del intérprete, y hay además aspectos del lenguaje que no están cubiertos en ninguo de estos ejemplos (como la definición de funciones o subprocesos). Finalmente, la sintaxis de un ejemplo puede variar según el perfil de lenguaje con que el usuario configure al intérprete. Para obtener una lista más completa de ejemplos, y visualizar su sintaxis adaptada a una cierta configuración consulte la ayuda del editor.

AdivinaNumero : simple juego en el que hay que adivinar un nro aleatorio entre 1 y 100 en menos de 10 intentos. 

Factorizacion : descompone un numero en sus factores primos. 

Hanoi : juego de las torres de Hanoi, donde se deben mover discos entre tres torres cumpliendo ciertas limitaciones, hasta colocarlos todos en la ultima torre. 

Matematicas : presenta un menu que permite realizar diferentes operaciones matematicas sobre un numero (funciones trigonometricas, calcular valor absolto, truncar, determinar si es primo, hallar el factorial, hallar la raiz cuadrada, etc.). 

Mayores : Busca los dos mayores de una lista de N datos

Modulo : Ejemplo trivial del uso del operador de módulo (MOD o %).

OrdenaLista : ordena una lista de nombres alfabeticamente. 

Promedio : calcula el promedio de una lista de datos. 

Resolvente : calcula e informa las raices de una ecuacion de cuadratica, considerando los tres casos (reales iguales, reales distintas, o complejas conjugadas). 

Sucursales : se obtienen datos acerca de las ventas de una empresa ingresando las cantidades vendidas por articulo y sucursal, junto con el listado de precios. 

Triangulo : calcula el area de un triangulo rectangulo, verificando primero que lo sea mediante el teorema de pitagoras. 

Página 1 de 42

Page 2: Ejemplos de Algoritmos en PSeudoCodigo

AdivinaNumero.psc

// Juego simple que pide al usuario que adivine un numero en 10 intentos

Proceso Adivina_Numero                    intentos<-9;          num_secreto <- azar(100)+1;                    Escribir "Adivine el numero (de 1 a 100):";          Leer num_ingresado;          Mientras num_secreto<>num_ingresado Y intentos>0 Hacer                    Si num_secreto>num_ingresado Entonces                              Escribir "Muy bajo";                    Sino                               Escribir "Muy alto";                    FinSi                    Escribir "Le quedan ",intentos," intentos:";                    Leer num_ingresado;                    intentos <- intentos-1;          FinMientras                    Si intentos=0 Entonces                    Escribir "El numero era: ",num_secreto;          Sino                    Escribir "Exacto! Usted adivino en ",11-intentos," intentos.";          FinSi          FinProceso

Factorizacion.psc

Proceso Factorizacion                    Escribir "Ingrese el numero: ";          Leer num;                    Escribir "Factorizacion: ";                    factorizar<-verdadero;                    Mientras factorizar Y num>1 hacer                    div<-0;                    Si num/2 = trunc(num/2) Entonces                              Escribir 2;                              num<-num/2;                    Sino                              div<-1; factor_primo<-Verdadero;                              Mientras div<=rc(num) Y factor_primo Hacer                                        div <- div+2;                                        Si num/div = trunc(num/div) Entonces                                                  factor_primo <- Falso;                                        FinSi                              FinMientras                              Si factor_primo Entonces

Página 2 de 42

Page 3: Ejemplos de Algoritmos en PSeudoCodigo

                                        escribir num;                                        factorizar<-falso;                              sino                                        escribir div;                                        num<-num/div;                                        factor_primo<-verdadero;                              FinSi                    FinSi          FinMientras          FinProceso

Hanoi.psc

//    El objetivo del juego es mover los discos de la torre 1 a la 3 en la// menor cantidad de movimientos posible. No se puede colocar un disco de // un tamanio sobre otro mas chico

//     Hay una matriz que representa las torres, cada columna contiene//  nros que representan los tamanios de los discos en esas torres (solo//  interesan los valores hasta la cantidad de discos de esa torre).//  Cuantos discos tiene cada torre lo dice el vector cant_discos. 

Proceso Hanoi                    Dimension torres[3,10], cant_discos[3];                    // pedir y validar cuantos discos colocar en la primer torre          Escribir "Ingrese el nro de discos (1-5):";          leer discos;          mientras discos<1 O discos>8 Hacer                    Escribir "El numero de discos debe ser mayor a 0 y menor a 5:";                    leer discos;          finmientras

          // inicializar los datos          cant_discos[1]<-discos;          cant_discos[2]<-0;          cant_discos[3]<-0;          para i<-1 hasta discos hacer                    torres[1,i]<-discos-i+1;          finpara                    cant_movs<-0;                    // jugar!          mientras cant_discos[3]<>discos Hacer // mientras no esten todos los discos en la tercer torre, el juego sigue                                        para i<-1 hasta 3 Hacer // dibujar las tres torres                              escribir "";                              escribir "Torre ",i;                              si cant_discos[i]=0 Entonces                                        Escribir "";                              sino                                        para j<-cant_discos[i] hasta 1 con paso -1 Hacer

Página 3 de 42

Page 4: Ejemplos de Algoritmos en PSeudoCodigo

// recorrer los discos de la torre, de arriba hacia abajo                                                  segun torres[i,j] Hacer // dibujar cada disco                                                            1: escribir "                   XX";                                                            2: escribir "                 XXXXXX";                                                            3: escribir "               XXXXXXXXXX";                                                            4: escribir "             XXXXXXXXXXXXXX";                                                            5: escribir "           XXXXXXXXXXXXXXXXXX";                                                            6: escribir "         XXXXXXXXXXXXXXXXXXXXXX";                                                            7: escribir "       XXXXXXXXXXXXXXXXXXXXXXXXXX";                                                            8: escribir "     XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";                                                  finsegun                                        FinPara                              finsi                              Escribir "   ----------------------------------";                              escribir "";                    FinPara                                        // solicitar movimiento                    Escribir "Mover desde la torre: ";                    leer t1;                    Escribir "hacia la torre: ";                    leer t2;                                        si t1<0 O t1>3 O t2<0 O t2>3 Entonces // controlar que el nro de torre sea valido                              escribir "Movimiento invalido";                    sino                              si cant_discos[t1]=0 Entonces // controlar que la torre 1 tengo al menos un disco                                        escribir "Movimiento invalido";                              Sino                                        disco_a_mover <- torres[t1,cant_discos[t1]]; // obtener tamanio del disco que se quiere mover                                        puede_mover<-verdadero;                                        si cant_discos[t2]<>0 entonces // controlar que la torre dos no tenga discos o tenga discos mas grandes                                                  si torres[t2,cant_discos[t2]]<disco_a_mover Entonces                                                            puede_mover<-Falso;                                                  FinSi                                        FinSi                                        si puede_mover Entonces // si paso todos los controles, mover                                                  cant_movs <- cant_movs+1;                                                  cant_discos[t2]<-cant_discos[t2]+1;                                                  torres[t2,cant_discos[t2]] <- disco_a_mover;                                                  cant_discos[t1]<-cant_discos[t1]-1;

Página 4 de 42

Page 5: Ejemplos de Algoritmos en PSeudoCodigo

                                        Sino                                                  escribir "Movimiento invalido";                                        finsi                              FinSi                    finsi                    finmientras                    // mostrar resultado          escribir "";          escribir "";          escribir "Juego finalizado en ",cant_movs," movimientos!";          escribir "";          FinProceso

Matematicas.psc

// Este ejemplo muestra el uso de expresiones, operadores y funciones matematicas

Proceso Matematicas   Salir<-0;   Escribir 'Ingresar Numero:';   Leer N;   Repetir      Escribir ' ';      Escribir 'Presione Enter para continuar';      Leer x;      Escribir '1 - Seno, Coseno, ArcoTangente';      Escribir '2 - Lograritmo Natural, Funcion Exponencial';      Escribir '3 - Truncar, Redondear';      Escribir '4 - Raiz Cuadrada';      Escribir '5 - Valor Absoluto';      Escribir '6 - Separar parte entera y decimal';      Escribir '7 - Hallar Factorial';      Escribir '8 - Averiguar si es primo';      Escribir '9 - Ingresar Otro Numero';      Escribir ' ';      Escribir '0 - para Salir';      Escribir ' ';      Leer Opcion;      Segun Opcion Hacer         1:             Escribir 'Seno:',Sen(N);            Escribir 'Coseno:',Cos(N);            Escribir 'ArcTangente:',Atan(N);         2:             Si N<=0               Entonces Escribir 'El numero debe ser mayor a cero!';               Sino                  Escribir 'Log Nat.:',ln(N);                  Escribir 'Func Expon.:',exp(N);            FinSi         3:             Escribir 'Turncar:',trunc(N);            Escribir 'Redondear:',redon(N);

Página 5 de 42

Page 6: Ejemplos de Algoritmos en PSeudoCodigo

         4: Escribir 'Raiz Cuad.:',rc(N);         5: Escribir 'Valor Abs.:',abs(N);         6:             Escribir 'Parte Entera:',Trunc(n);            Escribir 'Parte Decimal:',n-Trunc(n);         7:             Si N<>Trunc(N)               Entonces                  Escribir 'El numero debe ser entero!';               Sino                  Si abs(N)>50                     Entonces Escribir 'Resultado muy grande!';                     Sino                        r<-1; f<-1;                        Mientras f<=abs(N) Hacer                           Si N<0                               Entonces r<-(-f)*r;                                    Sino r<-f*r;                           FinSi                           f<-f+1;                        FinMientras                        Escribir 'Factorial:',r;                  FinSi            FinSi         8:             Si N<>Trunc(N)               Entonces                  Escribir 'El numero debe ser entero!';               Sino                  Primo<-'Si';                   Si N/2=trunc(N/2)                     Entonces                         Primo<-'No';                  FinSi                  Si N<0                      entonces Nu<-N*-1;                     sino Nu<-N;                  FinSi                  Nu<-RC(Nu);                  f<-3;                  Mientras f<=Nu Y Primo='Si' Hacer                     Si N/F=trunc(N/F)                        Entonces Primo<-'No';                     FinSi                     f<-f+2;                  FinMientras                  Escribir 'Numero Primo:',Primo;                  Si f=3                     Entonces F<-4;                  FinSi                  Si Primo='No'                     Entonces                         Escribir N,'=',f-2,'x',N/(f-2);                  FinSi            FinSi         9:            Escribir 'Ingrese Numero:';

Página 6 de 42

Page 7: Ejemplos de Algoritmos en PSeudoCodigo

            Leer N;         0: Salir<-1;         De Otro Modo:            Escribir 'Opcion No Valida!';      FinSegun   Hasta que Salir=1FinProceso

Mayores.psc

// Busca los dos mayores de una lista de N datos

Proceso Mayores

          Dimension datos[200];                    Escribir "Ingrese la cantidad de datos:";          Leer n;                    Para i<-1 Hasta n Hacer                    Escribir "Ingrese el dato ",i,":";                    Leer datos[i];          FinPara

                    Si datos[1]>datos[2] Entonces                    may1<-datos[1];                    may2<-datos[2];          Sino                    may1<-datos[2];                    may2<-datos[1];          FinSi                    Para i<-3 Hasta n Hacer                    Si datos[i]>may1 Entonces                              may2<-may1;                              may1<-datos[i];                    Sino                               Si datos[i]>may2 Entonces                                        may2<-datos[i];                              FinSi                    FinSi          FinPara          

          Escribir "El mayor es: ",may1;          Escribir "El segundo mayor es: ",may2;          FinProceso

Modulo.psc

Proceso Modulo          Escribir "Ingrese el numero: ";          Leer N;

Página 7 de 42

Page 8: Ejemplos de Algoritmos en PSeudoCodigo

          Escribir "Ingrese el divisor: ";          Leer M;          Si N mod M = 0 Entonces                    Escribir M," es divisor exacto de ",N,".";          Sino                    Escribir "El resto de dividir ",N," por ",M," es: ",N mod M;          FinSiFinProceso

OrdenaLista.psc

//   Se ingresa una lista de nombres (la lista termina// cuando se ingresa un nombre en blanco) no permitiendo// ingresar repetidos y luego se ordena y muestra

Proceso OrdenaLista                    Dimension lista[200];                    Escribir "Ingrese los nombres (enter en blanco para terminar):";                    // leer la lista          cant<-0;          Leer nombre;          Mientras nombre<>"" Hacer                    cant<-cant+1;                    lista[cant]<-nombre;                    Repetir // leer un nombre y ver que no este ya en la lista                              Leer nombre;                              se_repite<-Falso;                              Para i<-1 Hasta cant Hacer                                        Si nombre=lista[i] Entonces                                                  se_repite<-Verdadero;                                        FinSi                              FinPara                    Hasta Que NO se_repite          FinMientras                    // ordenar          Para i<-1 Hasta cant-1 Hacer                    // busca el menor entre i y cant                    pos_menor<-i;                    Para j<-i+1 Hasta cant Hacer                              Si lista[j]<lista[pos_menor] Entonces                                        pos_menor<-j;                              FinSi                    FinPara                    // intercambia el que estaba en i con el menor que encontro                    aux<-lista[i];                    lista[i]<-lista[pos_menor];                    lista[pos_menor]<-aux;          FinPara                              // mostrar como queda la lista          Escribir "La lista ordenada es:";          Para i<-1 Hasta cant Hacer

Página 8 de 42

Page 9: Ejemplos de Algoritmos en PSeudoCodigo

                    Escribir "   ",lista[i];          FinPara          FinProceso

Resolvente.psc

// calcula las raices de una ecuacion de segundo grado

Proceso Resolvente                    // cargar datos          Escribir "Ingrese el coeficiente A:";          Leer a;          Escribir "Ingrese el coeficiente B:";          Leer b;          Escribir "Ingrese el coeficiente C:";          Leer c;                    // determinar si son reales o imaginarias          disc <- b^2-4*a*c;          Si disc<0 Entonces                    // si son imaginarias                    preal<- (-b)/(2*a);                    pimag<- rc(-disc)/(2*a);                    Escribir "Raiz 1: ",preal,"+",pimag,"i";                    Escribir "Raiz 2: ",preal,"-",pimag,"i";          Sino                    Si disc=0 Entonces // ver si son iguales o distintas                              r <- (-b)/(2*a);                              Escribir "Raiz 1 = Raiz 2: ",r;                    Sino                              r1 <- ((-b)+rc(disc))/(2*a);                              r2 <- ((-b)-rc(disc))/(2*a);                              Escribir "Raiz 1: ",r1;                              Escribir "Raiz 2: ",r2;                    FinSi          FinSi          FinProceso

Sucursales.psc

   // Problema Ejemplo:      //    Se ingresan los precios de 5 articulos y las cantidades vendidas   // por una empresa en sus 4 sucursales. Informar:   //    * Las cantidades totales de cada articulo.   //    * La cantidad de articulos en la sucursal 2.   //    * La cantidad del articulo 3 en la sucursal 1.   //    * La recaudacion total de cada sucursal.   //    * La recaudacion total de la empresa.   //    * La sucursal de mayor recaudacion.   

Página 9 de 42

Page 10: Ejemplos de Algoritmos en PSeudoCodigo

Proceso Sucursales      // Inicializar Prec=Arreglo de precios y Cant=Arreglo para cantidades   Dimension Prec[5], Cant[4,5];      // Leer Precios   Para I<-1 Hasta 5 Hacer      Escribir 'Ingrese Precio Articulo ',I,':';      Leer Prec[I];   FinPara      // Leer Cantidades   Para J<-1 Hasta 4 Hacer      Para I<-1 Hasta 5 Hacer         Escribir 'Ingrese Cant. de Articulo ',I,', en Sucursal ',J,':';         Leer Cant[J,I];      FinPara   FinPara      // Sumar cantidades por articulos   Escribir 'Cantidades por articulos:';   Para I<-1 Hasta 5 Hacer      Suma<-Cant[1,I]+Cant[2,I]+Cant[3,I]+Cant[4,I];      Escribir 'Total articulo ',I,':',Suma;   FinPara      // Informar Total de Articulos Sucursal 2   Suc2<-0;   Para I<-1 Hasta 5 Hacer      Suc2<-Suc2+Cant[2,I];   FinPara   Escribir 'Total Sucursal 2:',Suc2;      // Informar Sucursal 1, Articulo 3:   Escribir 'Sucursal 1, Articulo 3:',Cant[1,3];         // Acumular total de cada sucursal (TotSuc) y   // total de la empresa (TotEmp)   MayorRec<-0; NumMayor<-0; TotEmp<-0;   Para J<-1 Hasta 4 Hacer      TotSuc<-0;      Para I<-1 Hasta 5 Hacer         TotSuc<-TotSuc+(Cant[J,I]*Prec[i]);      FinPara      Escribir 'Recaudaciones Sucursal ',J,':',TotSuc;      Si TotSuc>MayorRec         entonces MayorRec<-TotSuc; NumMayor<-J;       FinSi      TotEmp<-TotEmp+TotSuc;   FinPara   Escribir 'Recaudacion total de la empresa:',TotEmp;   Escribir 'Sucursal de Mayor Recaudacion:',NumMayor;

FinProceso

Triangulo.pscPágina 10 de 42

Page 11: Ejemplos de Algoritmos en PSeudoCodigo

//    Lee los tres lados de un triangulo rectangulo, determina // si corresponden (por Pitargoras) y en caso afirmativo // calcula el area

Proceso TrianguloRectangulo                    // cargar datos          Escribir "Ingrese el lado 1:";          Leer l1;          Escribir "Ingrese el lado 2:";          Leer l2;          Escribir "Ingrese el lado 3:";          Leer l3;                    // encontrar la hipotenusa (mayor lado)          Si l1>l2 Entonces                    cat1<-l2;                    Si l1>l3 Entonces                              hip<-l1;                              cat2<-l3;                    Sino                              hip<-l3;                              cat2<-l1;                    FinSi          Sino                    cat1<-l1;                    Si l2>l3 Entonces                              hip<-l2;                              cat2<-l3;                    Sino                              hip<-l3;                              cat2<-l2;                    FinSi          FinSi                    // ver si cumple con Pitagoras          Si hip^2 = cat1^2 + cat2^2 Entonces                    // calcualar area                    area<-(cat1*cat2)/2;                    Escribir "El area es: ",area;          Sino                    Escribir "No es un triangulo rectangulo.";          FinSi          FinProceso

Ejemplos en PseintFecha de entrega 26/11/12  

1. En el siguiente ejemplo se intenta caclular el promedio de 10 numeros, observa bien el codigo, copialo a Pseint y luego fijate si es correcto sino identifica los problemas y resuelvelos:

Proceso Promedio

Página 11 de 42

Page 12: Ejemplos de Algoritmos en PSeudoCodigo

    //Calcula el promedio de una lista de numeros        Escribir "Ingrese un numero:";        Leer n;        Escribir "Ingrese un numero:";        Leer n;        Escribir "Ingrese un numero:";        Leer n;        Escribir "Ingrese un numero:";        Leer n;        Escribir "Ingrese un numero:";        Leer n;        Escribir "Ingrese un numero:";        Leer n;        Escribir "Ingrese un numero:";        Leer n;        Escribir "Ingrese un numero:";        Leer n;        Escribir "Ingrese un numero:";        Leer n;        Escribir "Ingrese un numero:";        Leer n;                //Declaro una variable promedio para asignarle el promedio        promedio<-n1+n2+n3+n4+n5+n6+n7+n8+n9+n10 / 10;                //Muestro el promedio            Escribir "El promedio es: ",promedio;FinProceso

2. En este otro ejemplo se trata de mostrar los primeros 50 numeros pares, haz lo mismo que en el ejemplo anterior, copia el codigo en pseint  y fijate si es correcto.

Proceso NumerosPares    //Muestra los numeros pares del 0 al 50    Escribir "Ingrese un numero:";    Leer x;            Repetir            //la funcion MOD calcula el resto de la division por 2, si es cero entonces es par            Si x MOD 2 = 0  Entonces                Escribir "Numero: ",x;                        FinSi                        Hasta Que x = 50        Escribir "Ultimo Numero: ",x;            Escribir "Fin de listado";FinProceso

3. Este algoritmo intenta mostrar los numeros del 1 al 100, hace lo mismo que en los ejemplos anteriores, fijate si es correcto

Proceso Repetir1al100//Hacer un pseudocodigo que imprima los numeros del 1 al 100c <- 0MIENTRAS c < 100 HACER    ESCRIBIR c;   

Página 12 de 42

Page 13: Ejemplos de Algoritmos en PSeudoCodigo

FINMIENTRASESCRIBIR "ultimo ciclo: " c;ESCRIBIR "Fin de repeticion";FinProceso

4. Este codigo es el mismo que el ejercicio anterior pero utiliza la estructura Repetir - Hasta, ¿Funciona?,haz lo mismo que en los ejercicios anteriores, busca los errores

Proceso Repetir1al100conRepetir//Hacer un pseudocodigo que imprima los numeros del 1 al 100c <- 0

Repetir    ESCRIBIR c;       Hasta Que c < 100

ESCRIBIR "ultimo ciclo: " c;ESCRIBIR "Fin de repeticion";FinProceso

5. En el siguiente codigo se quiere mostrar los  numeros del 100 al 0, haz lo mismo busca los errores

Proceso Repetir1al100conRepetir//Hacer un pseudocodigo que imprima los numeros del 100 al 0 en orden decrecientec <- 100

Repetir    ESCRIBIR c;       Hasta Que c <= 0

ESCRIBIR "ultimo ciclo: " c;ESCRIBIR "Fin de repeticion";FinProceso

6. Realizar un algoritmo que pida 3 numeros, verifique que sean positivos, luego calcule el promedio y busque el mayor de todos.7. Realizar un algoritmo que pida un numero y luego calcule la raiz cuadrada del mismo.8. Realizar un algoritmo que muestre los primeros 50 numeros pares.

quien me puede ayudar con este ejercicio inicio Una persona debe realizar un muestreo con 80 personas para determinar el promedio de //peso de los niños, jóvenes, adultos y viejos que existen en su zona habitacional. Se //determinan las categorías con base en la siguiente tabla: //CATEGORIA EDAD //Niños 0 - 10 //Adolecente 11-17 //Jóvenes 18 - 29 //Adultos 30 - 59 //Viejos 60 en adelante

Hola Jessica fijate el siguiente scriptProceso PesoPromedio//Inicializo a 0 los contadores para edad y pesonumeroNiños<-0;

Página 13 de 42

Page 14: Ejemplos de Algoritmos en PSeudoCodigo

numeroAdolescentes<-0;numeroJovenes<-0;numeroAdultos<-0;numeroViejos<-0;pesoNiños<-0;pesoAdolescentes<-0;pesoJovenes<-0;pesoAdultos<-0;pesoViejos<-0;pesoPromedioNiños <-0;pesoPromedioAdolescentes <-0;pesoPromedioJovenes <-0;pesoPromedioAdultos <-0;pesoPromedioViejos <-0;

numeroPersonas<-0;Repetir

//Pido el peso y la edad de la personaEscribir 'De el peso de la persona';Leer peso;Escribir 'De la edad de la persona';Leer edad;

//Veo en que categoria de edad esta la personaSi (edad >= 0 y edad <=10) Entonces numeroNiños<-numeroNiños + 1; //añado 1 niño a esta categoria pesoNiños<-pesoNiños + peso; //sumo al contador de peso de los niños el niño encontradoFinSi

Si (edad >= 11 y edad <=17) Entonces numeroAdolescentes<-numeroAdolescentes + 1; //añado 1 adolescente a esta categoria pesoAdolescentes<-pesoAdolescentes + peso; //sumo al contador de peso de los adolescentes el adolescente encontradoFinSi

Si (edad >= 18 y edad <=29) Entonces numeroJovenes<-numeroJovenes + 1; //añado 1 Jovenes a esta categoria pesoJovenes<-pesoJovenes + peso; //sumo al contador de peso de los Jovenes el Jovenes encontradoFinSi

Si (edad >= 30 y edad <=59) Entonces numeroAdultos<-numeroAdultos + 1; //añado 1 Jovenes a esta categoria pesoAdultos<-pesoAdultos + peso; //sumo al contador de peso de los Jovenes el Jovenes encontradoFinSi

Si (edad >= 60) Entonces numeroViejos<-numeroViejos + 1; //añado 1 Viejos a esta categoria pesoViejos<-pesoViejos + peso; //sumo al contador de peso de los Viejos el Viejos encontradoFinSi

numeroPersonas<-numeroPersonas + 1;Hasta Que numeroPersonas = 80

//Calculo el promedio de cada categoriaSi numeroNiños > 0 EntoncespesoPromedioNiños <- pesoNiños / numeroNiños;

Página 14 de 42

Page 15: Ejemplos de Algoritmos en PSeudoCodigo

FinSiSi numeroAdolescentes > 0 EntoncespesoPromedioAdolescentes <- pesoAdolescentes / numeroAdolescentes;FinSiSi numeroJovenes > 0 EntoncespesoPromedioJovenes <- pesoJovenes / numeroJovenes;FinSiSi numeroAdultos > 0 EntoncespesoPromedioAdultos <- pesoAdultos / numeroAdultos;FinSiSi numeroViejos > 0 EntoncespesoPromedioViejos <- pesoViejos / numeroViejos; FinSi

Escribir 'Peso Promedio niños: ' pesoPromedioNiños;Escribir 'Peso Promedio niños: ' pesoPromedioAdolescentes;Escribir 'Peso Promedio niños: ' pesoPromedioJovenes;Escribir 'Peso Promedio niños: ' pesoPromedioAdultos;Escribir 'Peso Promedio niños: ' pesoPromedioViejos;FinProceso

Debido a la tabla de categorias hay que pedir por cada persona el peso y la edadluego hay que usar condiciones para saber a que categoria de edad pertenece esta persona y luego usar contadores para actualizar la cantidad de niños, jovenes etc y tambien sumar el peso en otro contador para luego dividir cada peso de cada categoria por la cantidad de personas encontradas de esa categoria y encontrar el promedio dividiendo

Hola fijate el script, se piden dos matrices M y N. En la matriz R se guarda el resultado: se multiplica toda una fila de la M con una columna de la N

Proceso Matriz//Primero se crea la matriz de 2 x 2 y se define su tipo, asi como los dos indices para la fila y columnaDimension M[2,2];Dimension N[2,2];Dimension R[2,2];Definir N,M,I,J como Entero;

// Leer valores, aqui se cargan los valores en cada celdaPara J<-1 Hasta 2 HacerPara I<-1 Hasta 2 HacerEscribir 'Ingrese valor para indice ',I,', en columna ',J;Leer M[I,J];FinParaFinPara

// Leer valores, aqui se cargan los valores en cada celdaPara J<-1 Hasta 2 HacerPara I<-1 Hasta 2 HacerEscribir 'Ingrese valor para indice ',I,', en columna ',J;Leer N[I,J];FinParaFinPara

// Mostrar valores de cada celdaPara I<-1 Hasta 2 HacerPara J<-1 Hasta 2 HacerEscribir 'El valor para indice ',I,', en columna ',J,'es :' M[I,J]; FinPara

Página 15 de 42

Page 16: Ejemplos de Algoritmos en PSeudoCodigo

FinPara

// Mostrar valores de cada celdaPara I<-1 Hasta 2 HacerPara J<-1 Hasta 2 HacerEscribir 'El valor para indice ',I,', en columna ',J,'es :' N[I,J]; FinParaFinPara

// Se hace el producto y se muestraPara I<-1 Hasta 2 HacerPara J<-1 Hasta 2 HacerR[I,J] <- M[I,J] * N[I,J];Escribir 'El producto para indice ',I,', en columna ',J,'es :' R[I,J]; FinParaFinPara

FinProceso

Página 16 de 42

Page 17: Ejemplos de Algoritmos en PSeudoCodigo

Página 17 de 42

Page 18: Ejemplos de Algoritmos en PSeudoCodigo

Ejemplos de Pseudocódigo 

Ejemplo: Realizar el pseudocódigo de un programa que permita calcular el área de un rectángulo. Se debe

introducir la base y la altura para poder realizar el cálculo..Programa; áreaEntorno: BASE, ALTURA, AREA son número enterosAlgoritmo:            escribir “Introduzca la base y la altura”            leer BASE, ALTURA            calcular AREA = BASE * ALTURA            escribir “El área del rectángulo es “AREAFinprograma

Ejemplo: Realizar el pseudocódigo que permita al usuario introducir por teclado dos notas, calculando la suma y

el producto de las notas.Programa: SumaProductoEntorno: NOTA1,NOTA2,SUMA,PRODUCTO son números enterosAlgoritmo:

escribir “Introduzca las notas”leer NOTA1,NOTA2calcular SUMA = NOTA1 + NOTA2calcular PRODUCTO = NOTA1 * NOTA2escribir “La suma de las dos notas es:” SUMAescribir “El producto de las dos notas es :”PRODUCTO

Finprograma

 

Ejemplo: Realizar el pseudocódigo de un programa que permita saber si un número es mayor, menor o igual a

cero.    Programa: ComparaNúmeros       Entorno: NUMERO es un número entero

Algoritmo:Escribir “Introduzca un número “leer NUMEROSI NUMERO>0  ENTONCES          escribir “El número introducido es positivo”SI NO          SI NUMERO<0 ENTONCES                 escribir “El número introducido es negativo”          SI NO                 escribir “El número es cero”          FINSIFINSI

Finprograma  

Supongamos un algoritmo que lea las coordenadas de tres puntos y los mueva tres puntos en la coordenada  x y escriba el resultado en algún dispositivo de salida: ALGORITMO lee_tres_verticesENTRADA: las coordenadas (x,y) de tres puntosSALIDA: las coordenadas (x,y) de los tres puntos movidos 3 puntos hacia la derecha.VARIABLES: i:entera

x,y: realINICIO

PARA i=1 HASTA 3 CON INCREMENTO +1ESCRIBE "Abscisa del punto número ", iLEER x

Página 18 de 42

Page 19: Ejemplos de Algoritmos en PSeudoCodigo

ESCRIBE "Ordenada del punto número ", iLEER YESCRIBE "El punto es (" x+3","y")"

FIN_PARAFIN El programa equivalente a este algoritmo se muestra a continuación. Como podemos apreciar en un programa en Pascal es importantísimo no olvidar detalles de sintaxis. Por ejemplo cada sentencia termina en punto y coma. De cualquier forma es inmediato apreciar los simples cambios existentes. program lee_tres_vertices;var x,y:real;i:integer;beginfor i:=1 to 3 dobeginwrite ('Abscisa del punto número ',i); readln(x);

write ('Ordenada del punto número ',i); readln(y);writeln (' El punto es (',x+3,',',y,')');end;

end; 

Problema: calcular y mostrar la suma de los diez primeros números entre 1 y 1000 que sean divisibles por uno dado. programa suma_divisiblesvariables natural : divisor, suma, contador, número inicio programadivisor   leer ‘Introduce el divisor: ’suma   0contador   0para número desde 1 hasta 1000 hacer

si divisor divide a número entoncessuma   suma + númerocontador   contador + 1

                fin si                si contador = 10 entonces

interrumpir                fin sifin para escribir ‘La suma es’, suma fin programa

 

Página 19 de 42

Page 20: Ejemplos de Algoritmos en PSeudoCodigo

Ejercicios en Pseudocódigo 

Aquí les dejo 52 ejercicios en Pseudo-código, para reforzar los conocimientos dados en el la saga de postsCómo aprender a programar y no morir en el intento, estos ejercicios son muy buenos para desarrollar la lógica y están enfocados para los estudiantes en Ingeniería de Sistemas y a fines. Al final de cada consigna esta el ejercicio resuelto, trata de resolverlo sin mirar el resultado. 

Que es el PseudocódigoEl Pseudo-Código sirve para orientar a los programadores, pero sin la sintaxis ni la estructura propia de ningún lenguaje (C#, VisaualBasic, etc.). En vez de escribir el programa directamente en un lenguaje de programación determinado (C, Basic, etc.), crearemos un borrador entendible para todos los lenguajes, para luego de tener bien en claro lo que se debe hacer, para pasar a la programación propiamente dicha. En pocas palabras lo que se hace es marcar la estructura de cómo sería hacer un "Programa" con cualquier lenguaje. No importa donde lo hagas en tu mano, bloc de notas, papel higiénico, etc. ya que es solo para comprender la estructura o lógica de cómo se programaría en un lenguaje real.

Los ejercicios están divididos en 9 temas: 

-Bucles y tomas de decision -Bucles anidados y subprogramas -Presentación en pantalla y cabeceras -Números aleatorios y menus -Arrays unidimensionales -Arrays bidimensionales -Arrays multidimensionales -Ficheros -Informes y rupturas de control -Organización aleatoria y secuencial 

Bucles y tomas de decisión 

1.-Hacer un pseudocodigo que imprima los numeros del 1 al 100. 

 PROGRAMA contador1 ENTORNO:    c <- 0 ALGORITMO:    Borrar_pantalla( )    MIENTRAS c < 101 HACER       ESCRIBIR c       c <- c + 1    FINMIENTRAS FINPROGRAMA

Página 20 de 42

Page 21: Ejemplos de Algoritmos en PSeudoCodigo

2.-Hacer un pseudocodigo que imprima los numeros del 100 al 0, en orden decreciente. 

 PROGRAMA contador2 ENTORNO:    c <- 100 ALGORITMO:    Borrar_pantalla( )    MIENTRAS c <= 0 HACER       ESCRIBIR c       c <- c - 1    FINMIENTRAS FINPROGRAMA

3.-Hacer un pseudocodigo que imprima los numeros pares entre 0 y 100. 

 PROGRAMA pares ENTORNO:    c <- 2 ALGORITMO:    Borrar_pantalla( )    MIENTRAS c < 101 HACER       ESCRIBIR c       c <- c + 2    FINMIENTRAS FINPROGRAMA

4.-Hacer un programa que imprima la suma de los 100 primeros numeros. 

 PROGRAMA suma ENTORNO:    c <- 1    suma <- 0 ALGORITMO:    Borrar_pantalla( )    MIENTRAS c <= 100 HACER       suma <- suma + c       c <- c + 1    FINMIENTRAS    ESCRIBIR "La suma de los 100 primeros n£meros es: "    ESCRIBIR suma FINPROGRAMA

5.-Hacer un pseudocódigo que imprima los numeros impares hasta el 100 y que imprima cuantos impares hay. 

 PROGRAMA impares ENTORNO:    c <- 1    son <- 0 ALGORITMO:    Borrar_pantalla( )    MIENTRAS c < 100       ESCRIBIR c       c <- c + 2       son <- son + 1    FINMIENTRAS    ESCRIBIR "El n£mero de impares: "    ESCRIBIR son FINPROGRAMA

6.-Hacer un pseudocodigo que imprima todos los numeros naturales que hay desde- la unidad hasta un Página 21 de 42

Page 22: Ejemplos de Algoritmos en PSeudoCodigo

numero que introducimos por teclado. 

 PROGRAMA natural ENTORNO:    i <- 0    n <- 0 ALGORITMO:    Borrar_pantalla( )    ESCRIBIR "Introduce un n£mero: "    LEER n    MIENTRAS i < n HACER       i <- i + 1       ESCRIBIR i    FINMIENTRAS FINPROGRAMA

7.-Introducir tantas frases como queramos y contarlas. 

 PROGRAMA frases ENTORNO:    res <- "S"    frase <- Espacios( 30 )    c <- 0 ALGORITMO:    Borrar_pantalla( )    MIENTRAS res = "S" HACER       ESCRIBIR "Frase: "       LEER frase       c <- c + 1       ESCRIBIR "Deseas introducir m s frases (S/N): "       LEER res    FINMIENTRAS    ESCRIBIR "El n£mero de frases introducidas son: "    ESCRIBIR c FINPROGRAMA

8.-Hacer un pseudocodigo que solo nos permita introducir S o N. 

 PROGRAMA sn ENTORNO:    res <- " " ALGORITMO:    Borrar_pantalla( )    MIENTRAS res <> "S" Y res <> "N" HACER       ESCRIBIR "Introduce S o N"       LEER res       res <- Convertir_may£sculas( res )    FINMIENTRAS FINPROGRAMA

9.-Introducir un numero por teclado. Que nos diga si es positivo o negativo. 

 PROGRAMA signo ENTORNO:    num <- 0 ALGORITMO:    Borrar_pantalla( )    ESCRIBIR "Introduce un n£mero: "    LEER num    SI num >= 0 ENTONCES       ESCRIBIR "es positivo"    SINO       ESCRIBIR "es negativo" 

Página 22 de 42

Page 23: Ejemplos de Algoritmos en PSeudoCodigo

   FINSI FINPROGRAMA

10.-Introducir un numero por teclado. Que nos diga si es par o impar. 

 PROGRAMA paridad ENTORNO:    num <- 0 ALGORITMO:    Borrar_pantalla( )    ESCRIBIR "Introduce un n£mero: "    LEER num    SI num = int( num / 2 ) * 2 ENTONCES       ESCRIBIR "es par"    SINO       ESCRIBIR "es impar"    FINSI FINPROGRAMA

11.-Imprimir y contar los multiplos de 3 desde la unidad hasta un numero que introducimos por teclado. 

 PROGRAMA multiplo3 ENTORNO:    i <- 3    n <- 0    c <- 0 ALGORITMO:    Borrar_pantalla( )    ESCRIBIR "N£mero: "    LEER n    MIENTRAS i <= n HACER       SI i = int( i / 3 ) * 3 ENTONCES          ESCRIBIR i          c <- c + 1       FINSI       i <- i + 1    FINMIENTRAS    ESCRIBIR "El n£mero de m£ltiplos de 3 son: "    ESCRIBIR c FINPROGRAMA

12.-Hacer un pseudocodigo que imprima los numeros del 1 al 100. Que calcule la suma de todos los numeros pares por un lado, y por otro, la de todos los impares. 

 PROGRAMA par_impar ENTORNO:    i <- 1    sumapar <- 0    sumaimp <- 0 ALGORITMO:    Borrar_pantalla( )    MIENTRAS i < 101 HACER       SI i = int( i / 2 ) * 2 ENTONCES          sumapar <- sumapar + i       SINO          sumaimp <- sumaimp + i       FINSI       i <- i + 1    FINMIENTRAS    ESCRIBIR "La suma de los pares es: "    ESCRIBIR sumapar    ESCRIBIR "La suma de los impares es: " 

Página 23 de 42

Page 24: Ejemplos de Algoritmos en PSeudoCodigo

   ESCRIBIR sumaimp FINPROGRAMA

13.-Imprimir y contar los numeros que son multiplos de 2 o de 3 que hay entre 1 y 100. 

 PROGRAMA multiplo_2_3 ENTORNO:    i <- 1    c <- 0 ALGORITMO:    Borrar_pantalla( )    MIENTRAS i < 101 HACER       SI i = int( i / 2 ) * 2 O i = int( i / 3 ) * 3 ENTONCES          c <- c + 1          ESCRIBIR i       FINSI       i <- i + 1    FINMIENTRAS    ESCRIBIR "El n£mero de m£ltiplos es de: "    ESCRIBIR c FINPROGRAMA

14.-Hacer un pseudocodigo que imprima el mayor y el menor de una serie de cinco numeros que vamos introduciendo por teclado. 

 PROGRAMA mayor_menor ENTORNO:    con <- 0    n <- 0    maximo <- 0    minimo <- 99999 ALGORITMO:    Borrar_pantalla( )    MIENTRAS con <= 5 HACER       ESCRIBIR "N£mero: "       LEER n       SI n > maximo ENTONCES          maximo = n       FINSI       SI n < minimo ENTONCES          minimo <- n       FINSI       con <- con + 1    FINMIENTRAS    ESCRIBIR "El mayor de los n£meros es: "    ESCRIBIR maximo    ESCRIBIR "El menor de los n£meros es: "    ESCRIBIR minimo FINPROGRAMA

15.-Introducir dos numeros por teclado. Imprimir los numeros naturales que hay entre ambos numeros empezando por el m s pequeño, contar cuantos hay y cuantos de ellos son pares. Calcular la suma de los impares. 

 PROGRAMA par_impar ENTORNO:    num1 <- 0    num2 <- 0    aux <- 0    son <- 0    pares <- 0    sumaimpa <- 0 

Página 24 de 42

Page 25: Ejemplos de Algoritmos en PSeudoCodigo

ALGORITMO:    Borrar_pantalla( )    ESCRIBIR "N£mero: "    LEER num1    ESCRIBIR "N£mero: "    LEER num2    SI num1 > num2 ENTONCES       aux <- num1       num1 <- num2       num2 <- aux    FINSI    MIENTRAS num1 >= num2 HACER       ESCRIBIR num1       son <- son + 1       SI num1 = int( num1 / 2 ) * 2 ENTONCES          pares <- pares + 1       SINO          sumaimpa <- sumaimpa + num1       FINSI       num1 <- num1 + 1    FINMIENTRAS    ESCRIBIR "N£meros visualizados: "    ESCRIBIR son    ESCRIBIR "Pares hay: "    ESCRIBIR pares    ESCRIBIR "La suma de los impares es: "    ESCRIBIR sumaimpa FINPROGRAMA

Bucles anidados y subprogramas 

16.-Imprimir diez veces la serie de numeros del 1 al 10. 

 PROGRAMA diez ENTORNO:    serie <- 0 ALGORITMO:    Borrar_pantalla( )    MIENTRAS serie <= 10 HACER       numero <- 1       MIENTRAS numero <= 10 HACER          ESCRIBIR numero          numero <- numero + 1       FINMIENTRAS       serie <- serie + 1    FINMIENTRAS FINPROGRAMA

17.-Imprimir, contar y sumar los multiplos de 2 que hay entre una serie de numeros, tal que el segundo sea mayor o igual que el primero. 

 PROGRAMA multiplo2 ENTORNO:    res <- "S" ALGORITMO:    Borrar_pantalla( )    MIENTRAS res = "S" HACER       c <- 0       sum <- 0       num1 <- 0       num2 <- -999       ESCRIBIR "N£mero: "       LEER num1 

Página 25 de 42

Page 26: Ejemplos de Algoritmos en PSeudoCodigo

      ESCRIBIR "N£mero mayor que el anterior"       MIENTRAS num1 >= num2 HACER          LEER num2       FINMIENTRAS       num1 <- num1 + 1       MIENTRAS num1 <= num2 - 1 HACER          SI num1 = int( num1 / 2 ) * 2 ENTONCES             ESCRIBIR num1             c <- c + 1             sum <- sum + num1          FINSI          num1 <- num1 + 1       FINMIENTRAS       ESCRIBIR "N£mero de m£ltiplos de 2: "       ESCRIBIR c       ESCRIBIR "Su suma es: "       ESCRIBIR sum       res <- Espacios( 1 )       MIENTRAS res <> "S" Y res <> "N" HACER          ESCRIBIR "Otra serie de n£meros (S/N): "          LEER res          res <- Convertir_may£sculas( res )       FINMIENTRAS    FINMIENTRAS FINPROGRAMA

18.-Hacer un pseudocodigo que cuente las veces que aparece una determinada letra en una frase que introduciremos por teclado. 

 PROGRAMA letra ENTORNO:    frase <- Espacios( 30 )    letra <- Espacios( 1 )    longitud <- 0    a <- 0    res <- "S" ALGORITMO:    MIENTRAS res = "S" HACER       Borrar_pantalla( )       ESCRIBIR "Introduce una frase: "       LEER frase       longitud <- Hallar_longitud( frase )       i <- 1       ESCRIBIR "Letra a buscar: "       LEER letra       MIENTRAS i <= longitud HACER          SI letra = Caracter( frase, i, 1 ) ENTONCES             a <- a + 1          FINSI          i <- i + 1       FINMIENTRAS       Borrar_pantalla( )       ESCRIBIR "El n£mero de veces que aparece la letra "       ESCRIBIR letra       ESCRIBIR " en la frase "       ESCRIBIR frase       ESCRIBIR " es de "       ESCRIBIR a       res <- Espacios( 1 )       MIENTRAS res <> "S" Y res <> "N" HACER          ESCRIBIR "Desea introducir m&aacute;s frases (S/N): "          LEER res          res <- Convertir_may£sculas( res ) 

Página 26 de 42

Page 27: Ejemplos de Algoritmos en PSeudoCodigo

      FINMIENTRAS    FINMIENTRAS FINPROGRAMA

19.-Hacer un pseudocodigo que simule el funcionamiento de un reloj digital y que permita ponerlo en hora. 

 PROGRAMA reloj ENTORNO:    horas <- 0    minutos <- 0    segundos <- 0    res <- "S" ALGORITMO:    Borrar_pantalla( )    ESCRIBIR "Horas: "    LEER horas    ESCRIBIR "Minutos: "    LEER minutos    ESCRIBIR "Segundos: "    LEER segundos    MIENTRAS res = "S" HACER       MIENTRAS horas < 24 HACER          MIENTRAS minutos < 60 HACER             MIENTRAS segundos < 60 HACER                ESCRIBIR horas                ESCRIBIR minutos                ESCRIBIR segundos                segundos <- segundos + 1             FINMIENTRAS             minutos <- minutos + 1             segundos <- 0          FINMIENTRAS          horas <- horas + 1          minutos <- 0       FINMIENTRAS       horas <- 0    FINMIENTRAS FINPROGRAMA

20.-Calcular el factorial de un numero, mediante subprogramas. 

 PROGRAMA factorial ENTORNO:    res <- "S" ALGORITMO:    MIENTRAS res = "S" HACER       Borrar_pantalla( )       factorial <- 1       ESCRIBIR "N£mero: "       LEER numero       SI numero < 0 ENTONCES          ESCRIBIR "No tiene factorial"       SINO          HACER Calculos       FINSI       HACER Mas    FINMIENTRAS FINPROGRAMA ------------------------------ SUBPROGRAMA Calculos    MIENTRAS numero > 1 HACER       factorial <- factorial * numero 

Página 27 de 42

Page 28: Ejemplos de Algoritmos en PSeudoCodigo

      numero <- numero - 1    FINMIENTRAS    HACER Imprimir FINSUBPROGRAMA ------------------------------ SUBPROGRAMA Mas    res <- " "    MIENTRAS res <> "S" Y res <> "N" HACER       ESCRIBIR "Desea calcular m&aacute;s factoriales (S/N): "       LEER res       res <- Convertir_may£sculas( res )    FINMIENTRAS FINSUBPROGRAMA ------------------------------ SUBPROGRAMA Imprimir    ESCRIBIR "Su factorial es: "    ESCRIBIR factorial FINSUBPROGRAMA

21.-Hacer un programa que calcule independientemente la suma de los pares y los impares de los numeros entre 1 y 1000, utilizando un switch. 

 PROGRAMA suma ENTORNO:    par <- 0    impar <- 0    sw <- 0    i <- 1 ALGORITMO:    Borrar_pantalla( )    MIENTRAS i <= 1000 HACER       SI sw = 0 ENTONCES          impar <- impar + i          sw <- 1       SINO          par <- par + i          sw <- 0       FINSI       i <- i + 1    FINMIENTRAS    ESCRIBIR "La suma de los pares es: "    ESCRIBIR par    ESCRIBIR "La suma de los impares es: "    ESCRIBIR impar FINPROGRAMA

Presentacion en pantalla y cabeceras 

22.-Introducir una frase por teclado. Imprimirla cinco veces en filas consecutivas, pero cada impresion ir desplazada cuatro columnas hacia la derecha. 

 PROGRAMA frase ENTORNO:    frase <- Espacios( 30 ) ALGORITMO:    Borrar_pantalla( )    EN 5,15 ESCRIBIR "Frase: "    EN 5,22 LEER frase    fi <- 8    co <- 15    veces <- 0    MIENTRAS veces <= 5 HACER 

Página 28 de 42

Page 29: Ejemplos de Algoritmos en PSeudoCodigo

      EN fi,co ESCRIBIR frase       veces <- veces + 1       co <- co + 4       fi <- fi + 1    FINMIENTRAS FINPROGRAMA

23.-Hacer un pseudocodigo que imprima los n£meros del 0 al 100, controlando las filas y las columnas. 

 PROGRAMA numeros ENTORNO:    c <- 0 ALGORITMO:    Borrar_pantalla( )    EN 5,20 ESCRIBIR "Los n£meros del 0 al 100 son: "    fi <- 7    col <- 5    MIENTRAS c < 101 HACER       EN fi,col ESCRIBIR c       c <- c + 1       col <- col + 4       SI col > 75 ENTONCES          fi <- fi + 2          col <- 5       FINSI    FINMIENTRAS FINPROGRAMA

24.-Comprobar si un numero mayor o igual que la unidad es primo. 

 PROGRAMA primo ENTORNO:    res <- "S" ALGORITMO:    MIENTRAS res = "S" HACER       Borrar_pantalla( )       numero <- 0       sw <- 0       MIENTRAS numero < 1 HACER          EN 8,10 ESCRIBIR "N£mero: "          EN 8,18 LEER numero       FINMIENTRAS       i <- numero - 1       MIENTRAS i > 1 Y sw <> 1 HACER          SI numero = Int( numero / i ) * i ENTONCES             sw = 1          SINO             i <- i - 1          FINSI       FINMIENTRAS       SI sw = 1 ENTONCES          EN 10,10 ESCRIBIR "no es primo"       SINO          EN 10,10 ESCRIBIR "s¡ es primo"       FINSI       HACER Mas    FINMIENTRAS FINPROGRAMA ------------------------------ SUBPROGRAMA Mas    res <- " "    MIENTRAS res <> "S" Y res <> "N" HACER       ESCRIBIR "Desea introducir m s n£meros (S/N): " 

Página 29 de 42

Page 30: Ejemplos de Algoritmos en PSeudoCodigo

      LEER res       res <- Convertir_mayusculas( res )    FINMIENTRAS FINSUBPROGRAMA

25.-Introducir un numero menor de 5000 y pasarlo a numero romano. 

 PROGRAMA romano ENTORNO:    res <- "S" ALGORITMO:    MIENTRAS res = "S" HACER       Borrar_pantalla( )       num <- 0       MIENTRAS num < 1 O num > 5000 HACER          EN 8,10 ESCRIBIR "N£mero: "          EN 8,18 ESCRIBIR num       FINMIENTRAS       col <- 15       MIENTRAS num >= 1000 HACER          EN 15,col ESCRIBIR "M"          num <- num - 1000          col <- col + 1       FINMIENTRAS       SI num >= 900 ENTONCES          EN 15,col ESCRIBIR "CM"          num <- num - 900          col <- col + 2       FINSI       SI num >= 500 ENTONCES          EN 15,col ESCRIBIR "D"          num <- num - 500          col <- col + 1       FINSI       MIENTRAS num >= 100 HACER          EN 15,col ESCRIBIR "C"          num <- num - 100          col <- col + 1       FINMIENTRAS       SI num >= 90 ENTONCES          EN 15,col ESCRIBIR "XC"          num <- num - 90          col <- col + 2       FINSI       SI num >= 50 ENTONCES          EN 15,col ESCRIBIR "L"          num <- num - 50          col <- col + 1       FINSI       SI num >= 40 ENTONCES          EN 15,col ESCRIBIR "XL"          num <- num - 40          col <- col + 2       FINSI       MIENTRAS num >= 10 HACER          EN 15,col ESCRIBIR "X"          num <- num - 10          col <- col + 1       FINMIENTRAS       SI num = 9 ENTONCES          EN 15,col ESCRIBIR "IX"          num <- num - 9          col <- col + 2       FINSI 

Página 30 de 42

Page 31: Ejemplos de Algoritmos en PSeudoCodigo

      SI num >= 5 ENTONCES          EN 15,col ESCRIBIR "V"          num <- num - 5          col <- col + 1       FINSI       SI num >= 4 ENTONCES          EN 15,col ESCRIBIR "IV"          num <- num - 4          col <- col + 2       FINSI       MIENTRAS num > 0 HACER          EN 15,col ESCRIBIR "I"          num <- num - 1          col <- col + 1       FINMIENTRAS       HACER Mas    FINMIENTRAS FINPROGRAMA ------------------------------ SUBPROGRAMA Mas    res <- " "    MIENTRAS res <> "S" Y res <> "N" HACER       ESCRIBIR "Desea introducir m s n£meros (S/N): "       LEER res       res <- Convertir_mayusculas( res )    FINMIENTRAS FINSUBPROGRAMA

26.-Introducir una frase por teclado. Imprimirla en el centro de la pantalla. 

 PROGRAMA centro ENTORNO:    res <- "S"    frase <- Espacios( 40 ) ALGORITMO:    MIENTRAS res = "S" HACER       Borrar_pantalla( )       EN 5,15 ESCRIBIR "Frase: "       EN 5,22 LEER frase       EN 12,40 - Int( Longitud( frase ) / 2 ) ESCRIBIR frase       HACER Mas    FINMIENTRAS FINPROGRAMA

27.-Realizar la tabla de multiplicar de un numero entre 0 y 10. 

 PROGRAMA tabla ENTORNO:    num <- -1 ALGORITMO:    HACER Numero    Borrar_pantalla( )    EN 5,10 ESCRIBIR "Tabla de multiplicar del n£mero: "    EN 5,40 LEER num    i <- 0    fi <- 8    MIENTRAS i <= 10 HACER       EN fi,15 ESCRIBIR num       EN fi,19 ESCRIBIR " * "       EN fi,23 ESCRIBIR i       EN fi,25 ESCRIBIR " = "       EN fi,29 ESCRIBIR num * i       fi <- fi + 1 

Página 31 de 42

Page 32: Ejemplos de Algoritmos en PSeudoCodigo

      i <- i + 1    FINMIENTRAS FINPROGRAMA ------------------------------ SUBPROGRAMA Numero    MIENTRAS num < 0 HACER       Borrar_pantalla( )       EN 10,25 ESCRIBIR "N£mero: "       EN 10,33 LEER num    FINMIENTRAS FINSUBPROGRAMA

Numeros aleatorios y menus 

28.-Simular el lanzamiento de una moneda al aire e imprimir si ha salido cara o cruz. 

 PROGRAMA moneda ENTORNO:    res <- "S" ALGORITMO:    MIENTRAS res = "S" HACER       Borrar_pantalla( )       SI Rnd( ) <= 0.5 ENTONCES          EN 10,35 ESCRIBIR "Cara"       SINO          EN 10,35 ESCRIBIR "Cruz"       FINSI       HACER Mas    FINMIENTRAS FINPROGRAMA ------------------------------ SUBPROGRAMA Mas    res <- Espacios( 1 )    MIENTRAS res <> "S" Y res <> "N" HACER       EN 20,30 ESCRIBIR "M s lanzamientos (S/N): "       EN 20,57 LEER res       res <- Convertir_mayusculas( res )    FINMIENTRAS FINSUBPROGRAMA

29.-Simular cien tiradas de dos dados y contar las veces que entre los dos suman 10. 

 PROGRAMA dado ENTORNO:    c <- 0    i <- 0 ALGORITMO:    Borrar_pantalla( )    MIENTRAS i < 101 HACER       SI Int( Rnd( ) * 6 ) + Int( Rnd( ) * 6 ) + 2 = 10 ENTONCES          c <- c + 1       FINSI       i <- i + 1    FINMIENTRAS    EN 10,20 ESCRIBIR "Las veces que suman 10 son: "    EN 10,48 ESCRIBIR c FINPROGRAMA

30.-Simular una carrera de dos caballos si cada uno tiene igual probabilidad de ganar. 

 PROGRAMA caballos ENTORNO: 

Página 32 de 42

Page 33: Ejemplos de Algoritmos en PSeudoCodigo

   dibujo <- "****"    col1 <- 4    col2 <- 4 ALGORITMO:    Borrar_pantalla( )    EN 10,col1 ESCRIBIR dibujo    EN 10,col2 ESCRIBIR dibujo    MIENTRAS col1 <= 75 Y col2 <= 75 HACER       SI Rnd( ) <= 0.5 ENTONCES          EN 10,col1 ESCRIBIR Espacios( 4 )          col1 <- col1 + 4          EN 10,col1 ESCRIBIR dibujo       SINO          EN 12,col2 ESCRIBIR Espacios( 4 )          col2 <- col2 + 4          EN 12,col2 ESCRIBIR dibujo       FINSI    FINMIENTRAS    EN 16,20 ESCRIBIR "El ganador es el caballo n£mero: "    SI col1 >= 75 ENTONCES       EN 16,54 ESCRIBIR "1"    SINO       EN 16,54 ESCRIBIR "2"    FINSI FINPROGRAMA

31.-Introducir dos nymeros por teclado y mediante un menu, calcule su suma, su resta, su multiplicacion o su division. 

 PROGRAMA menu1 ENTORNO:    op <- 0 ALGORITMO:    EN 10,20 ESCRIBIR "N£mero: "    EN 10,29 LEER n1    EN 12,20 ESCRIBIR "N£mero: "    EN 12,29 LEER n2    MIENTRAS op <> 5 HACER       op <- 0       Borrar_pantalla( )       EN 6,20 ESCRIBIR "Men£ de opciones"       EN 10,25 ESCRIBIR "1.- Suma"       EN 12,25 ESCRIBIR "2.- Resta"       EN 14,25 ESCRIBIR "3.- Multiplicaci¢n"       EN 16,25 ESCRIBIR "4.- Divisi¢n"       EN 18,25 ESCRIBIR "5.- Salir del programa"       EN 22,25 ESCRIBIR "Elija opci¢n: "       EN 22,39 LEER op       Borrar_pantalla( )       HACER CASO          CASO op = 1             EN 10,20 ESCRIBIR "Su suma es: "             EN 10,33 ESCRIBIR n1 + n2             Pausa( )          CASO op = 2             EN 10,20 ESCRIBIR "Su resta es: "             EN 10,33 ESCRIBIR n1 - n2             Pausa( )          CASO op = 3             EN 10,20 ESCRIBIR "Su multiplicaci¢n es: "             EN 10,33 ESCRIBIR n1 * n2             Pausa( )          CASO op = 4 

Página 33 de 42

Page 34: Ejemplos de Algoritmos en PSeudoCodigo

            EN 10,20 ESCRIBIR "Su divisi¢n es: "             EN 10,33 ESCRIBIR n1 / n2             Pausa( )       FINCASO    FINMIENTRAS FINPROGRAMA

32.-Hacer un programa que nos permita introducir un numero por teclado y sobre el se realicen las siguientes operaciones: comprobar si es primo, hallar su factorial o imprimir su tabla de multiplicar. 

 PROGRAMA menu2 ENTORNO:    op <- 0 ALGORITMO:    EN 10,20 ESCRIBIR "N£mero: "    EN 10,29 LEER n    MIENTRAS op <> 4 HACER       op <- 0       Borrar_pantalla( )       EN 6,30 ESCRIBIR "Men£ de opciones"       EN 10,25 ESCRIBIR "1.- Comprobar si es primo"       EN 12,25 ESCRIBIR "2.- Hallar su factorial"       EN 14,25 ESCRIBIR "3.- Tabla de multiplicar"       EN 16,25 ESCRIBIR "4.- Salir del programa"       EN 22,25 ESCRIBIR "Elija opci¢n: "       EN 22,39 LEER op       HACER CASO          CASO op = 1             HACER Primo          CASO op = 2             HACER Factorial          CASO op = 3             HACER Tabla       FINCASO    FINMIENTRAS FINPROGRAMA ------------------------------ SUBPROGRAMA Primo    sw <- 0    i <- n - 1    MIENTRAS i > 1 Y sw <> 1 HACER       SI n = Int( n / i ) * i ENTONCES          sw <- 1       SINO          i <- i - 1       FINSI    FINMIENTRAS    Borrar_pantalla( )    SI sw = 1 ENTONCES       EN 10,10 ESCRIBIR "no es primo"    SINO       EN 10,10 ESCRIBIR "s¡ es primo"    FINSI    Pausa( ) FINSUBPROGRAMA ------------------------------ SUBPROGRAMA Factorial    fac <- 1    Borrar_pantalla( )    SI n < 0 ENTONCES       EN 10,10 ESCRIBIR "No tiene factorial"    SINO       MIENTRAS n > 1 HACER 

Página 34 de 42

Page 35: Ejemplos de Algoritmos en PSeudoCodigo

         fac <- fac * n          n <- n - 1       FINMIENTRAS       EN 10,10 ESCRIBIR "Su factorial es: "       EN 10,27 ESCRIBIR fac    FINSI    Pausa( ) FINSUBPROGRAMA ------------------------------ SUBPROGRAMA Tabla    i <- 0    fi <- 10    Borrar_pantalla( )    MIENTRAS i <= 10 HACER       EN 8,10 ESCRIBIR "Tabla de multiplicar"       EN fi,10 ESCRIBIR n       EN fi,15 ESCRIBIR "*"       EN fi,20 ESCRIBIR i       EN fi,25 ESCRIBIR "="       EN fi,30 ESCRIBIR n * i       i <- i + 1    FINMIENTRAS    Pausa( ) FINSUBPROGRAMA

Arrays unidimensionales 

33.-Crear un array unidimensional de 20 elementos con nombres de personas. Visualizar los elementos de la lista debiendo ir cada uno en una fila distinta. 

 PROGRAMA nombres ENTORNO:    DIMENSIONA datos[ 20 ]    i <- 1 ALGORITMO:    Borrar_pantalla( )    fi <- 10    MIENTRAS i < 21 HACER       EN fi,10 ESCRIBIR "Nombre: "       EN fi, 18 LEER datos[ i ]       i <- i + 1    FINMIENTRAS    Borrar_pantalla( )    i <- 1    fi <- 3    EN 1,20 ESCRIBIR "Elementos de la lista"    MIENTRAS i < 21 HACER       EN fi,28 ESCRIBIR datos[ i ]       fi <- fi + 1       i <- i + 1    FINMIENTRAS FINPROGRAMA

34.-Hacer un programa que lea las calificaciones de un alumno en 10 asignaturas, las almacene en un vector y calcule e imprima su media. 

 PROGRAMA notamedia ENTORNO:    DIMENSIONA notas[ 10 ]    suma <- 0    media <- 0 ALGORITMO: 

Página 35 de 42

Page 36: Ejemplos de Algoritmos en PSeudoCodigo

   Borrar_pantalla( )    fi <- 7    PARA i DESDE 1 HASTA 10 HACER       EN fi,15 ESCRIBIR "Nota "       EN fi,20 ESCRIBIR i       EN fi,21 ESCRIBIR ": "       EN fi,23 LEER notas[ i ]       fi <- fi + 1    FINPARA    PARA i DESDE 1 HASTA 10 HACER       suma <- suma + notas[ i ]    FINPARA    media <- suma / 10    EN 20,20 ESCRIBIR "Nota media: "    EN 20,32 ESCRIBIR media FINPROGRAMA

35.-Usando el segundo ejemplo, hacer un programa que busque una nota en el vector. 

 PROGRAMA buscar ENTORNO:    i <- 0    num <- 0 ALGORITMO:    Borrar_pantalla( )    ESCRIBIR "Nota a buscar: "    LEER num    ITERAR       i <- i + 1       SI notas[ i ] = num O i = 10 ENTONCES          SALIR       FINSI    FINITERAR    SI notas[ i ] = num ENTONCES       ESCRIBIR "Encontrado en posici&oacute;n: "       ESCRIBIR i    SINO       ESCRIBIR "No existe esa nota"    FINSI FINPROGRAMA

Arrays bidimensionales 

36.-Generar una matriz de 4 filas y 5 columnas con numeros aleatorios entre 1 y 100, e imprimirla. 

 PROGRAMA matriz ENTORNO:    DIMENSIONAR A[ 4, 5 ]    i <- 1    fi <- 10    co <- 15 ALGORITMO:    Borrar_pantalla( )    EN 6,25 ESCRIBIR "Elementos de la matriz"    MIENTRAS i <= 4 HACER       j <- 1       MIENTRAS j <= 5 HACER          A[ i, j ] <- Int( Rnd( ) * 100 ) + 1          EN fi,co ESCRIBIR A[ i, j ]          co <- co + 5          j <- j + 1       FINMIENTRAS       co <- 15 

Página 36 de 42

Page 37: Ejemplos de Algoritmos en PSeudoCodigo

      fi <- fi + 2       i <- i + 1    FINMIENTRAS FINPROGRAMA

37.-Generar una matriz de 4 filas y 5 columnas con n£meros aleatorios entre 1y 100, y hacer su matriz transpuesta. 

 PROGRAMA transpuesta ENTORNO:    DIMENSIONAR A[ 4, 5 ]    DIMENSIONAR B[ 5, 4 ]    fi <- 8    co <- 10    fit <- 8    cot <- 40    i <- 1 ALGORITMO:    Borrar_pantalla( )    EN 6,15 ESCRIBIR "Matriz uno"    EN 6,45 ESCRIBIR "Transpuesta"    MIENTRAS i <= 4 HACER       j <- 1       MIENTRAS j <= 5 HACER          A[ i, j ] <- Int( Rnd( ) * 100 ) + 1          B[ j, i ] <- A[ i, j ]          EN fi,co ESCRIBIR A[ i, j ]          EN fit,cot ESCRIBIR B[ j, i ]          co <- co + 4          fit <- fit + 2          j <- j + 1       FINMIENTRAS       fi <- fi + 2       co <- 10       fit <- 8       cot <- cot + 4       i <- i + 1    FINMIENTRAS FINPROGRAMA

38.-Cargar en una matriz las notas de los alumnos de un colegio en funcion del numero de cursos (filas) y del n£mero de alumnos por curso (columnas). 

 PROGRAMA notas ENTORNO:    i <- 1    j <- 1 ALGORITMO:    Borrar_pantalla( )    EN 10,20 ESCRIBIR "N£mero de cursos: "    EN 10,39 LEER M    EN 12,20 ESCRIBIR "N£mero de alumnos: "    EN 12,40 LEER N    DIMENSIONAR A[ M, N ]    Borrar_pantalla( )    EN 2,25 ESCRIBIR "Introducci¢n de las notas"    MIENTRAS i <= M HACER       EN 10,25 ESCRIBIR "Curso: "       EN 10,32 ESCRIBIR i       MIENTRAS j <= N HACER          EN 14,25 ESCRIBIR "Alumno: "          EN 14,33 ESCRIBIR j          EN 16,25 ESCRIBIR "Nota: " 

Página 37 de 42

Page 38: Ejemplos de Algoritmos en PSeudoCodigo

         EN 16,32 LEER A[ i, j ]          j <- j + 1       FINMIENTRAS       i <- i + 1    FINMIENTRAS FINPROGRAMA

39.-Ordenar una matriz de M filas y N columnas por la primera columna utilizando el m‚todo SHELL (por insercion). 

 PROGRAMA ordenar ENTORNO:    i <- 1    j <- 1    fi <- 10    co <- 15    M <- 0    N <- 0 ALGORITMO:    Borrar_pantalla( )    EN 10,20 ESCRIBIR "Filas: "    EN 10,27 LEER M    EN 12,20 ESCRIBIR "Columnas: "    EN 12,30 LEER N    DIMENSIONAR A[ M, N ]    Borrar_pantalla( )    MIENTRAS i <= M HACER       MIENTRAS j <= N HACER          A[ i, j ] = Int( Rnd( ) * 100 ) + 1          EN fi,co ESCRIBIR A[ i, j ]          co <- co + 5          j <- j + 1       FINMIENTRAS       co <- 15       fi <- fi + 2       i <- i + 1    FINMIENTRAS    salto <- Int( M / 2 )    MIENTRAS salto >= 1 HACER       sw <- 1       MIENTRAS sw <> 0 HACER          sw <- 0          i <- 1          MIENTRAS i <= M - salto HACER             SI A[ i, 1 ] > A[ i + salto, 1 ] ENTONCES                HACER Cambios             FINSI             i <- i + 1          FINMIENTRAS       FINMIENTRAS       salto <- Int( salto / 2 )    FINMIENTRAS FINPROGRAMA ------------------------------ SUBPROGRAMA Cambios    j <- 1    MIENTRAS j <= N HACER       aux <- A[ i + salto, j ]       A[ i + salto, j ] <- A[ i, j ]       A[ i, j ] <- aux       j <- j + 1    FINMIENTRAS    sw <- 1 

Página 38 de 42

Page 39: Ejemplos de Algoritmos en PSeudoCodigo

FINSUBPROGRAMA

Arrays multidimensionales 

40.-Crear una tabla de 3 paginas, 4 filas y 5 columnas donde el primer elemento valga 1, el segundo 2, el tercero 3 y as¡ sucesivamente, e imprimirla. 

 PROGRAMA tabla ENTORNO:    DIMENSIONAR A[ 3, 4, 5 ]    i <- 1    j <- 1    k <- 1    b <- 0    fi <- 8    co <- 12 ALGORITMO:    MIENTRAS i <= 3 HACER       Borrar_pantalla( )       EN fi,co ESCRIBIR "Elementos de la p gina: "       EN fi,co + 24 ESCRIBIR i       fi <- fi + 2       MIENTRAS j <= 4 HACER          MIENTRAS k <= 5 HACER             b <- b + 1             A[ i, j, k ] <- b             EN fi,co ESCRIBIR A[ i, j, k ]             co <- co + 4             k <- k + 1          FINMIENTRAS          fi <- fi + 2          co <- 12          j <- j + 1       FINMIENTRAS       EN fi + 2,20 ESCRIBIR "Pulse INTRO para continuar ..."       Pausa( )       i <- i + 1    FINMIENTRAS FINPROGRAMA

41.-Se dispone de una tabla de 5 p ginas, 10 filas y 20 columnas, que se refieren al centro, al curso y al numero de alumnos de un colegio respectivamente. Imprimir la nota media por curso y la nota media maxima y su centro de pertenencia. 

 PROGRAMA notas ENTORNO:    max <- -1    sum <- 0    centro <- 0    i <- 1    j <- 1    k <- 1    fi <- 10 ALGORITMO:    Borrar_pantalla( )    EN 8,18 ESCRIBIR "Centro"    EN 8,38 ESCRIBIR "Nota media"    MIENTRAS i <= 5 HACER       MIENTRAS j <= 10 HACER          MIENTRAS k <= 20 HACER             sum <- sum + A[ i, j, k ]             k <- k + 1 

Página 39 de 42

Page 40: Ejemplos de Algoritmos en PSeudoCodigo

         FINMIENTRAS          j <- j + 1       FINMIENTRAS       EN fi,20 ESCRIBIR i       EN fi,40 ESCRIBIR sum / 20       fi <- fi + 2       SI sum / 20 > max ENTONCES          max <- sum / 20          centro <- i       FINSI       i <- i + 1    FINMIENTRAS    EN fi + 2,20 ESCRIBIR "Nota media m xima: "    EN fi + 2,39 ESCRIBIR max    EN fi + 4, 20 ESCRIBIR "pertenece al centro: "    EN fi + 4,41 ESCRIBIR centro FINPROGRAMA

42.-Una empresa guarda en una tabla de 3x12x4 las ventas realizadas por sus tres representantes a lo largo de doce meses de sus cuatro productos, VENTAS[ representante, mes, producto ]. Queremos proyectar el array tridimensional sobre uno de dos dimensiones que represente el total de ventas, TOTAL[ mes, producto ], para lo cual sumamos las ventas de cada producto de cada mes de todos los representantes. Imprimir ambos arrays. 

 PROGRAMA ventas ENTORNO:    ** Las variables est n definidas en cada subprograma ALGORITMO:    HACER Volcar    HACER Imp_Tres    HACER Imp_Dos FINPROGRAMA ------------------------------ SUBPROGRAMA Volcar    DIMENSIONAR TOTAL[ 12, 4 ]    j <- 1    MIENTRAS j <= 12 HACER       k <- 1       MIENTRAS k <= 4 HACER          i <- 1          suma <- 0          MIENTRAS i <= 3 HACER             suma <- suma + VENTAS[ i, j, k ]             i <- i + 1          FINMIENTRAS          TOTAL[ j, k ] <- suma          k <- k + 1       FINMIENTRAS       j <- j + 1    FINMIENTRAS FINSUBPROGRAMA ------------------------------ SUBPROGRAMA Imp_Tres    i <- 1    MIENTRAS i <= 3 HACER       Borrar_pantalla( )       fi <- 8       co <- 12       EN fi,co ESCRIBIR "Ventas del representante: "       EN fi,co + 26 ESCRIBIR i       fi <- fi + 2       j <- 1       MIENTRAS j <= 12 HACER 

Página 40 de 42

Page 41: Ejemplos de Algoritmos en PSeudoCodigo

         k <- 1          MIENTRAS k <= 4 HACER             EN fi,co ESCRIBIR VENTAS[ i, j, k ]             co <- co + 4             k <- k + 1          FINMIENTRAS          fi <- fi + 2          co <- 12          j <- j + 1       FINMIENTRAS       Pausa( )       i <- i + 1    FINMIENTRAS FINSUBPROGRAMA ------------------------------ SUBPROGRAMA Imp_Dos    Borrar_pantalla( )    j <- 1    EN 8,20 ESCRIBIR "Ventas totales"    fi <- 10    co <- 16    MIENTRAS j <= 12 HACER       k <- 1       MIENTRAS k <= 4 HACER          EN fi,co ESCRIBIR TOTAL[ j, k ]          co <- co + 4          k <- k + 1       FINMIENTRAS       fi <- fi + 2       co <- 12       j <- j + 1    FINMIENTRAS FINSUBPROGRAMA

Ficheros 

43.-Hacer un programa que nos permita dar altas en el fichero secuencial DATOS.DAT, cuyos campos son: DNI, NOMBRE, APELLIDOS, DIRECCION y PROVINCIA. 

[code] PROGRAMA altas  ENTORNO:     res <- "S"  ALGORITMO:     MIENTRAS res = "S" HACER        ABRIR "DATOS.DAT"        sw <- 0        num <- 0        Borrar_pantalla( )        EN 5,10 ESCRIBIR "D.N.I.: "        EN 5,18 LEER num        MIENTRAS NO Eof( ) Y sw = 0 HACER           SI dni = num ENTONCES              EN 10,10 ESCRIBIR "Alta duplicada"              EN 15,10 ESCRIBIR "Pulse INTRO para continuar"              Pausa( )              sw <- 1           SINO              Siguiente_registro( )           FINSI        FINMIENTRAS  

Página 41 de 42

Page 42: Ejemplos de Algoritmos en PSeudoCodigo

      SI sw = 0 ENTONCES           EN 7,5 ESCRIBIR "Nombre: "           EN 9,5 ESCRIBIR "Apellidos: "           EN 11,5 ESCRIBIR "Direcci&oacute;n: "           EN 13,5 ESCRIBIR "Provincia: "           EN 7,16 LEER nombre           EN 9,16 LEER apellidos           EN 11,16 LEER direccion           EN 13,16 LEER provincia           dni <- num           Final_fichero( )           Escribir_registro( )        FINSI        CERRAR "DATOS.DAT"        res <- Espacios( 1 )        HACER Mas     FINMIENTRAS  FINPROGRAMA  ------------------------------  SUBPROGRAMA Mas     MIENTRAS res <> "S" Y res <> "N" HACER        ESCRIBIR "Desea m s altas (S/N): "        LEER res        res <- Convertir_mayusculas( res )     

Página 42 de 42