viernes, 22 de julio de 2011

Ejemplos Pseudocódigo 2/2

Mas ejemplos de pseudocódigo realizados en clase a día 22-07-2011
Aqui os dejo otra tanda de ejercicios de peudocódigo. Son los mismos que están en la presentación:
https://docs.google.com/present/edit?id=0AaWlzM8W-gAEZGY0ZHM1cWNfMTUwZ2ZydGNmYzc&hl=es

Leer de teclado dos números enteros (no hace falta comprobarlo), y mostrar por pantalla si son iguales o no.
Ej: Nos dan el 2 y el 2 y mostramos "Los valores son iguales".
Ej: Nos dan el 2 y el 3 y mostramos "Los valores son diferentes".
INICIO
VALOR1=0; VALOR2=0;
LEER VALOR1, VALOR2
SI VALOR1 = VALOR2
MOSTRAR "Los valores que usted ha introducido son iguales"
SINO
MOSTRAR "Los valores que usted ha introducido son distintos"
FIN SI
FIN


SELECT CASE, SWITCH
HACER EN CASO
EN CASO VARIABLE = VALOR1:
INSTRUCCIÓN(ES) 1
EN CASO VARIABLE = VALOR2:
INSTRUCCIÓN(ES) 2
EN CASO VARIABLE = VALOR3:
INSTRUCCIÓN(ES) 3
[ SEA OTRO VALOR:
INSTRUCCIÓN(ES) N ]


SELECT CASE, SWITCH
Pedir un número por teclado entre 1 y 3 ambos inclusive, mostrar un mensaje indicando en texto el número metido, o un mensaje de advertencia en caso de que el valor introducido no sea correcto.
INICIO
numero=0;
MOSTRAR "Dame un número entre 1 y 3"
LEER numero
HACER EN CASO
EN CASO numero= 1:
MOSTRAR "Has escrito uno"
EN CASO numero= 2:
MOSTRAR "Has escrito dos"
EN CASO numero= 3:
MOSTRAR "Has escrito tres"
SEA OTRO VALOR:
MOSTRAR "El valor introducido no es válido"
FIN


SELECT CASE, SWITCH
Pedir por teclado el número de mes y responder por pantalla el nombre del mes y el número de días que tiene (realizar para los 4 primeros meses).
INICIO
numero_mes=0;
MOSTRAR "Dame el número del mes"
LEER numero_mes
HACER EN CASO
EN CASO numero_mes= 1:
MOSTRAR "El mes es Enero y tiene 31 días."
EN CASO numero_mes= 2:
MOSTRAR "El mes es Febrero y tiene 28 o 29 días."
EN CASO numero_mes= 3:
MOSTRAR "El mes es Marzo y tiene 31 días."
EN CASO numero_mes= 4:
MOSTRAR "El mes es Abril y tiene 30 días."
SEA OTRO VALOR:
MOSTRAR "Has introducido un dato no válido."
FIN

INICIO
numero_mes=0;
MOSTRAR "Dame el número del mes"
LEER numero_mes
HACER EN CASO
EN CASO numero_mes= 1:
MOSTRAR "El mes es Enero y tiene 31 días."
EN CASO numero_mes= 2:
MOSTRAR "El mes es Febrero y tiene 28 o 29 días."
EN CASO numero_mes= 3:
MOSTRAR "El mes es Marzo y tiene 31 días."
EN CASO numero_mes= 4:
MOSTRAR "El mes es Abril y tiene 30 días."
EN CASO numero_mes= 5:
MOSTRAR "El mes es Mayo y tiene 31 días."
EN CASO numero_mes= 6:
MOSTRAR "El mes es Junio y tiene 30 días."
EN CASO numero_mes= 7:
MOSTRAR "El mes es Julio y tiene 31 días."
EN CASO numero_mes= 8:
MOSTRAR "El mes es Agosto y tiene 31 días."
EN CASO numero_mes= 9:
MOSTRAR "El mes es Septiembre y tiene 30 días."
EN CASO numero_mes= 10:
MOSTRAR "El mes es Octubre y tiene 31 días."
EN CASO numero_mes= 11:
MOSTRAR "El mes es Noviembre y tiene 30 días."
EN CASO numero_mes= 12:
MOSTRAR "El mes es Diciembre y tiene 31 días."
SEA OTRO VALOR:
MOSTRAR "El número introducido no se corresponde con ningún mes."
FIN


