0% encontró este documento útil (0 votos)
47 vistas14 páginas

Ejercicios de Programación en C

El documento presenta 10 programas en C que resuelven diferentes problemas matemáticos y lógicos. El primer programa calcula el aumento de sueldo de un trabajador dependiendo de su categoría. El segundo programa calcula el costo de llamadas internacionales según la zona geográfica del país destino. El tercer programa determina la temperatura en función de los sonidos emitidos por un grillo.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
47 vistas14 páginas

Ejercicios de Programación en C

El documento presenta 10 programas en C que resuelven diferentes problemas matemáticos y lógicos. El primer programa calcula el aumento de sueldo de un trabajador dependiendo de su categoría. El segundo programa calcula el costo de llamadas internacionales según la zona geográfica del país destino. El tercer programa determina la temperatura en función de los sonidos emitidos por un grillo.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

1.

Construya una aplicación tal que, dado como datos la categoría y el sueldo de un trabajador,
calcule el aumento correspondiente teniendo en cuenta la siguiente tabla. Imprima la categoría
del trabajador y su nuevo sueldo.

//aumento del sueldo dependiendo su categoria


#include <stdio.h>
int main(){

int categoria;
int sueldo;
int nuevoSueldo;

printf("Ingrese la categoria\n");
scanf("%d", &categoria);

printf("Ingrese el sueldo\n");
scanf("%d", &sueldo);

if(categoria>4) {
printf("Esta categoria no corresponde, intantalo de nuevo");
}

if(categoria == 1) {
nuevoSueldo = sueldo + sueldo * 0.15,
printf("Su categoria es: %d\n", categoria);
printf("Su nuevo sueldo es: %d\n", nuevoSueldo);
}

if(categoria == 2) {
nuevoSueldo = sueldo + sueldo * 0.10,
printf("Su categoria es: %d\n", categoria);
printf("Su nuevo sueldo es: %d\n", nuevoSueldo);
}

if(categoria == 3) {
nuevoSueldo = sueldo + sueldo * 0.08,
printf("Su categoria es: %d\n", categoria);
printf("Su nuevo sueldo es: %d\n", nuevoSueldo);
}

if(categoria == 4) {
nuevoSueldo = sueldo + sueldo * 0.07,
printf("Su categoria es: %d\n", categoria);
printf("Su nuevo sueldo es: %d\n", nuevoSueldo);
}
return 0;
}

2. El costo de las llamadas telefónicas internacionales depende de la zona geográfica en la que se


encuentre el país destino y del número de minutos hablados. En la siguiente tabla se presenta el
costo del minuto por zona. A cada zona se le ha asociado una clave.

//costo llamadas internacionales


#include <stdio.h>
int main (){

int clave;
int minutos;
float costo;

printf("Ingrese la cantidad de minutos\n");


scanf("%d", &minutos);

printf("Ingrese la clave de su llamada destino\n");


scanf("%d", &clave);

if(clave != 12 && clave != 15 && clave != 18 && clave != 19 && clave != 23 && clave != 25
&& clave != 29 ) {
printf("La clave ingresada se encuentra fuera del rango");
}

if(clave == 12) {
costo = minutos * 2;
printf("El costo total de la llamada es $%.1f", costo);
}

if(clave == 15) {
costo = minutos * 2.2;
printf("El costo total de la llamada es $%.1f", costo);
}

if(clave == 18) {
costo = minutos * 4.5;
printf("El costo total de la llamada es $%.1f", costo);
}

if(clave == 19) {
costo = minutos * 3.5;
printf("El costo total de la llamada es $%.1f", costo);
}

if(clave == 23) {
costo = minutos * 6;
printf("El costo total de la llamada es $%.1f", costo);
}

if(clave == 25 ) {
costo = minutos * 6;
printf("El costo total de la llamada es $%.1f", costo);
}

if(clave == 29 ) {
costo = minutos * 5;
printf("El costo total de la llamada es $%.1f", costo);
}
return 0;
}

3. El número de sonidos emitidos por un grillo en un minuto, es una función de la temperatura.


Como resultado de esto, es posible determinar el nivel de la temperatura haciendo uso de un
grillo como termómetro.
La fórmula para la función es:

