Last active
February 24, 2023 02:49
-
-
Save abracu/ea373d6d01ce442fefa5 to your computer and use it in GitHub Desktop.
Algoritmos Resueltos
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ALGORITMOS RESUELTOS | |
-------------------------------------------------------------------------- | |
T1.GIF TEMA 1 | |
-------------------------------------------------------------------------- | |
Bucles y tomas de decision | |
-------------------------------------------------------------------------- | |
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 | |
-------------------------------------------------------------------------- | |
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 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" | |
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: " | |
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 | |
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 | |
-------------------------------------------------------------------------- | |
TEMA 2 | |
-------------------------------------------------------------------------- | |
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 | |
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ás frases (S/N): " | |
LEER res | |
res <- Convertir_may£sculas( res ) | |
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 | |
numero <- numero - 1 | |
FINMIENTRAS | |
HACER Imprimir | |
FINSUBPROGRAMA | |
------------------------------ | |
SUBPROGRAMA Mas | |
res <- " " | |
MIENTRAS res <> "S" Y res <> "N" HACER | |
ESCRIBIR "Desea calcular má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 | |
-------------------------------------------------------------------------- | |
TEMA 3 | |
-------------------------------------------------------------------------- | |
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 | |
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): " | |
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 | |
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 | |
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 | |
-------------------------------------------------------------------------- | |
TEMA 4 | |
-------------------------------------------------------------------------- | |
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: | |
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 | |
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 | |
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 | |
-------------------------------------------------------------------------- | |
TEMA 4 | |
-------------------------------------------------------------------------- | |
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: | |
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ón: " | |
ESCRIBIR i | |
SINO | |
ESCRIBIR "No existe esa nota" | |
FINSI | |
FINPROGRAMA | |
-------------------------------------------------------------------------- | |
TEMA 5 | |
-------------------------------------------------------------------------- | |
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 | |
fi <- fi + 2 | |
i <- i + 1 | |
FINMIENTRAS | |
FINPROGRAMA | |
-------------------------------------------------------------------------- | |
37.-Generar una matriz de 4 filas y 5 columnas con n£meros aleatorios entre 1 | |
y 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: " | |
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 | |
FINSUBPROGRAMA | |
-------------------------------------------------------------------------- | |
TEMA 6 | |
-------------------------------------------------------------------------- | |
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 | |
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 | |
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 | |
-------------------------------------------------------------------------- | |
TEMA 7 | |
-------------------------------------------------------------------------- | |
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. | |
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 | |
SI sw = 0 ENTONCES | |
EN 7,5 ESCRIBIR "Nombre: " | |
EN 9,5 ESCRIBIR "Apellidos: " | |
EN 11,5 ESCRIBIR "Direcció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 ) | |
FINMIENTRAS | |
FINSUBPROGRAMA | |
-------------------------------------------------------------------------- | |
44.-Hacer un programa que nos permita dar bajas en el fichero DATOS.DAT. | |
PROGRAMA bajas | |
ENTORNO: | |
res <- "S" | |
ALGORITMO: | |
MIENTRAS res = "S" HACER | |
ABRIR "DATOS.DAT" | |
sw <- 0 | |
Borrar_pantalla( ) | |
EN 5,10 ESCRIBIR "D.N.I.: " | |
EN 5,18 LEER num | |
MIENTRAS NO Eof( ) HACER | |
SI dni = num ENTONCES | |
sw <- 1 | |
SINO | |
ABRIR "AUX.DAT" | |
Final_fichero( ) | |
Escribir_registro( ) | |
FINSI | |
ABRIR "DATOS.DAT" | |
Siguiente_registro( ) | |
FINMIENTRAS | |
CERRAR "DATOS.DAT" | |
CERRAR "AUX.DAT" | |
SI sw = 0 ENTONCES | |
EN 12,10 ESCRIBIR "Baja inexistente" | |
EN 16,10 ESCRIBIR "Pulse INTRO para continuar" | |
BORRAR "AUX.DAT" | |
Pausa( ) | |
SINO | |
BORRAR "DATOS.DAT" | |
RENOMBRAR "AUX.DAT" COMO "DATOS.DAT" | |
FINSI | |
res = Espacios( 1 ) | |
HACER Mas | |
FINMIENTRAS | |
FINPROGRAMA | |
------------------------------ | |
SUBPROGRAMA Mas | |
MIENTRAS res <> "S" Y res <> "N" HACER | |
ESCRIBIR "Desea m s bajas (S/N): " | |
LEER res | |
res <- Convertir_mayusculas( res ) | |
FINMIENTRAS | |
FINSUBPROGRAMA | |
-------------------------------------------------------------------------- | |
45.-Dado el fichero secuencial DATOS.DAT, realizar un programa que nos permita | |
realizar modificaciones cuantas veces deseemos. | |
PROGRAMA modifica | |
ENTORNO: | |
res <- "S" | |
ALGORITMO: | |
MIENTRAS res = "S" HACER | |
ABRIR "DATOS.DAT" | |
sw <- 0 | |
num <- 0 | |
nom <- Espacios( 15 ) | |
ape <- Espacios( 30 ) | |
dir <- Espacios( 20 ) | |
pro <- Espacios( 20 ) | |
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 | |
HACER Imprimir | |
HACER Cambios | |
sw <- 1 | |
SINO | |
Siguiente_registro( ) | |
FINSI | |
FINMIENTRAS | |
SI sw = 0 ENTONCES | |
HACER Detener | |
FINSI | |
CERRAR "DATOS.DAT" | |
res <- Espacios( 1 ) | |
HACER Mas | |
FINMIENTRAS | |
FINPROGRAMA | |
------------------------------ | |
SUBPROGRAMA Mas | |
MIENTRAS res <> "S" Y res <> "N" HACER | |
ESCRIBIR "Desea m s cambios (S/N): " | |
LEER res | |
res <- Convertir_mayusculas( res ) | |
FINMIENTRAS | |
FINSUBPROGRAMA | |
------------------------------ | |
SUBPROGRAMA Imprimir | |
EN 7,5 ESCRIBIR "Nombre: " | |
EN 9,5 ESCRIBIR "Apellidos: " | |
EN 11,5 ESCRIBIR "Direcció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 | |
FINSUBPROGRAMA | |
------------------------------ | |
SUBPROGRAMA Cambios | |
nom <- nombre | |
ape <- apellidos | |
dir <- direccion | |
pro <- provincia | |
EN 7,16 LEER nom | |
EN 9,16 LEER ape | |
EN 11,16 LEER dir | |
EN 13,16 LEER pro | |
nombre <- nom | |
apellidos <- ape | |
direccion <- dir | |
provincia <- pro | |
Escribir_registro( ) | |
FINSUBPROGRAMA | |
------------------------------ | |
SUBPROGRAMA Detener | |
EN 10,20 ESCRIBIR "Registro inexistente" | |
EN 20,18 ESCRIBIR "Pulse INTRO para continuar" | |
Pausa( ) | |
FINSUBPROGRAMA | |
-------------------------------------------------------------------------- | |
TEMA 8 | |
-------------------------------------------------------------------------- | |
Informes y rupturas de control | |
-------------------------------------------------------------------------- | |
46.-Tenemos el fichero secuencial DATOS.DAT cuyos campos son: DNI, NOMBRE, | |
APELLIDOS, DIRECCION y PROVINCIA. Listar por impresora todos los registros | |
cuya provincia sea una determinada que introduciremos por teclado. | |
PROGRAMA provincia | |
ENTORNO: | |
fi <- 55 | |
c <- 0 | |
pag <- 1 | |
pro <- Espacios( 15 ) | |
ALGORITMO: | |
Borrar_pantalla( ) | |
EN 10,20 ESCRIBIR "Provincia: " | |
EN 10,32 LEER pro | |
ABRIR "DATOS.DAT" | |
Activar_impresora( ) | |
MIENTRAS NO Eof( ) HACER | |
SI provincia = pro ENTONCES | |
SI fi = 55 ENTONCES | |
HACER Cabecera | |
FINSI | |
EN fi,5 ESCRIBIR dni | |
EN fi,15 ESCRIBIR nombre | |
EN fi,35 ESCRIBIR apellidos | |
EN fi,65 ESCRIBIR direccion | |
fi <- fi + 1 | |
c <- c + 1 | |
FINSI | |
Siguiente_registro( ) | |
FINMIENTRAS | |
SI pag <> 1 ENTONCES | |
EN fi + 2,20 ESCRIBIR "Total de personas: " | |
EN fi + 2,39 ESCRIBIR c | |
FINSI | |
Activar_pantalla( ) | |
CERRAR "DATOS.DAT" | |
FINPROGRAMA | |
------------------------------ | |
SUBPROGRAMA Cabecera | |
Salto_pagina( ) | |
EN 2,65 ESCRIBIR "P g.: " | |
EN 2,71 ESCRIBIR pag | |
EN 4,10 ESCRIBIR "Relaci¢n de las personas que viven en la provincia: " | |
EN 4,62 ESCRIBIR pro | |
EN 6,7 ESCRIBIR "D.N.I." | |
EN 6,18 ESCRIBIR "Nombre" | |
EN 6,40 ESCRIBIR "Apellidos" | |
EN 6,68 ESCRIBIR "Direcci¢n" | |
EN 7,4 ESCRIBIR "------------------------------------------------------------------------" | |
fi <- 9 | |
pag <- pag + 1 | |
FINSUBPROGRAMA | |
-------------------------------------------------------------------------- | |
47.-En el fichero secuencial VENTAS.DAT, est n almacenadas las ventas de los | |
productos durante el d¡a, cuyos campos son: NART y VENTAS. Se desea hacer | |
un programa que liste por impresora todas las ventas realizadas durante el | |
d¡a. | |
PROGRAMA ventas | |
ENTORNO: | |
total <- 0 | |
uno <- 0 | |
fi <- 55 | |
sw <- 0 | |
aux <- 0 | |
pag <- 1 | |
ALGORITMO: | |
Borrar_pantalla( ) | |
Activar_impresora( ) | |
ABRIR "VENTAS.DAT" | |
MIENTRAS NO Eof( ) HACER | |
SI fi = 55 ENTONCES | |
HACER Cabecera | |
FINSI | |
SI sw = 0 ENTONCES | |
aux <- nart | |
sw <- 1 | |
FINSI | |
SI nart = aux ENTONCES | |
uno <- uno + ventas | |
SINO | |
HACER Imprimir | |
uno <- 0 | |
aux <- nart | |
uno <- ventas | |
FINSI | |
Siguiente_registro( ) | |
FINMIENTRAS | |
HACER Imprimir | |
EN fi + 2,20 ESCRIBIR "Unidades vendidas: " | |
EN fi + 2,39 ESCRIBIR total | |
Activar_pantalla( ) | |
CERRAR "VENTAS.DAT" | |
FINPROGRAMA | |
------------------------------ | |
SUBPROGRAMA Imprimir | |
EN fi,32 ESCRIBIR aux | |
EN fi,42 ESCRIBIR total | |
fi <- fi + 1 | |
total <- total + uno | |
FINSUBPROGRAMA | |
------------------------------ | |
SUBPROGRAMA Cabecera | |
Salto_pagina( ) | |
EN 2,65 ESCRIBIR "P g.: " | |
EN 2,71 ESCRIBIR pag | |
EN 4,20 ESCRIBIR "LISTADO DE LAS VENTAS DE LOS PRODUCTOS AL DIA: " | |
EN 4,68 ESCRIBIR Fecha_sistema( ) | |
EN 6,30 ESCRIBIR "N£mero" | |
EN 6,40 ESCRIBIR "Cantidad" | |
EN 7,18 ESCRIBIR "-----------------------------------------------------" | |
fi <- 9 | |
pag <- pag + 1 | |
FINSUBPROGRAMA | |
-------------------------------------------------------------------------- | |
48.-Dado el fichero secuencial ARTICULOS.DAT, cuyos campos son: NART, | |
ARTICULO, PVP, STOCK y MINIMO. En otro fichero VENTAS.DAT, est n | |
almacenadas las modificaciones de los productos durante el d¡a, cuyos | |
campos son: NART2, VENTAS y TIPO. El campo TIPO puede tomar los valores 0 | |
(venta) y 1 (compra). Se desea hacer un programa que realice una | |
actualizaci¢n del fichero de ARTICULOS y un listado por impresora de las | |
entradas y salidas de los art¡culos. | |
PROGRAMA modifica | |
ENTORNO: | |
entra <- 0 | |
sale <- 0 | |
total <- 0 | |
fi <- 55 | |
sw <- 0 | |
aux <- 0 | |
pag <- 1 | |
ALGORITMO: | |
Borrar_pantalla( ) | |
Activar_impresora( ) | |
ABRIR "ARTICULOS.DAT" | |
Primer_registro( ) | |
ABRIR "SALIDAS.DAT" | |
Primer_registro( ) | |
ABRIR "VENTAS.DAT" | |
Primer_registro( ) | |
SELECCIONAR "VENTAS.DAT" | |
MIENTRAS NO Eof( ) HACER | |
SI fi = 55 ENTONCES | |
HACER Cabecompras | |
FINSI | |
SI sw = 0 ENTONCES | |
aux <- nart2 | |
HACER Buscar | |
sw <- 1 | |
FINSI | |
SI nart2 = aux ENTONCES | |
HACER Calculos | |
SINO | |
HACER Grabar | |
HACER Compra | |
entra <- 0 | |
sale <- 0 | |
aux <- nart2 | |
HACER Buscar | |
HACER Calculos | |
FINSI | |
Siguiente_registro( ) | |
FINMIENTRAS | |
HACER Grabar | |
HACER Compra | |
SELECCIONAR "SALIDAS.DAT" | |
fi <- 55 | |
MIENTRAS NO Eof( ) HACER | |
SI fi = 55 ENTONCES | |
HACER Cabesal | |
FINSI | |
MIENTRAS nart3 <> nart HACER | |
SELECCIONAR "ARTICULOS.DAT" | |
Siguiente_registro( ) | |
FINMIENTRAS | |
aux <- nart3 | |
HACER Buscar | |
HACER Sale | |
SELECCIONAR "SALIDAS.DAT" | |
Siguiente_registro( ) | |
FINMIENTRAS | |
EN fi + 4,55 ESCRIBIR "Total: " | |
EN fi + 4,62 ESCRIBIR total | |
Activar_pantalla( ) | |
Cerrar_ficheros( ) | |
BORRAR "SALIDAS.DAT" | |
FINPROGRAMA | |
------------------------------ | |
SUBPROGRAMA Calculos | |
SI tipo = 0 ENTONCES | |
entra <- entra + ventas | |
SINO | |
sale <- sale + ventas | |
FINSI | |
FINSUBPROGRAMA | |
------------------------------ | |
SUBPROGRAMA Grabar | |
stock <- stock + entra - sale | |
SELECCIONAR "ARTICULOS.DAT" | |
Escribir_registro( ) | |
nart3 <- aux | |
ventas3 <- sale | |
SELECCIONAR "SALIDAS.DAT" | |
Final_fichero( ) | |
Escribir_registro( ) | |
FINSUBPROGRAMA | |
------------------------------ | |
SUBPROGRAMA Cabecompras | |
Salto_pagina( ) | |
EN 2,65 ESCRIBIR "P g.: " | |
EN 2,71 ESCRIBIR pag | |
EN 4,20 ESCRIBIR "LISTADO DE LAS ENTRADAS DE ARTICULOS AL DIA: " | |
EN 4,66 ESCRIBIR Fecha_sistema( ) | |
EN 6,18 ESCRIBIR "N£mero" | |
EN 6,35 ESCRIBIR "Art¡culo" | |
EN 6,65 ESCRIBIR "Cantidad" | |
EN 7,15 ESCRIBIR "----------------------------------------------------------------" | |
fi <- 9 | |
pag <- pag + 1 | |
FINSUBPROGRAMA | |
------------------------------ | |
SUBPROGRAMA Compra | |
EN fi,16 ESCRIBIR aux | |
EN fi,30 ESCRIBIR articulo | |
EN fi,67 ESCRIBIR entra | |
fi <- fi + 1 | |
FINSUBPROGRAMA | |
------------------------------ | |
SUBPROGRAMA Cabesal | |
Salto_pagina( ) | |
EN 2,65 ESCRIBIR "P g.: " | |
EN 2,71 ESCRIBIR pag | |
EN 4,20 ESCRIBIR "LISTADO DE SALIDAS DE ARTICULOS AL DIA: " | |
EN 4,60 ESCRIBIR Fecha_sistema( ) | |
EN 6,8 ESCRIBIR "N£mero" | |
EN 6,16 ESCRIBIR "Art¡culo" | |
EN 6,40 ESCRIBIR "Cantidad" | |
EN 6,54 ESCRIBIR "PVP" | |
EN 6,64 ESCRIBIR "Importe" | |
EN 7,6 ESCRIBIR "------------------------------------------------------------------------------" | |
fi <- 9 | |
pag <- pag + 1 | |
FINSUBPROGRAMA | |
------------------------------ | |
SUBPROGRAMA Sale | |
Salto_pagina( ) | |
SI stock < minimo ENTONCES | |
EN fi,4 ESCRIBIR "*" | |
FINSI | |
EN fi,6 ESCRIBIR nart3 | |
EN fi,14 ESCRIBIR articulo | |
EN fi,40 ESCRIBIR ventas | |
EN fi,54 ESCRIBIR pvp | |
EN fi,65 ESCRIBIR ventas * pvp | |
total <- total + ventas * pvp | |
fi <- fi + 1 | |
FINSUBPROGRAMA | |
------------------------------ | |
SUBPROGRAMA Buscar | |
MIENTRAS nart <> aux HACER | |
SELECCIONAR "ARTICULOS.DAT" | |
Siguiente_registro( ) | |
FINMIENTRAS | |
FINSUBPROGRAMA | |
-------------------------------------------------------------------------- | |
TEMA 9 | |
-------------------------------------------------------------------------- | |
Organizaci¢n aleatoria y secuencial | |
-------------------------------------------------------------------------- | |
49.-Hacer un pseudocodigo que nos permita dar altas en el fichero DATOS.DAT de | |
organizaci¢n directa, controlando las altas duplicadas. Los campos son: | |
DNI, NOMBRE, APELLIDOS Y PUNTERO para ambos archivos. | |
Algoritmo( dn ) = | |
- Blanco: grabamos el registro en esa posici¢n y ponemos el puntero a | |
cero. | |
- Cero: comprobamos cu l es el valor del campo puntero. Si es cero, | |
grabamos el registro en esa posici¢n (no hay sinonimos) y si es distinto | |
de cero, comparamos el valor con el campo DNI, si son iguales, alta | |
duplicada y dejamos de leer, y si no son iguales, introducimos el resto | |
de la informacion. | |
- Distinto de cero: hay un registro grabado en esa posicion. Si es igual | |
al dato introducido, alta duplicada, y si no son iguales, comprobamos el | |
valor del puntero, si es cero grabamos el registro, y si no es cero, si | |
es igual al campo DNI, alta duplicada y sino se graba la informacion en | |
el archivo SINONIMOS.DAT. | |
------------------------------ | |
PROGRAMA altas | |
ENTORNO: | |
res <- "S" | |
ALGORITMO: | |
ABRIR "DATOS.DAT" | |
ABRIR "SINONIMOS.DAT" | |
MIENTRAS res = "S" HACER | |
dn <- 0 | |
nom <- Espacios( 15 ) | |
ape <- Espacios( 30 ) | |
dir <- Espacios( 35 ) | |
aux <- Espacios( 2 ) | |
hueco <- Espacios( 2 ) | |
swh <- 0 | |
sw <- 0 | |
num <- 0 | |
donde <- 0 | |
i <- 0 | |
Borrar_pantalla( ) | |
EN 10,20 ESCRIBIR "D.N.I.: " | |
EN 10,29 LEER dn | |
num <- Algoritmo( dn ) | |
SELECCIONAR "DATOS.DAT" | |
LEER num | |
SI dni = Str( dn ) ENTONCES | |
HACER Alta_duplicada | |
SINO | |
SI Val( dni ) = 0 O dni = Espacios( ) ENTONCES | |
swh <- 1 | |
FINSI | |
SI Val( puntero ) = 0 O puntero = Espacios( ) ENTONCES | |
HACER Introducir | |
puntero <- Str( 0 ) | |
GRABAR num | |
SINO | |
HACER Buscar | |
SI sw = 0 ENTONCES | |
HACER Introducir | |
SI swh = 1 ENTONCES | |
GRABAR num | |
SINO | |
HACER Encontrar_sitio | |
SELECCIONAR "SINONIMOS.DAT" | |
GRABAR 1 | |
puntero <- Str( donde ) | |
SI i = 0 ENTONCES | |
SELECCIONAR "DATOS.DAT" | |
GRABAR num | |
SINO | |
SELECCIONAR "SINONIMOS.DAT" | |
GRABAR Val( aux ) | |
FINSI | |
puntero <- Str( 0 ) | |
SELECCIONAR "SINONIMOS.DAT" | |
GRABAR donde | |
FINSI | |
SINO | |
HACER Alta_duplicada( ) | |
FINSI | |
FINSI | |
FINSI | |
HACER Mas | |
FINMIENTRAS | |
Cerrar_ficheros( ) | |
FINPROGRAMA | |
------------------------------ | |
SUBPROGRAMA Introducir | |
EN 12,20 ESCRIBIR "Nombre: " | |
EN 14,20 ESCRIBIR "Apellidos: " | |
EN 16,20 ESCRIBIR "Direcci¢n: " | |
EN 12,29 LEER nom | |
EN 14,32 LEER ape | |
EN 16,32 LEER dir | |
FINSUBPROGRAMA | |
------------------------------ | |
SUBPROGRAMA Encontrar_sitio | |
SELECCIONAR "SINONIMOS.DAT" | |
LEER 1 | |
SI Val( nombre ) <> 0 Y nombre <> Espacios( ) ENTONCES | |
donde <- Val( nombre ) | |
LEER donde | |
hueco <- Val( nombre ) | |
nombre <- Str( hueco ) | |
SINO | |
donde <- Val( dni ) + 1 | |
dni <- Str( donde ) | |
FINSI | |
FINSUBPROGRAMA | |
------------------------------ | |
SUBPROGRAMA Buscar | |
aux <- puntero | |
i <- 0 | |
MIENTRAS Val( puntero ) <> 0 Y sw = 0 HACER | |
SELECCIONAR "SINONIMOS.DAT" | |
LEER Val( puntero ) | |
SI dni = Str( dn ) ENTONCES | |
EN 20,10 ESCRIBIR "Alta duplicada" | |
Pausa( ) | |
sw <- 1 | |
SINO | |
SI Val( puntero ) <> 0 ENTONCES | |
i <- i + 1 | |
aux <- puntero | |
FINSI | |
FINSI | |
FINMIENTRAS | |
FINSUBPROGRAMA | |
------------------------------ | |
SUBPROGRAMA Alta_duplicada | |
EN 20,10 ESCRIBIR "Alta duplicada" | |
Pausa( ) | |
FINSUBPROGRAMA | |
-------------------------------------------------------------------------- | |
50.-Tenemos el fichero DATOS.DAT, que est indexado por el campo APELLIDOS, | |
cuyos campos son: DNI, NOMBRE, APELLIDOS, DIRECCION y PROVINCIA. Hacer un | |
programa que nos permita listar por pantalla todos los registros del | |
fichero, controlando el salto de p gina cuando llegue a la l¡nea veinte. | |
PROGRAMA listar | |
ENTORNO: | |
fi <- 22 | |
ALGORITMO: | |
ABRIR "DATOS.DAT" INDICE "APELLIDO" | |
MIENTRAS NO Eof( ) HACER | |
SI fi = 22 ENTONCES | |
HACER Cabecera | |
FINSI | |
EN fi,2 ESCRIBIR dni | |
EN fi,12 ESCRIBIR nombre | |
EN fi,28 ESCRIBIR apellidos | |
EN fi,55 ESCRIBIR direccion | |
EN fi,69 ESCRIBIR provincia | |
fi <- fi + 1 | |
SI fi = 20 ENTONCES | |
EN 22,20 ESCRIBIR "Pulse INTRO para continuar" | |
Pausa( ) | |
fi <- 22 | |
FINSI | |
Siguiente_registro( ) | |
FINMIENTRAS | |
CERRAR "DATOS.DAT" | |
Cerrar_indices( ) | |
FINPROGRAMA | |
------------------------------ | |
SUBPROGRAMA Cabecera | |
Borrar_pantalla( ) | |
EN 3,4 ESCRIBIR "D.N.I." | |
EN 3,20 ESCRIBIR "NOMBRE" | |
EN 3,35 ESCRIBIR "APELLIDOS" | |
EN 3,60 ESCRIBIR "DIRECCION" | |
EN 3,70 ESCRIBIR "PROVINCIA" | |
fi <- 5 | |
FINSUBPROGRAMA | |
-------------------------------------------------------------------------- | |
52.-Tenemos el fichero DATOS.DAT con la misma estructura anterior, que esta | |
indexado por el campo DNI. Crear un programa que nos permita consultar un | |
registro siempre que queramos. | |
PROGRAMA consulta | |
ENTORNO: | |
res <- "S" | |
ALGORITMO: | |
ABRIR "DATOS.DAT" INDICE "DNI" | |
MIENTRAS res = "S" HACER | |
num <- 0 | |
Borrar_pantalla( ) | |
EN 8,20 ESCRIBIR "D.N.I. a buscar: " | |
EN 8,38 LEER num | |
BUSCAR num | |
SI Encontrado( ) ENTONCES | |
EN 10,12 ESCRIBIR "Nombre: ", nombre | |
EN 12,28 ESCRIBIR "Apellidos: ", apellidos | |
EN 14,55 ESCRIBIR "Direcci¢n: ", direccion | |
EN 16,69 ESCRIBIR "Provincia: ", provincia | |
SINO | |
EN 12,20 ESCRIBIR "No est " | |
EN 16,20 ESCRIBIR "Pulse INTRO para continuar" | |
Pausa( ) | |
FINSI | |
res <- Espacios( 1 ) | |
HACER Mas | |
FINMIENTRAS | |
CERRAR "DATOS.DAT" | |
Cerrar_indices( ) | |
FINPROGRAMA | |
Trabajo Practico Nº1 | |
Describir a través de un condicional el ingreso del mes del año. | |
EJERCICIO 1. A través de este ejemplo, diseñar un pseudocódigo que permita calcular áreas y perímetros (utilizando cualquier valor de entrada). Tener en cuenta que sucede si uno de esos valores es cero, pensar que debe siempre ser un numero > a cero no igual. | |
Ejercicios y sus resultados con pseint | |
Proceso Ejercicio1 | |
Escribir "Lado1" | |
Leer lado1 | |
Escribir "Lado2" | |
Leer lado2 | |
Escribir "El perimetro del rectángulo es:" | |
Si lado1>0 y lado2>0 Entonces | |
Escribir lado1*2+lado2*2 | |
Sino | |
Escribir "Imposible calcular" | |
Fin Si | |
Escribir "Y el área del rectangulo es:" | |
Escribir lado1*lado2 | |
Escribir "Ahora calcular el perimetro del triángulo" | |
Escribir "Lado 1" | |
Leer lado1 | |
Escribir "Lado 2 " | |
Leer lado2 | |
Escribir "Lado 3" | |
Leer lado3 | |
Escribir "El perimetro de este triángulo es:" | |
Si Lado1=lado2 y lado2=lado3 | |
Entonces | |
Escribir 3*lado1 | |
Escribir "Es un triangulo equilatero" | |
Sino | |
Si lado1=lado2 y lado2!=lado3 Entonces | |
Escribir 2*lado1+lado3 | |
Escribir "Es un trianguolo isoceles" | |
Sino | |
Escribir lado1+lado2+lado3 | |
Escribir "Es un triangulo escaleno" | |
Fin Si | |
Fin Si | |
//Una vez averiguado que clase de triangulo es y los datos de los lados habremos sacado la base y la altura. | |
Escribir "Calcular el área del triangulo" | |
Escribir "Escribe la base" | |
Leer base | |
Escribir "Escribe la altura" | |
Leer altura | |
Escribir "El area es igual a" | |
Escribir (base*altura)/2 | |
FinProceso | |
EJERCICIO 2. Diseñar un algoritmo según los siguientes datos: Un terreno rectangular de xx metros de ancho por xx metros de largo se quiere cercar con 3 vueltas de alambre de púas. ¿Cuántos metros de alambre se necesitan para cercar el terreno? Tener en cuenta que los valores que ingresa el usuario es > a cero y puede ser decimal. | |
Proceso Ejercicio2 | |
result<-(a*2+l*2); | |
Escribir "Ingrese el ancho del terreno" | |
Leer a | |
Escribir "Ingrese el largo del terreno" | |
Leer l | |
Si a>0 y l>0 Entonces | |
Escribir "La cantidad de metros de alambre que se necesita es:" | |
Escribir (a*2+l*2)*3; | |
Sino | |
Escribir "Los datos son errones" | |
Fin Si | |
FinProceso | |
EJERCICIO 3. Diseñar un algoritmo según los siguientes datos: Un piso de xx metros por xx metros se debe cubrir con baldosas de cerámicas. ¿Cuántas baldosas se necesitan si se sabe que 16 baldosas cubren 1 m2? | |
Proceso Ejercicio3 | |
Escribir "Escribe el ancho del piso" | |
Leer a | |
Escribir "Escribe el largo del piso" | |
Leer b | |
Si a>0 o b>0 Entonces | |
Escribir "Los metros totales son" | |
Escribir a+b | |
Escribir "La cantidad de baldosas que se tienen que utilizar son" | |
Escribir (a+b)*16 | |
Sino | |
Escribir "Las baldosas son imposibles de colocar" | |
Fin Si | |
FinProceso | |
EJERCICIO 4. Diseñe un algoritmo para hallar el mayor de 3 números. | |
Proceso Ejercicio4 | |
Escribir "Escriba el primer valor" | |
Leer a | |
Escribir "Escriba el segundo valor" | |
Leer b | |
Escribir "Escriba el tercer valor" | |
Leer c | |
Si a>b y a>c Entonces | |
Escribir "El mayor valor es:" a | |
Sino | |
Si b>a y b>c Entonces | |
Escribir "El mayor valor es:" b | |
Sino | |
Escribir "El mayor valor es:" c | |
Fin Si | |
Fin Si | |
FinProceso | |
EJERCICIO 5. Diseñar un algoritmo para hallar el aumento al sueldo de un empleado; si el sueldo es mayor a $500.000 su aumento será del 12%, pero si su sueldo es menor El aumento será del 15%. (Debe mostrar cuanto es su sueldo según el %). | |
pseint | |
Proceso Ejercicio5 | |
Sal<-"s" | |
Mientras Sal="S" o Sal="s" | |
Escribir "Calcular el aumento del sueldo de un empleado"; | |
Escribir "Ingrese el sueldo actual"; | |
Leer Sueldo; | |
Si Sueldo>500000 Entonces | |
Aumento=12; | |
Sino | |
Aumento=15; | |
Fin Si | |
NSueldo=Sueldo+(Sueldo/100)*Aumento | |
Escribir "El Aumento es del: ",Aumento, "%"; | |
Escribir "Cobra: ",NSueldo; | |
Escribir "Desea calcular otro sueldo? (S/N) " | |
Leer Sal | |
Fin Mientras | |
FinProceso | |
Ejercicio 6. Diseñe un algoritmo donde pueda utilizar las siguientes sentencias | |
Proceso Ejercicio6 | |
Escribir "El número es: Positivo, Negativo o Neutro?"; | |
Sal<-"s" | |
Mientras Sal="S" o Sal="s" | |
Escribir "Ingrece el Número" | |
Leer N | |
Si N>0 Entonces | |
Escribir "Es Positivo" | |
Fin Si | |
Si N<0 Entonces | |
Escribir "Es Negativo" | |
Fin Si | |
Si N=0 Entonces | |
Escribir "Es Neutro" | |
Fin Si | |
Escribir "Desea saber otro número? (S/N)" | |
Leer Sal | |
Fin Mientras | |
FinProceso | |
Trabajo Practico Nº2 | |
EJERCICIO 1. USO DE OPERADORES LOGICOS | |
(Con este programa podrás saber si el número en el que pensás está en el rango establecido o no. Rango: 35 a 50 ó 65 a 90.) | |
Proceso Ejercicio1 | |
Sal<-"s" | |
Mientras Sal="S" o Sal="s" | |
Escribir "Con este programa podrás saber si el número en el que pensás está en el rango establecido o no. Rango: 35 a 50 ó 65 a 90. "; | |
Escribir "Ingrese el número pensado: "; | |
leer a; | |
si a>=35 y a<=50 o a>=65 y a<=90 Entonces | |
Escribir "El numero esta dentro del rango establecido" | |
Sino | |
Escribir "El numero no esta dentro del rango establecido" | |
FinSi | |
Escribir "Desea saber otro número? (S/N) " | |
Leer Sal | |
Fin Mientras | |
FinProceso | |
EJERCICIO 2. EXPRESIONES COLOQUIALES | |
(Con este programa sabrás fácilmente si el número en el que pensás es par o impar. | |
Pequeño margen de error, al ingresar números grandes.) | |
Proceso Ejercicio2 | |
Sal<-"s" | |
Mientras Sal="S" o Sal="s" | |
Escribir "Con este programa sabrás fácilmente si el número en el que pensás es par o impar."; | |
Escribir "Pequeño margen de error, al ingresar números grandes."; | |
Escribir "Ingrese el número que estas pensando:"; | |
leer a; | |
si a mod 2=0 Entonces | |
Escribir "El número es par" | |
Sino | |
Escribir "El numero es impar."; | |
FinSi | |
Escribir "Desea saber otro número? (S/N)" | |
Leer Sal | |
Fin Mientras | |
FinProceso | |
EJERCICIO 3. EXPRESIONES COLOQUIALES | |
AGREGAR ESPACIOS ENTRE NOMBRES Y EDAD DE LA PERSONA | |
(Con ayuda de este programa te diré cuál es tu nombre completo.) | |
Proceso Ejercicio3 | |
Escribir "Con ayuda de este programa te diré cuál es tu nombre completo."; | |
Escribir "Cual es tu primer nombre?"; | |
leer nom; | |
Escribir "Cual es tu segundo nombre?"; | |
leer snom; | |
Escribir "Cual es tu primer apellido?"; | |
leer ape; | |
Escribir "¿Cuál es tu edad?"; | |
leer edad; | |
Escribir "Tu nombre completo es:" nom," " snom," " ape," " edad | |
Fin Proceso | |
EJERCICIO 4. Consonantes y vocales | |
(Con este programa sabrás si la letra que escribes es consonante o vocal.) | |
Proceso Ejercicio4 | |
Sal<-"s" | |
Mientras Sal="S" o Sal="s" | |
Escribir "Con este programa sabrás si la letra que escribes es consonante o vocal. " | |
Leer letra | |
Si letra ="a" O letra="e" o letra= "i" o letra ="o" O letra="u" O letra="A" O letra="E" O letra="I" O letra="O" O letra="U" o letra=" " Entonces | |
Escribir "La letra es vocal" | |
Sino | |
Escribir "La letra es consonante" | |
Fin Si | |
Escribir "Desea saber otra letra? (S/N)" | |
Leer Sal | |
Fin Mientras | |
FinProceso | |
EJERCICIO 5. Crear una calculadora | |
Proceso Ejercicio5 | |
num1 <-0 | |
num2<-0 | |
op<-0 | |
result<-0 | |
Sal<-"s" | |
Mientras Sal="S" o Sal="s" | |
Escribir "Calculadora" | |
Escribir "Ingrese primer número" | |
Leer num1 | |
Escribir "Ingrese segundo número" | |
Leer num2 | |
Escribir "Que operacion desea útilizar?" | |
Escribir "1 Sumar"; | |
escribir "2 Restar"; | |
escribir "3 Multiplicar"; | |
escribir "4 Dividir"; | |
Leer op; | |
Si op=1 Entonces | |
result<-num1+num2 | |
Sino | |
si op=2 Entonces | |
result<-num1-num2 | |
Sino | |
si op=3 Entonces | |
result <- num1*num2 | |
sino | |
si op=4 Entonces | |
result<-num1/num2 | |
Sino | |
Escribir "Operacion Incorrecta" | |
FinSi | |
FinSi | |
FinSi | |
FinSi | |
Escribir "El resultado de su operacion es: " " " result; | |
Escribir "Desea saber otro número? (S/N)" | |
Leer Sal | |
Fin Mientras | |
FinProceso | |
ACTUALIZADO 8/10/2014 | |
Trabajo Práctico Nº3 | |
EJERCICIO 1. En este ejercicio corregir el ingreso de las notas para que estas estén dentro de los valores correspondientes (1 al 10). También indicar el nombre de la materia, y que se pueda hacer el cálculo del promedio para 3 materias, y el ingreso de notas sean 3 (Trab-pract, evaluación y concepto). | |
Proceso Ejercicio1 | |
Sal<-"s" | |
Mientras Sal="S" o Sal="s" Hacer | |
Escribir "Ingrese el nombre y apellido"; | |
Leer a; | |
Escribir "Ingrese el nombre de la materia"; | |
Leer m1; | |
Escribir "Ingrese la nota"; | |
Leer n1; | |
Escribir "Ingrese el nombre de la materia"; | |
Leer m2; | |
Escribir "Ingrese la nota"; | |
Leer n2; | |
Escribir "Ingrese el nombre de la materia"; | |
Leer m3; | |
Escribir "Ingrese la nota"; | |
Leer n3; | |
Si n1>=1 y n1<=10 y n2>=1 y n2<=10 y n3>=1 y n3<=10 Entonces | |
Escribir (n1+n2+n3)/3; | |
Sino | |
Escribir "Reescriba las notas" ; | |
Escribir "Reescriba la materia"; | |
Leer m1; | |
Escribir "Ingrese la nota"; | |
Leer n1; | |
Escribir "Reescriba la materia"; | |
Leer m2; | |
Escribir "Ingrese la nota"; | |
Leer n2; | |
Escribir "Reescriba la materia"; | |
Leer m3; | |
Escribir "Ingrese la nota"; | |
Leer n3; | |
FinSi | |
Escribir "Desea obtener otro promedio? (S/N) " | |
Leer Sal | |
FinMientras | |
FinProceso | |
EJERCICIO 2. Uso de Operadores | |
Proceso Pitágoras | |
resp<-'s' | |
mientras resp='S' o resp='s' Hacer | |
Escribir 'Teorema de Pitágoras'; | |
Escribir 'Ingrese los datos de los Catetos'; | |
Escribir 'El primer cateto a'; | |
Leer a; | |
Escribir 'El segundo cateto b'; | |
Leer b; | |
c<-(rc(a^2+b^2)) | |
Escribir 'la hipotenusa es:',c; | |
Escribir 'Desea calcular otro? (S/N)' | |
Leer resp | |
FinMientras | |
FinProceso | |
Proceso Ejercicio2 | |
Sal<-"s" | |
Mientras Sal="S" o Sal="s" Hacer | |
Escribir "Teorema de Pitágoras"; | |
Escribir "Ingrese los datos de los Catetos"; | |
Escribir "El primer cateto a"; | |
Leer a; | |
Escribir "El segundo cateto b"; | |
Leer b; | |
c<-(rc(a^2+b^2)) | |
Escribir "la hipotenusa es:",c; | |
//esta codificacion permite desidir si ingresa o no otros datos S"si" y N"no" | |
Escribir "Desea obtener otro valores? (S/N) " | |
Leer Sal | |
FinMientras | |
FinProceso | |
EJERCICIO 3. Corregir los errores, marcarlos en color. Luego condicionar para que el ingreso del valores no sea = a cero | |
Proceso areaTriangulo | |
resp<-'s' | |
mientras resp='S' o resp='s' Hacer | |
Escribir 'EL AREA DE UN TRIANGULO; | |
Escribir 'ingrese el valor de la altura:'; | |
leer altura; | |
escribir 'ingrese el valor de la base:'; | |
leer base; | |
si (altura=3) Entonces | |
a<-(base*altura)/2; | |
escribir 'resultado:',a; | |
r=a*b/2 | |
sino | |
a<-(base*altura)/2; | |
escribir 'resultado:',a; | |
FinSi | |
Escribir 'Desea calcular otro triangulo? (S/N)' | |
Leer res | |
FinMientras | |
FinProceso | |
Proceso areaTriangulo | |
resp<-'s' | |
mientras resp='S' o resp='s' Hacer | |
//le falta la comilla al terminar triangulo corrección: Escribir 'EL AREA DE UN TRIANGULO'; | |
Escribir 'EL AREA DE UN TRIANGULO; | |
Escribir 'ingrese el valor de la altura:'; | |
leer altura; | |
escribir 'ingrese el valor de la base:'; | |
leer base; | |
//correcion del si (altura=3) seria si (altura>0) y ( base>0) | |
si (altura=3) Entonces | |
a<-(base*altura)/2; | |
escribir 'resultado:',a; | |
r=a*b/2 | |
sino | |
a<-(base*altura)/2; | |
escribir 'resultado:',a; | |
FinSi | |
Escribir 'Desea calcular otro triangulo? (S/N)' | |
// Tiene un error en Leer res tendría que ser: Leer resp para que funcione el comando: Escribir 'Desea calcular otro triangulo? (S/N)' | |
Leer res | |
FinMientras | |
FinProceso | |
Corrección en psint para que funcione: | |
Proceso areaTriangulo | |
resp<-'s' | |
mientras resp='S' o resp='s' Hacer | |
Escribir 'EL AREA DE UN TRIANGULO'; | |
Escribir 'ingrese el valor de la altura:'; | |
leer altura; | |
escribir 'ingrese el valor de la base:'; | |
leer base; | |
si (altura>0) y ( base>0) Entonces | |
a<-(base*altura)/2; | |
escribir 'resultado:',a; | |
r=a*b/2 | |
sino | |
a<-(base*altura)/2; | |
escribir 'resultado:',a; | |
FinSi | |
Escribir 'Desea calcular otro triangulo? (S/N)' | |
Leer resp | |
FinMientras | |
FinProceso | |
Luego condicionar para que el ingreso del valores no sea = a cero | |
EJERCICIO 4. Uso de REPETIR. Hacer. RECORDAR EL USO DEL MENU PARA PROXIMOS | |
proceso Menu | |
c1<-0 | |
c2<-0 | |
c3<-0 | |
max<-0 | |
Repetir | |
Escribir '*******MENU*******' | |
Escribir '1........SUMATORIA' | |
Escribir '2....TIPO CARACTER' | |
Escribir '0.......PARA SALIR' | |
Escribir '******************' | |
Escribir 'INGRESE SU OPCION:' | |
leer opcion | |
segun opcion Hacer | |
1 : c1<-c1+1 | |
Repetir | |
escribir 'INGRESE N' | |
Leer n | |
Hasta Que 0<n | |
fact<-1 | |
s<-0 | |
para i<-1 hasta n Hacer | |
s<-s+1/(fact*i) | |
FinPara | |
Escribir 'SUMATORIA: ',s | |
si max < s Entonces | |
max<-s | |
FinSi | |
2 : c2<-c2+1 | |
Escribir 'INGRESE UN CARACTER:' | |
Leer L | |
si ('A'<=L) y (L<='Z') Entonces | |
Escribir L,'ES UNA MAYUSCULA' | |
Sino | |
si ('a'<=L) y (L<='z') Entonces | |
escribir L,'ES UNA MINUSCULA' | |
sino | |
si ('0'<=L) y (L<='9') Entonces | |
escribir L,'ES UN NUMERO' | |
Sino | |
Escribir L,'ES OTRO CARACTER' | |
FinSi | |
FinSi | |
FinSi | |
FinSegun | |
hasta que opcion=0 | |
escribir 'SE INGRESO POR LA OPCION 1: ',c1,' VECES' | |
escribir 'SE INGRESO POR LA OPCION 2: ',c2,' VECES' | |
Escribir 'SE INGRESO POR LA OPCION 3: ',c3,' VECES' | |
Escribir 'LA MAXIMA SUMATORIA FUE: ',max | |
FinProceso | |
Proceso Ejercicio4 | |
Repetir | |
Escribir "Elige una opcion a ejecutar" | |
Escribir "1: Suma"; | |
Escribir "2: Resta"; | |
Escribir "3: Multiplicacion"; | |
Escribir "4: Division"; | |
Escribir "5: Salir"; | |
Leer opc; | |
Segun opc Hacer | |
1: | |
Escribir "Ingrese el primer valor"; | |
Leer num1; | |
Escribir "Ingrese el segundo valor"; | |
Leer num2; | |
suma<-num1+num2; | |
Escribir "El resultado de la suma es:", suma; | |
2: | |
Escribir "Ingrese el primer valor" | |
Leer num1; | |
Escribir "Ingrese el segundo valor" | |
Leer num2; | |
resta<-num1-num2; | |
Escribir "El resultado de la resta es", resta; | |
3: | |
Escribir "Ingrese el primer valor" | |
Leer num1; | |
Escribir "Ingrese el segundo valor" | |
Leer num2; | |
mult<-num1*num2; | |
Escribir "El resultado de la multiplicacion es", mult; | |
4: | |
Escribir "Ingrese el primer valor" | |
Leer num1; | |
Escribir "Ingrese el segundo valor" | |
Leer num2; | |
division<-num1/num2; | |
Escribir "El resultado de la division es", division; | |
FinSegun | |
Hasta Que opc=5 ; | |
FinProceso | |
EJERCICIO 5. Diseñar un pseudocódigo que muestre las horas trabajadas de una persona y el valor por hora. Calcular su salario e imprimirlo. Agregarle información como por ejemplo: datos del empleado, Empresa, cant de horas trabajadas por día, cantidad de horas trabajador por semana, cant de horas trabajadas por mes, etc | |
Proceso Ejercicio5 | |
Sal<-"s" | |
dse<-0 | |
dme<-0 | |
Mientras Sal="S" o Sal="s" Hacer | |
Escribir "Nombre y apellido"; | |
Leer nom | |
Escribir "Nombre de la empresa"; | |
Leer nomem | |
Escribir "Tarifa por hora"; | |
Leer tar | |
Escribir "Número de horas trabajadas por día"; | |
Leer hor | |
Escribir "Número de días trabajados por semana"; | |
Leer dse | |
Escribir "Número de días trabajados por mes"; | |
Leer dme | |
si 7>=dse entonces | |
hos<-(hor*dse); | |
Sino | |
Escribir "Error vuelva a reescribir sus datos" | |
Escribir "Nombre y apellido"; | |
Leer nom | |
Escribir "Nombre de la empresa"; | |
Leer nomem | |
Escribir "Tarifa por hora"; | |
Leer tar | |
Escribir "Número de horas trabajadas por día"; | |
Leer hor | |
Escribir "Número de días trabajados por semana"; | |
Leer dse | |
Escribir "Número de días trabajados por mes"; | |
Leer dme | |
FinSi | |
Si 31>=dme Entonces | |
hom<-(hor*dme); | |
Sino | |
Escribir "Error vuelva a reescribir sus datos" | |
Escribir "Nombre y apellido"; | |
Leer nom | |
Escribir "Nombre de la empresa"; | |
Leer nomem | |
Escribir "Tarifa por hora"; | |
Leer tar | |
Escribir "Número de horas trabajadas por día"; | |
Leer hor | |
Escribir "Número de días trabajados por semana"; | |
Leer dse | |
Escribir "Número de días trabajados por mes"; | |
Leer dme | |
Fin Si | |
Escribir "El salario por día es:", tar*hor | |
Escribir "El salario por semana es:", tar*hos | |
Escribir "El salario por mes es:" , tar*hom | |
Escribir "Desea saber otro empleado? (S/N) " | |
Leer Sal | |
FinMientras | |
FinProceso | |
ACTUALIZADO 16/10/2014 | |
Trabajo Practico Nº 4 | |
A) Definición de vector y un ejemplo. | |
Conjunto ordenado que contiene un nº fijo de elementos (su dimension) de cualquier tipo valido definido con la condición de que todos deben ser del mismo tipo. Son una forma de almacenar datos que permiten contener una serie de valores del mismo tipo, cada uno de los valores contenidos tienen una posición asociada que se usara para accederlos. | |
B) Buscar como se declara un vector en PSeInt Visual Basic y C++. | |
Vectores en PSeInt | |
En programación y/o algoritmos, un vector es una zona de almacenamiento continuo, que almacena serie de elementos del mismo tipo, los elementos del vector. Desde el punto de vista lógico un vector se puede ver como un conjunto de elementos ordenados en fila. | |
ejercicios PSeint | |
El anterior ejemplo nos muestra un vector unidimensional de 3 posiciones para almacenar información y la variable se llama datos. | |
Para declarar un vector en PSeInt se utiliza la palabra reservada Dimension | |
Ejemplo: | |
psint | |
Para almacenar la información en el vector debemos dar el nombre de la variable y la posición en que queremos guardar la información. | |
Ejemplo: | |
Ejercicios y sus resultados con | |
Este ejemplo muestra que el algoritmo define un vector de 3 posiciones y solicita que se ingrese un valor, el cual va a ser almacenado en el vector con nombre, datos y , posición 1. | |
Ejercicios y sus resultados con pseint | |
Para poder almacenar datos en un vector se requiere de la sentencia de ciclos Para. Vemos que el vector es de 3 posiciones lo que quiere decir que se necesita un ciclo que inicie en 1 y termine en 3. | |
Ejemplo: | |
pseint | |
Se hace el ciclo 3 veces, pidiendo los datos, como vemos en el anterior ejemplo. | |
ejercicios PSeint | |
Si les solicitan imprimir el contenido de la información que tiene el vector de manera inversa a como fue ingresada, se debe tener en cuenta el siguiente procedimiento: | |
1.Para guardar los datos tuvimos que iniciar el para en 1 y terminar en 3. | |
psint | |
2.Si solicitan imprimir la información al contrario de cómo fue ingresada al vector. Debemos comenzar por la posición 3 y terminar en la posición 1. | |
Vectores en Visual Basic | |
Un vector no es más que un conjunto de variables consecutivas en memoria y del mismo tipo guardadas dentro de un variable contenedor. Tipos de variables y vectores más comunes: | |
•Variables tipo Char: Estas variables contienen un único carácter, es decir, una letra, un signo o un número. | |
•Variables tipo Int: Contienen un número entero. | |
•Variables tipo float: Contienen un número decimal. | |
•Variables tipo String: Contienen cadenas de texto, o lo que es lo mismo, es un vector con varias variables del tipo Char. | |
•Variables del tipo Boolean: Solo pueden contener un 0 o un 1. El cero es considerado para muchos lenguajes como el literal "False", mientras que el 1 se considera "True". | |
Como se declara un vector en Visual Basic 6.0 | |
Formula: | |
Dim Nombre del Vactor o Matriz (primer valor To ultimo valor) As Tipo De Dato | |
Ejemplo: | |
Dim Fila(1 To 5) As Integer | |
Donde: | |
Nombre del Vactor o Matriz es Fila | |
Primer Valor es 1 | |
Ultimo Valor es 5 | |
Tipo de Dato es Integer | |
Ejercicio: | |
Escribir un programa en Visual Basic que lea N números, calcule la media aritmética de los mismos y muestre los números leídos que son mayores que la media calculada. | |
Se debe crear: | |
1.Command Button | |
2.TextBox | |
3.Label | |
4.ListBox | |
Te quedaría así: | |
Ejercicios y sus resultados con | |
Ejercicios y sus resultados con pseint | |
Como se declara un vector en Visual Basic 2010 | |
En Visual Basic 2010 la declaración de un array, arreglo o vector la hacemos de la misma forma que en Visual Basic 6. | |
Vectores en C++ | |
C++ es un lenguaje de programación diseñado por Bjarne Stroustrup. La intención de su creación fue el extender al exitoso lenguaje de programación C con mecanismos que permitan la manipulación de objetos. Desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje híbrido. | |
Ejemplo: | |
Programa C++ que accede y modifica los elementos de un array. | |
Los elementos de un array se pueden utilizar igual que cualquier otra variable y se puede hacer con ellos las mismas operaciones que se pueden hacer con el resto de variables. | |
#include <iostream> | |
using namespace std; | |
int main () | |
{ | |
int n, m = 5; | |
int a[]={2,8,3,0,4}; //se declara un array de 5 elementos de tipo | |
//int con esos valores iniciales | |
n = a[0]; //n = 2 | |
a[0]=a[1]+a[2]; //a[0]= 8 + 3 = 11 | |
a[1]++; //a[1]= 9 | |
a[n]=m+10; //a[2]= 15 | |
a[n+1]=7; //a[3]= 7 | |
if(a[0]>=a[1]) //if(11 >= 9) | |
a[4]=a[0]; // a[4]= 11 | |
cout << a[0]<<" "<< a[1]<< " "<< a[2]<< " "<< a[3]<< " "<< a[4]; | |
cout << endl; | |
system("pause"; | |
} | |
C) ¿Cual es la variable que controla la posición del arreglo? | |
Una vez definido un array, es muy sencillo acceder a cada uno de sus elementos. Cada elemento se accede indicando su posición dentro del array. La única complicación, que es responsable de muchos errores cuando se empieza a programar, es que las posiciones de los elementos empiezan a contarse en el 0 y no en el 1 ejemplo: | |
ar diaSeleccionado = dias[0]; // diaSeleccionado = "Lunes" | |
ar otroDia = dias[5]; // otroDia = "Sábado" | |
En el ejemplo, la primera instrucción quiere obtener el primer elemento del array. Por eso, se indica el nombre del array y entre corchetes la posición del elemento dentro del array. | |
Las posiciones se empiezan a contar en el 0, por lo que el primer elemento ocupa la posición 0 y se accede a el mediante dias[0]. | |
El valor dias[5] hace referencia al elemento que ocupa la sexta posición dentro del array dias. Como las posiciones empiezan a contarse en 0, la posición 5 hace referencia al sexto elemento, en este caso, el valor Sábado. | |
Ejercicio | |
1) Cargar un vector y que los muestre en orden. | |
Proceso vectorenorden | |
Definir v,n,i,j,t,k como entero; | |
Dimension V[1000]; | |
Escribir "Digite el número de elementos del vector" | |
Leer n; | |
Para i<-1 Hasta n Con Paso 1 Hacer | |
Escribir sin saltar "Digite el vector en su posición", i; | |
Leer v(i); | |
Fin Para | |
//4 1 3 2 | |
//1 4 3 2 | |
//1 3 4 2 | |
//1 2 4 3 | |
//1 2 3 4 | |
Para i<-1 Hasta n Con Paso 1 Hacer | |
Para j<-i Hasta n Con Paso 1 Hacer | |
Si V(i) > V(j) Entonces | |
Escribir "Cambiando ", V(i), " por ", V(j); | |
t = v(i); | |
V(i) = V(j); | |
V(j) = t; | |
Fin Si | |
Fin Para | |
Para k<-1 Hasta n Con Paso 1 Hacer | |
Escribir "Después del ciclo", i, "el vector queda en posición",k, " = ",v(k); | |
Fin Para | |
Para k<-1 Hasta n Con Paso 1 Hacer | |
Escribir "Finalmente el vector queda en posición",k, " = ",v(k); | |
Fin Para | |
Fin Para | |
FinProceso | |
2) Se solicita que el usuario ingrese un número y el algoritmo verifique que el valor ingresado existe en el vector. Dado el caso de existir se debe indicar la posición en el que se encuentra. | |
Proceso Vectorposicion | |
Dimension V[10]; | |
n<-6 | |
escribir "La dimension del vector es: ",n | |
Escribir "Digite los número de elementos del vector" | |
Para i<-1 Hasta n Con Paso 1 Hacer | |
Escribir sin saltar "Digite el vector si es posicion", i; | |
Leer V(i); | |
finpara | |
Escribir "Ingrese número a buscar " | |
Leer j | |
Para i<-1 hasta n con paso 1 hacer | |
si j=V(i) entonces | |
Escribir "El valor está guardado en la posición " ,i | |
FinSi | |
FinPara | |
FinProceso | |
3) Desarrollar un algoritmo que permita almacenar los DNI y apellido de diez estudiantes. El usuario debe ingresar un numero de DNI a buscar en el vector y el algoritmo debe mostrar el apellido que corresponde al numero de DNI ingresado. | |
Proceso base1 | |
Dimension A[10,2] | |
salida="S" | |
salida1="S" | |
escribir "Programa para cargar DNI y nombre de 10 alumnos y luego buscar por DNI" | |
mientras salida1="s" o salida1="S" | |
para i=1 hasta 10 con paso 1 | |
a[i,1]=nombre | |
Escribir "ingrese el DNI del alumno" | |
leer dni | |
a[i,2]=dni | |
FinPara | |
mientras salida="s" o salida="S" | |
nop="true" | |
escribir "Ingrese el DNI a buscar" | |
leer dnibusqueda | |
para i=1 hasta 10 con paso 1 | |
si dnibusqueda=a[i,2] entonces | |
escribir "el nombre es " ,a[i,1] | |
nop="false" | |
FinSi | |
FinPara | |
si nop="true" entonces | |
escribir "no se encuentra en la base" | |
FinSi | |
escribir "Desea buscar otro alumno? S/N?" | |
leer salida | |
finmientras | |
escribir "Desea cargar nuevamente S/N?" | |
leer salida1 | |
finmientras | |
FinProceso | |
ACTUALIZADO 09/11/2014 | |
Trabajo Practico Nº 5 | |
Ejercitación. | |
Practica1. Programa que pide n números, cada uno lo multiplica por 5 y el resultado lo guarda en otro arreglo. | |
Proceso Ejercicio1 | |
Escribir "Digite la dimensión que se le asigna al vector" | |
Leer a | |
Dimension Num(a) | |
Para x<-1 hasta a con paso 1 | |
Escribir "Digite un número para el vector en la posición N°",x | |
Leer Num(x) | |
FinPara | |
Escribir "El resultado de la multiplicación por 5 es: " | |
Para n<-1 hasta a con paso 1 | |
Escribir Num(n) " * 5 = ",(Num(n)*5) | |
FinPara | |
FinProceso | |
Practica2. Calcular el promedio de los elementos que se encuentren en las posiciones pares de un arreglo de n números. | |
Proceso Ejercicio2 | |
Escribir "Digite la dimensión que se le asigna al vector" | |
Leer a | |
Prom<-0 | |
Dimension Num(a) | |
si (a MOD 2) <> 0 | |
x<-a-1 | |
Sino | |
x<-a | |
FinSi | |
Para n<-1 hasta a con paso 1 | |
Escribir "Digite un número para el vector en la posición N°",n | |
Leer Num(n) | |
FinPara | |
Para n<-2 hasta x con paso 2 | |
Prom<-Prom+Num(n) | |
FinPara | |
Resul<-Prom/(x/2) | |
Escribir "El promedio de los numeros es:" | |
Para n<-2 HASTA x con paso 2 | |
Escribir Num(n) | |
FinPara | |
Escribir "Tiene como resultado ",Resul | |
FinProceso | |
Practica3. Utilice un vector con 10 elementos y devuelva la suma de los mismos. | |
Proceso Ejercicio3 | |
a<-10 | |
Sal<-"s" | |
Dimension Num(a) | |
Mientras Sal="S" o Sal="s" | |
Para i<-1 hasta a con paso 1 | |
Escribir "Ingresar un valor en la posicion N°",i | |
Leer Num(i) | |
Resul<-Resul+Num(i) | |
FinPara | |
Escribir "La suma de todos los valores es: ",Resul | |
Escribir "Desea saber otra suma? (S/N)" | |
Leer Sal | |
Fin Mientras | |
FinProceso | |
Practica4. Lea las materias y las calificaciones de los alumnos de un grupo, almacénelas en 2 arreglos unidimensionales. Después debe imprimir el contenido de ambos arreglos. | |
Proceso Ejercicio4 | |
Escribir "Ingresar cantidad de materias" | |
Leer cant | |
Dimension Materia(cant) | |
Dimension nota(cant) | |
Para i<-1 hasta cant con paso 1 | |
Escribir "Ingresar el nombre de la materia" | |
Leer Materia(i) | |
Escribir "Ingresar calificación de la materia " , Materia(i) | |
Leer nota(i) | |
si (nota(i)<0) o (nota(i)>10) entonces | |
escribir "Error" | |
FinSi | |
FinPara | |
Escribir "Materia Nota" | |
Para i<-1 hasta cant con paso 1 | |
Escribir Materia(i) " ", nota(i) | |
FinPara | |
FinProceso | |
Practica5. Hacer un programa que solicite al usuario 20 números y los ordene de mayor a menor. | |
Proceso Ejercicio5 | |
n<-20; | |
Dimension num[n] | |
para i<-1 hasta n con paso 1 hacer | |
Escribir sin saltar "ingrese el valor del elemento ", i, ":"; | |
Leer num(i); | |
FinPara | |
para i<-2 hasta n con paso 1 hacer | |
para j<-1 hasta n-i+1 Con Paso 1 hacer | |
si num(j)<num(j+1) entonces | |
aux<-num(j); | |
num(j)<-num(j+1); | |
num(j+1)<-aux; | |
FinSi | |
FinPara | |
FinPara | |
Escribir ""; | |
Escribir "Números ordenados decendentemente:"; | |
para i<-1 hasta n con paso 1 hacer | |
Escribir "[", i, "]:", num(i); | |
FinPara | |
FinProceso | |
Practica6. Realizar una variante del programa anterior ordenado de menor a mayor. | |
Proceso Ejercicio6 | |
n<-20; | |
Dimension num[n] | |
para i<-1 hasta n con paso 1 hacer | |
Escribir sin saltar "Ingrese el valor del elemento ", i, ":"; | |
Leer num(i); | |
FinPara | |
para i<-2 hasta n con paso 1 hacer | |
para j<-1 hasta n-i+1 Con Paso 1 hacer | |
si num(j)>num(j+1) entonces | |
aux<-num(j); | |
num(j)<-num(j+1); | |
num(j+1)<-aux; | |
FinSi | |
FinPara | |
FinPara | |
Escribir ""; | |
Escribir "Números ordenados acendentemente:"; | |
para i<-1 hasta n con paso 1 hacer | |
Escribir "[", i, "]:", num(i); | |
FinPara | |
FinProceso | |
Practica7. Cargar un arreglo de m números enteros indicar cual es el mayor y donde esta. | |
Proceso Ejercicio7 | |
Escribir "Digite la cantidad de números que quiera calcular el mayor:" | |
Leer dim | |
b<-0 | |
Dimension Num(dim) | |
Para i<-1 Hasta dim Con Paso 1 Hacer | |
Escribir sin saltar "Ingrese el número", i; | |
Leer num(i); | |
si Num(i)>b | |
b<-Num(i) | |
a<-i | |
FinSi | |
FinPara | |
Escribir "El mayor es: " ,b | |
escribir "El valor está guardado en la posición: ",a | |
FinProceso | |
Practica8. Generar un vector de tamaño 20 con números entre -10 y 10. Deje en un arreglo Z todos los números negativos y en un arreglo X todos los positivos o iguales a cero. | |
Proceso Ejercicio8 | |
Escribir "Digite la cantidad de números que quiera calcular:" | |
Leer dim | |
Dimension num(dim) | |
Para i<-1 Hasta dim Con Paso 1 Hacer | |
Escribir sin saltar "Ingrese el número", i; | |
Leer num(i); | |
Si (a>0) y (0<10) Entonces | |
Escribir "El número insertado es Positivo"; | |
Sino | |
Si (a<0) y [0>(-10)] Entonces | |
Escribir "El número insertado es Negativo"; | |
Sino | |
Si (a=0) Entonces | |
Escribir "El número insertado es Neutro"; | |
Sino | |
Escribir "Error" | |
Fin Si | |
FinSi | |
FinSi | |
FinPara | |
FinProceso | |
Practico9. Genere un vector de tamaño 10 con números enteros leídos desde teclado. Calcule el promedio e indique cuantos elementos del vector son mayores que el promedio y cuantos menores o iguales. | |
Proceso Ejercicio9 | |
Escribir "Digite la cantidad de números que quiera calcular" | |
Leer x; | |
Sal<-"s" | |
Dimension Num(x) | |
j<-0; | |
Mientras Sal="S" o Sal="s" | |
Para w<-1 hasta x hacer | |
Escribir "ingresa el número", w, ":" | |
Leer a | |
j<-j+a | |
FinPara | |
k<-j/x; | |
Escribir "El promedio es:" , k; | |
Para i<-1 Hasta x Con Paso 1 Hacer | |
si Num(x)>b | |
b<-Num(x) | |
u<-i | |
FinSi | |
FinPara | |
Escribir "El mayor es: " ,b | |
Escribir "Desea saber otra suma? (S/N)" | |
Leer Sal | |
Fin Mientras | |
FinProceso | |
Practico10. Dado un vector con n elementos numéricos enteros ya almacenados, indique cuantos de ellos son múltiplos de 3. | |
Proceso Ejercicio10 | |
i <- 3 | |
n <- 0 | |
c <- 0 | |
ESCRIBIR "Número: " | |
LEER n | |
MIENTRAS i <= n HACER | |
SI i = ( i / 3 ) * 3 ENTONCES | |
ESCRIBIR i | |
c <- c + 1 | |
FINSI | |
i <- i + 1 | |
FINMIENTRAS | |
ESCRIBIR "El Número de multiplos de 3 son: " | |
ESCRIBIR c | |
FinProceso | |
ACTUALIZADO 11/11/2014 | |
Trabajo Practico Nº 6 | |
1. La sintanxis para que el usuario defina las posiciones del vector. Que los valores a guardar dentro del vector sean entre 50 y 100 (validar). | |
Proceso ejercicio1 | |
b<-0 | |
j<-5 | |
Dimension Num(j) | |
Escribir 'Ingresar ',j ' numeros' | |
Para i<-1 hasta j con paso 1 | |
Escribir sin saltar'Ingresar el valor N° ',i | |
Leer Num(i) | |
Mientras Num(i)<(50) o Num(i)>100 | |
Escribir 'Debe ingresar un valor que se encuentre emtre 50 y 100, vuelva a' | |
Escribir sin saltar 'Ingresar el ',i '° numero' | |
Leer Num(i) | |
escribir "" | |
FinMientras | |
si Num(i)>b Entonces | |
b<-Num(i) | |
a<-i | |
FinSi | |
FinPara | |
Escribir "El mayor es: " ,b | |
escribir "La posicion del número mayor es: ",a | |
FinProceso | |
2) Crea un array o arreglo multidimensional que contenga la tabla de multiplicar del 1 al 9 (10 filas y 10 columnas). La primera fila y la columna debe contener estos números. El resto de números deberemos calcularlo, usando los números que disponemos, es decir, en la primera fila de 0, calculara 1*1, 1*2, 1*3, etc. usando las posiciones del array o arreglo. | |
SubProceso calculaTabla ( tablamulti, FILAS, COLUMNAS ) | |
Para i<-2 Hasta FILAS Con Paso 1 Hacer | |
Para j<-2 Hasta COLUMNAS Con Paso 1 Hacer | |
tablamulti[i,j]<-tablamulti[i,1]*tablamulti[1,j] | |
Fin Para | |
Fin Para | |
Fin SubProceso | |
SubProceso rellenaColumnas ( tablamulti, FILAS) | |
definir cont como entero | |
cont<-0 | |
Para i<-1 Hasta FILAS Con Paso 1 Hacer | |
tablamulti[1,i]<-cont | |
tablamulti[i,1]<-cont | |
cont<-cont+1 | |
Fin Para | |
Fin SubProceso | |
SubProceso mostrarArray ( tablamulti, FILAS, COLUMNAS) | |
Para i<-1 Hasta FILAS Con Paso 1 Hacer | |
Para j<-1 Hasta COLUMNAS Con Paso 1 Hacer | |
escribir tablamulti[i,j]," " Sin Saltar | |
Fin Para | |
escribir "" | |
Fin Para | |
Fin SubProceso | |
Proceso Ejercicio4 | |
definir FILAS como entero | |
definir COLUMNAS como entero | |
FILAS<-10 | |
COLUMNAS<-10 | |
dimension tablamulti[FILAS,COLUMNAS] | |
rellenaColumnas(tablamulti, FILAS) | |
calculaTabla(tablamulti, FILAS, COLUMNAS ) | |
mostrarArray(tablamulti, FILAS, COLUMNAS) | |
FinProceso | |
ACTUALIZADO 3/12/2014 | |
Trabajo Practico Nº 7 | |
Crea un arreglo unidimensional donde tu le indiques el tamaño por teclado y crear una función que rellene el arreglo con los múltiplos de un número pedido por teclado. Por ejemplo la sirve para crear las tablas 9x1 y el resultado será 18, 27, 36. | |
SubProceso mostrarArray (tabla_multiplicar, FILA,COLUMNA ) | |
Escribir "Crea un arreglo unidimensional donde tu le indiques el tamaño por teclado y crear una función que rellene el arreglo con los múltiplos de un número pedido por teclado. Por ejemplo la sirve para crear las tablas 9x1 y el resultado será 18, 27, 36." | |
FinSubProceso | |
SubProceso menu( tabla_multiplicar ) | |
definir opc como entero | |
escribir "" | |
Escribir "Elija la operación:"; | |
Escribir "(1) Potencia"; | |
Escribir "(2) Multiplicar"; | |
leer opc; | |
Escribir "Usted escogió la operación", opc; | |
segun opc Hacer | |
1: Escribir "Ingrese dos números"; | |
Escribir "Inserte primer número para ser potenciado: " | |
leer n1; | |
Escribir "Inserte la potencia : " | |
leer n2; | |
Escribir "Vas a potenciar" | |
Escribir "La potencia es: " ,n1^n2; | |
2: Escribir "Ingrese el número deseado:"; | |
Leer n; // leemos el numero | |
Escribir "Ingrese hasta que número se desea multiplicar" | |
Leer t; | |
Para i<-1 Hasta t Hacer | |
var <- n * i | |
Escribir i, "*" , n , " = ", var,";" ; | |
FinPara | |
FinSegun | |
Fin SubProceso | |
Proceso Ejercicio10 | |
//Definimos las variables | |
definir FILAS,COLUMNAS,n,m,i,j,opc como entero | |
FILAS<-10 | |
COLUMNAS<-10 | |
n1<-0 | |
n2<-0 | |
menudeoperacion<-0 | |
Sal<-"s" | |
dimension tabla_multiplicar[FILAS,COLUMNAS] | |
Mientras Sal="S" o Sal="s" | |
//Funciones | |
mostrarArray(tabla_multiplicar, FILAS, COLUMNAS) | |
menu( tabla_multiplicar ) | |
Escribir "Desea saber otra operación? (S/N)" | |
Leer Sal | |
Fin Mientras | |
FinProceso | |
Trabajo Practico Nº 8 | |
Crear dos arrays unidimensionales y realizar las 4 operaciones básicas. Diseñar un Menu como el siguiente ejemplo (si el ejercicio lo permitiera) | |
SubProceso mostrarArray (tabla_multiplicar, FILA,COLUMNA ) | |
Escribir "Crear dos arrays unidimensionales y realizar las 4 operaciones básicas. Diseñar un Menu como el siguiente ejemplo (si el ejercicio lo permitiera)" | |
Fin SubProceso | |
SubProceso menu( tabla_multiplicar ) | |
Escribir "==== MENU ===="; | |
Escribir "1.- Sumar"; | |
Escribir "2.- Restar"; | |
Escribir "3.- Multiplicar"; | |
Escribir "4.- Dividir"; | |
Escribir "5.- Salir"; | |
Escribir Sin Saltar "Seleccione una opción: "; | |
Leer opcion; | |
Segun opcion Hacer | |
1: | |
Escribir Sin Saltar "Ingrese el primer numero: "; | |
Leer num1; | |
Escribir Sin Saltar "Ingrese el segundo numero: "; | |
Leer num2; | |
resultado = num1 + num2; | |
Escribir "El resultado de la suma es: ",resultado; | |
2: | |
Escribir Sin Saltar "Ingrese el primer numero: "; | |
Leer num1; | |
Escribir Sin Saltar "Ingrese el segundo numero: "; | |
Leer num2; | |
resultado = num1 - num2; | |
Escribir "El resultado de la resta es: ",resultado; | |
3: | |
Escribir Sin Saltar "Ingrese el primer numero: "; | |
Leer num1; | |
Escribir Sin Saltar "Ingrese el segundo numero: "; | |
Leer num2; | |
resultado = num1 * num2; | |
Escribir "El resultado de la multiplicacion es: ",resultado; | |
4: | |
Escribir Sin Saltar "Ingrese el primer numero: "; | |
Leer num1; | |
Escribir Sin Saltar "Ingrese el segundo numero: "; | |
Leer num2; | |
resultado = num1 / num2; | |
Escribir "El resultado de la devision es: ",resultado; | |
5: | |
Escribir Sin Saltar "ADIOS------"; | |
De Otro Modo: | |
Escribir "La opción ingresada no es correcta..."; | |
FinSegun | |
Fin SubProceso | |
Proceso final | |
//Definimos las variables | |
Definir opcion Como Entero; | |
definir num1 Como Entero; | |
Definir num2 Como Entero; | |
Definir resultado Como Entero; | |
Sal<-"s" | |
Mientras Sal="S" o Sal="s" | |
//Funciones | |
mostrarArray(tabla_multiplicar, FILA,COLUMNA ) | |
menu( tabla_multiplicar ) | |
Escribir "Desea saber otra operación? (S/N)" | |
Leer Sal | |
Fin Mientras | |
FinProceso |
pregunto lo q pregunto el de arriba
buena ayuda
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Cual es el perfil que usas en Pseint?