PROGRAMACION
Segundo Semestre de
2018
Conteste las siguientes preguntas:
1. Cuáles son los Componentes básicos del computador?
Fin Si
Fin Si
Fin Si
SiNo
Fin Si
SiNo
IMPRIMIR "se solicito un numero entero, intentelo de nuevo por favor"
Fin Si
FinAlgoritmo
10. Efectuar un algoritmo que averigüe si un número positivo es par o impar. El programa leerá un número.
Supondremos que tenemos un operador para el módulo MOD, es decir, el resto de una división entera
Algoritmo sin_titulo
IMPRIMIR "digite un numero positivo"
leer n;
mientras n>0 Hacer
Si n mod 2=0 Entonces
IMPRIMIR "el numero es par"
SiNo
IMPRIMIR "el numero es impar"
Fin Si
IMPRIMIR "digite un numero positivo"
leer n;
FinMientras
IMPRIMIR "el numero es negativo o igual a 0"
FinAlgoritmo
11. Diseñar un algoritmo para sumar los 100 primeros números naturales. El algoritmo no leerá ningún valor.
Simplemente mostrará el resultado.
Algoritmo sin_titulo
Para H<-1 Hasta 100 Con Paso 1 Hacer
//Imprimir H;
SUMA<-SUMA+H
Fin Para
Imprimir "El resultado es: " SUMA;
FinAlgoritmo
12. Diseñar un algoritmo para sumar los 100 números siguientes a un valor entero positivo que deberá leer.
El algoritmo primero leerá un valor entero positivo, luego calculará el dato y por último mostrará el resultado.
Algoritmo sin_titulo
Imprimir "DIGITE UN NUMERO";
Leer P;
Para H<-P Hasta 100 Con Paso 1 Hacer
//Imprimir H;
SUMA<-SUMA+H
Fin Para
Imprimir "El resultado es: " SUMA;
FinAlgoritmo
13. Escribir un algoritmo para hallar el valor del MCD (Máximo Común Divisor) de 2 números enteros
positivos que deberán leerse al principio del algoritmo.
Algoritmo sin_titulo
Imprimir "DIGITE 2 NUMEROS PARA HALLAR EL MCD";
Leer X;
Leer Z;
Imprimir "RESULTADO";
Mientras X<>Z Hacer
Si X>Z Entonces
X<-X-Z
SiNo
Z<-Z-X
Fin Si
Fin Mientras
Imprimir X;
FinAlgoritmo
14. Escribir un algoritmo para hallar el valor del MCM (Mínimo Común Múltiplo) de 2 números enteros
positivos que deberán leerse al principio del algoritmo.
Algoritmo sin_titulo
Imprimir "DIGITA 2 NUMEROS PARA HALLAR EL MCM: ";
Leer A,B;
H1<-A;
H2<-B;
Mientras H1<>H2 Hacer
Si H1>H2 Entonces
H1<-H1-H2
SiNo
H2<-H2-1
Fin Si
Fin Mientras
C<-A*B/H1;
Imprimir "EL MCM ES: ",C;
FinAlgoritmo
15. Calcular el factorial de un número n (n! ), teniendo en cuenta que: 0! = 1 y que, en general tenemos que:
n! = n * (n-1) * (n-2) * … * 3 * 2. El factorial no está definido para números negativos.
Algoritmo sin_titulo
Definir FACT, N Como Real;
Definir I Como Entero;
Imprimir "DIGITE UN NUMERO";
LEER N;
FACT<-1;
Si N>=0 Entonces
Para I<-1 Hasta N Con Paso 1 Hacer
FACT<-FACT*I;
Fin Para
Imprimir "EL FACTOR ES: " , FACT ;
SiNo
Imprimir "NO EXISTE FACTOR";
Fin Si
FinAlgoritmo
16. Diseñar un algoritmo que lea 3 números enteros positivos distintos e imprima el mayor y el menor valor
de los tres. Observe que hay muchas formas de hacerlo. Intente encontrar la más eficiente (la que realice
menos operaciones entre los números).
Algoritmo sin_titulo
Definir A,B,C,M Como Entero;
Imprimir "INGRESE EL PRIMER NUMERO";
LEER A;
Imprimir "INGRESE EL SEGUNDO NUMERO";
LEER B;
Imprimir "INGRESE EL TERCER NUMERO";
LEER C;
M<-A;
Si B>M Entonces
M<-B;
FinSi
SI C>M Entonces
M<-C;
FinSi
Imprimir "EL NUMERO MAYOR ES: ",M;
FinAlgoritmo
17. Diseñar un algoritmo para leer una lista de números positivos y escribir, despues de leerla, el valor
máximo y el mínimo de esa lista. El algoritmo leerá un número tras otro hasta que se introduzca un número
negativo. Es decir, el algoritmo dejará de leer números cuando lea un número negativo y, entonces, mostrará
los valores resultantes.
Proceso sin_titulo
Imprimir "DIGITE UN NUMERO";
LEER NUMERO;
CONTADOR=0
NUMEROMAYOR=0
NUMEROMENOR=NUMERO
Mientras CONTADOR=0 Hacer
Si NUMERO>0 Entonces
Si NUMERO>NUMEROMAYOR Entonces
NUMEROMAYOR=NUMERO
Fin Si
Si NUMERO<NUMEROMENOR Entonces
NUMEROMENOR=NUMERO
Fin Si
Imprimir "DIGITE UN NUMERO"
LEER NUMERO
Sino
CONTADOR=CONTADOR+1
Fin Si
Fin Mientras
Imprimir "EL NUMERO MAYOR ES " NUMEROMAYOR
Imprimir "EL NUMERO MENOR ES " NUMEROMENOR
FinProceso
18. Hacer un algoritmo que calcule la suma de los 100 números siguientes al MCD de dos números dados.
Este ejercicio es una mezcla de los ejercicios 4 y 5.
19. Diseñar un algoritmo para convertir temperaturas en grados Farenheit a grados Celsius. El programa
terminará cuando lea una temperatura igual a 999. Como todo el mundo sabe, la relación entre grados
Farenheit (F) y grados Celsius (C) viene dada por: C= 5/9 (F-32).
Algoritmo sin_titulo
Escribir "escriba su temperatura en grados Farenheit: "
leer faren;
Para i<-faren Hasta 999 Con Paso 1 Hacer
Si faren<999 Entonces
resultado<-(faren-32)/1.8
Escribir "tu temperatura en grados celsius es: ", resultado
Escribir "escriba tu temperatura en grados Farenheit: "
leer faren;
SiNo
Fin Si
Fin Para
FinAlgoritmo
20. Diseñar un algoritmo que lea un punto en el plano (2 números reales): (X,Y), y calcule el cuadrante al
cual pertenece el punto (1,2,3 ó 4). Mostrará un valor 0 si el punto está en un eje de coordenadas.
Algoritmo sin_titulo
imprimir "DIGITE EL VALOR DE X: ";
Leer H;
Imprimir "DIGITE EL VALOR DE Y: ";
Leer K;
LMAO<-0;
Si H>0 Y K>0 Entonces
LMAO<-1;
FinSi
Si H<0 Y K>0 Entonces
LMAO<-2;
FinSi
Si H<0 Y K<0 Entonces
LMAO<-3;
FinSi
Si H>0 Y K<0 Entonces
LMAO<-4;
FinSi
Escribir "EL VALOR DEL CUADRANTE ES: ", LMAO;
FinAlgoritmo
21. Un vendedor desea calcular su comisión total sobre las ventas de varios artículos. Al vendedor le
corresponde el 3% de comisión sobre artículos cuyo precio es menor a $200,000 y el 5% sobre aquellos
artículos cuyo precio es de $200,000 o más. El vendedor efectúo la venta de 20 artículos. Además, se desea
conocer cuántos artículos menores de $200,000 vendió?
Proceso sin_titulo
COSTOTOTAL =0
COMISION=0
PRECIOARTICULOS=0
CONTADOR=0
22. Desarrollo un algoritmo, transcríbalo en seudocódigo y haga el respectivo DFD, para mostrar los
primeros 10 números múltiplos de 3 superiores al 179, así: 180, 183, 186, 189, 192, 195, 198, 201, 204, 207
Algoritmo sin_titulo
Escribir "Ingrese el valor de numero:";
Leer numero;
multiplos3=0
Para i<-valor_inicial Hasta valor_final Con Paso paso Hacer
Si (numero MOD 3) = 0 Entonces
Escribir "es multiplo de 3";
SiNo
Escribir "no es multiplo de 3"
Fin Si
Fin Para
FinAlgoritmo
23. Programa que lee dos valores numéricos y los almacena en dos variables de nombre `x' e `y', determina
si son iguales, y en caso de serlo, indica cuál de ellos es el mayor.
Algoritmo sin_titulo
Repetir
Escribir "escriba el valo de X FINALIZA CON (0): "
leer nx;
Si nx=ny Entonces
Escribir "son iguales"
Escribir ":::::::::::::::"
SiNo
Si nx>ny Entonces
Escribir "el valor X es menor"
Escribir ":::::::::::::::"
SiNo
Escribir "el valor Y es mayor"
Escribir ":::::::::::::::"
Fin Si
Fin Si
Hasta Que nx=0 y ny=0
FinAlgoritmo
24. Dados tres valores numéricos enteros, hacer un programa que determine cuál es el mayor.
Algoritmo sin_titulo
IMPRIMIR "ingesa un numero: "
leer n1;
IMPRIMIR "ingesa otro numero: "
leer n2;
IMPRIMIR "disculpa este es el ultimo numero ingresalo: "
leer n3;
Si n1>n2 Entonces
mayor <- n1;
SiNo
mayor <- n2;
FinSi
Si n3>n2 Entonces
mayor <- n3;
FinSi
IMPRIMIR "el numero mayor que ingresaste fue el: ", mayor;
FinAlgoritmo
25. Programa que muestra en pantalla todos aquellos caracteres introducidos a través del dispositivo
estándar de entrada hasta que sea pulsado el carácter asterisco.
Algoritmo sin_titulo
Imprimir “digite un carácter desde su dispositivo estándar”;
Leer CAR;
Mientras CAR<>”*” Hacer
Imprimir “el carácter es: “ CAR;
Imprimir “digite un carácter”;
Leer CAR;
Fin Mientras
Imprimir “finalizo”;
26. El siguiente programa muestra en pantalla todos aquellos caracteres introducidos por teclado hasta que
la tecla de espacio en blanco sea pulsada.
Proceso sin_titulo
CONTADOR=0
Mientras CONTADOR=0 Hacer
Imprimir "DIGITE UN CARACTER"
LEER CARACTER;
Si CARACTER ==" " Entonces
CONTADOR=CONTADOR+1
Fin Si
Fin Mientras
FinProceso
27. Hacer un programa que lea una serie de números enteros positivos de la entrada estándar y calcule el
valor máximo de los mismos y cuántas veces aparece dicho valor repetido.
Proceso sin_titulo
Imprimir "DIGITE UN NUMERO POSITIVO"
CONTADOR=0;
MAYOR=0;
REPETIDO=1;
Mientras CONTADOR ==0 Hacer
Leer NUMERO;
Si NUMERO >0 Entonces
Si NUMERO = MAYOR Entonces
REPETIDO = REPETIDO+1;
Fin Si
Si NUMERO > MAYOR Entonces
MAYOR=NUMERO;
REPETIDO=1;
Fin Si
Sino
Imprimir "EL NUMERO ES NEGATIVO EL PROGRAMA SE
CERRARA";
CONTADOR = CONTADOR+1;
Fin Si
Fin Mientras
Imprimir "EL NUMERO MAYOR ES " MAYOR;
Imprimir "LA CANTIDAD DE VECES REPETIDO ES " REPETIDO
FinProceso
28. Programa que halla la suma de los 10 primeros números pares mostrando el resultado en pantalla.
Algoritmo sin_titulo
pp=0
Para p<-2 Hasta 20 Con Paso 2 Hacer
pp=pp+p
IMPRIMIR "numero es: " p;
Fin Para
Escribir pp;
FinAlgoritmo
29. Escribir un programa que lea las edades de los empleados de una empresa mientras la edad leída sea
distinta de cero y calcule cuántos jóvenes (menores de 22 años), maduros (entre 22 y 50 años) y mayores
(aquellos con más de 50 años) hay, mostrando el resultado en pantalla. En aquellos casos en los que se lea
una edad no correcta (negativa o fuera del intervalo de 18 a 65 años) se escribirá un mensaje de error en
pantalla y se leerá otra edad.
Proceso sin_titulo
IMPRIMIR "DIGITE LA EDAD DEL EMPLEADO"
LEER EDAD;
JOVENES=0
MADUROS=0
MAYORES=0
Mientras EDAD<>0 Hacer
Si EDAD>=18 Y EDAD <22 Entonces
IMPRIMIR " EL EMPLEADO ES DE EDAD JOVEN";
JOVENES=JOVENES+1;
Fin Si
Si EDAD>=22 Y EDAD <50 Entonces
IMPRIMIR " EL EMPLEADO ES DE EDAD MADUROS";
MADUROS=MADUROS+1;
Fin Si
Si EDAD>=50 Y EDAD <65 Entonces
IMPRIMIR " EL EMPLEADO ES DE EDAD MAYOR";
MAYORES=MAYORES+1;
Fin Si
Si EDAD<18 O EDAD >65 Entonces
IMPRIMIR " LA EDAD NO ES VALIDA";
Fin Si
Imprimir "DIGITE LA EDAD DEL SIGUIENTE EMPLEADO";
LEER EDAD
Fin Mientras
Imprimir "EL TOTAL DE JOVENES ES DE " JOVENES;
Imprimir "EL TOTAL DE MADUROS ES DE " MADUROS;
Imprimir "EL TOTAL DE MAYORES ES DE " MAYORES
FinProceso
30. Hacer un programa que lea 10 números y determine cuáles y cuántos de ellos son múltiplos de 7.
Algoritmo sin_titulo
co=0
Para c<-0 Hasta 9 Con Paso 1 Hacer
Escribir "Por favor digite numerp"
leer num
31. Escribir un programa que determine qué números son primos de una secuencia de valores numéricos
leídos por teclado. La lectura de dichos valores finalizará cuando el valor leído sea cero.
Proceso sin_titulo
CONTADOR=0
PRIMOS=0
DIVISOR=1;
Si NUMERO==0 Entonces
CONTADOR=CONTADOR+1;
Fin Si
33. Diseñar un programa que lea dos números y presente una serie de opciones correspondientes a distintas
operaciones que podemos realizar con ellos (suma, resta, multiplicación y división), de manera que, en
función de la opción elegida, muestre el resultado de la operación realizada. En aquellos casos en los que
se desee seguir operando con los mismos números, se debe contestar `S' (Si a la siguiente pregunta "¿Otra
operación con los mismos números (S/N)?" o `N' (No), en caso contrario. Finalmente el programa deberá
concluir tras responder `S' (Si o `N' (No) a la siguiente pregunta: "¿Terminar (S/N)?".
Proceso sin_titulo
Imprimir "DIGITE EL PRIMER NUMERO ";
LEER PRIMERNUMERO;
Imprimir " DIGITE EL SEGUNDO NUMERO ";
LEER SEGUNDONUMERO;
SUMA = 0;
RESTA = 0;
MULTIPLICACION=0;
DIVICION=0;
Si SEGUNDONUMERO = 0 Entonces
Imprimir "PUEDES REALIZAR SUMA, RESTA Y MULTIPLICACION"
Imprimir "¿DESEAS SUMAR?"
LEER RESPUESTA;
Si RESPUESTA == "si" O RESPUESTA== "SI" Entonces
SUMA = PRIMERNUMERO + (SEGUNDONUMERO);
Imprimir "LA SUMA ES " SUMA;
Fin Si
Imprimir "¿DESEAS RESTA?"
LEER RESPUESTA
Si RESPUESTA == "si" O RESPUESTA== "SI" Entonces
RESTA = PRIMERNUMERO - (SEGUNDONUMERO);
Imprimir "LA RESTA ES " RESTA;
Fin Si
Imprimir "¿DESEAS MULTIPLICACION?"
LEER RESPUESTA
Si RESPUESTA == "si" O RESPUESTA== "SI" Entonces
MULTIPLICACION = PRIMERNUMERO * (SEGUNDONUMERO);
Imprimir "LA MULTIPLICACION ES " MULTIPLICACION;
Fin Si
Sino
Imprimir "PUEDES REALIZAR LAS 4 OPERACIONES BASICAS";
Imprimir "¿DESEAS SUMAR?"
LEER RESPUESTA;
Si RESPUESTA == "si" O RESPUESTA== "SI" Entonces
SUMA = PRIMERNUMERO + (SEGUNDONUMERO);
Imprimir "LA SUMA ES " SUMA;
Fin Si
Imprimir "¿DESEAS RESTA?"
LEER RESPUESTA
Si RESPUESTA == "si" O RESPUESTA== "SI" Entonces
RESTA = PRIMERNUMERO - (SEGUNDONUMERO);
Imprimir "LA RESTA ES " RESTA;
Fin Si
Imprimir "¿DESEAS MULTIPLICACION?"
LEER RESPUESTA
Si RESPUESTA == "si" O RESPUESTA== "SI" Entonces
MULTIPLICACION = PRIMERNUMERO * (SEGUNDONUMERO);
Imprimir "LA MULTIPLICACION ES " MULTIPLICACION;
Fin Si
Imprimir "¿DESEAS DIVIDIR?"
LEER RESPUESTA
Si RESPUESTA == "si" O RESPUESTA== "SI" Entonces
DIVICION = PRIMERNUMERO / (SEGUNDONUMERO);
Imprimir "LA DIVICION ES " DIVICION;
Fin Si
Fin Si
FinProceso
34. Escribir un programa que permita realizar descuentos en un comercio, en función del total de compras
realizadas por cada cliente. Para realizar dichos descuentos, se deben leer los importes de cada compra
parcial de un cliente hasta que un importe sea igual a cero; posteriormente se escribirá el importe total a
pagar teniendo en cuenta que se pueden efectuar los siguientes descuentos:
Si el importe total de la compra está entre $50 y $120, el descuento es del 15%.
Si el importe total de la compra es mayor de $120 el descuento es del 20%.
La lectura de clientes finaliza tras responder al mensaje "¿Más clientes (S/N)?, mostrando al final la suma
total de todos los importes cobrados.
Proceso sin_titulo
IMPORTETOTAL=0;
RESPUESTA = "si";
DESCUENTO = 0;
IMPORTETOTALDECOMPRAS=0;
FinProceso
35. Diseñar un programa que permita calcular los salarios semanales de los trabajadores de una empresa
a partir de los siguientes datos:
- Número de empleado
· Número de horas trabajadas.
· El turno de trabajo realizado (Mañana (M), Tarde (T), Noche (N)). · La tarifa ordinaria por hora de cada uno
de los trabajadores.
Para el cálculo del salario bruto se tendrá en cuenta que el turno de tarde se paga a 1,2 más de la tarifa
ordinaria, mientras que el turno de noche se paga a 1,5 más, también de la tarifa ordinaria.
Para el cálculo del salario neto se realizan determinados descuentos destinados al pago de impuestos de la
siguiente forma:
Se desea imprimir el salario bruto de cada trabajador mostrando al finalizar por pantalla el importe total de
salarios abonados.
La lectura de los datos finaliza respondiendo `S' (Sí) o `N' (No) a la siguiente pregunta: "¿Más trabajadores
(S/N)?".
Algoritmo sin_titulo
Repetir
imprimir "Ingrese el numero de empleado:";
Leer numerodeempleado;
imprimir "Ingrese el valor de horas trabajadas:";
Leer horastrabajadas;
imprimir "Ingrese el valor de impuestos:";
Leer impuestos;
Imprimir "Ingrese el valor de tarifa ordinaria:";
Leer tarifaordinaria;
salariobruto <- 0;
Imprimir "Seleccione el valor de turno.";
imprimir " 1.- Mañana";
Imprimir " 2.- Tarde";
imprimir " 3.- Noche";
imprimir " :";
Repetir
Leer turno;
Si turno<1 O turno>3 Entonces
Imprimir "Valor incorrecto. Ingréselo nuevamente.: ";
FinSi
Hasta Que turno>=1 Y turno<=3;
Si turno = 1 Entonces
salariobruto <- horastrabajadas*tarifaordinaria;
FinSi
Si turno = 2 Entonces
salariobruto <- horastrabajadas*tarifaordinaria*1.2;
FinSi
Si turno = 3 Entonces
salariobruto <- horastrabajadas*tarifaordinaria*1.5;
FinSi
salarioneto <- salariobruto-impuestos;
imprimir "Numero de empleado: ", numerodeempleado;
Imprimir "Valor de salario neto: ", salarioneto;
Imprimir "Valor de salario bruto: ", salariobruto;
Imprimir "";
Repetir
Imprimir "¿Desea repetir el proceso? (S/N):";
Leer tecla_repetir;
Hasta Que tecla_repetir='s' O tecla_repetir='n' O tecla_repetir='S' O
tecla_repetir='N'
Hasta Que tecla_repetir='n' O tecla_repetir='N'
FinAlgoritmo
36. Escribir un programa que lea las temperaturas en 15 observatorios meteorológicos y escriba la
temperatura mínima y cuántas mínimas se han producido.
Algoritmo sin_titulo
Escribir "tener en cuenta que la temperatura minima es 10"
co=0
Para c<-1 Hasta 15 Con Paso 1 Hacer
Escribir "Por favor colocar temperatura del observatorio"
leer tem
Si tem<=10 Entonces
co<-co+1
Escribir "temperatura critica #" co;
SiNo
Si tem>=40 Entonces
Escribir "temperatura supercritica"
SiNo
Escribir "temperatura aceptable"
Fin Si
Fin Si
Fin Para
Imprimir "el numero de temperaturas minimas son: " co;
FinAlgoritmo
37. Escriba un programa que imprima los números pares de 1 a 100. utilice una sentencia continúe para
que no imprima los impares.
Algoritmo sin_titulo
Para c<-1 Hasta 100 Con Paso 1 Hacer
Si c mod 2=0 Entonces
Imprimir "es par " c;
SiNo
Fin Si
Fin Para
38. Escribir un programa que lea el número de empleado, sexo (H/M) y edad de una serie de personas de
una empresa, finalizando la lectura de datos cuando el número de empleado sea igual a 0, y muestre como
resultado el promedio de edad de cada sexo, así como el número de empleado del varón menor y el de la
mujer de mayor edad.
Proceso sin_titulo
Imprimir " DIGITE CODIGO DEL EMPLEADO";
Leer CODIGO;
CODIGO=1
SUMAMUJERES=0
PROMEDIOMUJERES=0
SUMAHOMBRES=0
PROMEDIOHOMBRES=0
CONTADORHOMBRES=0
CONTADORMUJERES=0
Mientras CODIGO<>0 Hacer
Imprimir "DIGITE EL SEXO (H/M) ";
LEER SEXO;
Imprimir "DIGITE LA EDAD";
Leer EDAD;
Si SEXO= "M" Entonces
SUMAMUJERES=SUMAMUJERES+EDAD;
CONTADORMUJERES=CONTADORMUJERES+1
Fin Si
Si SEXO= "H" Entonces
SUMAHOMBRES=SUMAHOMBRES+EDAD
CONTADORHOMBRES=CONTADORHOMBRES+1
Fin Si
Imprimir " DIGITE CODIGO DEL EMPLEADO";
Leer CODIGO;
Fin Mientras
PROMEDIOHOMBRES=SUMAHOMBRES/CONTADORHOMBRES
PROMEDIOMUJERES=SUMAMUJERES/CONTADORMUJERES
Imprimir "EL PROMEDIO DE EDAD DE MUJERES ES "
PROMEDIOMUJERES;
Imprimir "EL PROMEDIO DE EDAD DE HOMBRES ES "
PROMEDIOHOMBRES;
FinProceso
39. Diseñar un programa que calcule y escriba las raíces de una ecuación de segundo grado. Ax2+Bx+c =
0
Algoritmo ejercicio39
IMPRIMIR "Ingrese el coeficiente A:"
Leer a;
IMPRIMIR "Ingrese el coeficiente B:"
Leer b;
IMPRIMIR "Ingrese el coeficiente C:"
Leer c;
disc <- b^2-4*a*c
Si disc<0 Entonces
preal<- (-b)/(2*a)
pimag<- rc(-disc)/(2*a)
IMPRIMIR "Raiz 1: ",preal,"+",pimag,"i"
IMPRIMIR "Raiz 2: ",preal,"-",pimag,"i"
Sino
Si disc=0 Entonces
r <- (-b)/(2*a)
IMPRIMIR "Raiz 1 = Raiz 2: ",r
Sino
r1 <- ((-b)+rc(disc))/(2*a)
r2 <- ((-b)-rc(disc))/(2*a)
IMPRIMIR "Raiz 1: ",r1
IMPRIMIR "Raiz 2: ",r2
FinSi
FinSi
FinAlgoritmo