MIENTRAS, WHILE
FORMATO:
MIENTRAS (condición) HACER
Instrucciones
FIN MIENTRAS
Permite repetir las instrucciones mientras que se cumpla la condición.
El bucle contrario sería el HASTA que se ejecutaría hasta que se cumpla la condición.


MIENTRAS, WHILE
Solicitar un número entero mayor que cero (no es necesario comprobarlo) y mostrar en pantalla todos los números desde cero hasta el número
indicado
INICIO
valor_limite=0;contador=0;
MOSTRAR "Hasta que número quieres que cuente."
LEER valor_limite
MIENTRAS (contador <= valor_limite) HACER
MOSTRAR contador
contador = contador + 1
FIN MIENTRAS
FIN


MIENTRAS, WHILE
Solicitar un número entero mayor que cero (no es necesario comprobarlo) y mostrar en pantalla el sumatorio, (la suma de los valores) desde 1 hasta el número indicado:
Ej: numero 3 -> resultado = 1 + 2 + 3 = 6
INICIO
valor_limite=0;contador=0;sumatorio=0;
MOSTRAR "Hasta que número quieres que realice el sumatorio."
LEER valor_limite
MIENTRAS (contador <= valor_limite) HACER
sumatorio = sumatorio + contador
contador = contador + 1
FIN MIENTRAS
MOSTRAR sumatorio
FIN


REPETIR MIENTRAS, DO WHILE
MIENTRAS, WHILE
FORMATO:
REPETIR
Instrucciones
MIENTRAS (condicion)
Permite repetir las instrucciones mientras que se cumpla la condición.
A diferencia del WHILE siempre se ejecuta al menos una vez.
El bucle contrario sería el REPETIR HASTA que se ejecutaría hasta que se cumpla la condición.


REPETIR MIENTRAS, DO WHILE
Ej:
Solicitar un número por pantalla y realizar sumatorio desde 0 hasta el número, mostrando mensaje en caso contrario.
INICIO
valor_limite=0; suma=0 ;contador=0; mensaje="La suma parcial es: "
MOSTRAR "Hasta que número quieres que SUME."
LEER valor_limite
SI valor_limite<=0 mensaje = "Error valor no admitido: "
REPETIR
MOSTRAR mensaje + suma
suma = suma + contador
contador = contador + 1
MIENTRAS (contador <= valor_limite)
MOSTRAR "El resultado es: ", suma
FIN


PARA, FOR
Permite que un conjunto de instrucciones se ejecuten un numero determinados de veces.
Ejecuta el bucle iniciando el contador en val1, hasta que llegue a val2, y con el incremento que indique val3 (si se omite val3, se asume un incremento de 1)
FORMATO:
PARA var = val1 HASTA val2 [ SUMANDO VAL3 ]
instrucciones
FIN PARA


PARA, FOR
Solicitar un valor positivo mayor que 1 por pantalla, y listar todos los números desde 1 hasta el indicado utilizando el bucle PARA.
INICIO
valor_limite = 0
MOSTRAR "Dame el valor hasta el que quieres que cuente: "
LEER valor_limite
PARA var = 1 HASTA valor_limite
MOSTRAR var
FIN PARA
FIN


PARA, FOR
Solicitar un valor positivo mayor que 1 por pantalla, y listar todos los números de tres en tres desde 1 hasta el indicado utilizando el bucle PARA.
INICIO
valor_limite = 0
MOSTRAR "Dame el valor hasta el que quieres que cuente: "
LEER valor_limite
PARA var = 1 HASTA valor_limite SUMANDO 3
MOSTRAR var
FIN PARA
FIN


PARA, FOR
Solicitar un valor positivo mayor que 1 por pantalla, y listar de manera descendiente los números de tres en tres.
INICIO
valor_limite = 0
MOSTRAR "Dame el valor desde el que quieres que cuente: "
LEER valor_limite
PARA var = valor_limite HASTA 1 SUMANDO -3
MOSTRAR var
FIN PARA
FIN

