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
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;
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
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.
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
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.