Ir a Emagister Encuentra tu formación ideal
¡Mailxmail y emagister se unen para que tengas toda la formación a tu alcance!
12.170 cursos gratis
8.187.562 alumnos
Facebook Twitter YouTube
Busca cursos gratis:

Algoritmos y lenguaje C

Autor: Abraham Sopla Maslucán
Curso:
9,21/10 (15 opiniones) |36357 alumnos|Fecha publicación: 13/01/2006
Envía un mensaje al autor

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

Nuestras novedades en tu e-mail

Escribe tu e-mail:

Al presionar "Recibir" estás dándote de alta y aceptas las condiciones legales de mailxmail

Cursos similares a Algoritmos y lenguaje C


  • Vídeo
  • Alumnos
  • Valoración
  • Cursos
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
Curso con video

El blog de mailxmail|¿Qué es mailxmail.com?|ISSN: 1699-4914|Ayuda
Publicidad|Condiciones legales de mailxmail


Ponte al día de Programación con nuestros cursos gratis