EJERCICIOS
PSEUDOCÓDIGO

Ejercicios
Ejercicio 2007 - Nombre alumno
a) Solicitar un número por pantalla (entero y positivo, no hace falta comprobarlo) y listar por pantalla los números impares desde el solicitado hasta el 1.
b) Calcular el factorial de un número solicitado por pantalla (entero y positivo, no hace falta comprobarlo).

Ejercicios
Ejercicio 2008 - Nombre alumno
a) Leer un número (entero y positivo, no hace falta comprobarlo) y determinar si es divisible por 3 y por 2 al mismo tiempo.
b) Leer un número (entero y positivo, no hace falta comprobarlo) y determinar si es divisible por 5, 4, 3, 2 y 1 al mismo tiempo.
c) Dado un año, mostrar si es bisiesto.

Ejercicios
c) Dado un año, mostrar si es bisiesto.
INICIO
ANHO = 0; RES004=0; RES100=0; RES400=0;
LEER ANHO
RES004 = RESTO (ANHO / 4)
RES100 = RESTO (ANHO / 100)
RES400 = RESTO (ANHO / 400)
SI RES004 = 0 Y RES100 > 0 Y RES400 > 0
MOSTRAR "O ano e bisiesto."
FINSI
SI RES004 > 0
MOSTRAR "O ano NON e bisiesto."
FINSI
SI RES004 = 0 Y RES100 = 0 Y RES400 > 0
MOSTRAR "O ano NON e bisiesto."
FINSI
SI RES004 = 0 Y RES100 = 0 Y RES400 = 0
MOSTRAR "O ano e bisiesto."
FINSI
FIN

Ejercicios
c) Dado un año, mostrar si es bisiesto.
INICIO
ANHO = 0; RES004=0; RES100=0; RES400=0;
LEER ANHO
RES004 = RESTO (ANHO / 4)
RES100 = RESTO (ANHO / 100)
RES400 = RESTO (ANHO / 400)
SI RES004>0 O (RES004 =0 Y RES100=0 Y RES400>0)
MOSTRAR "No bisiesto"
SINO
MOSTRAR "Si bisiesto"
FINSI
FIN

Ejercicios
c) Dado un año, mostrar si es bisiesto.
INICIO
ANHO = 0; RES004=0; RES100=0; RES400=0;
LEER ANHO
RES004 = RESTO (ANHO / 4)
RES100 = RESTO (ANHO / 100)
RES400 = RESTO (ANHO / 400)
SI (RES004 =0 Y RES100=0 Y RES400 = 0 O (RES004 =0 Y RES100>0 Y RES400>0)
MOSTRAR "SI bisiesto"
SINO
MOSTRAR "NO bisiesto"
FINSI
FIN

Ejercicios
c) Dado un año, mostrar si es bisiesto.
INICIO
ANHO = 0; RES004=0; RES100=0; RES400=0;
LEER ANHO
RES004 = RESTO (ANHO / 4)
RES100 = RESTO (ANHO / 100)
RES400 = RESTO (ANHO / 400)
SI (RES004 =0 Y RES100=0 Y RES400 = 0)
MOSTRAR "SI bisiesto"
SINO
SI (RES004 =0 Y RES100>0 Y RES400>0)
MOSTRAR "SI bisiesto"
SINO
MOSTRAR "NO bisiesto"
FINSI
FINSI
FIN


d) Esta compañía precisa de una administrativa. A las candidatas se les realizan unas reguntas:
- ¿Está soltera (1) o casada (2), otro (0)?
- ¿Cantidad de hijos que tiene? Si no tiene indicar 0
- ¿Posee algún título técnico S/N?
- ¿Cuantos años tiene?
Serán preseleccionadas las que cumplan los siguientes requisitos:
. Mujeres solteras que estén en posesión de un título técnico, sin hijos y menores de 25 años.
. Mujeres casadas con edad superior a 40 años y con hijos.
Tras introducir los datos indicar a la aspirante si está preseleccionada o no.


