Vous êtes sur la page 1sur 17

PRACTICA LABORATORIO No 2

JONNATAN FERNANDO GOMEZ HENAO


COD 1018402735


GRUPO 2

ALGORITMOS



TUTOR VIRTUAL:
GERMAN YOBANY BELTRAN RONDON






UNIVERSIDAD NACIONAL ABIERTA A DISTANCIA
INGENIERIA DE TELECOMUNICACIONES
BOGOTA, COLOMBIA.
2014


OBJETIVOS
Disear estructuras secuenciales en pseint, sus componentes y funciones dentro del
algoritmo con sus correspondientes soluciones a cada uno de los ejercicios.

Realizar ejercicios que permitan adquirir habilidades, utilizando diagramas de
algoritmos.

Realizar ejercicios que permitan adquirir habilidades en la utilizacin de lenguajes de
programacin.




















CONTENIDO
Ejercicio 1
//A un trabajador le pagan segn sus horas y una tarifa de pago por horas.
//Si la cantidad de horas trabajadas es mayor a 40 horas.
//La tarifa se incrementa en un 50% para las horas extras.
//Calcular el salario del trabajador dadas las horas trabajadas y la tarifa.

Proceso Salario
horas <- 0;
tarifa <- 0;
sueldo <- 0;
Escribir 'Escriba el numero de horas que trabaj';
Leer horas;
Escribir 'Escriba la tarifa a la que usted aplica';
Leer tarifa;
Si horas > 40 Entonces
sueldo <- horas * (tarifa * 1.5);
Sino
sueldo <- horas * tarifa;
FinSi
Escribir 'El sueldo a pagar es de $',sueldo;
FinProceso


Ejercicio 2
//Dado un tiempo en segundos, calcular los segundos restantes que le
//correspondan para convertirse exactamente en minutos.

Proceso Segundos
seg <- 0;
min <- 0;
restante <- 0;
Escribir 'Ingrese la cantidad de segundos';
Leer seg;
Si seg > 60 Entonces
restante <- 60 - (seg mod 60) ;

min <- TRUNC(seg/60) + 1 ;
Sino
restante <- 60 - seg ;
min <- 1 ;
FinSi
Escribir 'Le faltan ',restante,' segundo(s) para convertirse en ',min,' minuto(s)';
FinProceso


Ejercicio 3
//Dado N notas de un estudiante calcular:
//a) Cuantas notas tiene desaprobados, de acuerdo al reglamento UNAD. b) Cuantos
aprobados.
//c) El promedio de notas. d) El promedio de notas aprobadas y desaprobadas.

Proceso Notas
n <- 0;
notan <- 0;
gana <- 0;
pierde <- 0;
promediomateria <- 0;
promediogana <- 0;
promediopierde <- 0;
Escribir 'Ingrese la cantidad de notas a procesar';
Leer n;
Dimension promedio(10);
Para i<-1 Hasta n Con Paso 1 Hacer
Escribir 'Ingrese la nota ',i;
Leer promedio(i);
Si promedio(i)>= 3 Entonces
gana <- gana + 1;
promediogana <- promediogana + promedio(i);
Sino
pierde <- pierde + 1;
promediopierde <- promediopierde + promedio(i);
FinSi
promediomateria <- promediomateria + promedio(i);
FinPara

promediomateria <- promediomateria/n

promediogana <- promediogana/gana
promediopierde <- promediopierde/pierde

Escribir 'Desaprobo ',pierde,' materia(s)';
Escribir 'Aprobo ',gana,' materia(s)';
Escribir 'Su promedio de notas es de ',promediomateria;
Escribir 'Su promedio de notas aprobadas es de ',promediogana;
Escribir 'Su promedio de notas desaprobadas es de ',promediopierde;
FinProceso


Ejercicio 4
//Se trata de escribir el algoritmo que permita emitir la factura correspondiente a una
compra de un artculo determinado,
//del que se adquieren una o varias unidades. El IVA es del 16% y si el precio bruto
(precio venta ms IVA)
//es mayor de 50.000,00 pesos se debe realizar un descuento del 5%.

Proceso Factura
n <- 0;
precio <- 0;
descuento <- 0;
iva <- 0;
ventasiniva <- 0;
ventamasiva <- 0;

Escribir 'Ingrese la cantidad de productos a comprar';
Leer n;
Escribir 'Ingrese el valor sin iva del producto';
Leer precio;