// Hallar temperatura por los sonidos de un grillo


#include <stdio.h>
int main(){
float temperatura;
int sonidosGrillo;

printf("ingrese el numero de sonidos emitidos por el grillo en un minuto\n");


scanf("%d", &sonidosGrillo);

temperatura = (sonidosGrillo / 4) + 40;

printf("La temperatura es: %f\n", temperatura);

return 0;
}

4. Un palíndromo es un número, palabra, o frase que se lee igual al derecho que al revés. Por
ejemplo, los siguientes enteros de cinco dígitos con palíndromos: 12321, 55555, 45554 y 11611.
Escriba un programa que lea un entero de 5 dígitos y determine si es palíndromo. (Sugerencia:
utilice los operadores de división y modulo para separar el número en sus distintos dígitos).

5. Generalizando el ejercicio anterior, escriba un programa que pida al usuario cualquier número
entero no negativo (con cualquier número de dígitos) y determine si es palíndromo.

// determinar si un numero es palindromo


#include <stdio.h>
int main (){

int numeroOriginal;
int copia2;
int numeroInvertido=0;

printf("Ingrese un numero de tipo entero\n");


scanf("%d", &numeroOriginal);

copia2=numeroOriginal;
while(copia2 > 0) {
numeroInvertido = numeroInvertido * 10 + copia2 % 10;
copia2 /= 10;
}

if(numeroInvertido == numeroOriginal) {
printf("El numero ingresado es palindromo");
}

else {
printf("El numero ingresado no es palindromo");
}

return 0;
}

6. Leer un número binario (base 2) y convertirlo en un número decimal (base 10)

#include <stdio.h>

int main() {
long long numeroBinario, numeroDecimal = 0, base = 1, digito;

printf("Ingrese un numero binario: ");


scanf("%lld", &numeroBinario);

// Convierte el número binario a decimal


while (numeroBinario != 0) {
digito = numeroBinario % 10;
numeroDecimal = numeroDecimal + digito * base;
numeroBinario = numeroBinario / 10;
base = base * 2;
}

printf("El numero decimal equivalente es: %lld\n", numeroDecimal);

return 0;
}

7. Leer un número entero en base 10 y convertirlo en un número binario (base 2)

#include <stdio.h>

int main() {
int numeroDecimal;
printf("Ingrese un numero entero en base 10: ");
scanf("%d", &numeroDecimal);

if (numeroDecimal < 0) {
printf("Por favor, ingrese un número entero no negativo.\n");
return 1; // Salir del programa con un código de error
}

int numeroBinario[32]; // Usaremos un arreglo para almacenar los dígitos binarios


int indice = 0; // Índice para rastrear la posición actual en el arreglo

// Convierte el número decimal a binario


if (numeroDecimal == 0) {
numeroBinario[indice++] = 0; // Caso especial: si el número es 0, el binario también es 0
} else {
while (numeroDecimal > 0) {
numeroBinario[indice++] = numeroDecimal % 2;
numeroDecimal = numeroDecimal / 2;
}
}

// Imprime el número binario en orden inverso, ya que lo almacenamos al revés


printf("El numero binario equivalente es: ");
for (int i = indice - 1; i >= 0; i--) {
printf("%d", numeroBinario[i]);
}
printf("\n");

return 0;
}

8. Leer un número entero mayor o igual a 0 y calcular su factorial teniendo en cuenta que:
n! = n * (n-1) * (n-2) * (n-3) * … * 1 para n>0 y 0! = 1

// Hallar el factorial de un número


#include <stdio.h>

int main(){

int factorial =1;


int numero;
int i;

printf("ingrese un numero de tipo entero\n");


scanf("%d", &numero);

for(i=1;i<=numero;i++){
factorial = factorial * i;
}
printf("El factorial de %d es %d", numero, factorial);

return 0;
}

9. Lea dos valores enteros positivos y calcule la multiplicación entre ellos por medio de ciclos,
sabiendo que: a * b = a * a * a * a (b veces)

//Multiplicación de dos valores enteros positivos


