3.287 cursos gratis
6.265.095 alumnos
Publica tu curso gratis
Busca cursos gratis:
Estás aquí: mailxmail > Cursos de Informática > Programación > Algoritmos y lenguaje C > Bucles o estructuras repetitivas II

Algoritmos y lenguaje C

Autor: abraham sopla
Curso:  4,68/5 4,68/5 (12 opiniones) |10889 alumnos|Fecha publicación: 13/01/2006

Capítulo 12:

 Bucles o estructuras repetitivas II

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:  
                   Bucles o estructuras repetitivas II
  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
                   Bucles o estructuras repetitivas II
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.

Capítulo siguiente - Bucles while
Recibe nuestras novedades
Al presionar "Recibir" estás dándote de alta y aceptas las condiciones legales de mailxmail

Hay 12 opiniones. Opina sobre este curso.


Cursos similares a Algoritmos y lenguaje C


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]
5/5 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]
4/5 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]
5/5 711  


Publicar en   del.icio.us    digg    meneame

¿Qué es mailxmail.com?|ISSN: 1699-4914|Recomiéndanos|Ayuda
Condiciones legales de mailxmail