e) Solicitar por teclado un número entero entre 1 y 2000, y sacarlo por pantalla en números romanos.
1000 M
500 D
100 C
50 L
10 X
5 V
1 I


INICIO
DATO=0; UNIDADES=0; DECENAS=0; CENTENAS=0; MILLARES=0;
MOSTRAR "Dime que número quieres que pase a ROMANOS"
LEER DATO
MILLARES = PARTENT (DATO / 1000)
DATO = RESTO (DATO / 1000)
CENTENAS = PARTENT (DATO / 100)
DATO = RESTO (DATO / 100)
DECENAS= PARTENT (DATO / 10)
UNIDADES= RESTO (DATO / 10)
HACER EN CASO
EN CASO MILLARES = 1: MOSTRAR "M"
EN CASO MILLARES = 2: MOSTRAR "MM"
FIN EN CASO
HACER EN CASO
EN CASO CENTENAS = 1: MOSTRAR "C"
EN CASO CENTENAS = 2: MOSTRAR "CC"
EN CASO CENTENAS = 3: MOSTRAR "CCC"
EN CASO CENTENAS = 4: MOSTRAR "CD"
EN CASO CENTENAS = 5: MOSTRAR "D"
EN CASO CENTENAS = 6: MOSTRAR "DC"
EN CASO CENTENAS = 7: MOSTRAR "DCC"
EN CASO CENTENAS = 8: MOSTRAR "DCCC"
EN CASO CENTENAS = 9: MOSTRAR "CM"
FIN EN CASO


HACER EN CASO
EN CASO DECENAS = 1: MOSTRAR "X"
EN CASO DECENAS = 2: MOSTRAR "XX"
EN CASO DECENAS = 3: MOSTRAR "XXX"
EN CASO DECENAS = 4: MOSTRAR "XL"
EN CASO DECENAS = 5: MOSTRAR "L"
EN CASO DECENAS = 6: MOSTRAR "LX"
EN CASO DECENAS = 7: MOSTRAR "LXX"
EN CASO DECENAS = 8: MOSTRAR "LXXX"
EN CASO DECENAS = 9: MOSTRAR "XC"
FIN EN CASO
HACER EN CASO
EN CASO UNIDADES = 1: MOSTRAR "X"
EN CASO UNIDADES = 2: MOSTRAR "XX"
EN CASO UNIDADES = 3: MOSTRAR "XXX"
EN CASO UNIDADES = 4: MOSTRAR "XL"
EN CASO UNIDADES = 5: MOSTRAR "L"
EN CASO UNIDADES = 6: MOSTRAR "LX"
EN CASO UNIDADES = 7: MOSTRAR "LXX"
EN CASO UNIDADES = 8: MOSTRAR "LXXX"
EN CASO UNIDADES = 9: MOSTRAR "XC"
FIN EN CASO


Tabla de los valores de las veriables en el pseudocódigo de números romanos
DATO MILLARES CENTENAS DECENAS UNIDADES
0 0 0 0 0
1935 0 0 0 0
1935 1 0 0 0
935 1 0 0 0
935 1 9 0 0
35 1 9 0 0
35 1 9 3 0
35 1 9 3 5


f) A partir de la nota numérica imprimir la nota en texto.
Nota Numérica Nota Texto
>= 9 <= 10 Sobresaliente
>= 7 < 9 Notable
>= 6 < 7 Bien
>= 5 < 6 Suficiente
<5 Insuficiente


f) A partir de la nota numérica imprimir la nota en texto.
INICIO
NOTA = 0,0;
MOSTRAR "Introduce la nota".
LEER NOTA
SI NOTA < 5 MOSTRAR "Insuficiente"
SI (NOTA >= 5 Y NOTA < 6) MOSTRAR "Suficiente"
SI (NOTA >= 6 Y NOTA < 7) MOSTRAR "Bien"
SI (NOTA >= 7 Y NOTA < 9) MOSTRAR "Notable"
SI (NOTA >= 9 Y NOTA < 10) MOSTRAR "Sobresaliente"
FIN


