TrabajoPseu en PseInt
TrabajoPseu en PseInt
TrabajoPseu en PseInt
1
ALGORITMO ejercicio_1
DEFINIR numero COMO ENTERO;
ALGORITMO ejercicio_2
DEFINIR numero_a COMO ENTERO;
DEFINIR numero_b COMO ENTERO;
ALGORITMO ejercicio_3
DEFINIR numero1 COMO ENTERO;
DEFINIR numero2 COMO ENTERO;
ESCRIBIR ("Introduce el número1");
LEER numero1;
ESCRIBIR ("Introduce el número2");
LEER numero2;
SI (numero1 > numero2) ENTONCES
ESCRIBIR ("El número1 es mayor", numero1);
SINO
ESCRIBIR ("El número2 es mayor", numero2);
SI (numero1 = numero2) ENTONCES
ESCRIBIR ("Los números son iguales");
FINSI
FINSI
FINALGORITMO
2
ALGORITMO ejercicio_4
DEFINIR numero1 COMO ENTERO;
DEFINIR numero2 COMO ENTERO;
DEFINIR numero3 COMO ENTERO;
ESCRIBIR ("Introduce número1");
LEER numero1;
ESCRIBIR ("Introduce número2");
LEER numero2;
SI (numero1 > numero2) ENTONCES
ESCRIBIR ("Introduce número3");
LEER numero3;
SI (numero1 > numero3) ENTONCES
ESCRIBIR ("El número1 es el mayor");
SINO
SI (numero2 > numero3) ENTONCES
ESCRIBIR ("El número2 es el mayor");
SINO
ESCRIBIR ("El número3 es el mayor");
FINSI
FINSI
FINSI
FINALGORITMO
ALGORITMO ejercicio_5
DEFINIR indice COMO ENTERO;
DEFINIR numero COMO ENTERO;
DEFINIR cota_superior COMO ENTERO;
DEFINIR cota_inferior COMO ENTERO;
cota_inferior <- 1;
cota_superior <- 10;
indice <- 1;
3
ALGORITMO ejercicio_6
DEFINIR numero COMO ENTERO;
DEFINIR indice COMO ENTERO;
DEFINIR suma COMO ENTERO;
DEFINIR producto COMO ENTERO;
suma <- 0;
producto <- 1;
PARA indice <-1 HASTA 30 CON PASO 1 HACER
LEER numero;
suma <- suma + numero;
producto <- producto * numero;
indice <-indice + 1;
FINPARA
ESCRIBIR ("la suma es: "), suma;
ESCRIBIR ("el producto es: "), producto;
FINALGORITMO
ALGORITMO ejercicio_7
DEFINIR numero COMO ENTERO;
DEFINIR suma COMO ENTERO;
suma <- 0;
LEER numero;
MIENTRAS (numero > 0) HACER
suma <- suma +numero;
LEER numero;
FINMIENTRAS
ESCRIBIR ("la suma es:"), suma;
FINALGORITMO
ALGORITMO ejercicio_8
DEFINIR a COMO ENTERO;
DEFINIR b COMO ENTERO;
DEFINIR indice COMO ENTERO;
DEFINIR Multi COMO ENTERO;
ESCRIBIR ("introduce el primer número");
LEER a;
ESCRIBIR ("introduce el segundo número");
LEER b;
multi <- 0;
PARA indice <-b HASTA 1 CON PASO -1 HACER
multi <- multi + a;
FINPARA
ESCRIBIR (multi), ""; //apretar alt + 01
FINALGORITMO
4
ALGORITMO ejercicio_9
DEFINIR dividendo COMO ENTERO;
DEFINIR divisor COMO ENTERO;
DEFINIR cociente COMO ENTERO;
DEFINIR resto COMO ENTERO;
DEFINIR signo COMO ENTERO;
ALGORITMO ejercicio_10
DEFINIR numero COMO ENTERO;
DEFINIR producto COMO ENTERO;
DEFINIR ffin COMO CARACTER;
DEFINIR limite COMO CARACTER;
Producto <- 1;
REPETIR
ESCRIBIR ("Introduce el número");
LEER numero;
ESCRIBIR ("¿Seguir? f = no s = si\n");
LEER ffin;
producto <- producto * numero;
HASTA QUE (ffin = limite)
ESCRIBIR ("el producto de los números es: "), producto;
FINALGORITMO
5
ALGORITMO ejercicio_11
DEFINIR numero COMO ENTERO;
DEFINIR mayor COMO ENTERO;
DEFINIR final COMO CARACTER;
DEFINIR ffin COMO CARACTER;
ffin <-"F";
mayor <- 0;
REPETIR
ESCRIBIR ("Introduce un número");
LEER numero;
ESCRIBIR ("¿Seguir? f = no s = si\n");
LEER final;
SI (numero > mayor) ENTONCES
mayor <- numero;
FINSI
HASTA QUE (final = ffin)
ESCRIBIR ("El mayor es:"), mayor;
FINALGORITMO
ALGORITMO ejercicio_12
DEFINIR contador COMO ENTERO;
DEFINIR binario COMO CADENA;
DEFINIR digito COMO CADENA;
DEFINIR decimal COMO ENTERO;
DEFINIR cociente COMO ENTERO;
binario<-"";
digito<-"";
Contador <- 0;
REPETIR
ESCRIBIR ("Introduce un decimal");
LEER decimal;
Contador <- contador + 1;
HASTA QUE (decimal >= 0) | (contador = 5)
SI (contador = 5) ENTONCES
ESCRIBIR ("Sobrepasado numero de errores");
SINO
SI (decimal = 0) ENTONCES
ESCRIBIR ("0");
FINSI
Cociente <- decimal;
6
FINALGORITMO
//(Otra solución)
ALGORITMO ejercicio_12_ii
DEFINIR num COMO ENTERO;
DEFINIR cad COMO CADENA;
ESCRIBIR ("Ingrese un número entero positivo: ");
LEER num;
cad <- "";
SI num > 0 ENTONCES
MIENTRAS num>0 HACER
SI num%2 = 0 ENTONCES
cad <- "0" + cad;
SINO
cad <- "1" + cad;
FINSI
num <- trunc(num/2);
FINMIENTRAS
ESCRIBIR ("Numero en binario: "), cad;
SINO
SI num = 0 Entonces
ESCRIBIR "0";
SINO
Escribir ("Solo números mayores a cero");
FINSI
FINSI
FINALGORITMO
ALGORITMO ejercicio_13
DEFINIR indice COMO ENTERO;
DEFINIR suma COMO ENTERO;
suma <- 0;
PARA indice <-2 HASTA 29 CON PASO 3 HACER
SI (indice % 5 = 0) ENTONCES
suma <- suma + indice;
FINSI
FINPARA
ESCRIBIR ("La suma es: "), suma;
FINALGORITMO
ALGORITMO ejercicio_14
DEFINIR media COMO ENTERO;
DEFINIR suma COMO ENTERO;
DEFINIR contador COMO ENTERO;
DEFINIR numero COMO ENTERO;
suma <- 0;
contador <- 0;
media <- 0;
ESCRIBIR ("Introduce un número");
LEER numero;
MIENTRAS (numero <> 0) HACER
contador <- contador + 1;
suma <- suma + numero;
ESCRIBIR ("Introduce un número");
7
LEER numero;
FINMIENTRAS
media <- suma/contador;
ESCRIBIR suma, " ";
ESCRIBIR media;
FINALGORITMO
ALGORITMO ejercicio_15
DEFINIR numero COMO ENTERO;
DEFINIR indice COMO ENTERO;
DEFINIR intercambio COMO ENTERO;
DEFINIR n_1 COMO ENTERO;
DEFINIR n_2 COMO ENTERO;
REPETIR
ESCRIBIR ("Introduce un número");
LEER numero;
HASTA QUE (numero > 0)
SI (numero = 1) ENTONCES
ESCRIBIR ("a1 <- 1");
SINO
SI (numero = 2) ENTONCES
ESCRIBIR ("a1 <- 1");
ESCRIBIR ("a2 <- 1");
SINO
ESCRIBIR ("a1 <- 1");
ESCRIBIR ("a2 <- 1");
FINSI
n_1 <- 1; //a1 <- 1
n_2 <- 1; //a2 <- 1
PARA indice <-3 HASTA numero CON PASO 1 HACER
ESCRIBIR ( "a"), indice ,(" = "), n_1 + n_2;
intercambio <- n_1;
n_1 <- n_1 + n_2;
n_2 <- intercambio;
FINPARA
FINSI
FINALGORITMO
ALGORITMO ejercicio_16
DEFINIR numero COMO ENTERO;
DEFINIR mayor COMO ENTERO;
DEFINIR menor COMO ENTERO;
ESCRIBIR ("Introduce un número");
LEER numero;
MIENTRAS (numero % 2 = 0) HACER
mayor <- numero;
menor <- numero;
MIENTRAS (numero % 2 = 0) HACER
SI (numero > mayor) ENTONCES
mayor <- numero;
SINO
SI (numero < menor) ENTONCES
menor <- numero;
8
FINSI
FINSI
FINMIENTRAS
FINMIENTRAS
FINALGORITMO
ALGORITMO ejercicio_17
DEFINIR suma COMO ENTERO;
DEFINIR numero COMO ENTERO;
suma <- 0;
ESCRIBIR ("Introduce un número");
LEER numero;
MIENTRAS (numero % 2 = 0) HACER
LEER numero;
suma <- suma + numero;
SI (numero % 2 = 0) ENTONCES
suma <- suma + numero;
FINSI
FINMIENTRAS
ESCRIBIR (suma);
FINALGORITMO
ALGORITMO ejercicio_18
DEFINIR numero COMO ENTERO;
DEFINIR contador COMO ENTERO;
DEFINIR caracter COMO ENTERO;
contador <- 0;
ESCRIBIR ("Introduce el primer número");
REPETIR
LEER numero;
SI (numero % 2 = 0) ENTONCES
ESCRIBIR (numero);
contador <- contador + 1;
FINSI
HASTA QUE (contador = 30)
FINALGORITMO
ALGORITMO ejercicio_19
DEFINIR numero COMO ENTERO;
DEFINIR suma COMO ENTERO;
DEFINIR posicion COMO ENTERO;
DEFINIR indice COMO ENTERO;
suma <- 0;
posicion <- 0;
MIENTRAS (indice <= 30) HACER
ESCRIBIR ("introduce un número");
LEER numero;
posicion <- posicion + 1;
SI (posicion % 2 = 0 ) ENTONCES
suma <- suma + numero;
FINSI
FINMIENTRAS
ESCRIBIR (suma);
9
FINALGORITMO
ALGORITMO ejercicio_20
DEFINIR factorial COMO ENTERO;
DEFINIR indice COMO ENTERO;
DEFINIR numero COMO ENTERO;
ALGORITMO ejercicio_21
DEFINIR n COMO ENTERO;
DEFINIR contador COMO ENTERO;
DEFINIR encontrado COMO LOGICO;
ALGORITMO ejercicio_22
DEFINIR n COMO ENTERO;
DEFINIR contador COMO ENTERO;
DEFINIR suma COMO ENTERO;
DEFINIR indice COMO ENTERO;
suma <- 0;
PARA indice <-0 HASTA 29 CON PASO 1 HACER
ESCRIBIR ("introduce un número");
LEER numero;
contador <- 2;
MIENTRAS (contador <= n-1) & (n % contador = 0) HACER
contador <- contador + 1;
10
FINMIENTRAS
SI (contador = n ) ENTONCES
suma <- suma + numero;
FINSI
FINPARA
FINALGORITMO
ALGORITMO ejercicio_23
DEFINIR n COMO ENTERO;
DEFINIR contador COMO ENTERO;
DEFINIR factorial COMO ENTERO;
DEFINIR suma COMO ENTERO;
DEFINIR indice COMO ENTERO;
DEFINIR numero COMO ENTERO;
n <- 0;
contador <- 0;
suma <- 0;
REPETIR
REPETIR
ESCRIBIR ("introduce un número");
LEER numero;
HASTA QUE (n >= 0)
factorial <- 1;
PARA indice <-2 HASTA numero CON PASO 1 HACER
factorial <- factorial * numero;
FINPARA
suma <- suma + factorial;
contador <- contador + 1;
HASTA QUE (contador = 30)
ESCRIBIR ("la suma es:"), suma;
FINALGORITMO
ALGORITMO ejercicio_24
DEFINIR e, n, numero COMO REALES;
e<-1;
ESCRIBIR "Ingrese la cantidad de cifras para el límite del factorial: ";
LEER numero;
//ESCRIBIR (1+1/numero)^numero;
PARA n <-1 HASTA numero CON PASO 1 HACER
e <- e + 1/factorial(n);
FINPARA
ESCRIBIR e;
FINALGORITMO
11
SUBPROCESO suma <- factorial ( numero )
DEFINIR suma, contador COMO ENTERO;
suma<-numero;
PARA contador<-numero-1 HASTA 1 CON PASO -1 HACER
suma<-suma*contador;
FINPARA
FINSUBPROCESO
//http://www.discoduroderoer.es/ejercicios-de-funciones-pseudocodigo/
ALGORITMO ejercicio_25
DEFINIR numero COMO ENTERO;
DEFINIR resultado COMO ENTERO;
DEFINIR i COMO ENTERO;
DEFINIR indice COMO ENTERO;
REPETIR
ESCRIBIR ("Introduce un número");
LEER numero;
ESCRIBIR ("Introduce i");
LEER i;
HASTA QUE (numero > i) & (numero >= 0) & (i >= 0)
resultado <-factorial(numero) / (factorial(i) * factorial(numero-i));
ESCRIBIR resultado;
FINALGORITMO
12
1. Desarrolle un algoritmo (Pseudocódigo-Organigrama) para cada uno de los
siguientes problemas que se plantean:
a. Dado una secuencia de números determinar el mayor leído y el número
de veces que aparece.
b. Dado una secuencia de palabras determinar el mayor y menor
lexicográficamente.
c. Resolución de una ecuación de 2º grado.
d. Dado una secuencia de números obtener la suma de los factoriales de
aquellos que ocupan posición par.
e. Determina dado una secuencia de enteros obtener los dos más mayores.
f. Dada un entero extraer cada uno de los dígitos que lo forma.
g. Dada un entero visualizar sus divisores.
h. Dada una secuencia de enteros determinar para cada una los divisores.
i. Dada una secuencia de enteros determinar los que son primos y también
los que tienen como dígito menos significativo un 7.
j. Dada una secuencia de enteros determinar para cada su factorial y si es o
no primo.
k. Determina de una secuencia de enteros aquel que es mayor pero además
es primo.
l. Determina de una secuencia de enteros aquel factorial que es mayor.
m. Dado una secuencia de enteros de cada uno determina sus 20 primeros
múltiplos positivos y enteros.
13
ALGORITMO ejercicio_a
DEFINIR numero COMO ENTERO;
DEFINIR mayor COMO ENTERO;
DEFINIR contador COMO ENTERO;
DEFINIR ffin COMO CARACTER;
contador <- 1;
mayor <- 0;
REPETIR
ESCRIBIR ("Introduce un número");
LEER numero;
ESCRIBIR ("¿Seguir? f = no s = si\n");
LEER fin;
SI (numero > mayor) ENTONCES
contador <- 1;
mayor <- numero;
ESCRIBIR numero ,("es el mayor");
SINO
ESCRIBIR ("El mayor es:"), mayor;
FINSI
HASTA QUE (ffin = limite)
ESCRIBIR ("El mayor es:"), mayor;
ESCRIBIR ("Aparece:"), contador ,("veces");
FINALGORITMO
ALGORITMO ejercicio_b
DEFINIR palabra COMO CARACTER;
DEFINIR mayor COMO ENTERO;
DEFINIR contador COMO ENTERO;
DEFINIR ffin COMO ENTERO;
contador <- 1;
mayor <- 0;
REPETIR
ESCRIBIR ("Introduce una palabra");
LEER palabra;
ESCRIBIR ("¿Seguir? f = no s = si\n");
LEER ffin;
SI (palabra > mayor) ENTONCES
contador <- 1;
mayor <- palabra;
ESCRIBIR palabra ,(" es la mayor");
SINO
ESCRIBIR ("La mayor es:", mayor);
FINSI
HASTA QUE (fin = limite)
ESCRIBIR ("La mayor es:"), mayor;
ESCRIBIR ("Aparece:"), contador ,("veces");
FINALGORITMO
14
ALGORITMO ejercicio_c
DEFINIR a COMO ENTERO;
DEFINIR b COMO ENTERO;
DEFINIR c COMO ENTERO;
DEFINIR det COMO REAL;
ALGORITMO ejercicio_d
DEFINIR numero COMO ENTERO;
DEFINIR factorial COMO ENTERO;
DEFINIR contador COMO ENTERO;
DEFINIR suma COMO ENTERO;
DEFINIR cota_superior COMO ENTERO;
DEFINIR indice COMO ENTERO;
contador <- 0;
suma <- 0;
ESCRIBIR ("cuantos números quieres leer");
LEER cota_superior;
REPETIR
ESCRIBIR ("Introduce un número");
LEER numero;
contador <- contador + 1;
SI (contador % 2 = 0) ENTONCES
factorial <- 1;
PARA indice<-2 HASTA numero CON PASO 1 HACER
factorial <- factorial * indice;
FINPARA
suma <- suma + factorial;
FINSI
HASTA QUE (contador = cota_superior)
FINALGORITMO
ALGORITMO ejercicio_e
DEFINIR numero COMO ENTERO;
DEFINIR mayor COMO ENTERO;
DEFINIR contador COMO ENTERO;
DEFINIR ffin COMO CADENA;
DEFINIR limite COMO CADENA;
limite <- "F";
15
ffin <- limite;
Contador <- 1;
Mayor <- 0;
REPETIR
ESCRIBIR ("Introduce un número");
LEER numero;
ESCRIBIR ("Si quieres finalizar pulsa F (solo ingrese F o N)");
LEER ffin;
SI (numero > mayor) ENTONCES
Contador <- 1;
Mayor <- numero;
ESCRIBIR numero ,(" es el mayor");
SINO
ESCRIBIR ("El mayor es: "),mayor;
FINSI
HASTA QUE (ffin = limite)
ESCRIBIR ("El mayor es:"),mayor;
ESCRIBIR ("Aparece: "),contador ,(" veces");
FINALGORITMO
ALGORITMO ejercicio_f
DEFINIR decimal COMO ENTERO;
DEFINIR cociente COMO ENTERO;
DEFINIR contador COMO ENTERO;
contador <- 0;
REPETIR
ESCRIBIR ("Introduce un número");
LEER decimal;
contador <- contador + 1;
HASTA QUE (decimal >= 0) | (contador = 5)
SI (contador = 5) ENTONCES
ESCRIBIR ("sobrepasa el número de errores");
SINO
cociente <- decimal;
MIENTRAS (cociente <> 0) HACER
ESCRIBIR (cociente % 10);
cociente <- trunc(cociente/10);
FINMIENTRAS
FINSI
FINALGORITMO
ALGORITMO ejercicio_g
DEFINIR numero COMO ENTERO;
DEFINIR indice COMO ENTERO;
REPETIR
ESCRIBIR ("Introduce un número");
LEER numero;
HASTA QUE (numero > 0)
PARA indice <-1 HASTA numero CON PASO 1 HACER
SI (numero % indice =0) ENTONCES
ESCRIBIR ("Un divisor es: "), indice;
SINO
ESCRIBIR ("El "), indice ,(" no es un divisor");
16
FINSI
FINPARA
FINALGORITMO
ALGORITMO ejercicio_h
DEFINIR numero COMO ENTERO;
DEFINIR indice COMO ENTERO;
DEFINIR ffin COMO CARACTER;
DEFINIR limite1 COMO CARACTER;
DEFINIR limite2 COMO CARACTER;
REPETIR
ESCRIBIR ("Introduce un número");
LEER numero;
HASTA QUE (numero > 0)
PARA indice <-1 HASTA numero CON PASO 1 HACER
SI (numero % indice <-0) ENTONCES
ESCRIBIR ("Un divisor es: "), indice;
SINO
ESCRIBIR ("El "), indice ,(" no es un divisor");
FINSI
FINPARA
REPETIR
ESCRIBIR ("¿Quieres seguir? (S/N)");
LEER ffin;
HASTA QUE (ffin = limite1) | (fin = limite2)
MIENTRAS (ffin = limite2) HACER
PARA indice <-1 HASTA numero CON PASO 1 HACER
SI (numero % indice <-0) ENTONCES
ESCRIBIR ("Un divisor es:"), indice;
SINO
ESCRIBIR ("El "), indice ,(" no es un divisor");
FINSI
FINPARA
REPETIR
ESCRIBIR ("¿Quieres seguir? (S/N)");
LEER ffin;
HASTA QUE (ffin = limite1) | (ffin = limite2)
FINMIENTRAS
FINALGORITMO
17
Programación modular (algunos no andan)
i Calcular el mayor de dos valores introducidos mediante el teclado utilizando
programación modular. (ir al código)
Leer un número y mostrar su tabla de multiplicar (ir al código)
Realizar un algoritmo que muestre el siguiente menú. No anda (ir al código)
a. Amigos
b. Sociables
c. Vector de productos
d. Vector de sumas
e. Bisiesto
f. Salir
j Define una función que reciba un vector y devuelva el mayor de todos. No anda (ir a
código)
k Define una función que recibiendo un vector y un entero devuelva la existencia o no
de dicho entero en el vector. No anda
l Algoritmo que lea n enteros que indiquen el factorial de los primos. No anda (ir al
código)
(Ir a códigos parte 2)
18
Calcular el mayor de dos valores introducidos mediante el teclado utilizando
programación modular. (hecho sin usar variables globales) (volver al índice)
ALGORITMO ejercicio_i
DEFINIR valor1 COMO ENTERO;
DEFINIR valor2 COMO ENTERO;
Pantalla_principal;
Leer_valores(valor1, valor2);
SI (mayor(valor1, valor2) = 0) ENTONCES
ESCRIBIR ("Valor 1 es mayor que valor2");
SINO
SI (mayor(valor1, valor2) = 1) ENTONCES
ESCRIBIR ("Valor 2 es mayor que valor1");
SINO
ESCRIBIR ("Son iguales");
FINSI
FINSI
FINALGORITMO
SUBPROCESO Pantalla_principal
Borrar_pantalla();
ESCRIBIR ("__");
ESCRIBIR ("__");
//……
FINSUBPROCESO
SUBPROCESO borrar_pantalla
DEFINIR A1 COMO ENTERO; //A1 es un contador
DEFINIR primera_linea, ultima_linea COMO ENTEROS;
primera_linea <- 1;
ultima_linea <- 24;
PARA A1 <- primera_linea HASTA ultima_linea CON PASO 1
HACER
ESCRIBIR ("__") Sin Saltar;
FINPARA
FINSUBPROCESO
19
FINSI
FINSUBPROCESO
ALGORITMO principal
DEFINIR numero COMO ENTERO;
DEFINIR cota_inferior COMO ENTERO;
DEFINIR cota_superior COMO ENTERO;
DEFINIR error COMO ENTERO;
error <- leer_valores(numero, cota_superior, cota_inferior);
SI (error = 1) ENTONCES
ESCRIBIR ("Has introducido mal los datos");
SINO
Tabla_multiplicar(numero, cota_superior, cota_inferior);
FINSI
FINALGORITMO
Realizar un algoritmo que muestre el siguiente menú. (no anda) (volver al índice)
(probar en código fuente)
(configurar PSeInt para que permita utilizar variables para dimensionar arreglos)
1. Amigos
2. Sociables
3. Vector de productos
4. Vector de sumas
5. Bisiesto
20
6. Salir
ALGORITMO principal
DEFINIR opcion COMO ENTERO;
REPETIR
pantalla_menu();
Leer_opcion();
SEGUN Leer_opcion HACER
1: procedimiento_amigos();
2: procedimiento_sociables();
3: ESCRIBIR procedimiento_vector_productos(vector,
cota_inferior, cota_superior);
4: ESCRIBIR suma_vector(vector, cota_inferior, cota_superior);
5: bisiesto();
FINSEGUN
HASTA QUE (opcion = 6)
FINALGORITMO
SUBPROCESO pantalla_menu()
ESCRIBIR ("__");
ESCRIBIR ("__");
ESCRIBIR ("__");
FINSUBPROCESO
SUBPROCESO leer_opcion
LEER oopcion;
FINSUBPROCESO
SUBPROCESO procedimiento_amigos()
DEFINIR valor1 COMO ENTERO;
DEFINIR valor2 COMO ENTERO;
DEFINIR tecla COMO CARACTER;
REPETIR
REPETIR
LEER valor1;
LEER valor2;
HASTA QUE ((valor1 > 0) & (valor2 > 0))
SI (amigos(valor1,valor2) = 1) ENTONCES
ESCRIBIR ("Son amigos");
SINO
ESCRIBIR ("No son amigos");
FINSI
REPETIR
ESCRIBIR ("¿Quieres seguir s/n?");
LEER tecla;
HASTA QUE ((tecla = 's') | (tecla = 'n'))
HASTA QUE (tecla = 'n')
FINSUBPROCESO
21
Retorno <- (0);
FINSI
FINFUNCION
SUBPROCESO procedimiento_sociables()
DEFINIR cota_inferior COMO ENTERO;
DEFINIR cota_superior COMO ENTERO;
DIMENSION vector[cota_inferior, cota_superior];
DEFINIR vector COMO ENTERO;
DEFINIR indice COMO ENTERO;
cota_inferior <- 1;
cota_superior <- 20;
PARA indice <- cota_inferior HASTA cota_superior CON PASO 1 HACER
PARA indice_2 <- cota_inferior HASTA cota_superior CON PASO 1
HACER
LEER vector[indice, indice_2];
FINPARA
FINPARA
SI ((sociables(vector, cota_inferior, cota_superior)) = 1) ENTONCES
ESCRIBIR ("Son sociables");
SINO
ESCRIBIR ("NO son sociables");
FINSI
FINSUBPROCESO
22
Definir producto Como Entero;
Producto <- 1;
PARA indice <- cota_inferior HASTA cota_superior CON PASO 1 HACER
producto <- producto * vector[indice];
FINPARA
FINFUNCION
SUBPROCESO vector_de_sumas
DEFINIR cota_inferior COMO ENTERO;
DEFINIR cota_superior COMO ENTERO;
DEFINIR indice COMO ENTERO;
DIMENSION vector[cota_inferior, cota_superior];
DEFINIR vector COMO ENTERO;
Leer cota_inferior;
Leer cota_superior;
PARA indice <- cota_inferior HASTA cota_superior CON PASO 1 HACER
LEER vector[indice];
FINPARA
ESCRIBIR (suma_vector(vector, cota_inferior, cota_superior));
FINSUBPROCESO
SUBPROCESO bisiesto
DEFINIR anio COMO ENTERO;
Borrar pantalla;
ESCRIBIR ("Dame un año");
LEER anio;
ESCRIBIR ("Dame un año");
LEER anio;
SI (anio <= 0) ENTONCES
ESCRIBIR ("El año no es bisiesto");
SINO
SI (anio % 400 = 0) ENTONCES
ESCRIBIR ("Es bisiesto");
SINO
SI (anio % 100 = 0) ENTONCES
ESCRIBIR ("No es bisiesto");
SINO
ESCRIBIR ("Es bisiesto");
FINSI
FINSI
FINSI
FINSUBPROCESO
23
SI (anio % 4 <> 0) ENTONCES
Retorno <- (0);
SINO SI (anio % 400 = 0) ENTONCES
Retorno <- (1);
SINO SI (anio % 100 <> 0) ENTONCES
Retorno <- (1);
SINO
Retorno <- (0);
FINSI
FINSI
FINSI
FINFUNCION
Define una función que reciba un vector y devuelva el mayor de todos. (probar)
Algoritmo que lea n enteros que indiquen el factorial de los primos. (no anda) (ir al
principio)
ALGORITMO vector_de_factoriales_primos
DIMENSION vector[cota_inferior, cota_superior];
DIMENSION vector_factorial[cota_inferior, cota_superior];
DEFINIR cota_superior COMO ENTERO;
DEFINIR cota_inferior COMO ENTERO;
DEFINIR indice COMO ENTERO;
Leer_valores(valor1, valor2);
PARA indice <- cota_inferior HASTA cota_superior CON PASO 1 HACER
SI (numeros_primos(vector[indice]) = 1) ENTONCES
24
vector_factorial[indice] <- factorial_de_un_numero (vector[indice]);
FINSI
ESCRIBIR vector_factorial[indice];
FINPARA
FINALGORITMO
Algoritmo que lea n enteros almacenados en un vector sus factoriales. (no anda)
(configurar PSeInt para que permita utilizar variables para dimensionar arreglos)
ALGORITMO calcular_factorial
DIMENSION vector_entero[cota_inferior, cota_superior];
DIMENSION vector_factorial[cota_inferior, cota_superior];
DEFINIR cota_inferior COMO ENTERO;
DEFINIR cota_superior COMO ENTERO;
Borrar pantalla;
25
Leer_valores;
PARA indice <- cota_inf HASTA cota_sup CON PASO 1 HACER
vector_factorial[indice] <- factorial_de_un_numero(vector_entero[indice]);
ESCRIBIR (vector_factorial[indice]);
FINPARA
FINALGORITMO
SUBPROCESO leer_valores
DEFINIR cota_inferior, cota_superior COMO ENTEROS;
ESCRIBIR ("introduce cotas");
LEER cota_inferior;
LEER cota_superior;
ESCRIBIR ("Rellena el vector");
PARA indice <- cota_inferior HASTA cota_superior CON PASO 1 HACER
LEER vector_entero[indice];
FINPARA
FINSUBPROCESO
26
FINSI
Contador_palabra <- 0;
FINSI
Indice <- indice + 1;
FINMIENTRAS
FINSUBPROCESO
Realizar una función que recibiendo una secuencia devuelva dicha secuencia en mayúsculas.
(no anda)
Definir una función recibiendo una secuencia cuyo fin será el carácter "\o" que devuelva el
entero que representa. (no anda) (ningún compilador de pseudocódigo al momento puede
hacer esto)
27
Dada una secuencia mostrar por pantalla el numero de apariciones del codigo ascii. (no anda)
(probar en código fuente)
28
Ejercicios de Pseudocódigo Parte 2
27. Leer una secuencia de números y mostrar la suma de los pares y el producto de
los que son múltiplo de 5.
28. Leer una secuencia de números y determinar el mayor de los pares leídos. anda
29. Leer una secuencia de números y mostrar el mayor de los múltiplos de 5 leídos y
el menor de los múltiplos de 3 leídos.
30. Leer una secuencia de letras y mostrar la suma de sus códigos ASCII.
Suponemos que tenemos la función convertiranumero(caracter)=entero. PSeInt
no puede hacer eso (no anda)
31. Dado un vector de 5 enteros actualizar cada posición de dicho vector con un
número leído y mostrarla en pantalla.
32. Leer una secuencia de 20 números almacenarlos en un vector y mostrar la
posición donde se encuentra el mayor valor leído.
33. Dado dos vectores A y B de 15 elementos cada uno, obtener un vector C donde
la posición i se almacene la suma de A[i]+B[i].
34. Dado dos vectores A y B de 15 elementos cada uno, obtener un vector C donde
la posición i se almacene la suma de A[i]+B[i] y mostrar el mayor de los C[i].
35. Dado una secuencia de número leídos y almacenados en un vector A mostrar
dichos números en orden.
36. Dado una secuencia de número leídos y almacenados en un vector A y un
número leído determinar si dicho número se encuentra o no en el vector.
37. Leer una secuencia de 20 números y almacenar en un vector sus factoriales y
mostrarlos en pantalla.
38. Leer 20 números y almacenarlos de manera ordenada en un vector y mostrar
dicho vector en pantalla.
39. Dado dos matrices A y B obtener la suma y mostrarla en pantalla.
40. Dado una matriz determinar la posición (i,j) del mayor y mostrarla en pantalla.
41. Dado una matriz determinar la posición (i,j) del mayor y menor y mostrarla en
pantalla.
42. Leer un número y una letra si la letra es B mostrar el valor en binario, si es O en
octal y si es H en hexadecimal. Resultado muchas veces incorrecto, problema
de código (ir al código)
43. Leer una secuencia de 20 números almacenarlos en un vector A[20] y mostrar la
suma de los elementos que ocupan posiciones pares y el mayor de los que
ocupan posiciones impares.
44. Dada una matriz A[4,5] realiza la ordenación de la misma (y mostrarla ordenada
por pantalla).
45. Dada una matriz A[4,5] realiza el proceso de ordenar solo por filas.
46. Dado un vector de números determina aquellos que sea primos.
29
ALGORITMO ejercicio_27
DEFINIR numero COMO ENTERO;
DEFINIR producto COMO ENTERO;
DEFINIR sumapares COMO ENTERO;
numero <- 0;
producto <- 1;
sumapares <- 0;
MIENTRAS numero <> -1 HACER
LEER numero;
SI (numero % 2 = 0) ENTONCES //preguntar si es par
sumapares <- sumapares + numero; // sumar numero a numero de pares
SINO SI (numero % 5 = 0) ENTONCES
producto<-producto*numero;
LEER numero;
FINSI
FINSI
FINMIENTRAS
ESCRIBIR (sumapares);
ESCRIBIR (producto);
FINALGORITMO
ALGORITMO ejercicio_28
DEFINIR MAX COMO ENTERO;
MAX<-5;
indice<-0;
numero<-0;
mayor<-0;
ALGORITMO ejercicio_29
DEFINIR MAX COMO ENTERO;
DEFINIR indice COMO ENTERO;
30
DEFINIR numero COMO ENTERO;
DEFINIR mayor COMO ENTERO;
DEFINIR menor COMO ENTERO;
MAX<-10;
indice<-0; //inicializar índice en 0
numero<-0;
mayor<-0;
menor<-0;
MIENTRAS (indice <MAX) HACER
indice<-indice+1;
ESCRIBIR ("Introduzca NUMERO");
LEER numero;
SI (indice%5=0) ENTONCES //Si numero del índice es múltiplo de 5
SI (numero>mayor) ENTONCES //si nuevo mayor que ingresa es
todavía mayor al mayor actual
mayor<-numero; //numero ingresado es nuevo mayor
FINSI
FINSI
FINMIENTRAS
ESCRIBIR (mayor);
ESCRIBIR (menor);
FINALGORITMO
//Corregido y adaptado a PSeInt desde código que se encuentra en
http://dis.um.es/~lopezquesada/documentos/FP0405/Proyecto/web4/webalgo/page32.ht
m
ALGORITMO ejercicio_30
ALGORITMO ejercicio_31
DIMENSION n[5];
DEFINIR n COMO ENTERO;
DEFINIR indice COMO ENTERO;
PARA indice <- 0 HASTA 4 CON PASO 1 HACER
ESCRIBIR ("Introduce un número");
LEER indice;
FINPARA
ESCRIBIR indice;
FINALGORITMO
ALGORITMO ejercicio_32
DEFINIR n COMO ENTERO;
DIMENSION n[20];
31
DEFINIR mayor_indice COMO ENTERO;
DEFINIR indice COMO ENTERO;
DEFINIR mayor COMO ENTERO;
PARA indice <-0 HASTA 19 CON PASO 1 HACER
ESCRIBIR ("Introduce un número");
LEER indice;
FINPARA
Mayor <- n[1];
PARA indice <-0 HASTA 19 CON PASO 1 HACER
SI (n[indice] > mayor) ENTONCES
mayor_indice <-indice;
FINSI
FINPARA
ESCRIBIR (mayor_indice);
FINALGORITMO
ALGORITMO ejercicio_33
DIMENSION A[16] ;
DIMENSION B[16];
DEFINIR indice COMO ENTERO;
DEFINIR suma COMO ENTERO;
DIMENSION C[16];
DEFINIR A, B, C COMO ENTEROS;
ALGORITMO ejercicio_34
DIMENSION A[16];
DIMENSION B[16];
DIMENSION C[16];
DEFINIR indice COMO ENTERO;
DEFINIR suma COMO ENTERO;
DEFINIR mayor COMO ENTERO;
DEFINIR mayor_indice COMO ENTERO;
DEFINIR A, B, C COMO ENTEROS;
32
ESCRIBIR ("Introduce un número para el vector B");
LEER B[indice];
FINPARA
PARA indice <-1 HASTA 15 CON PASO 1 HACER
suma <- A[indice] + B[indice];
C[indice] <- suma;
FINPARA
mayor <- C[1];
mayor_indice <- 1;
PARA indice <-1 HASTA 15 CON PASO 1 HACER
SI (C[indice] > mayor) ENTONCES
mayor_indice <- indice;
mayor <- C[indice];
FINSI
FINPARA
ESCRIBIR (mayor);
ESCRIBIR (mayor_indice);
FINALGORITMO
ALGORITMO ejercicio_35
DEFINIR intercambio COMO ENTERO;
DIMENSION n[15];
DEFINIR intermedio COMO ENTERO;
DEFINIR indice COMO ENTERO;
DEFINIR n COMO ENTERO;
PARA indice <-0 HASTA 14 CON PASO 1 HACER
ESCRIBIR ("Introduce un número");
LEER n[indice];
FINPARA
REPETIR
intercambio <- 0;
PARA indice <-0 HASTA 14 CON PASO 1 HACER
SI (n[indice] > n[indice + 1]) ENTONCES
intermedio <- n[indice];
n[indice] <- n[indice + 1];
n[indice + 1] <- intermedio;
intercambio <- 1;
FINSI
FINPARA
HASTA QUE (intercambio = 0)
FINALGORITMO
ALGORITMO ejercicio_36
DIMENSION A[10];
DEFINIR numero COMO ENTERO;
DEFINIR indice COMO ENTERO;
DEFINIR A COMO ENTERO;
33
indice <-indice + 1;
FINMIENTRAS
SI (indice <-11) ENTONCES
ESCRIBIR ("No está");
SINO
ESCRIBIR ("Existe");
FINSI
FINALGORITMO
ALGORITMO ejercicio_37
DIMENSION n[10];
DEFINIR indice COMO ENTERO;
DEFINIR factorial COMO ENTERO;
DEFINIR indice1 COMO ENTERO;
DEFINIR n COMO ENTERO;
PARA indice <- 0 HASTA 9 CON PASO 1 HACER
ESCRIBIR ("Introduce un número");
LEER n[indice];
FINPARA
PARA indice <- 0 HASTA 9 CON PASO 1 HACER
factorial <- 1;
PARA indice1 <- 3 HASTA n[indice] CON PASO 1 HACER
factorial <- factorial * indice1;
FINPARA
N[indice] <- factorial;
FINPARA
PARA indice <-0 HASTA 9 CON PASO 1 HACER
ESCRIBIR n[indice];
FINPARA
FINALGORITMO
ALGORITMO ejercicio_38
DIMENSION vector[20];
DIMENSION ordenado[20];
DEFINIR vector COMO ENTERO;
DEFINIR ordenado COMO ENTERO;
DEFINIR aux COMO ENTERO;
DEFINIR i COMO ENTERO;
DEFINIR j COMO ENTERO;
PARA i <-0 HASTA 19 CON PASO 1 HACER
LEER vector[i];
FINPARA
34
ordenado[i]<-vector[i];
ESCRIBIR ordenado[i];
FINPARA
FINALGORITMO
//http://programadoraplicaciones.bichotoblog.com/programacion/continuando-con-
pseudocodigo.html
ALGORITMO ejercicio_39
// Habilitar permitir usar variables paras dimensionar arreglos en opciones de lenguaje
//Nota: Las dimensiones variables tienen que ir después de la lectura de la cantidad de
sus elementos
DIMENSION A[5,10];
DIMENSION B[5,10];
DEFINIR A, B COMO ENTEROS;
DEFINIR suma COMO ENTERO;
DEFINIR fila COMO ENTERO;
DEFINIR columna COMO ENTERO;
//http://programador-apli.blogspot.com/2012/04/sumar-las-filas-y-columnas-de-
una.html
35
ALGORITMO ejercicio_40
DIMENSION A[5,4];
DEFINIR A COMO ENTERO;
DEFINIR fila COMO ENTERO;
DEFINIR columna COMO ENTERO;
DEFINIR mayor COMO ENTERO;
DEFINIR posicion_fila COMO ENTERO;
DEFINIR posicion_columna COMO ENTERO;
36
ALGORITMO ejercicio_41
DIMENSION A[4,3];
DEFINIR A COMO ENTERO;
DEFINIR fila COMO ENTERO;
DEFINIR columna COMO ENTERO;
DEFINIR mayor COMO ENTERO;
DEFINIR menor COMO ENTERO;
DEFINIR posicion_fila COMO ENTERO;
DEFINIR posicion_columna COMO ENTERO;
DEFINIR posicion_fila1 COMO ENTERO;
DEFINIR posicion_columna1 COMO ENTERO;
37
ALGORITMO ejercicio_42 //resultado muchas veces incorrecto, problema de código
(ir al índice)
DEFINIR indice COMO ENTERO;
DEFINIR pul COMO ENTERO;
DEFINIR tipo COMO CARACTER;
DEFINIR numero COMO ENTERO;
DEFINIR cociente COMO ENTERO;
DEFINIR divisor COMO ENTERO;
DEFINIR resto COMO ENTERO;
DIMENSION resultado[20];
DEFINIR resultado COMO CADENA;
ESCRIBIR ("Ingrese un número");
LEER numero;
ESCRIBIR ("Ingrese el tipo de base");
LEER tipo; // O,H,B
cociente <- numero;
SEGÚN tipo HACER
'B': divisor <- 2;
'O': divisor <- 8;
'H': divisor <- 16;
FINSEGÚN
pul <- 0;
REPETIR
pul <- pul + 1;
resto <- cociente % divisor;
SEGÚN resto HACER
10: resultado[pul] <- 'A';
11: resultado[pul] <- 'B';
12: resultado[pul] <- 'C';
13: resultado[pul] <- 'D';
14: resultado[pul] <- 'E';
15: resultado[pul] <- 'F';
De Otro Modo: resultado[pul] <- convertiratexto(resto);
FINSEGÚN
cociente <- trunc(cociente/divisor);
HASTA QUE (cociente = 0)
PARA indice <-pul HASTA 1 CON PASO -1 HACER
ESCRIBIR (resultado[pul]);
FINPARA
FINALGORITMO
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main(){
int indice;
int pul;
char tipo;
int numero;
int cociente;
int divisor;
38
int resto;
char resultado[20];
39
}
40
ALGORITMO ejercicio_43
DIMENSION A[20]; //de 20 elementos
DEFINIR indice COMO ENTERO;
DEFINIR suma COMO ENTERO;
DEFINIR mayor COMO ENTERO;
DEFINIR A COMO ENTERO;
PARA indice <- 0 HASTA 19 CON PASO 1 HACER
ESCRIBIR ("Introduce un número");
LEER A[indice];
FINPARA
suma <- 0;
PARA indice <- 2 HASTA 19 CON PASO 2 HACER
suma <- suma + A[indice];
FINPARA
mayor <- A[1];
PARA indice <- 0 HASTA 19 CON PASO 2 HACER
SI (A[indice] > mayor) ENTONCES
mayor <- A[indice];
FINSI
FINPARA
ESCRIBIR ("La suma es: "), suma;
ESCRIBIR ("El mayor es: "), mayor;
FINALGORITMO
41
ALGORITMO ejercicio_44
DIMENSION A[4,5];
DEFINIR A COMO ENTERO;
DEFINIR fila COMO ENTERO;
DEFINIR columna COMO ENTERO;
DIMENSION V[20];
DEFINIR V COMO ENTERO;
DEFINIR indice COMO ENTERO;
DEFINIR intercambio COMO ENTERO;
DEFINIR intermedio COMO ENTERO;
DEFINIR saltador COMO ENTERO;
saltador<-0;
REPETIR
Intercambio <- 0;
PARA indice <- 0 HASTA 18 CON PASO 1 HACER
SI (V[indice] > V[indice + 1]) ENTONCES
Intermedio <- V[indice];
V[indice] <- V[indice +1];
V[indice +1] <- intermedio;
Intercambio <- 1;
FINSI
FINPARA
HASTA QUE (intercambio = 0)
42
ALGORITMO ejercicio_45
DIMENSION A[4,5];
DEFINIR intermedio COMO ENTERO;
DEFINIR intercambio COMO ENTERO;
DEFINIR fila COMO ENTERO;
DEFINIR columna COMO ENTERO;
DEFINIR A COMO ENTERO;
PARA fila <- 0 HASTA 3 CON PASO 1 HACER
PARA columna <- 0 HASTA 4 CON PASO 1 HACER
ESCRIBIR ("Introduce un número");
LEER A[fila,columna];
FINPARA
FINPARA
REPETIR
intercambio <- 0;
PARA fila <- 0 HASTA 3 CON PASO 1 HACER
PARA columna <- 0 HASTA 2 CON PASO 1 HACER
SI (A[fila,columna] > A[fila,columna + 1]) ENTONCES
intermedio <- A[fila,columna];
A[fila,columna] <- A[fila,columna + 1];
A[fila,columna + 1] <- intermedio;
intercambio <- 1;
FINSI
FINPARA
FINPARA
HASTA QUE (intercambio = 0)
PARA fila <- 0 HASTA 3 CON PASO 1 HACER
ESCRIBIR A[fila,columna];
FINPARA
FINALGORITMO
43
ALGORITMO ejercicio_46
DIMENSION A[20];
DEFINIR A COMO ENTERO;
DEFINIR indice COMO ENTERO;
DEFINIR indice1 COMO ENTERO;
Otro ejercicio
http://programadoraplicaciones.bichotoblog.com/continu&o-con-pseudocodigo/
44