miércoles, 7 de noviembre de 2012

Llegar Temprano
 
Escribir un algoritmo que nos diga si un alumno va llegar temprano a clase dependiendo principalmente de 2 condiciones, saber si se levanta temprano o no, saber si pasa una combi o un autobús a la hora esperada.
 
Algoritmo
 
Entradas    
booleano levanta_temprano
booleano combi
booleano camion
Salidas  
booleano llegar
Inicio
Leer levanta_temprano
Leer combi
Leer camion
Si levanta_temprano es "SI" AND combi es "SI" AND camion es "SI" entonces
Establecer llega en "SI"
Si levanta_temprano es "SI" AND combi es "NO"AND camion es "NO" entonces
Establecer llega en "NO"
Si levanta_temprano es "NO" entonces
Establecer llega en "NO"
Si levanta_temprano es "SI" AND (combi es "SI" AND camion es "NO") entonces
Establecer llega en "SI"
Si levanta_temprano es "SI" AND (combi es "NO" AND camion es "SI") entonces
Establecer llega en "SI"
Imprimir "Va a llegar temprano"
Imprimir llegar
Fin
Calcular Calificacion
Para calcular la calificación de un alumno en la materia de metodología de la programación se siguen las siguientes reglas:
Si el alumno no participa obtiene AS.Si el alumno si participa se verifica si hace ejercicios en clase si hace ejercicios obtiene SA si además de hacer ejercicios ayuda a sus compañeros obtiene DE y si además su blog esta bonito obtiene AU.
 
Algoritmo
 

Entradas
cadena nombre
booleano participacion
booleano ejercicios
booleano ayuda
Salidas  
canena calificacion
Inicio
Leer participacion
Leer Nombre
Leer ejercicios
Leer ayuda
Leer blog_bonito
Si participacion es "NO" OR ejercicios es "NO" entonces
Establece calificación en "AS"
Si participacion es "SI" AND ejercicios es "SI" entonces
Establece calificacion en "SA"
Si participacion es "SI" AND ejercicios es "SI" AND ayuda es "SI" entonces
Establecer calificacion en "DE"
Si participacion es "SI"AND ejercicios es "SI" AND ayuda es "SI" AND blog_bonito es "SI"
Establecer calificacion en "AU"
Imprimir nombre
Imprimir calificacion
Fin


PseudoCodigo
 
Class Calificacion

//Declaraciones (entradas)

booleano participacion

booleano ejercicios

booleano ayuda

booleano blog_bonito

cadena nombre

//Declaraciones (salidas)

cadena nombre

cadena calificación

Main

Print "Introduce tu participacion"

scan participacion

Print "Introduce si realizas ejercicios"

scan ejercicios

Print "Introduce si ayudas"

scan ayuda

Print "Introduce si tu blog esta bonito"

scan blog_bonito

if (participacion="NO") OR (Ejercicios="NO") then

calificación="AS"

end_if

if (participacion="SI") AND (Ejercicios="SI") then

calificación="SA"

end_if

if (participacion="SI") AND (Ejercicios="SI") AND(Ayuda="SI")then

calificación="DE"

end_if

if (participacion="SI") AND (Ejercicios="SI") AND (Ayuda="SI") AND (Blog_bonito="SI") then

calificación="AU"

end_if

Print nombre

Print calificación

end_main
 
 
Diagrama de Flujo
 
 
Poligonos

Necesitamos un algoritmo que nos permita calcular el perímetro o el área de polígonos regulares entre 5 y 9 lados.
 
Algoritmo
 
 
Entradas
cadena operacion
numérico lados_poligono
numérico valor_lados
numérico valor_apotema
Salidas  
numérico figura
Inicio
Leer lados_poligono
Leer valor_lados
Leer valor_apotema
Leer operación
Si operación es "PERIMETRO" entonces
Multiplicar lados_poligono por valor_lados
Guardar en figura
Si operación es "ÁREA" entonces
Multiplicar valor_lados por lados_poligono
Guardar en perimetro_poligono
Dividir perimetro_poligono entre dos y guardar en figura
Imprimir operación
Imprimir figura
Fin
 
PseudoCodigo
 
Class PoligonosRegulares
//Declaraciones (entradas)
numérico lados_poligono
numérico valor_lados
numérico valor_apotema
cadena operación
//Declaraciones (salidas)
numérico figura
Main
Print "Introduce los lados del polígono"
scan lados_poligono
Print "Introduce el valor de los lados"
scan valor_lados
Print "Introduce el valor del apotema"
scan valor_apotema
Print "ntroduce la operación que deseas realizar"
scan operación
if (operación="PERÍMETRO") then
figura=lados_poligono*valor_lados
end_if
if (operación="AREA") then
perímetro=valor_lados *lados_poligonos
figura=perimetro/2
end_if
Print figura
end_main
Cambio de Velocidad
 
Tenemos un automovil que viaja a 30km/hr y entra a una autopista por lo cual debe aumentar su velocidad 60 km.
Escribe un algoritmo que nos permita saber cuando aumenta su velocidad.
 
Algoritmo
 
Entradas
booleano aumenta_velocidad
Salidas
cadena autopista
Inicio
Leer aumenta_velocidad
Si aumenta velocidad es "SI" entonces
Establecer en autopista "Entra a autopista"
Sino establecer en autopista "No entró a autopista"
Imprimir autopista
Fin