#include <stdio.h>
int main(){
int numero1;
int numero2;
int producto;

printf("Ingrese el primer dato\n");


scanf("%d", &numero1);

printf("Ingrese el segundo dato\n");


scanf("%d", &numero2);

producto = numero1 * numero2;

printf("%d multiplicado con %d es %d", numero1, numero2, producto);


return 0;
}

10. Se dice que un número es primo si solo es divisible enteramente para la unidad (1) y para sí
mismo. Con base en este criterio, se trata de demostrar que el número en cuestión no es divisible
para ningún número menor a este y mayor a 1, en caso de encontrarse un caso de división exacta,
la posibilidad de que sea número primo queda descartada.

#include <stdio.h>

int main() {
int numero;
int esPrimo = 1; // Suponemos que el número es primo inicialmente

printf("Ingrese un número entero positivo mayor que 1: ");


scanf("%d", &numero);

if (numero <= 1) {
printf("El número debe ser mayor que 1 para ser considerado primo.\n");
} else {
for (int i = 2; i < numero; i++) {
if (numero % i == 0) {
esPrimo = 0; // Encontramos un divisor, por lo tanto, no es primo
break; // Salimos del bucle, ya que no es necesario verificar más
}
}

if (esPrimo) {
printf("%d es un número primo.\n", numero);
} else {
printf("%d no es un número primo.\n", numero);
}
}

return 0;
}
11. Escriba un programa en java que imprima los siguientes patrones usando ciclos que repiten la
instrucción [Link](“*”);.

11ª
#include <stdio.h>
int main (){

int i, j;

for(i=0;i<8;i++) {

for(j=0;j<8;j++){
printf("* ");
}
printf("\n");
}
return 0;
}
11b
#include <stdio.h>
int main (){
int menosColumna=8;

for(int i=0;i<8;i++) {
printf("\n");
for(int j=0;j<menosColumna;j++) {
printf("*");
}
menosColumna=menosColumna-1;
}

return 0;
}
11c
#include <stdio.h>

int main() {
int rows = 8; // Número de filas

for (int i = 1; i <= rows; i++) {


// Ciclo para imprimir '*' en cada fila
for (int j = 1; j <= i; j++) {
printf("* ");
}
printf("\n");
}
return 0;
}
11d
#include <stdio.h>

int main() {
int rows = 8; // Número de filas
int spaces = 0; // Inicialmente, no hay espacios en la
primera fila

for (int i = 1; i <= rows; i++) {


// Ciclo para imprimir espacios en blanco
for (int j = 1; j <= spaces; j++) {
printf(" ");
}

// Ciclo para imprimir '*' en cada fila


for (int j = 1; j <= rows - i + 1; j++) {
printf("* ");
}

printf("\n");
spaces++; // Aumenta el número de espacios en cada
fila
}

return 0;
}
11e
#include <stdio.h>

int main() {
int rows = 8; // Número de filas

for (int i = 1; i <= rows; i++) {


// Ciclo para imprimir espacios en blanco
for (int j = 1; j < i; j++) {
printf(" ");
}

// Ciclo para imprimir '*' en cada fila


for (int j = 1; j <= rows - i + 1; j++) {
printf("* ");
}

printf("\n");
}

return 0;
}

11f
#include <stdio.h>

int main() {
int rows = 8; // Número de filas

for (int i = 1; i <= rows; i++) {


// Ciclo para imprimir espacios en blanco (alineados a la
derecha)
for (int j = 1; j <= rows - i; j++) {
printf(" "); // Dos espacios en blanco
}

// Ciclo para imprimir '*' en cada fila


for (int j = 1; j <= i; j++) {
printf("* ");
}

printf("\n");
}

return 0;
}
11g
#include <stdio.h>

int main() {
int rows = 8; // Número de filas
for (int i = 1; i <= rows; i++) {
// Ciclo para imprimir espacios en blanco (alineados a la
izquierda)
for (int j = 1; j <= rows - i; j++) {
printf(" ");
}

// Ciclo para imprimir '*' en cada fila


for (int j = 1; j <= i; j++) {
printf("* ");
}

printf("\n");
}

return 0;
}

También podría gustarte