Está en la página 1de 18

REPÚBLICA BOLIVARIANA DE VENEZUELA

INSTITUTO UNIVERSITARIO DE TECNOLOGÍA “ANTONIO RICAURTE”

INFORMÁTICA 2DO SEMESTRE NOCTURNO

LENGUAJE Y PROGRAMACIÓN

SECCION 403

10 PROBLEMAS RESUELTOS EN LENGUAJE C

ABREU LUNA, OSCAR EDUARDO

C.I.: 13.473.712
CAGUA, 15 DE DICIEMBRE DE 2009

• Problema 1: Desarrollar un programa en C para calcular el salario semanal de N empleados de


la empresa "CHULO'S" si el precio/hora es 10, hora extra a 15.

/* Oscar Eduardo Abreu Luna, CI 13.473.712, Lenguaje y programación básica, sección 403
Nocturno. Informática IUTAR */

/* Problema 1: Desarrollar un programa en C para calcular el salario semanal de N empleados de


la empresa "CHULO'S" si el precio/hora es 10, hora extra a 15.*/

# include <stdio.h>

# define hor_nor 10

# define hor_ex 15

typedef int entero;

typedef float decimal;

main()

decimal sueldo, sub_1, sub_2;

entero limite=0, horas, extras, cont=1;

printf("Empresa CHULO'S\n");

printf("Sistema de calculo de sueldo y horas extras\n");

printf("Indique a cuantos empleados desea calcular el sueldo: \n");

scanf("%d",&limite);

while (cont<=limite)