ventasiniva <- precio * n;
iva <- ventasiniva * 0.16;
ventamasiva <- ventasiniva + iva;

Si ventamasiva > 50000 Entonces
descuento <- ventamasiva * 0.05;
ventamasiva <- ventamasiva * 0.95;
FinSi


Escribir ' Factura de Venta';
Escribir 'Producto de venta X';
Escribir ' Cantidad: ',n;
Escribir ' Valor unitario: $',precio;
Escribir ' Valor total: $',ventasiniva;
Escribir ' IVA: $',iva;
Escribir ' Descuento: $',descuento;
Escribir ' Total a pagar: $',ventamasiva;
FinProceso


Ejercicio 5
//Se desea desarrollar un algoritmo que permita, desarrollar la tabla de multiplicar
//de un determinado nmero (la tabla bsica va de 1 a9);

Proceso Tabla
numero <- 0;

Escribir 'Ingrese la tabla que desea ver';
Leer numero;

Escribir 'Tabla de multiplicar del ',numero;

Para i<-1 Hasta 9 Con Paso 1 Hacer
Escribir '> ',numero,' X ',i,' = ',(i*numero);
FinPara
FinProceso


Ejercicio 6
//Variacin del ejercicio anterior, se debe desarrollar un algoritmo
//que permita mostrar las tablas del 1 al 9

Proceso Tablas

Escribir 'Tablas de multiplicar del 1 al 9';

Para numero <- 1 Hasta 9 Con Paso 1 Hacer
Escribir 'Tabla de multiplicar del ',numero;

Para i<-1 Hasta 9 Con Paso 1 Hacer
Escribir '> ',numero,' X ',i,' = ',(i*numero);
FinPara
Escribir ' ';
FinPara
FinProceso


Ejercicio 7
//una empresa con 20 empleados desea saber cuntos ganan menos de un salario
mnimo,
//cuantos tienen un salario entre uno y dos salarios mnimos
//y cuantos ganan ms de tres salarios mnimos,
//adems cual es el valor actual de la nmina de la empresa,
//cuanto aumentar la nmina mensual si se hace incrementos as;
//20% a aquellos que gana menos de un salario mnimo,
//10% a los que ganan entre 1 y dos salarios mnimos y
//5% a quienes gana ms de 3 salarios mnimos. Se deben realizar los clculos,
//teniendo en cuenta el valor del salario mnimo legal vigente

Proceso Sueldos
salariominimo <- 616000;
menoraunminimo <- 0;
entreunoydosminimos <- 0;
masdetresminimos <- 0;
valormenoraunminimo <- 0;
valorentreunoydosminimos <- 0;
valormasdetresminimos <- 0;
valornomina <- 0;
nuevovalornomina <- 0;
sueldo <- 0;

Para i<-1 Hasta 20 Con Paso 1 Hacer
Escribir 'Ingrese el sueldo para el trabajador ',i;
Leer sueldo;
valornomina <- valornomina + sueldo;

Si sueldo < salariominimo Entonces
menoraunminimo <- menoraunminimo + 1;

valormenoraunminimo <- valormenoraunminimo + sueldo;

Sino
Si sueldo >= salariominimo & sueldo <= (salariominimo * 2)
Entonces
entreunoydosminimos <- entreunoydosminimos + 1;
valorentreunoydosminimos <- valorentreunoydosminimos +
sueldo;
Sino
Si sueldo > (salariominimo * 3) Entonces
masdetresminimos <- masdetresminimos + 1;
valormasdetresminimos <- valormasdetresminimos +
sueldo;
finsi
finsi
FinSi
FinPara

nuevovalornomina <- (valormenoraunminimo * 0.20) +
(valorentreunoydosminimos * 0.10) + (valormasdetresminimos * 0.05);

Escribir menoraunminimo,' ganan menos de un salario minimo';
Escribir entreunoydosminimos,' ganan entre uno y dos salarios minimos';
Escribir masdetresminimos,' ganan mas de tres salarios minimos';
Escribir 'La nomina actual de la empresa es $',valornomina;
Escribir 'La nomina despues de los aumentos incrementara en
$',nuevovalornomina;
FinProceso


Ejercicio 8