g) Calcular el área de un triángulo a partir de la base y la altura.
AREA = (BASE * ALTURA) / 2
INICIO
BASE = 0,0; ALTURA = 0,0; AREA = 0,0;
MOSTRAR "Dime la Base"
LEER BASE
MOSTRAR "Dime la Altura"
LEER ALTURA
AREA = (BASE * ALTURA) / 2
MOSTRAR "El área es: " AREA
FIN


h) Calcular el área y el perímetro de un circulo dado su diámetro.
PERIMETRO = PI * (2 * R) = PI * D
AREA = PI * R * R = PI * (D/2) * (D/2)
INICIO
PI=3,14; DIAMETRO = 0,0;
MOSTRAR "Dime el diametro"
LEER DIAMETRO
MOSTRAR "El perimetro es " PI * DIAMETRO
MOSTRAR "El area es " PI * (DIAMETRO /2) * (DIAMETRO /2)
FIN


i) Transformar la velocidad de un vehículo dada en Km/h a m/seg.
INICIO
VELOCIDAD = 0,0;
MOSTRAR "Indicame la velocidad en Km/h"
LEER VELOCIDAD
MOSTRAR "Velocidad en m/s " VELOCIDAD / 3,6
FIN


J) Indicar a partir del número de días a partir del 01-01-2011, inclusive. Cuántos años, meses, semanas y días constituyen el número de días.
Ejemplo: 1 días -> 0 años, 0 meses, 0 semanas, 1 días
40 días -> 0 años, 1 mes (enero), 1 semana, 2 días
335 días -> 0 años, 11 messes, 0 semanas, 1 días (01-02-2011)
1100 días -> 3 años, 0 messes, 0 semanas, 4 días (04-01-2014)
Asumiremos que tenemos dos funciones:
BISIESTO (NUMERO_ANO)
devuelve 0 si no es bisiesto y 1 si lo es.
DIASMES (NUMERO_MES, ANO)
devuelve el número de días que tiene un mes, diferenciando en febrero si es bisiesto o no.

INICIO
num_dias = 0; contador_meses = 1; contador_dias = 0; ano =
2011; anos = 0; meses = 0; semanas = 0; dias = 0;
MOSTRAR "Dime el número de días."
LEER num_dias
MIENTRAS (num_dias - contador_dias >= 366)
SI BISIESTO (ano)
contador_dias = contador_dias + 366
anos = anos + 1
ano = ano + 1
SINO
contador_dias = contador_dias + 365
anos = anos + 1
ano = ano + 1
FIN SI
FIN MIENTRAS

SI num_dias - contador_dias = 365
contador_dias = contador_dias + 365
anos = anos + 1
ano = ano + 1
FINSI
MIENTRAS (num_dias - contador_dias) >= DIASMES (contador_meses, ano)
contador_dias = contador_dias + DIASMES (contador_meses, ano)
contador_meses = contador_meses +1
FIN MIENTRAS
semanas = PARTENT (num_dias - contador_dias) / 7
dias = RESTO (num_dias - contador_dias) / 7
MOSTRAR anos
MOSTRAR contador_meses -1
MOSTRAR semanas
MOSTRAR dias
FIN


k) Dado un numero entero positivo mayor que 1, indicar si es primo o no.
Nota: Número primo es aquel que solo es divisible entre él mismo y 1.
Ej:
3 divisible solo entre 3 y 1 -> es primo.
4 divisible entre 4, 2 y 1 -> no es primo.


k) Dado un numero entero positivo mayor que 1, indicar si es primo o no.
INICIO
VALOR_ORIGINAL = 0; INDICE = 0; CONTADOR = 0;
MOSTRAR "Dame un valor y te diré si es primo: "
LEER VALOR_ORIGINAL
INDICE = VALOR_ORIGINAL
MIENTRAS INDICE > 0
SI RESTO (VALOR_ORIGINAL / INDICE) = 0 CONTADOR = CONTADOR + 1
INDICE = INDICE -1
FIN MIENTRAS
SI CONTADOR > 2
MOSTRAR "EL NUMERO NO ES PRIMO"
SINO
MOSTRAR "EL NUMERO ES PRIMO"
FINSI
FIN

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...