printf("Indique las horas trabajas en horario normal para el empleado %d:


\n",cont);

scanf("%d",&horas);

printf("Indique las horas extras trabajas para el empleado %d: \n",cont);

scanf("%d",&extras);

sub_1=horas*hor_nor;

sub_2=extras*hor_ex;

sueldo=sub_1+sub_2;
2
printf("El sueldo del empleado numero %d es de: %.2f BsF.\n",cont, sueldo);

system("pause");

horas=0; extras=0; sub_1=0; sub_2=0; sueldo=0; cont ++;

• Problema 2: Calcula nota media de 3 asignaturas de cada uno de los 5 alumnos de clase.

/* Oscar Eduardo Abreu Luna, CI 13.473.712, Lenguaje y programación básica, sección 403
Nocturno. Informática IUTAR */

/* Problema 2: Calcula nota media de 3 asignaturas de cada uno de los 5 alumnos de clase.*/

# include <stdio.h>

typedef int entero;

typedef float decimal;

main()

decimal promedio, nota=0, sub_nota=0;

entero limite, cont=1;

printf("Nota Media Promedio de 5 Alumnos\n");

while (cont<=5)

for (limite=1; limite<=3; limite++)

printf("Indique su calificacion %d: \n",limite);

scanf("%f",&nota);

sub_nota=sub_nota+nota;

nota=0;

promedio=sub_nota/3;

printf("El promedio para el alumno %d es de: %.2f Puntos\n",cont, promedio);

3
promedio=0; nota=0; sub_nota=0; cont++;

system("pause");

• Problema 3: Introducir N cantidad de números y el ordenador enseña el máximo y cuantas


veces se ha repetido.

/* Oscar Eduardo Abreu Luna, CI 13.473.712, Lenguaje y programación básica, sección 403
Nocturno. Informática IUTAR */

/* Problema 3: Introducir N cantidad de números y el ordenador enseña el máximo y cuantas


veces se ha repetido.*/

# include <stdio.h>

typedef int entero;

typedef float decimal;

main()

/*decimal ; */

entero limite, cont=1, num, valor, maximo=0, repetir=0, cont_2=0;

printf("Numeros Maximos y Repetidos\n");

printf("Introduzca cuantos numeros desea ingresar al sistema:\n");

scanf("%d",&limite);

for (num=1; num<=limite; num++)

printf("Indique el valor para %d: \n",num);

scanf("%d",&valor);

if (valor>maximo)

maximo=valor;

if (valor==repetir)

4
{

cont_2++;

repetir=valor; valor=0;

printf("El numero mayor es: %d y hubo %d numeros repetidos\n",maximo,


cont_2);

system("pause");

• Problema 4: Programas para contabilizar personas de más de 180, entre 180 y 170, 170 y 160, y
menores de 160 cm.

/* Oscar Eduardo Abreu Luna, CI 13.473.712, Lenguaje y programación básica, sección 403
Nocturno. Informática IUTAR */

/* Problema 4: Programas para contabilizar personas de más de 180, entre 180 y 170, 170 y 160,
y menores de 160 cm.*/

# include <stdio.h>

typedef int entero;

typedef float decimal;

main()

/*decimal ; */

entero limite, cont=1, est, caso1=0, caso2=0, caso3=0, caso4=0;

printf("Contador de rangos de estatura\n");

printf("Introduzca cuantas personas desea contabilizar:\n");

scanf("%d",&limite);

while (cont<=limite)

printf("Indique la estatura para persona # %d en cm: \n",cont);

scanf("%d",&est);

if (est>180)
5
{

caso1++;

if (est>170 && est<=180)

caso2++;

if (est>=160 && est<=170)

caso3++;

if (est<160)

caso4++;

est=0; cont ++;

printf("Las personas mayores de 180 cm de estatura son: %d\n",caso1);

printf("Las personas entre 180 cm y 170cm de estatura son: %d\n",caso2);

printf("Las personas entre 170 cm y 160cm de estatura son: %d\n",caso3);

printf("Las personas menores de 160 cm de estatura son: %d\n",caso4);

system("pause");

• Problema 5: El usuario introduce números y el ordenador cuenta cuantos son positivos.

6
/* Oscar Eduardo Abreu Luna, CI 13.473.712, Lenguaje y programación básica, sección 403
Nocturno. Informática IUTAR */

/* Problema 5: El usuario introduce números y el ordenador cuenta cuantos son positivos.*/

# include <stdio.h>

typedef int entero;

typedef float decimal;

main()

decimal num=0;

entero limite, cont=1, caso=0;

printf("Contador de numeros positivos\n");

printf("Introduzca cuantos numeros desea ingresar al sistema:\n");

scanf("%d",&limite);

while (cont<=limite)

printf("Indique el valor para %d (puede ser positivo o negativo): \n",cont);

scanf("%f",&num);

if (num>0)

caso++;

num=0; cont ++;

printf("Los numeros positivos son: %d\n",caso);

system("pause");

• Problema 6: Programa para contabilizar si 10 números introducidos por teclado son múltiplos
de 5 y contarlos.

7
/* Oscar Eduardo Abreu Luna, CI 13.473.712, Lenguaje y programación básica, sección 403
Nocturno. Informática IUTAR */

/* Problema 6: Programa para contabilizar si 10 números introducidos por teclado son múltiplos
de 5 y contarlos.*/

# include <stdio.h>

typedef int entero;

typedef float decimal;

main()

/*decimal ;*/

entero cont=1, caso=0, num;

printf("Contador de multiplos de 5\n");

while (cont<=10)

printf("Indique el valor para la posicion %d : \n",cont);

scanf("%d",&num);

if (num%5==0)

printf("Es multiplo de 5\n");

caso++;

num=0; cont ++;

printf("Los numeros multiplos de 5 son: %d\n",caso);

system("pause");

• Problema 7: Una empresa nos ha encargado calcular las nominas de 6 trabajadores. El sueldo
base semanal sale aplicando la siguiente fórmula:

horastrabajo * preciohora + horasextra * preciohoraextra.

8
El preciohora es una constante=6. El preciohoraextra depende de las h.extra hechas:

o Si son menos de 10h extras semanales, el precio es un 50% mayor que el preciohora
(*1,5).

o Si se hacen entre 10 y 20h extra, el precio es un 40% mayor.

o Si se hacen más de 20h, el precio es un 20% mayor.

Si el trabajador es categoría 3, el precio hora es el constante.

Si es categoría 2; el precio hora es un 25% mayor y si es de categoría 1 es un 45% más.

/* Oscar Eduardo Abreu Luna, CI 13.473.712, Lenguaje y programación básica, sección 403
Nocturno. Informática IUTAR */

/* Problema 7: Una empresa nos ha encargado calcular las nominas de 6 trabajadores.

El sueldo base semanal sale aplicando la siguiente fórmula:

horastrabajo * preciohora + horasextra * preciohoraextra.

El preciohora es una constante=6. El preciohoraextra depende de las h.extra hechas:

Si son menos de 10h extras semanales, el precio es un 50% mayor que el preciohora (*1,5).

Si se hacen entre 10 y 20h extra, el precio es un 40% mayor.

Si se hacen más de 20h, el precio es un 20% mayor.

Si el trabajador es categoría 3, el precio hora es el constante.

Si es categoría 2; el precio hora es un 25% mayor y si es de categoría 1 es un 45% más.*/

# include <stdio.h>

# define pre_hor 6

typedef int entero;

typedef float decimal;

main()

decimal cat2, cat3, sub_t, sub_t2, total;

entero tipo, cont=1, hora, extra;

printf("Sistema de nomina de empleados\n");

while (cont<=6)

{
9
printf("Indique la categoria para el empleado # %d del 1 al 3: \n",cont);

scanf("%d",&tipo);

switch(tipo)

case 1:

printf("Indique las horas trabajadas en la semana en horario


normal: \n");

scanf("%d",&hora);

printf("Indique las horas extras trabajadas en la semana: \n");

scanf("%d",&extra);

if (extra<=10)

sub_t=pre_hor*50/100;

if (extra>10 && extra<=20)

sub_t=pre_hor*20/100;

if (extra>20)

sub_t=pre_hor*20/100;

sub_t2=pre_hor*45/100;

total=(hora*sub_t2)+(extra*sub_t);

printf("El sueldo del empleado # %d que pertenece a la categoria 1 es


de %.2f BsF. semanales\n",cont, total);

system("pause");

break;

case 2:

10
printf("Indique las horas trabajadas en la semana en horario
normal: \n");

scanf("%d",&hora);

printf("Indique las horas extras trabajadas en la semana: \n");

scanf("%d",&extra);

if (extra<=10)

sub_t=pre_hor*50/100;

if (extra>10 && extra<=20)

sub_t=pre_hor*20/100;

if (extra>20)

sub_t=pre_hor*20/100;

sub_t2=pre_hor*25/100;

total=(hora*sub_t2)+(extra*sub_t);

printf("El sueldo del empleado # %d que pertenece a la categoria 2 es


de %.2f BsF. semanales\n",cont, total);

system("pause");

break;

case 3:

printf("Indique las horas trabajadas en la semana en horario


normal: \n");

scanf("%d",&hora);

printf("Indique las horas extras trabajadas en la semana: \n");

scanf("%d",&extra);

11
if (extra<=10)

sub_t=pre_hor*50/100;

if (extra>10 && extra<=20)

sub_t=pre_hor*20/100;

if (extra>20)

sub_t=pre_hor*20/100;

total=(hora*pre_hor)+(extra*sub_t);

printf("El sueldo del empleado # %d que pertenece a la categoria 3 es


de %.2f BsF. semanales\n",cont, total);

system("pause");

break;

default:

printf("Opcion Invalida\n");

cont=cont-1;

system("pause");

break;

extra=0; hora=0; sub_t=0; sub_t2=0; total=0; cont ++;

• Problema 8: Escribe el código fuente de un programa con menú en lenguaje C que:

a).- Muestre en pantalla el siguiente mensaje:

12
MENU DE OPCIONES:

1.- Introducir un número real.

2.- Salir.

Elija una opción:

b).- Se espera que el usuario elija una opción.

b.1).- Si la opción es 1, hará lo siguiente:

b.1.1).- Pedirá por teclado al usuario un número real.

b.1.2).- Comprobará si el número es negativo. Si es negativo: mostrará el mensaje "El


número es Negativo"; y si no lo es: "El número no es Negativo".

b.2).- Si la opción es la 2, saldrá del programa.

c).- El programa volverá a ejecutarse desde el punto 1 hasta que se elija la opción 2.

d).- Cuando se elija la opción 2 y antes de salir del sistema se debe visualizar la cantidad de
veces que se eligió la opción 1, cuantos números positivos se introdujeron y cuantos negativos.

/* Oscar Eduardo Abreu Luna, CI 13.473.712, Lenguaje y programación básica, sección 403
Nocturno. Informática IUTAR */

/* Problema 8: Escribe el código fuente de un programa con menú en lenguaje C que:

a).- Muestre en pantalla el siguiente mensaje:

--------------------------------------

* MENU DE OPCIONES: *

* 1.- Introducir un número real. *

* 2.- Salir. *

* Elija una opción: *

--------------------------------------

b).- Se espera que el usuario elija una opción.

b.1).- Si la opción es 1, hará lo siguiente:

b.1.1).- Pedirá por teclado al usuario un número real.

b.1.2).- Comprobará si el número es negativo. Si es negativo: mostrará el


mensaje "El número es Negativo"; y si no lo es: "El número no es Negativo".
13
b.2).- Si la opción es la 2, saldrá del programa.

c).- El programa volverá a ejecutarse desde el punto 1 hasta que se elija la opción 2.

d).- Cuando se elija la opción 2 y antes de salir del sistema se debe visualizar la
cantidad de veces que se eligió la opción 1, cuantos números positivos se introdujeron y
cuantos negativos.

*/

# include <stdio.h>

typedef int entero;

typedef float decimal;

main()

decimal real;

entero opcion, cont=0, cont_p=0, cont_n=0, limite=0;

while (limite=1)

printf("--------------------------------------------\n");

printf("* MENU DE OPCIONES: *\n");

printf("* 1.- Introducir un numero real. *\n");

printf("* 2.- Salir. *\n");

printf("--------------------------------------------\n");

printf("Elija una opcion: ");

scanf("%d",&opcion);

if (opcion==1)

cont++;

switch(opcion)

case 1:

14
printf("Introduzca un numero real: \n");

scanf("%f",&real);

if (real>0)

printf("El numero no es Negativo\n");

cont_p++;

system("pause");

break;

if (real<0)

printf("El numero es Negativo\n");

cont_n++;

system("pause");

break;

case 2:

printf("Se eligio la opcion 1 un total de %d veces\n",cont);

printf("Se registraron un total de %d numeros positivos y %d numeros


negativos\n",cont_p, cont_n);

system("pause");

exit(0);

default:

printf("Opcion Invalida\n");

system("pause");

break;

real=0;

}
15
}

• Problema 9: Desarrolle un programa en C para calcular el factorial de un número.

/* Oscar Eduardo Abreu Luna, CI 13.473.712, Lenguaje y programación básica, sección 403
Nocturno. Informática IUTAR */

/* Problema 9: Desarrolle un programa en C para calcular el factorial de un número.*/

# include <stdio.h>

typedef int entero;

typedef float decimal;

main()

entero i, numero, factorial=1;

printf("Calcular el factorial de un numero\n");

printf("Escriba un numero entero positivo para calcular su factorial: \n");

scanf("%d",&numero);

for (i=numero; i>1; --i)

factorial*=i;

printf("%d! = %d\n",numero,factorial);

system("pause");

• Problema 10: Determinar de un grupo de personas cuáles son de sexo femenino y cuáles de
sexo masculino, mostrar por pantalla lo siguiente:

a) Cantidad de personas procesadas.