//la serie fibonacci es un ejercicio interesante, el cual se construye a partir de los dos
primeros nmeros
//que son el 0 y 1, y apartir de ah se construye la serie ejemplo: 0,1, 0, 1, 1, 2, 3, 5, 8,
13, 21, 34.55..
//Desarrollar un algoritmo que permita, calcular n nmeros de esta serie

Proceso Fibonacci


n <- 0;
aux <- 0;
pri <- 0;
seg <- 1;
Escribir 'Digite la cantidad de numeros de la serie de Fibonacci';
Leer n;

Escribir pri,',';
Escribir seg,',';
Para i<-1 Hasta n Con Paso 1 Hacer
Escribir pri+seg,'';
aux <- seg;
seg <- seg+pri;
pri <- aux;
FinPara
FinProceso


Ejercicio 9
//Para las elecciones presidenciales que se realizarn en Colombia, existen tres
partidos
//polticos aspirando con sus candidatos (1, 2,3). Uno de estos ha decidido realizar una
consulta (encuesta) a un cierto nmero de personas, para determinar las preferencias
de los electores
//A cada persona se le pregunta:
//Si va a votar,
//En caso de que la respuesta se afirmativa, se le preguntar por qu partido votar.
//Elaborar un algoritmo, para llevar un control de la informacin y as obtener unos
resultados con prontitud
//Nota: el dato partido solamente se lee si la persona entrevistada ha contestado que s
votar.
//El algoritmo imprimir la siguiente informacin:
//Cul es el partido que esta repuntando?
//cul es % de abstencin?
//Cul es % a favor de cada partido, teniendo en cuenta, las entrevistas validas?
//cual es el % de personas que SI votaran?

Proceso Votaciones


n <- 0;
respuesta <- '';
respuesta2 <- 0;
Escribir 'Digite la cantidad de encuestas a guardar';
Leer n;
abstencion <- 0;
mayorpartido <- 0;
partido1 <- 0;
partido2 <- 0;
partido3 <- 0;
personasvotaran <- 0;

Para i<-1 Hasta n Con Paso 1 Hacer
Escribir 'Participante N ',i,', va usted a votar?';
Leer respuesta;
Si respuesta = 's' Entonces
personasvotaran <- personasvotaran + 1;
Escribir 'Participante N ',i,', por que partido va a votar, 1, 2 o 3?';
Leer respuesta2;
Segun respuesta2 Hacer
1:
partido1 <- partido1 + 1;
2:
partido2 <- partido2 + 1;
3:
partido3 <- partido3 + 1;
De Otro Modo:
Escribir 'Partido invalido';
FinSegun
Sino
abstencion <- abstencion + 1;
FinSi
FinPara

Si partido1 > partido2 Entonces
mayorpartido <- 1;
Sino
mayorpartido <- 2;
FinSi


Si partido3 > mayorpartido Entonces
mayorpartido <- 3;
FinSi

Escribir 'El partido que va repuntando es el partido ',mayorpartido;
Escribir 'El porcentaje de abstencion es ',((abstencion*100)/n),' %';
Escribir 'El porcentaje de favorabilidad del partido 1 es
',((partido1*100)/personasvotaran),' %';
Escribir 'El porcentaje de favorabilidad del partido 2 es
',((partido2*100)/personasvotaran),' %';
Escribir 'El porcentaje de favorabilidad del partido 3 es
',((partido3*100)/personasvotaran),' %';
Escribir 'El porcentaje de personas que votaran es ',((personasvotaran*100)/n),'
%';

FinProceso


Ejercicio 10
//Sabiendo que el da 1 de enero de 1.583 fue sbado y que desde entonces no se han
producido modificaciones
//en el calendario, elaborar un algoritmo para calcular el da de la semana en que cay
o caer una
//fecha cualquiera posterior al 1 de enero de 1.583.
//Nota: Un ao se considera bisiesto cuando es divisible por 400 o bien es divisible por
4 pero no por 100.


Proceso Terreno

alto <- 0;
ancho <- 0;
costo <- 0;
metros <- 0;

Escribir 'Digite la longitud del terreno';
Leer alto;
Escribir 'Digite la anchura del terreno';

Leer ancho;
Escribir 'Digite el costo del metro cuadrado';
Leer costo;

metros <- ancho * alto;

Escribir 'El valor por ',metros,' metros cuadrados es de $',(metros*costo);
FinProceso


