Ejercicio 21
Escriba el algoritmo para un programa que calcule el factorial de un número n ingresado por el teclado.
Algoritmo
Inicio
Leer c, num, fac
Leer num
Fac:1
Desde c=1 hasta c<=num hacer
fac=fac*c
Fin Desde
Imprimir num, fac
Fin
Variables
fac : acumulador del valor del factorial del numero ingresado.
c : cuenta el número de repeticiones.
num : el número cuyo factorial se va ha calcular.
Programa
#include<stdio.h>
main(void)
{int c,num;
float fac;
printf("ingrese el número n para calcular su factorial ");
scanf("%d",&num);
fac=1;
for(c=1;c<=num;c++)
fac=fac*c;
printf("el factorial de %d es %lf",num,fac);
}
Ejercicio 22
Para "Gaseosas Amazonía" escriba el algoritmo para un programa que procese e imprima la información de la nómina de sus diez empleados. Para cada caso, el programa debe leer el nombre, las horas de trabajo, el pago por hora normal y la edad.
Ejemplo: Un grupo típico de datos podría ser:
NOMBRE N.H.T. P.H. EDAD
Juan Sopla 50 5 57
El pago por hora después de las 40 horas de trabajo tiene un aumento equivalente al 50% del pago por hora normal. Así, un empleado que trabaja 50 horas a S/. 5.00 por hora tendrá un pago total de S/. 275.00. Al trabajador se le retiene un impuesto de la siguiente manera:
10 % de los primeros S/. 200.00 y 20 % de la cantidad adicional.
La primera parte de la impresión en papel debe ser la información relevante de cada empleado.
Ejemplo:
La segunda parte debe informar sobre el pago total promedio para los empleados de al menos 55 años. El nombre y el pago total para el empleado de menos de 55 años con máximo pago total (se puede suponer que no hay empate).
Ejemplo
La solución sería: Empleado menor de 55 años con máximo sueldo es Sergio con 460 soles.
El promedio del sueldo para los empleados mayor de 55 años es: 342.667 soles
Algoritmo
Inicio
Declare me, mp, promedio, nombre, nme, nht, ph, total, neto, impuesto, i, edad
Leer me, mp, promedio, nombre, nme, nht, ph, total, neto, impuesto, i, edad
mp:0;
promedio:0;
Desde i=1 hasta i=10 hacer
leer nombre, nht, ph, edad
si nht>40 entonces total:40*ph+(nht-40)*(ph+0.5*ph)
si no total:nht*ph
si total>200 entonces impuesto:200*0.1+(total-200)*0.2
si no impuesto:total*0.1
neto:total-impuesto
imprimir nombre, nht, ph, edad
imprimir total, impuesto, neto
si edad>=55 entonces promedio:promedio+neto/3
si no
si mp<neto entonces
mp:neto;
me:edad;
nme:nombre
fin si
fin si
fin Desde
imprimir promedio
imprimir nme mp me
Fin
Variables
me : la máxima edad.
mp : máximo promedio.
promedio : promedio que se calcula.
nombre : nombre que se ingresa por el teclado.
nme : nombre del que tiene la máxima edad.
nht : número de horas trabajadas.
ph : pago por hora normal.
total : total sin descuentos.
neto : neto a pagar.
impuesto : impuesto
i : contador
edad : edad que se ingresa por el teclado.
Programa
#include<stdio.h>
#include<string.h>
main(void)
{
float me,mp;
float promedio;
char nombre[20];
char nme[20];
float nht,ph;
float total, neto,impuesto;
int i,edad;
mp=0;
promedio=0;
for(i=1;i<=10;i++)
{ printf("\n ingrese nombre: ");
7 scanf("%s",nombre);
printf("Ingrese número de horas trabajadas: ");
scanf("%f",&nht);
printf("Ingrese el valor del pago por hora: ");
scanf("%f",&ph);
printf("Ingrese la edad: ");
scanf("%d",&edad);
if(nht>40) total=40*ph+(nht-40)*(ph+0.5*ph);
else total=nht*ph;
if(total>200) impuesto=200*0.1+(total-200)*0.2;
else impuesto=total*0.1;
neto=total-impuesto;
printf("%s trabajo %lf horas, pago por hora %lf, edad %d años \n",nombre,nht,ph,edad);
printf("total %lf, impuesto %lf, neto %lf soles ",total,impuesto,neto);
if(edad>=55) promedio=promedio+neto/3;
else
{ if(mp<neto)
{mp=neto;
me=edad;
strcpy(nme,nombre);
}
}
}
printf("\n\n pago promedio: %lf soles",promedio);
printf("\n %s gana %lf soles edad: %lf años\n",nme,mp,me);
}
Ejercicio 23
Escriba el algoritmo para un programa Interactivo para calificar a un grupo de 40 alumnos de la UNAT-A. El programa debe leer el nombre y sus 3 calificaciones para cada alumno. Debe calcular el promedio para cada uno y después determinar si el alumno es aprobado o no; se requiere un promedio de al menos 12 para aprobar. La primera parte de la salida en el papel debe ser el nombre del alumno, 3 calificaciones, promedio y un mensaje (aprobado ó desaprobado). La segunda parte de salida en el papel debe dar el número de alumnos que aprobaron y el número de los que obtuvieron al menos 18 de nota.
Algoritmo
Declare i, n1, n2, n3, promedio, naa, na18, nombre, condición.
Inicio
Leer i, n1, n2, n3, promedio, naa, na18, nombre, condición.
naa:0;
na18:0;
Desde i=1 hasta i<=40 hacer
12ºleer nombre, n1, n2, n3
promedio:(n1+n2+n3)/3
if promedio>12 entonces
condicion:1;
naa:naa+1;
si no
condicion:2
fin si
si condicion=1 entonces imprimir nombre, n1, n2, n3, promedio
sino imprimir nombre, n1, n2, n3, promedio
si promedio>=18 entonces na18:na18+1
Fin Desde
Imprimir naa, na18
Fin
Variables
i : contador
n1, n2, n3 : notas.
Promedio : promedio de notas.
naa : número de alumnos desaprobados.
na18 : número de alumnos mayores de 18 años.
nombre : nombre del alumno
condición : asume valores 1 (aprobados), 2 desaprobados.
Programa
#include<stdio.h>
#include<string.h>
main(void)
{
int i,n1,n2,n3;
float promedio;
int naa,na18;
char nombre[20];
int condicion;
naa=0;
na18=0;Y54E4332EWWWWWW
for(i=1;i<=40;i++)
{printf("ingrese el nombre ");
scanf("%s",nombre);
printf("ingrese el nota1: ");
scanf("%d",&n1);
printf("ingrese el nota2: ");
scanf("%d",&n2);
printf("ingrese el nota3: ");
scanf("%d",&n3);
promedio=(n1+n2+n3)/3;
if(promedio>12)
{condicion=1;
naa=naa+1;
}
else
{ condicion=2; }
if(condicion==1) printf("%s nota1: %d nota2: %d, Nota3: %d, promedio: %lf condicion :aprobado \n",nombre,n1,n2,n3,promedio);
else printf("%s nota1: %d nota2: %d, Nota3: %d, promedio: %lf condicion :desaprobado \n",nombre,n1,n2,n3,promedio);
if(promedio>=18) na18=na18+1;
}
printf("hay aprobados: %d y aprobados con mas de 18 %d:\n",naa,na18);
}
Ejercicio 24
Escriba el algoritmo para un programa que calcule la suma de n de términos ingresado por el teclado de la serie 5/6,11/12,23/14,.....
Algoritmo
Inicio
Declare i, n, num, suma
Leer n
Suma:0;
Num:2;
Desde i=1 hasta i<=n hacer
Num:num*2+1
Suma:suma+num/(num+1)
Fin Desde
Imprimir suma
Fin
Variables
i : Contador
n : Numero de términos de la serie
num : valor del numerador de la serie
suma : Acumulador de la suma
Programa
#include<stdio.h>
main(void)
{
int i,n;
float num,den,suma;
printf("ingrese la cantidad de términos ");
scanf("%d",&n);
suma=0;
num=2;
for(i=1;i<=n;i++)
{num=num*2+1;
suma=suma+num/(num+1);
}
printf("suma %lf ",suma);
}
for ANIDADO
Ejercicio 25
Hacer el algoritmo para un programa que imprima 3 grupos, 5 veces "CHACHAPOYAS" en cada grupo. Antes de cada grupo deberá decir "HOLA".
Algoritmo
Inicio
Declare n, m
Desde n=1hasta n<=3 hacer
Imrpimir "HOLA"
Desde m=1 hasta m<=5 hacer
Imprimir "CHACHAPOYAS"
Fin Desde
Fin Desde
Fin
Variables
n, m : Variables contadores
Programa
#include<stdio.h>
int n,m;
main(void)
{
for(n=1;n<=3;n++)
{ printf(" HOLA \n");
for(m=1;m<=5;m++)
printf("CHACHAPOYAS \n");
}
}
COMENTARIO: Este es un ejemplo de un for anidado.
|
1. Algoritmos en QBASIC. Manual Este manual de QBASIC es una colección linkografica y bibliográfica sobre el uso... [26/10/09] |
12.730 | ||||
|
2. Introducción al lenguaje Pascal Pascal es un lenguaje de alto nivel y de propósito general (es aplicable a un gran... [01/03/06] |
40.127 | ||||
|
3. Introducción al lenguaje HTML ¿Te interesa entrar al mundo de la programación web ? ¡Entonces este curso de... [14/04/11] |
739 |
|
|||