b) Porcentaje de hombres.

c) Porcentaje de mujeres.

16
d) Cuantas mujeres y hombres hay.

/* Oscar Eduardo Abreu Luna, CI 13.473.712, Lenguaje y programación básica, sección 403
Nocturno. Informática IUTAR */

/* Problema 10: Determinar de un grupo de personas cuáles son de sexo femenino y cuáles de
sexo masculino, mostrar por pantalla lo siguiente:

a) Cantidad de personas procesadas.

b) Porcentaje de hombres.

c) Porcentaje de mujeres.

d) Cuantas mujeres y hombres hay.*/

# include <stdio.h>

typedef int entero;

typedef float decimal;

main()

decimal por_hom, por_muj, por_homt, por_mujt;

entero cont=1, limite, sexo, hom=0, muj=0;

printf("Calculo de personas por sexo\n");

printf("Indique cuantas personas desea ingresar al sistema: \n");

scanf("%d",&limite);

while (cont<=limite)

printf("Indique el sexo (1=Masculino, 2=Femenino) para la persona %d:


\n",cont);

scanf("%d",&sexo);

switch(sexo)

case 1:

hom++;

break;

17
case 2:

muj++;

break;

default:

printf("Opcion Invalida\n");

cont=cont-1;

system("pause");

break;

cont ++;

por_hom=hom*100;

por_muj=muj*100;

por_homt=por_hom/limite;

por_mujt=por_muj/limite;

printf("Se procesaron un total de %d personas.\n",limite);

printf("%d fueron hombres y %d fueron mujeres.\n",hom, muj);

printf("El porcentaje de hombres procesados es de %.2f y de mujeres es de


%.2f\n",por_homt, por_mujt);

system("pause");

18