Professional Documents
Culture Documents
NAVARRO
CASERO
&
RAUL
MORALES
GARCIA
Correccin e implementacin en PSeInt por Alejandro
Caro y discoduroderoer
2004
2012-2013
1
PROCESO ejercicio_1
DEFINIR numero COMO ENTERO;
ESCRIBIR ("Introduce un nmero");
LEER numero;
SI (numero % 2 = 0) ENTONCES
ESCRIBIR ("El numero es par");
SINO
ESCRIBIR ("El numero no es par");
FINSI
FINPROCESO
PROCESO ejercicio_2
DEFINIR numero_a COMO ENTERO;
DEFINIR numero_b COMO ENTERO;
ESCRIBIR ("Introduce un nmero");
LEER numero_a;
ESCRIBIR ("Introduce otro nmero");
LEER numero_b;
ESCRIBIR (numero_a * numero_b);
FINPROCESO
PROCESO ejercicio_3
DEFINIR numero1 COMO ENTERO;
DEFINIR numero2 COMO ENTERO;
ESCRIBIR ("Introduce el nmero1");
LEER numero1;
ESCRIBIR ("Introduce el nmero2");
LEER numero2;
SI (numero1 > numero2) ENTONCES
ESCRIBIR ("El nmero1 es mayor", numero1);
SINO
ESCRIBIR ("El nmero2 es mayor", numero2);
SI (numero1 = numero2) ENTONCES
ESCRIBIR ("Los nmeros son iguales");
FINSI
FINSI
FINPROCESO
PROCESO ejercicio_4
DEFINIR numero1 COMO ENTERO;
DEFINIR numero2 COMO ENTERO;
DEFINIR numero3 COMO ENTERO;
ESCRIBIR ("Introduce nmero1");
LEER numero1;
ESCRIBIR ("Introduce nmero2");
LEER numero2;
SI (numero1 > numero2) ENTONCES
ESCRIBIR ("Introduce nmero3");
LEER numero3;
SI (numero1 > numero3) ENTONCES
ESCRIBIR ("El nmero1 es el mayor");
SINO
SI (numero2 > numero3) ENTONCES
ESCRIBIR ("El nmero2 es el mayor");
SINO
ESCRIBIR ("El nmero3 es el mayor");
FINSI
FINSI
FINSI
FINPROCESO
PROCESO 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;
ESCRIBIR "Ingrese un nmero";
LEER numero;
PARA indice <- cota_inferior HASTA cota_superior CON PASO 1 HACER
ESCRIBIR numero ,(" * "), indice ,(" = "), numero*indice;
FINPARA
FINPROCESO
PROCESO 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;
FINPROCESO
PROCESO 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;
FINPROCESO
PROCESO ejercicio_8
DEFINIR a COMO ENTERO;
DEFINIR b COMO ENTERO;
DEFINIR indice COMO ENTERO;
DEFINIR Multi COMO ENTERO;
ESCRIBIR ("introduce el primer nmero");
LEER a;
ESCRIBIR ("introduce el segundo nmero");
LEER b;
multi <- 0;
PARA indice <-b HASTA 1 CON PASO -1 HACER
multi <- multi + a;
FINPARA
ESCRIBIR (multi), " "; //apretar alt + 01
FINPROCESO
PROCESO ejercicio_9
DEFINIR dividendo COMO ENTERO;
DEFINIR divisor COMO ENTERO;
DEFINIR cociente COMO ENTERO;
DEFINIR resto COMO ENTERO;
DEFINIR signo COMO ENTERO;
ESCRIBIR ("introduce el dividendo");
LEER dividendo;
ESCRIBIR ("introduce el divisor");
LEER divisor;
//idem multiplicar
//casos especiales
SI (divisor = 0) ENTONCES
ESCRIBIR ("error");
SINO
cociente <- 0;
resto <- dividendo;
MIENTRAS (resto >= divisor) HACER
resto <- resto - divisor;
cociente <- cociente + 1;
FINMIENTRAS
FINSI
ESCRIBIR "El cociente es ", cociente;
ESCRIBIR "El resto es ", resto;
FINPROCESO
PROCESO ejercicio_10
DEFINIR numero COMO ENTERO;
DEFINIR producto COMO ENTERO;
DEFINIR ffin COMO CARACTER;
DEFINIR limite COMO CARACTER;
Limite <- "f";
Producto <- 1;
REPETIR
ESCRIBIR ("Introduce el nmero");
LEER numero;
ESCRIBIR ("Seguir? f = no s = si\n");
LEER ffin;
producto <- producto * numero;
HASTA QUE (ffin = limite)
ESCRIBIR ("el producto de los nmeros es: "), producto;
FINPROCESO
PROCESO 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 nmero");
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;
FINPROCESO
PROCESO 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;
MIENTRAS (cociente<> 0) HACER
SI cociente % 2 = 0 ENTONCES
digito<-"0"
Sino
digito<-"1"
FinSi
binario<-digito+binario
Cociente <- cociente/2;
FINMIENTRAS
ESCRIBIR binario;
FINSI
7
FINPROCESO
//(Otra solucin)
PROCESO ejercicio_12_ii
DEFINIR num COMO ENTERO;
DEFINIR cad COMO CADENA;
ESCRIBIR ("Ingrese un nmero 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 nmeros mayores a cero");
FINSI
FINSI
FINPROCESO
PROCESO 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;
FINPROCESO
PROCESO 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 nmero");
LEER numero;
MIENTRAS (numero <> 0) HACER
contador <- contador + 1;
suma <- suma + numero;
ESCRIBIR ("Introduce un nmero");
8
LEER numero;
FINMIENTRAS
media <- suma/contador;
ESCRIBIR suma, " ";
ESCRIBIR media;
FINPROCESO
PROCESO 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 nmero");
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
FINPROCESO
PROCESO ejercicio_16
DEFINIR numero COMO ENTERO;
DEFINIR mayor COMO ENTERO;
DEFINIR menor COMO ENTERO;
ESCRIBIR ("Introduce un nmero");
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;
9
FINSI
FINSI
FINMIENTRAS
FINMIENTRAS
FINPROCESO
PROCESO ejercicio_17
DEFINIR suma COMO ENTERO;
DEFINIR numero COMO ENTERO;
suma <- 0;
ESCRIBIR ("Introduce un nmero");
LEER numero;
MIENTRAS (numero % 2 = 0) HACER
LEER numero;
suma <- suma + numero;
SI (numero % 2 = 0) ENTONCES
suma <- suma + numero;
FINSI
FINMIENTRAS
ESCRIBIR (suma);
FINPROCESO
PROCESO ejercicio_18
DEFINIR numero COMO ENTERO;
DEFINIR contador COMO ENTERO;
DEFINIR caracter COMO ENTERO;
contador <- 0;
ESCRIBIR ("Introduce el primer nmero");
REPETIR
LEER numero;
SI (numero % 2 = 0) ENTONCES
ESCRIBIR (numero);
contador <- contador + 1;
FINSI
HASTA QUE (contador = 30)
FINPROCESO
PROCESO 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 nmero");
LEER numero;
posicion <- posicion + 1;
SI (posicion % 2 = 0 ) ENTONCES
suma <- suma + numero;
FINSI
FINMIENTRAS
ESCRIBIR (suma);
10
FINPROCESO
PROCESO ejercicio_20
DEFINIR factorial COMO ENTERO;
DEFINIR indice COMO ENTERO;
DEFINIR numero COMO ENTERO;
ESCRIBIR ("introduce un nmero");
LEER numero;
SI (numero < 0) ENTONCES
ESCRIBIR ();
SINO SI (numero = 0) ENTONCES
ESCRIBIR ("El factorial de 0 es 1");
SINO
factorial <- 1;
PARA indice <-2 HASTA numero CON PASO 1 HACER
factorial <- factorial * numero;
FINPARA
ESCRIBIR ("El resultado es: "), factorial;
FINSI
FINSI
FINPROCESO
PROCESO ejercicio_21
DEFINIR n COMO ENTERO;
DEFINIR contador COMO ENTERO;
DEFINIR encontrado COMO LOGICO;
ESCRIBIR ("introduce un nmero");
LEER n;
encontrado <- falso;
contador <- 2;
MIENTRAS (contador <= n-1) & (n % contador <> 0) HACER
contador <- contador + 1;
FINMIENTRAS
SI (contador <= n-1 ) ENTONCES
ESCRIBIR ("el nmero no es primo");
SINO
ESCRIBIR ("el nmero es primo");
FINSI
FINPROCESO
PROCESO 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 nmero");
LEER numero;
contador <- 2;
MIENTRAS (contador <= n-1) & (n % contador = 0) HACER
contador <- contador + 1;
11
FINMIENTRAS
SI (contador = n ) ENTONCES
suma <- suma + numero;
FINSI
FINPARA
FINPROCESO
PROCESO 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 nmero");
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;
FINPROCESO
SUBPROCESO suma <- factorial ( numero )
DEFINIR suma COMO ENTERO;
suma<-numero;
PARA contador<-numero-1 HASTA 1 CON PASO -1 HACER
suma<-suma*contador;
FINPARA
FINSUBPROCESO
PROCESO ejercicio_24
DEFINIR e, n, numero COMO REALES;
e<-1;
ESCRIBIR "Ingrese la cantidad de cifras para el lmite 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;
FINPROCESO
12
13
14
PROCESO ejercicio_a
DEFINIR numero COMO ENTERO;
DEFINIR mayor COMO ENTERO;
DEFINIR contador COMO ENTERO;
DEFINIR ffin COMO CARACTER;
ffin <- "F";
contador <- 1;
mayor <- 0;
REPETIR
ESCRIBIR ("Introduce un nmero");
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");
FINPROCESO
PROCESO ejercicio_b
DEFINIR palabra COMO CARACTER;
DEFINIR mayor COMO ENTERO;
DEFINIR contador COMO ENTERO;
DEFINIR ffin COMO ENTERO;
ffin <- "F";
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");
FINPROCESO
15
PROCESO ejercicio_c
DEFINIR a COMO ENTERO;
DEFINIR b COMO ENTERO;
DEFINIR c COMO ENTERO;
DEFINIR det COMO REAL;
ESCRIBIR ("Introduce b");
LEER b;
ESCRIBIR ("Introduce a");
LEER a;
ESCRIBIR ("Introduce c");
LEER c;
det <-b^2 - 4 * a * c;
SI ((det)<0) ENTONCES
ESCRIBIR ("error");
SINO
ESCRIBIR (-b + (det)^0.5) / (2 * a);
ESCRIBIR (-b - (det)^0.5) / (2 * a);
FINSI
FINPROCESO
PROCESO 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 nmeros quieres leer");
LEER cota_superior;
REPETIR
ESCRIBIR ("Introduce un nmero");
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)
FINPROCESO
PROCESO ejercicio_e
DEFINIR numero COMO ENTERO;
DEFINIR mayor COMO ENTERO;
DEFINIR contador COMO ENTERO;
DEFINIR ffin COMO CADENA;
DEFINIR limite COMO CADENA;
limite <- "F";
16
FINSI
FINPARA
FINPROCESO
PROCESO ejercicio_h
DEFINIR numero COMO ENTERO;
DEFINIR indice COMO ENTERO;
DEFINIR ffin COMO CARACTER;
DEFINIR limite1 COMO CARACTER;
DEFINIR limite2 COMO CARACTER;
Limite1 <- "N";
Limite2 <- "S";
REPETIR
ESCRIBIR ("Introduce un nmero");
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
FINPROCESO
18
19
20
21
REPETIR
pantalla_menu();
Leer_opcion();
SEGUN Leer_opcion HACER
1: procedimiento_amigos();
2: procedimiento_sociables();
3: ESCRIBIR procedimiento_vector_productos(vvector[],
cota_inferior, cota_superior);
4: ESCRIBIR suma_vector(vvector, cota_inferior, cota_superior);
5: ESCRIBIR bisiesto();
FINSEGUN
HASTA QUE (opcion = 6)
FINPROCESO
PROCEDIMIENTO pantalla_menu()
ESCRIBIR ("__");
ESCRIBIR ("__");
ESCRIBIR ("__");
FINPROCEDIMIENTO
PROCEDIMIENTO leer_opcion
LEER oopcion;
FINPROCEDIMIENTO
PROCEDIMIENTO 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 ((teca = s) | (tecla = n))
HASTA QUE (tecla = N)
FINPROCEDIMIENTO
funcion amigos (v1, v2)
SI (suma_divisores(v1) = v2) & (suma_divisores(v2) = v1) ENTONCES
Retornar (1);
SINO
Retornar (0);
FINSI
FINFUNCION
funcion suma <- suma_divisores (vvalor)
DEFINIR indice COMO ENTERO;
DEFINIR suma COMO ENTERO;
22
Suma <- 0;
PARA indice <- 1 HASTA (v1 - 1) CON PASO 1 HACER
SI (v1 % divisor = 0) ENTONCES
Suma <- suma + indice;
FINSI
FINPARA
FINFUNCION
PROCEDIMIENTO 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
LEER vvector[indice];
FINPARA
SI ((sociables(vvector, cota_inferior, cota_superior)) = 1) ENTONCES
ESCRIBIR ("Son sociables");
SINO
ESCRIBIR ("NO son sociables");
FINSI
FINPROCEDIMIENTO
funcion sociables (vvector, cota_inferior, cota_superior)
DEFINIR indice COMO ENTERO;
Indice <- 1;
MIENTRAS (indice < cota_inferior) & (sociables(vvector[indice],
vvector[indice + 1]) = 1) HACER
indice <- indice + 1;
FINMIENTRAS
SI (indice <- cota_superior) & ((sociable[cota_inferior],
v[cota_superior]) = 1) ENTONCES
Retornar (1);
SINO
Retornar (0);
FINSI
FINFUNCION
funcion productos <- procedimiento_vector_productos(vvector[], cota_inferior,
cota_superior)
Definir indice Como Entero;
Definir producto Como Entero;
Producto <- 1;
PARA indice <- cota_inferior HASTA cota_superior CON PASO 1
HACER
producto <- producto * vvector[indice];
FINPARA
FINFUNCION
PROCEDIMIENTO vector_de_sumas
23
24
Retornar (1);
SINO
Retornar (0);
FINSI
FINFUNCION
Define una funcin que reciba un vector y devuelva el mayor de todos. (no anda)
SUBPROCESO Mayor <- mayor_vector (a, cota_inferior, cota_superior)
DEFINIR indice COMO ENTERO;
DEFINIR mayor COMO ENTERO;
mayor <- a[cota_inferior];
PARA (indice <- cota_inferior HASTA cota_superior) CON PASO 1 HACER
SI (a[indice] > mayor) ENTONCES
Mayor <- a[indice];
FINSI
FINPARA
FINSUBPROCESO
Define una funcin que recibiendo un vector y un entero devuelva la existencia o
no de dicho entero en el vector. (no anda)
SUBPROCESO numero_vector (numero, vector, cota_inferior, cota_superior)
DEFINIR indice COMO ENTERO;
indice <- cota_inferior;
MIENTRAS (indice <= cota_superior) & (vector(indice <> numero) HACER
Indice <- indice + 1;
FINMIENTRAS
SI (indice <- cota_inferior + 1) ENTONCES
Retornar (0);
SINO
Retornar (1);
FINSI
FINSUBPROCESO
Algoritmo que lea n enteros que indiquen el factorial de los primos. (no anda) (ir al
principio)
PROCESO 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;
PARA (indice <- cota_inferior HASTA cota_superior) CON PASO 1 HACER
SI (numeros_primos(vector[indice]) = 1) ENTONCES
vector_factorial[indice] <- factorial_de_un_numero (vector[indice]);
FINSI
ESCRIBIR vector_factorial[indice];
FINPARA
FINPROCESO
SUBPROCESO numeros_primos (numero)
DEFINIR numero COMO ENTERO;
25
26
27
28
29
PROCESO 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);
FINPROCESO
PROCESO ejercicio_28
DEFINIR MAX COMO ENTERO;
MAX<-5;
DEFINIR indice COMO ENTERO;
DEFINIR numero COMO ENTERO;
DEFINIR mayor COMO ENTERO;
indice<-0;
numero<-0;
mayor<-0;
MIENTRAS (indice <MAX) HACER
indice<-indice+1;
ESCRIBIR ("Introduzca NUMERO");
LEER numero;
SI ((indice%2)=0) ENTONCES
SI (numero>mayor) ENTONCES
mayor<-numero;
FINSI
FINSI
FINMIENTRAS
ESCRIBIR (mayor);
FINPROCESO
//Adaptado a PSeInt desde cdigo que se encuentra en
http://dis.um.es/~lopezquesada/documentos/FP0405/Proyecto/web4/webalgo/page22b.h
tm
PROCESO ejercicio_29
DEFINIR MAX COMO ENTERO;
DEFINIR indice COMO ENTERO;
30
indice <-indice + 1;
FINMIENTRAS
SI (indice <-11) ENTONCES
ESCRIBIR ("No est");
SINO
ESCRIBIR ("Existe");
FINSI
FINPROCESO
PROCESO 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 nmero");
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
FINPROCESO
PROCESO 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
PARA i <- 0 HASTA 19 CON PASO 1 HACER
PARA i <- 0 HASTA 19 CON PASO 1 HACER
SI vector[i]>vector[j] ENTONCES
aux<-vector[i];
vector[i]<-vector[j];
vector[j]<-aux;
FINSI
FINPARA
FINPARA
PARA i <-0 HASTA 19 CON PASO 1 HACER
34
ordenado[i]<-vector[i];
ESCRIBIR ordenado[i];
FINPARA
FINPROCESO
//http://programadoraplicaciones.bichotoblog.com/programacion/continuando-conpseudocodigo.html
PROCESO ejercicio_39
// Habilitar permitir usar variables paras dimensionar arreglos en opciones de lenguaje
//Nota: Las dimensiones variables tienen que ir despus 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;
PARA fila <- 0 HASTA 4 CON PASO 1 HACER
PARA columna <- 0 HASTA 9 CON PASO 1 HACER
LEER A[fila,columna];
FINPARA
FINPARA
PARA fila <- 0 HASTA 4 CON PASO 1 HACER
PARA columna <- 0 HASTA 9 CON PASO 1 HACER
LEER B[fila,columna];
FINPARA
FINPARA
DIMENSION suma[fila,columna];
PARA fila <- 0 HASTA 4 CON PASO 1 HACER
PARA columna <- 0 HASTA 9 CON PASO 1 HACER
suma[fila,columna] <- A[fila,columna] + B[fila,columna];
FINPARA
FINPARA
ESCRIBIR (suma[fila,columna]);
FINPROCESO
//http://programador-apli.blogspot.com/2012/04/sumar-las-filas-y-columnas-deuna.html
35
PROCESO 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;
PARA fila <- 0 HASTA 4 CON PASO 1 HACER
PARA columna <- 0 HASTA 3 CON PASO 1 HACER
ESCRIBIR ("Introduce un nmero");
LEER A[fila,columna];
FINPARA
FINPARA
Mayor <- A[1,1];
posicion_fila <- 1;
posicion_columna <- 1;
PARA fila <- 0 HASTA 4 CON PASO 1 HACER
PARA columna <- 0 HASTA 3 CON PASO 1 HACER
SI (A[fila,columna] > mayor) ENTONCES
Mayor <- A[fila,columna];
posicion_fila <- [fila];
posicion_columna <- [columna];
FINSI
FINPARA
ESCRIBIR ("El mayor es: "), mayor;
ESCRIBIR ("La posicin es: "), posicion_fila, posicion_columna;
FINPARA
FINPROCESO
36
PROCESO 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;
PARA fila <- 0 HASTA 3 CON PASO 1 HACER
PARA columna <- 0 HASTA 2 CON PASO 1 HACER
ESCRIBIR ("Introduce un numero");
LEER A[fila,columna];
FINPARA
FINPARA
Mayor <- A[1,1];
Posicion_fila <- 1;
Posicion_columna <- 1;
PARA fila <- 0 HASTA 3 CON PASO 1 HACER
PARA columna <- 0 HASTA 2 CON PASO 1 HACER
SI (A[fila,columna] > mayor) ENTONCES
Mayor <- A[fila,columna];
Posicion_fila <- [fila];
Posicion_columna <- [columna];
FINSI
FINPARA
ESCRIBIR ("El mayor es: "), mayor;
ESCRIBIR ("La posicin es: "), posicion_fila, posicion_columna;
FINPARA
Menor <- 1;
Posicion_fila1 <- 1;
Posicion_columna1 <- 1;
PARA fila <- 0 HASTA 3 CON PASO 1 HACER
PARA columna <- 0 HASTA 2 CON PASO 1 HACER
SI (A[fila,columna] < menor) ENTONCES
Menor <- A[fila,columna];
Posicion_fila1 <- [fila];
Posicion_columna1 <- [columna];
FINSI
FINPARA
FINPARA
ESCRIBIR ("El menor es: "), menor;
ESCRIBIR ("La posicin es: "), posicion_fila1, posicion_columna1;
FINPROCESO
37
38
int resto;
char resultado[20];
printf ("Ingrese un nmero ");
scanf ("%d", &numero);
fflush(stdin);
printf ("Ingrese el tipo de base ");
fflush(stdin);
scanf ("%c", &tipo); // O,H,B
cociente = numero;
switch (tipo){
case 'B':
divisor = 2;
break;
case 'O':
divisor = 8;
break;
case 'H':
divisor = 16;
break;
}
pul = 0;
do{
pul = pul + 1;
resto = cociente % divisor;
switch(resto){
case 10:
resultado[pul] = 'A';
break;
case 11:
resultado[pul] = 'B';
break;
case 12:
resultado[pul] = 'C';
break;
case 13:
resultado[pul] = 'D';
break;
case 14:
resultado[pul] = 'E';
break;
case 15:
resultado[pul] = 'F';
break;
default:
resultado[pul] = resto;
}
cociente = (int)cociente/divisor;
}while (cociente != 0);
for(indice = pul; indice >= 1; indice--){
printf("%d", resultado[pul]);
}
getch();
return 0;
39
40
PROCESO 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 nmero");
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;
FINPROCESO
41
PROCESO 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;
PARA fila <- 0 HASTA 3 CON PASO 1 HACER
PARA columna <- 0 HASTA 4 CON PASO 1 HACER
ESCRIBIR ("Introduce un nmero");
LEER A[fila,columna];
FINPARA
FINPARA
saltador<-0;
PARA fila <- 0 HASTA 3 CON PASO 1 HACER
PARA columna <- 0 HASTA 4 CON PASO 1 HACER
//V[((fila - 1) + 5) + columna] <- A[fila,columna];
V[columna+saltador] <- A[fila,columna];
SI columna % 5 = 0 entonces
saltador<-saltador+5;
FINSi
FINPARA
FINPARA
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)
PARA fila <- 0 HASTA 3 CON PASO 1 HACER
PARA columna <- 0 HASTA 2 CON PASO 1 HACER
A[fila,columna] <- V[((fila - 1) * 5) + columna];
FINPARA
FINPARA
Para fila <- 0 HASTA 19 CON PASO 1 HACER
ESCRIBIR V[fila];
FINPARA
FINPROCESO
42
PROCESO 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 nmero");
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
FINPROCESO
43
PROCESO ejercicio_46
DIMENSION A[20];
DEFINIR A COMO ENTERO;
DEFINIR indice COMO ENTERO;
DEFINIR indice1 COMO ENTERO;
PARA indice <- 0 HASTA 19 CON PASO 1 HACER
ESCRIBIR ("Introduce un nmero");
LEER A[indice];
FINPARA
PARA indice <- 0 HASTA 19 CON PASO 1 HACER
indice1 <- 2;
MIENTRAS (indice1 < A[indice]) & (A[indice] % indice1 <> 0) HACER
indice1 <- indice1 + 1;
FINMIENTRAS
SI (indice1 = A[indice]) ENTONCES
ESCRIBIR A[indice], (" es primo");
FINSI
FINPARA
FINPROCESO
Otro ejercicio
http://programadoraplicaciones.bichotoblog.com/continu&o-con-pseudocodigo/
44