03 - Variables y Tipos de Datos
Objetivos
Entender cómo representa C la información y cómo se manipula con operaciones básicas.
- Comprender qué son identificadores, variables y constantes
- Reconocer los tipos básicos más usados en el curso:
int,floatychar - Declarar, inicializar y usar variables con precisión
- Aplicar operadores aritméticos y de asignación
- Distinguir entre división entera y decimal.
Contenidos
Variables e identificadores
- Identificadores: nombres válidos para variables, constantes y otras entidades del programa
- Variables: posiciones de memoria con nombre cuyo valor puede cambiar
- Buenas prácticas: nombres claros y consistentes
Constantes y tipos de datos
- Constantes: valores fijos o nombres que representan valores que no cambian
- Tipos básicos del curso:
int,float,char - Modelo mental: el tipo le dice al compilador qué clase de dato se almacenará y cómo debe interpretarse
Declaración e inicialización
- Declarar: informar al compilador que una variable existe y qué tipo tiene
- Inicializar: asignar un valor válido antes de usarla
- Error frecuente: usar variables sin declarar o sin inicializar
Operadores y expresiones
- Aritméticos:
+,-,*,/,% - Asignación:
=,+=,-=,*=,/= - Precedencia: uso de paréntesis para evitar ambigüedad y mejorar legibilidad
División entera y módulo
- División entera: entre enteros, el resultado también es entero
- Módulo: permite obtener el resto de una división
Caracteres y ASCII
char: representa un carácter individual- Relación con números: un carácter también tiene un código asociado
- Aplicación posterior: base para trabajar con texto en semanas más adelante
Material de Clase
Presentaciones
Práctico
Ver ejercicios
Repasar tipos de datos, operadores y formatos básicos antes de resolver los ejercicios de la semana.
Recordatorio rápido
- Tipos básicos:
intpara enteros,floatpara decimales ycharpara un carácter. - Declaración e inicialización: podés declarar e inicializar en la misma línea, por ejemplo
int edad = 20;. - Operadores aritméticos:
+,-,*,/y%. - División entera vs. decimal:
5 / 2da2, mientras que5.0 / 2da2.5. - Especificadores de formato:
%dparaint,%fparafloaty%cparachar; enscanfrecordar usar&con variables simples.
Ejercicio 1
Enunciado: Escribir un programa que declare e inicialice variables de diferentes tipos y las muestre.
Tareas:
- Declarar una variable
intllamadaedadcon valor 20. - Declarar una variable
floatllamadaalturacon valor 1.75. - Declarar una variable
charllamadainicialcon valor'M'. - Mostrar todas las variables con mensajes descriptivos.
- Probar cambiando los valores iniciales y observando la salida.
Ejercicio 2
Enunciado: Escribir un programa que lea y muestre datos básicos de una persona.
Tareas:
- Leer por teclado:
- un
intpara la edad, - un
floatpara la altura en metros, - un
charpara la inicial del nombre.
- un
- Mostrar los valores leídos con un mensaje claro, por ejemplo:
"Edad: 20 años, Altura: 1.75 m, Inicial: M". - Antes de ejecutar, hacer la traza de ejecución para la entrada edad=20, altura=1.75, inicial=‘M’ (tabla: Paso, edad, altura, inicial, Salida). Escribir la salida esperada.
- Probar el programa con al menos dos conjuntos de datos diferentes y verificar con la traza.
Ejercicio 3
Enunciado: Escribir un programa que lea dos números enteros y muestre el resultado de las operaciones aritméticas básicas.
Tareas:
- Leer dos números enteros.
- Calcular y mostrar: suma, resta, multiplicación, división entera y resto (
%). - Mostrar cada resultado con un mensaje claro.
- Sin ejecutar, hacer la traza de ejecución para
numero1 = 10ynumero2 = 3(tabla: Paso, numero1, numero2, y las variables de resultado que uses, Salida). Anotar la salida esperada. - Probar con:
numero1 = 10,numero2 = 3,numero1 = 7,numero2 = 2, y verificar que coinciden con la traza.
Ejercicio 4
Enunciado: Escribir un programa que calcule el promedio de tres números reales.
Tareas:
- Leer tres números de tipo
float. - Calcular el promedio usando división decimal.
- Mostrar el resultado con 2 decimales.
- Probar con los valores 5.0, 7.0 y 9.0.
Ejercicio 5
Enunciado: Escribir un programa que calcule el área de un rectángulo.
Tareas:
- Leer base y altura (pueden ser decimales).
- Calcular
area = base * altura. - Mostrar el resultado con 2 decimales.
- Probar con base = 4.0 y altura = 3.5.
Ejercicio 6
Enunciado: Escribir un programa que convierta kilómetros a metros y centímetros.
Tareas:
- Leer la distancia en kilómetros (tipo
float). - Calcular metros (1 km = 1000 m).
- Calcular centímetros (1 m = 100 cm).
- Mostrar los tres valores (km, m, cm) con 2 decimales.
- Probar con 3.5 km.
Ejercicio 7
Enunciado: Escribir un programa que calcule el perímetro y el área de un círculo.
Tareas:
- Leer el radio (tipo
float). - Usar
pi = 3.14159. - Calcular:
- perímetro = 2 × pi × radio,
- área = pi × radio².
- Mostrar ambos resultados con 2 decimales.
- Probar con radio = 2.0.
Ejercicio 8
Enunciado: Escribir un programa que convierta una cantidad de segundos en horas, minutos y segundos.
Tareas:
- Leer un valor entero que represente segundos totales.
- Calcular:
- horas = segundos_totales / 3600,
- minutos = (segundos_totales % 3600) / 60,
- segundos = segundos_totales % 60.
- Mostrar el resultado formateado, por ejemplo:
"3600 segundos = 1 horas, 0 minutos, 0 segundos". - Probar con 3665 segundos.
Ejercicio 9
Enunciado: Escribir un programa que calcule la propina del 10% sobre el total de una cuenta.
Tareas:
- Leer el total de la cuenta (tipo
float). - Calcular la propina (10% del total).
- Calcular el total a pagar (cuenta + propina).
- Mostrar desglose: cuenta, propina y total.
- Probar con una cuenta de 850.00.
Ejercicio 10
Enunciado: Escribir un programa que calcule el interés simple y el monto final.
Tareas:
- Leer capital, tasa de interés (en %) y tiempo (en años) como
float. - Calcular:
- interés = capital × tasa × tiempo / 100,
- monto_final = capital + interés.
- Mostrar capital, tasa, tiempo, interés y monto final.
- Probar con capital = 1000, tasa = 5 y tiempo = 2.
Ejercicio 11
Enunciado: Escribir un programa que calcule el volumen de un cilindro.
Tareas:
- Leer radio y altura (pueden ser decimales).
- Usar
pi = 3.14159. - Calcular volumen = pi × radio² × altura.
- Mostrar el resultado con 2 decimales.
- Probar con radio = 2.0 y altura = 5.0.
Ejercicio 12
Enunciado: Escribir un programa que desglose una cantidad de dinero en billetes de 1000, 500, 100, 50 y 10 pesos.
Tareas:
- Leer una cantidad de dinero entera (múltiplo de 10).
- Calcular cuántos billetes de cada tipo se necesitan usando división entera y módulo.
- Mostrar cuántos billetes de cada denominación se utilizan.
- Probar con 2860 pesos.
Pista: Empezar por la denominación más grande (1000) y seguir con las más pequeñas.
Ejercicio 13
Enunciado: Escribir un programa que calcule el promedio ponderado de tres calificaciones con pesos diferentes.
Tareas:
- Leer tres calificaciones (
float) y sus tres pesos (float). - Calcular
promedio_ponderado = (c1×p1 + c2×p2 + c3×p3) / (p1 + p2 + p3). - Mostrar el promedio con 2 decimales.
- Probar con calificaciones 7, 8 y 9, y pesos 1, 2 y 3.
Ejercicio 14
Enunciado: El siguiente programa tiene errores de sintaxis. Identificarlos y corregirlos.
#include <stdio.h>
int main() {
int x = 5
float y = 3.5;
printf("%d %f", x, y);
return 0;
}
Tareas:
- Encontrar todos los errores de sintaxis.
- Escribir una versión corregida del programa.
- Compilar y ejecutar la versión corregida para verificar el resultado.
Ejercicio 15
Enunciado: El siguiente programa intenta calcular un resultado decimal, pero no lo hace correctamente.
#include <stdio.h>
int main() {
int a = 10;
int b = 3;
float resultado = a / b;
printf("%f\n", resultado);
return 0;
}
Tareas:
- Explicar por qué el resultado no es 3.33 como se esperaría.
- Modificar el programa para obtener un resultado decimal correcto.
- Probar con otros valores de
ayb.
Ejercicio 16
Enunciado: El siguiente programa compila, pero muestra un valor no confiable.
#include <stdio.h>
int main() {
int edad;
printf("Edad: %d\n", edad);
return 0;
}
Tareas:
- Explicar por qué el valor mostrado no es confiable.
- Modificar el programa para usar una variable
edadcorrectamente inicializada o leída desde teclado. - Probar la versión corregida.
Ejercicio 17
Enunciado: Escribir un programa que lea un carácter e imprima:
- el carácter ingresado,
- su código ASCII,
- y el carácter siguiente en la tabla ASCII.
Tareas:
- Leer un
charconscanf. - Mostrar el carácter con
%c. - Mostrar su código con
%d. - Calcular y mostrar el carácter siguiente usando una expresión aritmética simple.
- Probar con
A,my5.
Ejercicio 18
Enunciado: Analizar cómo cambia el resultado de una expresión según el uso de paréntesis.
Se consideran las expresiones:
resultado1 = a + b * c;
resultado2 = (a + b) * c;
resultado3 = a + (b * c);
Tareas:
- Tomar
a = 2,b = 3,c = 4y calcular a mano los tres resultados. - Explicar por qué
resultado1yresultado3coinciden. - Escribir un programa en C que muestre los tres resultados.
- Probar con otro conjunto de valores.
Recursos
Para Practicar
Bibliografía
- “El lenguaje de programación C” - Kernighan & Ritchie (Capítulo 2)
- “Cómo programar en C/C++” - Deitel & Deitel