Fundamentos del Lenguaje C. En este capítulo estudiaremos los fundamentos esenciales del lenguaje C, aquellos conceptos básicos sin los cuales no podrías escribir un programa funcional. Aprenderás cuáles son los tipos de datos primitivos disponibles —como int
, float
, char
y double
— y cómo se utilizan para representar diferentes tipos de información dentro de un programa. Veremos cómo declarar y usar variables, cómo definir constantes que no cambien durante la ejecución, y cómo utilizar operadores aritméticos, relacionales, lógicos y bit a bit para manipular datos.
También te veremos la estructura general de un programa en C, desde la declaración de funciones hasta el cuerpo principal, y te enseñaremos a comunicarte con el usuario mediante funciones estándar de entrada y salida como printf
y scanf
. Finalmente, abordaremos las buenas prácticas de estilo y la escritura de comentarios, indispensables para crear código legible, organizado y fácil de mantener. Vamos….
SanDisk Ultra Flair Pendrive 128 GB Memoria USB 3.0 (Velocidad de lectura hasta 150 MB/s, Protección con Contraseña, Carcasa de metal elegante y duradera, Plata) Negro
9,95 € (a partir de agosto 21, 2025 15:37 GMT +01:00 - Más informaciónLos precios y la disponibilidad de los productos son exactos a partir de la fecha/hora indicada y están sujetos a cambios. Cualquier información de precio y disponibilidad que se muestre en [los sitios de Amazon relevantes), según corresponda] en el momento de la compra se aplicará a la compra de este producto.)2.1 Tipos de Datos Primitivos en C
En el lenguaje C, los tipos de datos primitivos son los bloques fundamentales sobre los que se construyen todas las estructuras de datos y operaciones. Estos tipos permiten almacenar distintas clases de información como números enteros, números decimales, caracteres y valores lógicos. A continuación, explicamos los principales tipos de datos primitivos en C, con sus variantes, ejemplos y consideraciones importantes.
int
– Enteros
El tipo int
(abreviatura de integer) se utiliza para representar números enteros, es decir, sin parte decimal. Puede ser positivo, negativo o cero.
int edad = 25;
int temperatura = -3;
Modificadores de tamaño y signo:
C permite ajustar el tamaño y el signo del tipo int
mediante modificadores:
short int
(o simplementeshort
) → menor rango (habitualmente 2 bytes)long int
(olong
) → mayor rango (habitualmente 4 u 8 bytes)long long int
→ aún más rango (habitualmente 8 bytes)unsigned
→ solo números positivos, permite duplicar el rango superior
unsigned int positivos = 4000;
short int pequeño = -120;
long int grande = 300000L;
@Tip. El tamaño en bytes de estos tipos puede variar según la arquitectura del sistema (32 o 64 bits). Puedes usar la función
sizeof()
para comprobar el tamaño.
float
– Números Reales (con punto decimal)
El tipo float
se usa para representar números reales o de punto flotante. Su precisión es limitada (normalmente 6-7 cifras decimales).
float pi = 3.14159;
float temperatura = -12.5;
Se utiliza f
al final para indicar un número flotante literal:
loat x = 5.0f;
double
– Números Reales de Doble Precisión
double
es como float
, pero con mayor precisión (hasta 15-16 cifras decimales) y por tanto ocupa más memoria.
double gravedad = 9.80665;
double resultado = 1.234567891234567;
También existe long double
para aún más precisión en algunas implementaciones.
char
– Caracteres
El tipo char
sirve para representar un solo carácter, almacenado como un número entero según la tabla ASCII.
char letra = 'A';
char signo = '+';
char salto = '\n'; // carácter especial: salto de línea
Un char
también puede utilizarse para representar valores numéricos entre -128 y 127 (o de 0 a 255 si es unsigned char
).
unsigned char byte = 200;
_Bool
– Booleanos (en C99 y versiones posteriores)
En C no existía un tipo booleano nativo hasta C99. Con la inclusión de _Bool
(o bool
tras incluir <stdbool.h>
), se pueden representar valores true
y false
.
#include <stdbool.h>
bool es_valido = true;
@Tip. Internamente, false
se representa como 0 y true
como cualquier valor distinto de 0.
Tabla Resumen de Tipos Primitivos
Tipo | Descripción | Tamaño (estimado) | Rango Aproximado |
---|---|---|---|
int | Entero con signo | 4 bytes | -2,147,483,648 a 2,147,483,647 |
unsigned int | Entero sin signo | 4 bytes | 0 a 4,294,967,295 |
short | Entero corto | 2 bytes | -32,768 a 32,767 |
long | Entero largo | 4 u 8 bytes | Depende del sistema |
float | Real de precisión simple | 4 bytes | ±3.4e-38 a ±3.4e+38 |
double | Real de doble precisión | 8 bytes | ±1.7e-308 a ±1.7e+308 |
char | Carácter ASCII | 1 byte | -128 a 127 o 0 a 255 |
bool | Booleano (C99) | 1 byte | true (1), false (0) |
Buenas Prácticas
- Siempre elige el tipo más adecuado al valor que necesitas almacenar. No uses
double
si basta conint
. - Para constantes numéricas, utiliza sufijos (
L
,f
) según el tipo deseado. - Asegúrate de no exceder el rango del tipo, ya que puede causar resultados inesperados o errores.
- Usa
sizeof(tipo)
para verificar cuánto espacio ocupa un tipo de dato en tu sistema.
Ejemplo Práctico
#include <stdio.h>
int main() {
int edad = 30;
float altura = 1.75f;
char inicial = 'M';
double saldo = 12345.67;
_Bool es_estudiante = 1;
printf("Edad: %d\n", edad);
printf("Altura: %.2f\n", altura);
printf("Inicial: %c\n", inicial);
printf("Saldo: %.2lf\n", saldo);
printf("¿Es estudiante? %s\n", es_estudiante ? "Sí" : "No");
return 0;
}
2.2 Variables y Constantes en C
En cualquier lenguaje de programación, las variables y constantes son fundamentales para almacenar y manipular datos. En C, su declaración y uso está estrictamente tipado, lo que significa que debes definir el tipo de dato que contendrán desde el principio.
¿Qué es una Variable?
Una variable es un espacio reservado en memoria que se utiliza para almacenar un valor que puede cambiar durante la ejecución del programa. Cada variable tiene:
- Un nombre (identificador),
- Un tipo de dato,
- Y una dirección de memoria interna donde se guarda el valor.
Sintaxis general:
tipo nombre_variable;
O bien:
tipo nombre_variable = valor_inicial;
Ejemplos:
int edad = 25;
float peso = 68.5;
char letra = 'A';
Reglas para nombrar variables:
El nombre que asignamos a las variables deben cumplir las siguiente restricciones:
- Deben comenzar con una letra (A-Z, a-z) o guion bajo (
_
). - No pueden empezar por un número.
- No se permiten espacios ni símbolos especiales.
- No pueden tener el mismo nombre que una palabra reservada de C (
int
,return
,if
, etc.). - C distingue entre mayúsculas y minúsculas (
edad
≠Edad
).
¿Qué es una Constante?
Una constante es similar a una variable, pero su valor no puede cambiar una vez definido. Se utiliza para valores que deben permanecer fijos durante toda la ejecución del programa, como el valor de π o un límite máximo.
En C, hay dos formas comunes de declarar constantes:
– Usando #define
(directiva de preprocesador)
#define PI 3.14159
#define MAX_ESTUDIANTES 30
- Se suele escribir en mayúsculas como convención.
- No tiene tipo explícito.
- Se reemplaza directamente por el valor en tiempo de compilación.
– Usando const
const float PI = 3.14159;
const int max_edades = 100;
- Tiene un tipo de dato y ocupa espacio en memoria como una variable.
- Es más seguro que
#define
, especialmente en programas grandes o con compiladores modernos.
Ejemplo práctico:
#include <stdio.h>
#define IVA 0.21 // constante preprocesador
int main() {
const float PI = 3.14159;
int radio = 5;
float area = PI * radio * radio;
printf("El área del círculo es: %.2f\n", area);
printf("IVA actual: %.2f\n", IVA);
return 0;
}
// Salida del script:
El área del círculo es: 78.54
IVA actual: 0.21
Buenas Prácticas
- Utiliza nombres descriptivos: en lugar de
x
oy
, usaaltura
,precio
,edad
, etc. - Declara variables lo más cerca posible de donde las vayas a usar.
- Prefiere
const
sobre#define
para constantes, ya que ofrece mayor control de tipo y depuración. - Usa
#define
para valores que representan configuraciones globales o constantes de preprocesador, como tamaños de búfer o configuraciones del sistema.
@Tip. Aunque C permite declarar múltiples variables en una línea, es recomendable declarar una por línea para mayor claridad:
int a = 10, b = 20, c = 30; // válido, pero menos legible
@Tip. Las variables no inicializadas pueden contener valores basura. Siempre que sea posible, inicialízalas explícitamente.
2.3 Operadores en C (aritméticos, relacionales, lógicos, bit a bit)
Los operadores son símbolos que le indican al compilador que debe realizar una operación específica sobre uno o más operandos. En C, los operadores se agrupan en varias categorías según el tipo de operación que realizan. Aquí te explicamos las más importantes en esta etapa del curso:
Operadores Aritméticos
Estos se utilizan para realizar operaciones matemáticas básicas entre variables numéricas.
Operador | Significado | Ejemplo |
---|---|---|
+ | Suma | a + b |
- | Resta | a - b |
* | Multiplicación | a * b |
/ | División | a / b |
% | Módulo (resto) | a % b |
Nota importante: cuando se realiza una división entre enteros, el resultado también será un entero (se trunca la parte decimal). Por ejemplo,
5 / 2
da2
.
Operadores Relacionales o de Comparación
Permiten comparar valores. Se usan frecuentemente en estructuras de control como if
, while
, etc.
Operador | Significado | Ejemplo |
---|---|---|
== | Igual a | a == b |
!= | Distinto de | a != b |
< | Menor que | a < b |
> | Mayor que | a > b |
<= | Menor o igual que | a <= b |
>= | Mayor o igual que | a >= b |
Estos operadores devuelven un valor de tipo int
: 1 si la condición es verdadera y 0 si es falsa.
Operadores Lógicos
Se utilizan para combinar expresiones booleanas (condiciones verdaderas o falsas). Muy útiles en decisiones complejas.
Operador | Nombre | Ejemplo | Significado |
---|---|---|---|
&& | AND lógico | a > 0 && b < 10 | Verdadero si ambas condiciones son verdaderas |
` | ` | OR lógico | |
! | NOT lógico | !a | Verdadero si a es falso (0) |
Operadores de Asignación
Permiten asignar valores a variables.
Operador | Ejemplo | Equivalente a |
---|---|---|
= | a = 5 | Asigna 5 a a |
+= | a += 2 | a = a + 2 |
-= | a -= 2 | a = a - 2 |
*= | a *= 2 | a = a * 2 |
/= | a /= 2 | a = a / 2 |
%= | a %= 2 | a = a % 2 |
Operadores de Incremento y Decremento
Se utilizan para aumentar o disminuir en 1 el valor de una variable.
Operador | Descripción | Ejemplo |
---|---|---|
++ | Incremento en 1 | i++ o ++i |
-- | Decremento en 1 | i-- o --i |
++i
incrementa antes de usar la variable.i++
incrementa después de usarla.
Operadores de Incremento/Decremento: Prefix vs Postfix
Dentro de los operadores de Incremento/Decremente existen versiones prefix y postfix, y su uso puede tener efectos distintos en expresiones más complejas.
En C, los operadores ++
y --
se pueden usar antes o después de una variable. Esto no solo afecta la sintaxis, sino también el momento en que se realiza el cambio de valor, lo cual es muy importante a la hora de evaluar las expresiones.
Prefix (++i
o --i
)
El operador modifica el valor de la variable antes de devolverlo.
int i = 5;
int x = ++i; // i se incrementa a 6, luego x toma el valor 6
- Primero se incrementa o decrementa la variable.
- Luego, ese nuevo valor se usa en la expresión.
Usos típicos:
- Cuando necesitas usar el valor ya modificado de inmediato.
- En bucles donde el incremento previo tiene sentido lógico.
Postfix (i++
o i--
)
El operador devuelve el valor actual de la variable y luego lo modifica.
int i = 5;
int x = i++; // x toma el valor 5, y luego i se incrementa a 6
- Primero se usa el valor actual.
- Luego, la variable se incrementa o decrementa.
Usos típicos:
- Cuando necesitas usar el valor antes de cambiarlo.
- En estructuras donde el incremento debe ocurrir después de una operación (por ejemplo, recorrer arrays).
Operadores Bit a Bit (Bitwise)
Manipulan directamente los bits individuales de una variable. Son muy útiles en programación de bajo nivel (como sistemas embebidos).
Operador | Nombre | Ejemplo | Descripción |
---|---|---|---|
& | AND | a & b | Compara cada bit y devuelve 1 si ambos son 1 |
` | ` | OR | `a |
^ | XOR | a ^ b | Devuelve 1 si los bits son diferentes |
~ | NOT | ~a | Invierte los bits |
<< | Shift left | a << 1 | Desplaza bits a la izquierda |
>> | Shift right | a >> 1 | Desplaza bits a la derecha |
Estos operadores requieren un conocimiento más avanzado sobre el almacenamiento binario de datos, y los veremos más en profundidad cuando trabajemos con máscaras de bits y hardware.
Buenas Prácticas
- Usa paréntesis para agrupar operaciones complejas y evitar errores de precedencia.
- Evita abusar de operadores en una sola línea si comprometes la legibilidad.
- Familiarízate con el orden de evaluación (precedencia) de operadores para evitar errores sutiles.
1.4 Estructura general de un programa en C/C++
Todo programa escrito en C o C++ sigue una estructura básica común que permite al compilador entender qué instrucciones debe ejecutar, en qué orden, y cómo debe gestionar las funciones, variables y recursos del programa. Conocer esta estructura es fundamental antes de escribir código más complejo, ya que proporciona el esqueleto sobre el cual se construyen todos los programas.
Partes esenciales de un programa C/C++
A continuación se describen los componentes fundamentales de un programa típico:
1º Inclusión de bibliotecas
Antes de poder usar ciertas funciones (como printf
, scanf
o cout
), es necesario incluir los archivos de cabecera que las contienen.
En C:
#include <stdio.h> // Para funciones de entrada/salida
#include <stdlib.h> // Para funciones auxiliares como malloc, exit, etc.
En C++:
#include <iostream> // Para cout y cin
using namespace std; // Permite evitar escribir std::cout, std::cin, etc.
2º Función principal: main()
Es el punto de entrada del programa. El sistema operativo siempre comienza la ejecución del programa desde esta función.
int main() {
// Código a ejecutar
return 0; // Indica que el programa terminó correctamente
}
En C++,
main()
se escribe igual y también devuelve un entero (int
). La instrucciónreturn 0;
es opcional en algunos entornos modernos de C++, pero sigue siendo recomendable. Con la instrucción return indicamos el valor de salida que devolvemos al Sistema Operativo.
3º Declaración de variables
Se hace dentro de main()
o al inicio de otras funciones. Estas variables se usan para almacenar valores que el programa va a procesar.
int edad;
float altura;
char inicial;
4º Bloques de código
Los bloques se delimitan entre llaves {}
. Cada función tiene su propio bloque, y dentro puedes incluir instrucciones, condiciones, bucles, etc.
int main() {
int numero = 10;
if (numero > 0) {
printf("El número es positivo.\n");
}
return 0;
}
5º Instrucciones del programa
Dentro de main()
o cualquier otra función, se colocan las instrucciones que realiza el programa, como operaciones, llamadas a funciones, condiciones, bucles, etc.
printf("Hola, mundo\n");
6º Comentarios
Los comentarios sirven para documentar el código y no son ejecutados por el programa.
// Este es un comentario de una línea
/* Este es un
comentario de varias líneas */
Ejemplo completo en C:
Así pues la estructura de un programa en C queda de la siguiente manera:
#include <stdio.h> // Incluir biblioteca para entrada/salida
int main() { // Función principal
int edad = 25; // Declaración de variable
printf("Tienes %d años.\n", edad); // Imprimir mensaje
return 0; // Fin del programa
}
Ejemplo completo en C++:
Y el mismo programa en C++
#include <iostream> // Biblioteca de entrada/salida en C++
using namespace std;
int main() {
int edad = 25;
cout << "Tienes " << edad << " años." << endl;
return 0;
}
Consideraciones importantes a tener en cuenta:
- Cada instrucción termina con punto y coma
;
. - El compilador siempre necesita una función
main()
. - Es común declarar las funciones auxiliares antes de
main()
o proporcionar un prototipo si se declaran después.
1.5 Entrada y salida estándar en C: printf()
y scanf()
En cualquier programa es esencial poder comunicarse con el usuario: mostrarle mensajes, resultados de cálculos, pedirle datos de entrada, etc. En C, esta interacción se realiza mediante funciones de la biblioteca estándar ubicadas en <stdio.h>
(Standard Input Output Header).
Las dos funciones más importantes para esto son:
printf()
→ Para mostrar información al usuario (salida estándar).scanf()
→ Para leer información ingresada por el usuario (entrada estándar).
printf()
— Mostrar información por pantalla
La función printf()
permite imprimir texto o datos en la consola.
Sintaxis general:
printf("texto con formato", valores);
Ejemplos básicos:
printf("Hola mundo\n");
// Hola mundo
int edad = 25;
printf("Tienes %d años\n", edad);
// Tienes 25 años
Especificadores de formato
printf nos permite incluir secuencias de caracteres que indican qué tipo de dato se va a imprimir:
Especificador | Tipo de dato | Ejemplo de uso |
---|---|---|
%d | Entero (int ) | printf("%d", 10); |
%f | Coma flotante (float ) | printf("%f", 3.14); |
%.2f | float con 2 decimales | printf("%.2f", 3.1416); |
%c | Carácter (char ) | printf("%c", 'A'); |
%s | Cadena de texto | printf("%s", "Hola"); |
%u | Entero sin signo | printf("%u", 300); |
%x , %X | Número hexadecimal | printf("%x", 255); → ff |
Concatenación de valores:
Se pueden incluir multiples valores en una salida de printf, los modificadores se sustituirán por los valores correspodientes según el orden en el que se introduzcan, por tanto, hay que prestar atención a la hora de colocar dichas variables.
int edad = 20;
float altura = 1.75;
printf("Edad: %d años, Altura: %.2f m\n", edad, altura);
// Edad: 20 años, Altura: 1.75 m
scanf()
— Leer datos introducidos por el usuario
scanf()
permite capturar datos desde el teclado y guardarlos en variables.
Sintaxis general:
scanf("formato", &variable);
Es obligatorio usar el símbolo
&
(operador de dirección) para pasar la dirección de memoria de la variable, ya quescanf()
necesita modificar su valor. Realmente lo que se está indicando es la posibión de memoria de dicha variable y scanf guarda el dato en esa posición de memoria.
Ejemplos básicos:
int edad;
printf("Introduce tu edad: ");
scanf("%d", &edad);
float peso;
printf("Introduce tu peso: ");
scanf("%f", &peso);
char letra;
printf("Introduce una letra: ");
scanf(" %c", &letra); // Nota: el espacio antes de %c evita errores con caracteres pendientes del buffer
Leer múltiples variables a la vez:
scanf permite leer distintos valores y asignarlos a cada variable. Cada valor hay que introducirlo pulsando la tecla enter.
int x, y;
printf("Introduce dos números: ");
scanf("%d %d", &x, &y);
printf("Has introducido: %d y %d\n", x, y);
Consideraciones importantes
printf()
no modifica datos, solo los muestra.scanf()
necesita que las variables estén inicializadas correctamente y usa&
para acceder a su dirección.- Hay que tener cuidado con el tipo de datos, ya que usar el especificador incorrecto puede causar errores o comportamientos inesperados.
- Para
char
, se recomienda usar" %c"
(con espacio) para evitar capturar caracteres invisibles como el salto de línea (\n
).
Ejemplo completo:
#include <stdio.h>
int main() {
int edad;
float peso;
char inicial;
printf("Introduce tu edad: ");
scanf("%d", &edad);
printf("Introduce tu peso: ");
scanf("%f", &peso);
printf("Introduce la inicial de tu nombre: ");
scanf(" %c", &inicial);
printf("\nResumen de datos:\n");
printf("Edad: %d años\n", edad);
printf("Peso: %.2f kg\n", peso);
printf("Inicial: %c\n", inicial);
return 0;
}
Comentarios y convenciones de código en C
Escribir un programa funcional es solo una parte del trabajo de un buen programador. Tan importante como que un programa funcione correctamente es que sea fácil de entender, mantener y ampliar. Para lograr esto, en C (como en cualquier otro lenguaje), debemos aplicar dos prácticas esenciales:
- Comentar adecuadamente el código.
- Seguir convenciones de estilo coherentes.
1.6 Comentarios en C
Los comentarios son notas que el programador inserta en el código, pero que el compilador ignora completamente. Sirven para explicar qué hace un bloque de código, anotar ideas, advertencias o simplemente dejar recordatorios.
/* Este es un comentario
que abarca varias líneas.
Útil para explicaciones más largas. */
int edad = 25;
Tipos de comentarios
Comentario de múltiples líneas (/* ... */
)
C admite dos tipos de comentarios:
Comentario de una sola línea (//
)
// Este es un comentario de una línea
int edad = 25; // Aquí se guarda la edad
¿Cuándo comentar?
Un comentario bien usado explica el porqué, no solo el qué. Ejemplos de buenos usos:
- Al principio del archivo: describir qué hace el programa.
- Al inicio de funciones: explicar su propósito y parámetros.
- En bloques complejos: describir la lógica o la razón de alguna decisión.
- Para marcar TODOs o advertencias.
Malos usos de comentarios:
- Repetir literalmente lo que dice el código (redundante).
- Comentarios desactualizados que no reflejan el comportamiento actual.
- Abusar de comentarios innecesarios.
Convenciones de estilo
Además de los comentarios, existen reglas no obligatorias pero altamente recomendadas que ayudan a que el código sea más claro y uniforme. Estas reglas se conocen como convenciones de estilo o de codificación.
Nombres de variables
- Usa nombres significativos:
int x; // Malo: no se entiende qué representa int edadUsuario; // Bueno: nombre descriptivo
- Usa minúsculas o camelCase, según el estándar que sigas.
Identación y bloques
Un código bien indentado (es decir, con sangría coherente) es más legible.
// Malo
if(x>0){
printf("Positivo");
}else{
printf("Negativo");
}
// Bueno
if (x > 0) {
printf("Positivo");
} else {
printf("Negativo");
}
Espacios en blanco
Usa espacios para mejorar la claridad:
int suma=a+b; // Malo
int suma = a + b; // Bueno
Longitud y organización del código
- No pongas varias instrucciones en la misma línea.
- Divide el código en funciones pequeñas con tareas claras.
- Usa bloques (
{}
) incluso si no son obligatorios.
Convenciones comunes en C
- Variables:
numero
,totalSuma
,indice
,nombreUsuario
- Constantes:
#define PI 3.14159
- Funciones:
calcularPromedio()
,mostrarMenu()
- Macros y constantes: en mayúsculas separadas por guiones bajos
Ejemplo completo bien comentado y formateado
#include <stdio.h>
// Programa que calcula el cuadrado de un número
int main() {
int numero;
// Pedir al usuario que introduzca un número
printf("Introduce un número: ");
scanf("%d", &numero);
// Mostrar el cuadrado del número
printf("El cuadrado de %d es %d\n", numero, numero * numero);
return 0;
}
Aquí finaliza el capítulo, hemos creado las bases mínimas para que podamos realizar nuestros primeros programas. Vamos a practicar con unos ejercicios prácticos propuestos.
Ejercicio 1: Calcular el área de un rectángulo
Enunciado:
Escribe un programa en C que solicite al usuario la base y la altura de un rectángulo, y luego calcule y muestre el área.
Te recuerdo que el área de un rectángulo se calcula con la fórmula: área = base * altura
Enunciado:
Escribe un programa en C que solicite al usuario la base y la altura de un rectángulo, y luego calcule y muestre el área.
Te recuerdo que el área de un rectángulo se calcula con la fórmula:
área = base * altura
Código:
#include <stdio.h>
int main() {
float base, altura, area;
// Solicitar base y altura al usuario
printf("Introduce la base del rectángulo: ");
scanf("%f", &base);
printf("Introduce la altura del rectángulo: ");
scanf("%f", &altura);
// Calcular el área
area = base * altura;
// Mostrar el resultado
printf("El área del rectángulo es: %.2f\n", area);
return 0;
}
Explicación:
- Se usan variables
float
para permitir valores con decimales. scanf()
se utiliza para leer la entrada del usuario.printf()
muestra el resultado con%.2f
, que limita a 2 decimales.- Se sigue una estructura clara y se incluye un comentario para cada bloque funcional.
Ejercicio 2: Conversor de temperatura (Celsius a Fahrenheit)
Enunciado:
Crea un programa que lea una temperatura en grados Celsius y la convierta a Fahrenheit.
La fórmula de conversión es: Fahrenheit = (Celsius × 9/5) + 32
Enunciado:
Crea un programa que lea una temperatura en grados Celsius y la convierta a Fahrenheit.
La fórmula de conversión es:
Fahrenheit = (Celsius × 9/5) + 32
Código:
#include <stdio.h>
int main() {
float celsius, fahrenheit;
// Solicitar temperatura en Celsius
printf("Introduce la temperatura en grados Celsius: ");
scanf("%f", &celsius);
// Realizar la conversión
fahrenheit = (celsius * 9 / 5) + 32;
// Mostrar el resultado
printf("%.2f grados Celsius equivalen a %.2f grados Fahrenheit\n", celsius, fahrenheit);
return 0;
}
Explicación:
- Uso de variables
float
por tratarse de medidas físicas que pueden incluir decimales. - Se emplea una operación aritmética para la conversión.
- Comentarios breves aclaran cada paso.
Ejercicio 3: Uso de operadores de incremento y decremento
Enunciado:
Declara una variable entera x
con valor 10. Usa operadores de incremento y decremento (++
y --
) en forma prefix y postfix para modificarla, y muestra los resultados en cada paso.
Enunciado:
Declara una variable entera
x
con valor 10. Usa operadores de incremento y decremento (++
y --
) en forma prefix y postfix para modificarla, y muestra los resultados en cada paso.Código:
#include <stdio.h>
int main() {
int x = 10;
printf("Valor inicial: %d\n", x);
// Post-incremento: se muestra x y luego se incrementa
printf("Post-incremento (x++): %d\n", x++);
printf("Después del post-incremento: %d\n", x);
// Pre-incremento: se incrementa antes de usar
printf("Pre-incremento (++x): %d\n", ++x);
// Post-decremento
printf("Post-decremento (x--): %d\n", x--);
printf("Después del post-decremento: %d\n", x);
// Pre-decremento
printf("Pre-decremento (--x): %d\n", --x);
return 0;
}
Explicación:
- Se ilustra claramente la diferencia entre las formas prefix (
++x
) y postfix (x++
). - El valor de
x
se imprime después de cada operación para observar cómo cambia. - El código tiene comentarios y un flujo estructurado para facilitar la comprensión.
Bibliografía del tutorial de C/C++.
- C/C++. Curso de programación. Autor: Miguel Angel Acera (Editorial: Anaya Multimedia)
- C/C++. Curso de programación. Autor: Francisco José Ceballos (Editorial: RA-MA)
- Un recorrido por C++. Autor Bjarne Stroustrup (Editorial: Anaya Multimedia)
- 115 Ejercicios resueltos de programación C++. Autor Jorge Fernando Betancourt e Inma Yolanda Polanco (Editorial: RA-MA)