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
6
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");
7
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;
8
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);
9
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;
10
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
11
12
13
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
14
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";
15
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
17
18
19
FINSUBPROCESO
Leer un nmero y mostrar su tabla de multiplicar (no anda) (hecho sin usar
variables globales) (volver al ndice)
PROCESO 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
FINPROCESO
SUBPROCESO retorno <- leer_valores(numero Por Referencia, cota_superior
Por Referencia, cota_inferior Por Referencia)
DEFINIR retorno COMO ENTERO;
ESCRIBIR "Introduce el nmero de multiplicar, cota_superior,
cota_inferior";
LEER numero;
LEER cota_superior;
LEER cota_inferior;
SI (cota_superior < cota_inferior) ENTONCES
Retorno <- (1);
SINO
Retorno <- (0);
FINSI
FINSUBPROCESO
SUBPROCESO Tabla_multiplicar(numero Por Referencia, cota_superior Por
Referencia, cota_inferior Por Referencia)
DEFINIR indice COMO ENTERO;
indice <- 1;
PARA indice <- cota_inferior HASTA cota_superior CON PASO 1
HACER
ESCRIBIR numero ,(" * "), indice ,(" = "), numero*indice;
FINPARA
FINSUBPROCESO
Realizar un algoritmo que muestre el siguiente men. (no anda) (probar en cdigo
fuente)
1. Amigos
2. Sociables
3. Vector de productos
4. Vector de sumas
5. Bisiesto
6. Salir
20
PROCESO 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)
FINPROCESO
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 ((teca = s) | (tecla = n))
HASTA QUE (tecla = N)
FINSUBPROCESO
funcion retorno <- amigos (v1, v2)
DEFINIR Retorno COMO ENTERO;
SI (suma_divisores(v1) = v2) & (suma_divisores(v2) = v1) ENTONCES
Retorno <- (1);
SINO
Retorno <- (0);
21
FINSI
FINFUNCION
funcion suma <- suma_divisores (vvalor)
DEFINIR indice COMO ENTERO;
DEFINIR suma COMO ENTERO;
Suma <- 0;
PARA indice <- 1 HASTA (v1 - 1) CON PASO 1 HACER
SI (v1 % divisor = 0) ENTONCES
Suma <- suma + indice;
FINSI
FINPARA
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
LEER vvector[indice];
FINPARA
SI ((sociables(vvector, cota_inferior, cota_superior)) = 1) ENTONCES
ESCRIBIR ("Son sociables");
SINO
ESCRIBIR ("NO son sociables");
FINSI
FINSUBPROCESO
funcion retorno <- sociables (vector, cota_inferior, cota_superior)
DEFINIR indice, retorno COMO ENTERO;
indice <- 1;
MIENTRAS (indice < cota_inferior) & (sociables(vector[indice],
vvector[indice + 1]) = 1) HACER
indice <- indice + 1;
FINMIENTRAS
SI (indice <- cota_superior) & ((sociable[cota_inferior],
v[cota_superior]) = 1) ENTONCES
Retorno <- (1);
SINO
Retorno <- (0);
FINSI
FINFUNCION
funcion productos <- procedimiento_vector_productos(vector, cota_inferior,
cota_superior)
Definir indice Como Entero;
Definir producto Como Entero;
Producto <- 1;
22
23
24
FINSI
ESCRIBIR vector_factorial[indice];
FINPARA
FINPROCESO
SUBPROCESO Leer_valores (valor1 Por Referencia, valor2 Por Referencia)
ESCRIBIR ("Introduce valor1");
LEER valor1;
ESCRIBIR ("Introduce valor2");
LEER valor2;
FINSUBPROCESO
FUNCION retorno <- numeros_primos (numero)
DEFINIR indice COMO ENTERO;
indice <- 2;
MIENTRAS (indice < numero) & (numero % indice <> 0) HACER
indice <- indice + 1;
FINMIENTRAS
SI (indice = numero) ENTONCES
Retorno <- 1;
SINO
Retorno <- 0;
FINSI
FINFUNCION
FUNCION factorial <- factorial_de_un_numero (numero)
DEFINIR factorial COMO ENTERO;
DEFINIR indice COMO ENTERO;
SI (numero < 0) ENTONCES
Retorno <- -1;
SINO
SI (numero = 1) ENTONCES
Retorno <-1;
SINO
Factorial <- 1;
FINSI
PARA indice <- 2 HASTA numero CON PASO 1 HACER
factorial <- factorial * indice;
FINPARA
FINSI
FINFUNCION
Algoritmo que lea n enteros almacenados en un vector sus factoriales. (no anda)
PROCESO 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;
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]);
25
FINPARA
FINPROCESO
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
SUBPROCESO factorial <- factorial_de_un_numero (numero)
DEFINIR ffactorial COMO ENTERO;
DEFINIR indice COMO ENTERO;
SI (numero < 0) ENTONCES
Retorno <- -1;
SINO
SI (numero = 1) ENTONCES
Retorno <- (1);
SINO
Factorial <- 1;
FINSI
PARA indice <- 2 HASTA numero CON PASO 1 HACER
Ffactorial <- Ffactorial + indice;
FINPARA
FINSI
FINSUBPROCESO
Leer una secuencia y determinar la longitud de la palabra (no anda)
SUBPROCESO contador_palabra <- palabra_mas_larga (parrafo)
DEFINIR indice COMO ENTERO;
DEFINIR contador_palabra COMO ENTERO;
DEFINIR mayor_palabra COMO ENTERO;
indice <- 0;
contador_palabra <- 0;
mayor_palabra <- 0;
MIENTRAS (parrafo[indice] <> "\o") HACER
SI (parrafo[indice] <> "\o") ENTONCES
Contador_palabra <- contador_palabra + 1;
FINSI
SI (parrafo[indice] <> "\o") & (parrafo[indice + 1] = " " | (parrafo[indice + 1] =
"\o") ENTONCES
SI(contador_palabra > mayor_palabra) ENTONCES
Mayor_palabra <- contador_palabra;
FINSI
Contador_palabra <- 0;
FINSI
Indice <- indice + 1;
FINMIENTRAS
FINSUBPROCESO
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