Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
inicio
leer: tiempo_seg
si minutos <-- tiempo_seg div 60 entonces
segundos <-- tiempo_seg mod 60
fin_si
imprimir: minutos,segundos.
fin
5. Dado un tiempo en minutos, calcular los dias, horas y minutos que
le corresponden.
variables: tiempo,dias,horas,minutos
inicio
leer: tiempo
si: dias <-- tiempo div 1440
x <-- tiempo mod 1440
horas <-- x div 60
minutos <-- x mod 60
imprimir: dias,minutos,horas
fin_si
fin
N primeros
Inicio
Leer : N
X<--1
S<--0
Mientras x<=N hacer
S<--s+1
X<--x+1
Fin _ mientras
Imprimir: s
Fin
7. Modificar el ejercicio 1 para obtener la suma de los salarios de todos
los trabajadores.
Inicio
Leer: N
X<--1
S<--0
Mientras x<=N hacer
Leer:h, t
S<--h*t
Imprimir s
S<--s+s
X<--x+1
Fin _ mientras
Imprimir: s
Fin
8. Dada las horas trabajadas de una persona la tarifa de pago.
Inicio
Leer: N
X<--1
Cd<--0
NA <-0
acum_desap <-0
acum_ap <- 0
acum <- 0
Mientras x<=N hacer
Leer: not
Si: not < 10.5 entonces
CD<--cd+1
acum_desap <- acum_desap + not
Sino
NA <- NA + 1
acum_ap <- acum_ap + not
fin _ si
acum <- acum + not
x<--x+1
Fin _ mientras
prom_ap <- acum_ap /NA
prom_desap <- acum_desap/CD
prom <- acum / N
Imprimir: prom, prom_ap, prom_desap, NA, CD
Fin
10. Dado un numero determinar la suma de sus dgitos.
Inicio
Leer: n
S<--0
Mientras n<>0 hacer
R<--n mod 10
S<--s + r
N<--n div 10
Fin _ mientras
Imprimir: s
Fin
11.Se trata de escribir el algoritmo que permita emitir la factura
correspondiente a una compra de un articulo determinado, del que
se adquieren una o varias unidades. El IVA es del 15% y si el precio
bruto ( precio venta mas IVA) es mayor de 50.00 pesetas se debe
realizar un descuento del 5%.
Variables: precio, numeros de articulos(Nart), precio venta(Pv),
descuento(d)
Inicio
Leer precio, Nart
Pv= Precio * Nart
IVA= Pv * 0.15
Pb= Pv + IVA
Si Pb >= 50 entonces
d= (Pb * 5)/100
Sino
d= 0
Finsi
Pl= Pb - d
Escribir Pv, IVA, Pb,d, Pl
Fin
12. Realizar un algoritmo que permita pedir
50 nmeros naturales y determine e imprima cuantos son
pares, impares, positivos y negativos.
variables:par(p), impares(im), positivos(pos), negativos(n)
Inicio
p= 2
in= 0
pos.= 0
n= 0
Para x= 1 hasta 50
Leer n
Si n mod 2= 0 entonces
p= p + 1
Sino
in= in + 1
Finsi
Si n > 0 entonces
Pos= pos + 1
Sino
n= n + 1
Finsi
Fin_para
Escribir p, in, pos, n
Fin
Fin
numero
Escribir "numero no tiene parte fraccionaria"
Sino
Escribir" numero con parte fraccionaria"
fin si
Fin
/* Ejercicio 1
Programa que lea un nmero positivo por teclado e informe de
si el nmero es par o impar
*/
PROGRAMA Ejercicio1
VARIABLES
num: ENTERO
INICIO
ESCRIBIR "Introduce nmero positivo"
LEER num
SI num <=0
ESCRIBIR "Error. El nmero no es positivo"
SI NO
SI num % 2 = 0
ESCRIBIR "El nmero es par"
SI NO
ESCRIBIR "El nmero es impar"
FIN SI
FIN SI
FIN
FIN Ejercicio1
/* Ejercicio2:
Programa que lea un nmero por teclado e informe de si el nmero
es mltiplo de 2 o de 3 (o de ambos)
*/
PROGRAMA Ejercicio2
VARIABLES
num: ENTERO
CONSTANTES
NUMCLAVE1=2
NUMCLAVE2=3
INICIO
ESCRIBIR "Introduce un nmero"
LEER num
NUMCLAVE1
SI num % NUMCLAVE1 == 0
ESCRIBIR "El nmero ", num,"es multiplo de ",
FIN SI
SI num % NUMCLAVE2 == 0
ESCRIBIR "El nmero ", num,"es multiplo de ",
NUMCLAVE2
FIN
FIN Ejercicio2
FIN SI
/*Ejercicio 3
Programa que lea la edad de una persona menor a 50 aos e informe de si
es un nio (0-12 aos),
un adolescente (13-17), un joven (18-29) o un adulto
*/
PROGRAMA Ejercicio3
CONSTANTES
MAXEDAD=50
LIMITE_NIO=12
LIMITE_ADOLES=17
LIMITE_JOVEN=29
VARIABLES
edad: ENTERO
INICIO
ESCRIBIR "Introduce la edad, mximo", MAXEDAD
LEER edad
SI edad < 0 OR edad > MAXEDAD
ESCRIBIR "Edad incorrecta, no est en el rango
indicado"
SI NO
FIN SI
FIN
FIN Ejercicio3
/* Ejercicio 4
Programa que lea un carcter y dos nmeros enteros. Si el carcter ledo
es un
operador aritmtico calcular la operacin correspondiente, si es
cualquier otro
muestre un error.
*/
PROGRAMA Ejercicio4
VARIABLES
oper: CARACTER
num1, num2: ENTERO
resul: REAL
error: LOGICO /* flag para indicar si hay o no error*/
INICIO
ESCRIBIR "Introduce dos nmeros"
LEER num1, num2
ESCRIBIR "Introduce operador"
LEER oper
error <- F
SEGUN_VALOR oper
'+': resul <- num1 + num2
'-': resul <- num1 - num2
'*': resul <- num1 * num2
'/':
SI num2 <> 0
resul <- num1 / num2
SI NO
ESCRIBIR "Error, no puede dividirse por
cero"
error <- V
FIN SI
OTROS:
ESCRIBIR "Error, operador incorrecto"
error <- V
FIN SEGUN_VALOR
SI error = F /* no ha habido error */
ESCRIBIR "El resultado es", resul
FIN SI
FIN
FIN Ejercicio4
/* Ejercicio5:
Programa que lea el estado civil de una persona (S-Soltero, C-Casado, VViudo,
D-Divorciado) y su edad y muestre por pantalla el porcentaje de IRPF que
debe aplicrsele
de acuerdo con las reglas del enunciado */
PROGRAMA Ejercicio5
CONSTANTES
MAXEDAD=100
VARIABLES
edad: ENTERO
est_civil: CARACTER
irpf: REAL
error: LOGICO
INICIO
ESCRIBIR "Introduce edad"
LEER edad
FIN SI
FIN
FIN Ejercicio5
/* Ejercicio 6:
Programa que calcule las soluciones de una ecuacin de segundo grado.
Deben
pedirse los tres coeficientes a, b, c*/
PROGRAMA Ejercicio6
VARIABLES
a,b,c: REAL /* coeficientes*/
resul1, resul2: REAL /* resultados de la ecuacion*/
aux: REAL /* para almacenar lo que va dentro de la raiz*/
INICIO
REPETIR
LEER a,b,c
MIENTRAS a =0
aux <- b*b - 4*a*c
SI aux= 0 /* una solucion */
resul1 <- -b / 2*a
ESCRIBIR "Una sola solucion: ", resul1
SI NO
SI aux < 0
ESCRIBIR "No hay soluciones reales"
SI NO
/* dos soluciones*/
resul1 <- (-b + RAIZ( aux))/ (2*a)
resul2 <- (-b + RAIZ( aux))/ (2*a)
ESCRIBIR "Las dos soluciones son:", resul1,
FIN SI
FIN
FIN Ejercicio6
/* Ejercicio 7
Programa que lea dos nmeros enteros cualesquiera y muestre los nmeros
comprendidos entre ambos, sin incluirlos a ellos mismos.
*/
PROGRAMA Ejercicio7
VARIABLES
i: ENTERO
num1, num2: ENTERO
aux: ENTERO /* variable para el intercambio*/
INICIO
ESCRIBIR "introduce dos nmeros"
LEER num1, num2
SI num1 > num2 /* intercambiar num1 y num2 */
aux <- num1
num1 <- num2
num2 <- aux
FIN SI
PARA i DE num1 + 1 A num2- 1
ESCRIBIR i
FIN PARA
FIN
FIN Ejercicio7
/* Ejercicio 8*/
FIN
FIN Ejercicio8
PARA i DE 1 A 10
resul <- num* i
ESCRIBIR num,'*',i,'=',resul
FIN PARA
/* Ejercicio 9*/
/*Programa que genere nmeros enteros de 3 en 3 comenzando por el 2 hasta
el
valor mximo menor que 30.*/
PROGRAMA Ejercicio9
CONSTANTES
VALORINICIO=2
VALORMAX=30
INCREMENTO=3
VARIABLES
i: ENTERO
INICIO
PARA i DE VALORINICIO A VALORMAX-1 CON INC=INCREMENTO
ESCRIBIR i
FIN PARA
FIN
FIN Ejercicio9
/* Ejercicio 10*/
/* Programa que lea un nmero N positivo y muestre la suma de los N
primeros nmeros*/
PROGRAMA Ejercicio10
VARIABLES
num: ENTERO
i: ENTERO /* contador de 1 a num */
acum: ENTERO
INICIO
REPETIR
ESCRIBIR "Introduce numero"
LEER num
MIENTRAS num <=0
acum <- 0
PARA i DE 1 A num
acum <- acum + i
FIN PARA
ESCRIBIR "La suma de los ", num," primeros numeros es",
acum
FIN
FIN Ejercicio10
/* Ejercicio 11*/
/*Programa que lea dos nmeros enteros A y B, y calcule el producto de A
y B mediante sumas*/
/* OJO: los nmeros pueden ser negativos*/
PROGRAMA Ejercicio11
VARIABLES
num1,num2: ENTERO
total: ENTERO
i: ENTERO
signo: ENTERO /* nos sirve para identificar el signo del
resultado*/
/* 1 si resultado positivo, -1 si resultado
negativo*/
INICIO
ESCRIBIR "Introduce dos nmeros"
LEER num1, num2
/* PRIMERA SOLUCION
signo <- 1
SI num1 < 0 /* num1 es negativo*/
num1<- -num1
SI num2 >0
signo<- -1
SI NO /*num1 y num2 negativo*/
num2<- -num2
FIN SI
SI NO /* num1 es positivo */
SI num2 < 0 /* num2 es negativo*
num2<- -num2
signo<- -1
FIN SI
FIN SI
*/
/* SEGUNDA SOLUCION (MEJOR) */
signo <- 1
SI num1 < 0
num1 <- - num1
signo <- -1
FIN SI
SI num2 < 0
num2 <- - num2
signo <- (-1)* signo
FIN SI
total <- 0
PARA i DE 1 A num1
total <- total + num2
FIN PARA
/* Ejercicio 12
Programa que lea dos nmeros B y E enteros positivos, y calcule la
potencia (B
elevado a E a travs de productos*/
PROGRAMA Ejercicio12
VARIABLES
base,exp: ENTERO
i: ENTERO /* contador de las veces que se va a
multiplicar*/
resul: ENTERO /*acumulador*/
INICIO
REPETIR
ESCRIBIR "Introduce la base y exponentes (deben
ser positivos)"
LEER base,exp
MIENTRAS base <0 OR exp <0
PARA i DE 1 A exp
resul <- resul * base
FIN PARA
FIN SI
ESCRIBIR "El resultado es ", resul
FIN SI
FIN
FIN Ejercicio12
/* Ejercicio 13:
Programa que muestre por pantalla todos los nmeros comprendidos entre 1
y
100 que son mltiplos de 7 o de 13.
*/
PROGRAMA Ejercicio13
COSTANTES
MAXIMO=100
NUMCLAVE1=7
NUMCLAVE2=13
VARIABLES
PARA i DE 1 A MAXIMO
SI (i mod NUMCLAVE1 =0) OR (i mod NUMCLAVE2)= 0
ESCRIBIR i
FIN SI
FIN PARA
FIN
FIN Ejercicio13
/* Ejercicio 14
Programa que lea un nmero entero positivo y determine el nmero de
dgitos
decimales necesarios para la representacin de dicho valor.
*/
PROGRAMA Ejercicio14
VARIABLES
num: ENTERO
res: ENTERO
ndigitos: ENTERO
INICIO
REPETIR
ESCRIBIR "Introduce un nmero positivo"
LEER num
MIENTRAS num <0
ndigitos <- 1
res <- num \ 10
MIENTRAS res <> 0
ndigitos <- ndigitos + 1
res <- res \ 10 /* division entera*/
FIN MIENTRAS
"es", ndigitos
FIN
FIN Ejercicio14
/*
Ejercicio 15
Programa que averige si un nmero N es primo
Un nmero es primo si SOLO es divisible por el mismo y por la unidad
*/
PROGRAMA Ejercicio15
VARIABLES
num: ENTERO
i: ENTERO /* contador* /
primo: LOGICO /* flag para indicar si el numero es o no
primo*/
INICIO
REPETIR
ESCRIBIR "Introduce un numero estrictamente
positivo"
LEER num
MIENTRAS num <=0
/* Ejercicio 16
Programa que lea un nmero entero positivo y averige si es perfecto. Un
n es
perfecto cuando es igual a la suma de sus divisores excepto el mismo.*/
PROGRAMA Ejercicio16
VARIABLES
num: ENTERO
sumadiv: ENTERO /* acumulador*/
i: ENTERO /* contador*/
INICIO
REPETIR
ESCRIBIR "Introduce un nmero estrictamente
positivo"
LEER num
MIENTRAS num <=0
sumadiv <- 0
i <- 1
MIENTRAS i <= (num \2)
SI num % i= 0 /* i es divisor de num*/
sumadiv <- sumadiv + i
FIN SI
i <- i +1
FIN MIENTRAS
SI num = sumadiv
ESCRIBIR num, "ES PERFECTO"
SI NO
ESCRIBIR num, "NO ES PERFECTO"
FIN SI
FIN
FIN Ejercicio16
/*Programa que dado un numero entero calcule el factorial.*/
PROGRAMA Ejercicio17
VARIABLES
num: ENTERO
i: ENTERO /*contador*/
total: ENTERO /* acumulador*/
INICIO
REPETIR
ESCRIBIR "Introduce nmero mayor o igual que 0"
LEER num
MIENTRAS num < 0
total <- 1
PARA i DE 2 A num
total <- total * i
FIN PARAL
FIN
FIN Ejercicio17
num1 <- 1
num2 <- 1
i <- 1
/* PRIMERA SOLUCION
ESCRIBIR num1
SI cantidad > 1
ESCRIBIR num2
i <- i + 1 /* se ha escrito un numero ms */
FIN SI
MIENTRAS i < cantidad
num 3 <- num1 + num 2
ESCRIBIR num 3
num1<- num2
num2<- num3
i <- i + 1
FIN MIENTRAS
*/
/* SEGUNDA SOLUCION : MEJOR */
PARA i DE 1 A cantidad
ESCRIBIR num1
num3 <- num1 + num2
num1 <- num2
num2 <- num3
FIN PARA
FIN
FIN Ejercicio18
/* PROGRAMA Ejercicio19
Programa que lea N nmeros mayores que cero e imprima la media, el valor
mximo y el mnimo. Para terminar de introducir nmeros se debe
introducir el
0.
*/
PROGRAMA Ejercicio19
VARIABLES
num: ENTERO
max, min: ENTERO
media, suma, cantidad: ENTERO
INICIO
cantidad <- 0
suma <- 0
REPETIR
terminar)"
para terminar)"
FIN
FIN Ejercicio19