Primer Taller de Programación en C

El siguiente programa imprime el mensaje "hello world" en la consola utilizando la función printf.

#include <stdio.h>
int main() {
    printf("hello world\n");
    return 0;
}

Problema 2: Manipulación de Tipos de Datos

Este código declara variables de distintos tipos (entero, flotante y carácter), luego muestra sus valores con formato adecuado.

#include <stdio.h>
int main() {
    int var_int = 10;
    float var_float = 4.5;
    char var_char = 'A';
    printf("a = %d\n", var_int);
    printf("b = %f\n", var_float);
    printf("c = %c\n", var_char);
    printf("Fin del programa\n");
    return 0;
}

Problema 3: Tamaño de Tipos en Memoria

Utiliza la función sizeof para determinar el número de bytes que ocupa cada tipo de dato básico en el sistema actual.

#include <stdio.h>
int main() {
    printf("Tipo de dato         Tamaño en bytes\n");
    printf("----------------     -------------------\n");
    printf("char                  %d\n", sizeof(char));
    printf("int                   %d\n", sizeof(int));
    printf("short int             %d\n", sizeof(short));
    printf("long int              %d\n", sizeof(long));
    printf("float                 %d\n", sizeof(float));
    printf("double                %d\n", sizeof(double));
    return 0;
}

Problema 4: Conversión de Temperatura

Convierte una temperatura dada en grados Fahrenheit a Celsius usando la fórmula estándar.

#include <stdio.h>
int main() {
    double temp_f, temp_c;
    temp_f = 100.0;
    temp_c = 5.0 * (temp_f - 32.0) / 9.0;
    printf("La temperatura Celsius equivalente a %5.2f°F es %5.2f°C\n", temp_f, temp_c);
    return 0;
}

Problema 5: Cálculo del Perímetro de un Triángulo

Dados tres lados de un triángulo, calcula su perímetro mediante suma simple.

#include <stdio.h>
int main() {
    int lado_a = 6, lado_b = 5, lado_c = 5;
    int perimetro = lado_a + lado_b + lado_c;
    printf("El perímetro del triángulo es: %d\n", perimetro);
    return 0;
}

Problema 6: Desbordamiento de Tipo Corto

Al asignar el valor máximo posible a un tipo short (32767) y sumarle uno, se produce un desbordamiento. En representación binaria con signo, esto causa un rebote desde el valor máximo positivo al mínimo negativo (-32768).

Representación binaria:

  • 32767 → 0111 1111 1111 1111
  • 32767 + 1 → 1000 0000 0000 0000 → interpretado como -32768

Problema 7: Resultados de Operaciones Aritméticas con Signo

Evalúa expresiones con números negativos:

  1. (a) -87
  2. (b) -20
  3. (c) 0
  4. (d) -2

Problema 8: Evaluación de Expresiones Lógicas Compuestas

La expresión i != j < k se evalúa según el orden de precedencia. Primero se compara i y j:

  • Si i != j es verdadero (valor 1), entonces se evalúa 1 < k.
  • Si i == j, el resultado de i != j es 0, luego se evalúa 0 < k.

Problema 9: Conversión entre Entero y Punto Flotante

Ilustra cómo se comporta la conversión implícita entre tipos numéricos:

  1. (a) i = 3, d = 3.0
  2. (b) i = 3, d = 3.5

Problema 10: Operador Condicional (Ternario)

El operador condicional permite seleccionar un valor basado en una condición en una sola línea. Su sintaxis es:

condición ? valor_si_verdadero : valor_si_falso;

Donde:

  • condición: expresión que devuelve un valor booleano (no cero = verdadero).
  • ?: si la condición es verdadera, se retorna el valor antes del :.
  • :: si la condición es falsa, se retorna el valor después del :.

Ejemplos

Ejemplo 1: Obtener el mayor valor

int max = (a > b) ? a : b;

Ejemplo 2: Determinar estado de aprobación

char* status = (score >= pass_threshold) ? "Aprobado" : "Reprobado";

Ejemplo 3: Función para obtener el mínimo

int obtener_minimo(int x, int y) {
    return (x < y) ? x : y;
}

Consideraciones

Aunque útil para simplificar código corto, el uso excesivo o anidado del operaddor ternairo puede reducir la legibilidad. En casos complejos, preferir estructuras if-else mejora la claridad del código.

Etiquetas: C programación básica operadores tipos de datos conversiones

Publicado el 10-20 12:40