PseudoCodigo
Class  Cambio de Velocidad

//Declaraciones (entradas)

booleano aumenta_velocidad

//Declaraciones (salidas)

cadena autopista

Main

Print "Introduce si aumentas o no velocidad"

scan aumenta_velocidad

if (aumenta_velocidad = "SI") then

autopista = Entra a autopista

if (aumenta_velocidad = "NO") then

autopista = No entró a autopista

end_if

Print autopista

end_main
 
Diagrama de Flujo
 
 
Calcular Area
 
Se necesita un algoritmo que calcule el área de un triangulo y rectángulo conociendo su base y altura.
 
Algoritmo
 
Entrada
Numerico base
Numerico altura
Numerico figura
Salida
Numerico are_figura
Leer base
Leer altura
Leer figura
Si figura es “Triangulo” entonces
Multiplicar base por altura y guardar en area_triangulo
Dividir area_triangulo entre dos y guardar en area_figura
Si figura es “Rectangulo” entonces
Multiplicar base por altura y guardar en area_figura
Imprimir “El área de la Figura es”
Imprimir are_figura
FIN
 
PseudoCodigo
 

Class  Calcular Area
//Declaraciones (entradas)

numérico base

numérico altura

cadena figura

//Declaraciones (salidas)

numérico area_figura

Main
Print "Introduce la base"
scan base
Print "Introduce la altura"

scan altura

Print "Introduce la figura"

scan figura

if (Figura = "TRIANGULO") then

area_figura=(base * altura)/2

if (Figura = "RECTÁNGULO") then

area_figura = base * altura

end_if

Print area_figura

end_main


Descuento
 
En la universidad se hace un descuento de un 50% si el alumno tiene promedio entre 9.5 y 10, además de un descuento de un 20% si tiene promedio entre 8.5y 9.4 siempre y cuando no sea alumno irregular.
Algoritmo de cuanto tiene que pagar un alumno si la inscripción normal es de $1,000.
 
Algoritmo
 
Entradas
Numerico promedio
Numerico inscripcion (1000)
Numerico regular
Numerico DESC_A (50%)
Numerico DESC_B (20%)
Salidas
Numerico pago
Inicio
Leer promedio
Establecer DESC_A es 0.50
Establecer DESC_B es 0.20
Establecer inscripcion en 1000
Si regular es “v”entonces
  Si promedio > 9.5 entonces
  multiplicar inscripcion por DESC_A y guardar en descuento
  restar inscripcion menos descuento y guardar en pago
  Si promedio > 8.5 y promedio < 9.4 entonces
  multiplicar inscripcion por DESC_B y guardar en descuelto
  restar inscripcion menos descuento y guardar en pago
Imprimir pago
FIN
 
PseudoCodigo
Class DescuentoInscripcion
//Declaraciones (entradas)
numérico promedio
booleano regular
//Declaraciones (salidas)
numérico pago
Main
Print "Introduce tu promedio"
scan promedio
Print "Introduce si eres o no alumno regular"
scan regular
if (Regular = "V") then
descuento = INSCRIPCION * DESC_A
if (Promedio <= 8.5 AND >= 9.4) then
descuento = INSCRIPCION * DESC_B
pago=INSCRIPCION - descuento
end_if
Print pago
end_main
 


 
Autoservicio
 
Sabemos que en un centro de autoservicio los miércoles se ofrece un 10% de descuento en frutas y verduras si compro 1kilo de limón y 2kilos de papaya que tienen un precio de $8 y $15 respectivamente ¿Cuánto tendría que pagar?
 
Algoritmo
 
Entradas
numerico descuento (10)
numerico precio_limon (8)
numerico precio_papaya (15)
numerico kilos_limon
numerico kilo_papaya
Salidas
numerico total_a_pagar
Inicio
Leer kilos_limon
Leer kilos_papaya
Establecer precio_limon es 8
Establecer precio_papaya es 15
Establecer descuento 0.10
Multipiplicar kilos_limon por precio_limon y guardar en
total_limon
Multiplicar kilos_papaya por precio_papaya y guardar en
total_papaya
Suma total_limon mas total_papaya y guardar en total_a_pagar
Si dia es “Miercoles” entonces
Multiplicar total_a_pagar por descuento y guardar en
total_descuento
Restar total_a_pagar por total_descuento y guardar en
total_pagar
Imprimir total_a_pagar
Fin
 
PseudoCodigo

Class Autoservicio
//Declaraciones (entradas)
numérico kilos_limon
numérico kilos_papaya
cadena nombre_trabajador
//Declaraciones (salidas)
numérico total_a_pagar
Main
Print "Introduce el los kilos de limón"
scan kilos_limon
Print "Introduce los kilos de papaya"
scan kilos_papaya
total_limon = kilos_limon * PRECIO_LIMON
total_papaya=kilos_papaya * PRECIO_PAPAYA
total_a_pagar = total_limon + total_papaya
if (Día = "Miércoles") then
total_descuento = total_a_pagar * DESCUENTO
total_a_pagar = total_a_pagar-total_descuento
end_if
Print total_a_pagar
End_main