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.
Hay 12 opiniones. Opina sobre este curso.
| Cursos | Valoración | Alumnos | Vídeo | |
|---|---|---|---|---|
|
Creación de un microrobot Este es un robot muy sencillo pensado para aquellos que se quieren iniciar en el mundo de la microbótica. La estructura mecánica está realizada con piezas de Lego y como ... [25/02/05] |
|
8.057 | ||
|
Programación estructurada (primera parte) Aprende, en el mundo de la informática, la programación estructurada: en qué consiste y cuál es su justificación. Analizaremos la visión clásica de la programación estruc... [16/10/08] |
|
1.390 | ||
|
PHP y MySQL. Aplicaciones Web: HTML II (tercera parte) Programación de aplicaciones Web con PHP y MySQL. Ahora continuaremos con el estudio de las páginas Web HTML. Estudiaremos las listas en HTML. ... [02/12/08] |
|
711 | ||
Publicar en
del.icio.us
digg
meneame