Ejercicio 11
//Sabiendo que el da 1 de enero de 1.583 fue sbado y que desde entonces no se han
producido modificaciones
//en el calendario, elaborar un algoritmo para calcular el da de la semana en que cay
o caer una
//fecha cualquiera posterior al 1 de enero de 1.583.
//Nota: Un ao se considera bisiesto cuando es divisible por 400 o bien es divisible por
4 pero no por 100.

Proceso Fecha

anio <- 0;
mes <- 0;
dia <- 0;
modulo <- 0;
bisciestos <- 0;
diast <- 0;
aniost <- 0;

Escribir 'Escriba el ao';
Leer anio;
Escribir 'Escriba el mes';
Leer mes;
Escribir 'Escriba el dia';
Leer dia;

Para i <- 1583 Hasta anio Con Paso 1 Hacer


Si (i MOD 400 = 0) | ((i MOD 4 = 0) & (i MOD 100 <> 0)) Entonces

bisciestos <- bisciestos + 1;
Si i = anio & mes < 3 Entonces
bisciestos <- bisciestos - 1;
FinSi
FinSi

FinPara

aniost <- anio - 1583;
dias <- aniost * 365;
dias <- dias + bisciestos;

Segun mes Hacer
1:
dias <- dias + 0;
2:
dias <- dias + 31;
3:
dias <- dias + 59;
4:
dias <- dias + 90;
5:
dias <- dias + 120;
6:
dias <- dias + 151;
7:
dias <- dias + 181;
8:
dias <- dias + 212;
9:
dias <- dias + 243;
10:
dias <- dias + 273;
11:
dias <- dias + 304;
12:
dias <- dias + 334;
FinSegun


dias <- dias + dia - 1;

modulo <- dias MOD 7;

Segun modulo Hacer
0:
Escribir 'Es Sabado';
1:
Escribir 'Es Domingo';
2:
Escribir 'Es Lunes';
3:
Escribir 'Es Martes';
4:
Escribir 'Es Miercoles';
5:
Escribir 'Es Jueves';
6:
Escribir 'Es Viernes';
FinSegun
FinProceso



Ejercicio 12
//Considrense tres soluciones al problema "Pelar un nmero suficiente de papas que
hay en un cesto",
//teniendo en cuenta que el cesto puede estar vaco en un momento dado.

Proceso Papas
//forma 1
nropapas <- 4;
Para i<-1 Hasta nropapas Con Paso 1 Hacer
Escribir 'Pelar papa';
FinPara
Escribir 'Se acabaron las papas';

//forma 2

nropapas <- 5;
Mientras nropapas>0 Hacer
Escribir 'Pelar papa';
nropapas <- nropapas -1;
FinMientras
Escribir 'Se acabaron las papas';

//forma3
nropapas <- 6;
Repetir
Escribir 'Pelar papa';
nropapas <- nropapas -1;
Hasta Que nropapas = 0
Escribir 'Se acabaron las papas';
FinProceso



Ejercicio 13
//Realizar un algoritmo que permita calcular la hora un segundo despus de un valor
dado.
//(tenga en cuenta el cambio de minuto, hora, da)

Proceso Hora

hor <- 0;
min <- 0;
seg <- 0;
nhor <- 0;
nmin <- 0;
nseg <- 0;

Escribir 'Ingrese la hora';
Leer hor;
Escribir 'Ingrese los minutos';
Leer min;
Escribir 'Ingrese los segundos';
Leer seg;

Si seg = 59 Entonces

nseg <- 0;
nmin <- 1;
Sino
nseg <- seg + 1;
FinSi

Si min = 59 & nmin = 1 Entonces
nmin <- 0;
nhor <- 1;
Sino
nmin <- nmin + min;
FinSi

Si hor = 23 & nhor = 1 Entonces
nhor <- 0;
Sino
nhor <- hor + nhor;
FinSi

Escribir 'La nueva hora es ',nhor,':',nmin,':',nseg;
FinProceso













CONCLUSIONES

Se disearon estructuras secuenciales en pseint, sus componentes y funciones
dentro del algoritmo con sus correspondientes soluciones a cada uno de los
ejercicios.

Se realizan ejercicios que permiten adquirir habilidades en la creacin de diagramas
de algoritmos.

Se realizan ejercicios que permitan adquirir habilidades en la utilizacin de lenguajes
de programacin y aplicaciones como lo es pseint.