Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introducción al lenguaje C:
El lenguaje C fue desarrollado por Dennis Ritchie a principios de la década de 1970 en los Laboratorios
Bell. Es un lenguaje de programación de propósito general y estructurado, ampliamente utilizado en el
desarrollo de software.
C es conocido por su eficiencia, flexibilidad y portabilidad. Ha influido en la creación de otros
lenguajes de programación, como C++, C#, Java y Python.
Algunas de las características destacadas de C son su bajo nivel de abstracción, acceso directo a la
memoria, eficiente manipulación de bits, capacidad para programar a bajo nivel y su amplia gama de
aplicaciones en áreas como sistemas operativos, compiladores, aplicaciones embebidas y juegos.
Un programa en C se compone de funciones, y la función principal es main(), que sirve como punto de
inicio de la ejecución del programa.
Antes de la función main(), se pueden incluir directivas de preprocesador con la sintaxis #include, que
permiten la incorporación de bibliotecas estándar o personalizadas en el programa.
Dentro de la función main(), se declaran variables utilizando tipos de datos básicos como int (entero),
float (coma flotante), char (carácter) y void (vacío).
Las instrucciones y expresiones en C se terminan con un punto y coma (;). Las estructuras de control
como if, else, switch, while, do-while y for se utilizan para controlar el flujo de ejecución.
Además de la función main(), se pueden definir otras funciones para organizar y modularizar el código.
#include <stdio.h>
int main() {
// Declaración y asignación de variables
int num1 = 10;
int num2 = 5;
// Operaciones y expresiones
int suma = num1 + num2;
int resta = num1 - num2;
int multiplicacion = num1 * num2;
// Impresión de resultados
printf("Suma: %d\n", suma);
printf("Resta: %d\n", resta);
printf("Multiplicación: %d\n", multiplicacion);
return 0;
}
Identificador y localidad de memoria:
Palabras reservadas en C:
C cuenta con un conjunto de palabras reservadas que tienen significados especiales en el lenguaje y no
pueden ser utilizadas como identificadores. Algunas palabras reservadas comunes son int, float, char, if,
while, for, return, switch, entre otras
Aquí tienes una lista completa de las palabras reservadas en el estándar ANSI del lenguaje C:
Ten en cuenta que esta lista corresponde al estándar ANSI del lenguaje C y puede variar ligeramente en
implementaciones específicas o versiones más recientes del lenguaje.
UNIDAD 2.
Variables:
Las variables en C son espacios de memoria que se utilizan para almacenar valores. Pueden tener
diferentes tipos de datos y deben ser declaradas antes de su uso. A continuación se muestra un ejemplo
de declaración de variables en C:
int edad;
float salario;
char inicial;
Constantes:
Las constantes son valores fijos que no pueden modificarse durante la ejecución del programa. Se
declaran utilizando la palabra clave const. A continuación se muestra un ejemplo de declaración de
constantes en C:
En C, existen varios operadores aritméticos y lógicos que se utilizan para realizar cálculos y evaluar
condiciones. Algunos ejemplos son:
Precedencia de operadores:
Los operadores en C tienen una precedencia definida, lo que determina el orden en el que se evalúan
las expresiones. A continuación se muestra un ejemplo de precedencia de operadores:
Las expresiones en C combinan variables, constantes y operadores para realizar cálculos y generar
resultados. Por ejemplo:
int x = 5;
int y = 3;
int resultado = x + y * 2; // El resultado es 11, ya que la multiplicación se evalúa primero.
Sentencias:
Las sentencias en C son instrucciones que realizan una acción específica. Algunos ejemplos de
sentencias son:
Sentencia de bucle: for (int i = 0; i < 10; i++) { /* código a ejecutar en cada iteración */ }
Bloques de sentencias:
Los bloques de sentencias en C agrupan un conjunto de sentencias dentro de llaves {}. Esto permite
que varias sentencias se ejecuten en secuencia. Por ejemplo:
int x = 5;
{
int y = 3;
int resultado = x + y; // El resultado es 8.
}
En C, las funciones de entrada se utilizan para obtener datos del usuario. La función scanf() se utiliza
para leer valores desde el teclado. A continuación se muestra un ejemplo:
int edad;
printf("Ingrese su edad: ");
scanf("%d", &edad);
La función scanf() se utiliza para leer valores de entrada desde el teclado. Permite leer diferentes tipos
de datos según el formato especificado. A continuación se muestra la sintaxis general de la función
scanf():
scanf("formato", &variable);
"formato": Es una cadena de caracteres que especifica el formato de entrada esperado. Puede incluir
especificadores de formato para diferentes tipos de datos, como %d para enteros, %f para números de
punto flotante, %c para caracteres, %s para cadenas, entre otros.
Leer un entero:
int edad;
scanf("%d", &edad);
float peso;
scanf("%f", &peso);
Leer un carácter:
char inicial;
scanf(" %c", &inicial); // Se utiliza un espacio antes del especificador de formato para ignorar los
espacios en blanco.
char nombre[20];
scanf("%s", nombre); // No se utiliza el operador '&' antes del nombre del arreglo, ya que el nombre
del arreglo representa la dirección de memoria.
Es importante tener en cuenta que la función scanf() devuelve un valor entero, que indica el número de
elementos leídos con éxito. Puedes utilizar este valor para realizar verificaciones de entrada si es
necesario.
Recuerda que al utilizar la función scanf(), debes asegurarte de que los datos ingresados coincidan con
el formato especificado. De lo contrario, pueden producirse errores o comportamientos inesperados en
tu programa.
Funciones básicas de salida:
En C, las funciones de salida se utilizan para mostrar resultados al usuario. La función printf() se utiliza
para imprimir valores en la consola. A continuación se muestra un ejemplo:
La función printf() se utiliza para mostrar resultados en la salida estándar, que generalmente es la
consola. Permite imprimir valores formateados en la pantalla. A continuación se muestra la sintaxis
general de la función printf():
printf("formato", argumentos);
"formato": Es una cadena de caracteres que especifica el formato de salida deseado. Puede contener
texto literal y especificadores de formato para diferentes tipos de datos, como %d para enteros, %f para
números de punto flotante, %c para caracteres, %s para cadenas, entre otros.
argumentos: Son los valores que se van a imprimir en función de los especificadores de formato
presentes en la cadena de formato. Los argumentos se proporcionan en el orden en que aparecen en la
cadena.
Imprimir un entero:
Imprimir un carácter:
int numero = 7;
printf("El número es: %5d\n", numero); // Se reserva un ancho de campo de 5 caracteres para imprimir
el número.
Es importante tener en cuenta que los especificadores de formato deben coincidir con el tipo de datos
de los argumentos proporcionados. De lo contrario, se pueden producir errores o resultados inesperados
en la salida.
La función printf() también tiene un valor de retorno entero que indica el número de caracteres
impresos con éxito. Puedes utilizar este valor si necesitas realizar alguna verificación o cálculo
adicional.
Recuerda que al utilizar la función printf(), puedes utilizar caracteres de escape como \n para
representar un salto de línea y \t para representar una tabulación, entre otros.
UNIDAD 3.
Control secuencial:
#include <stdio.h>
int main() {
// Declaración e inicialización de variables
int a = 5;
int b = 10;
int suma;
// Realizar la operación
suma = a + b;
// Imprimir el resultado
printf("El resultado de la suma es: %d\n", suma);
return 0;
}
En este ejemplo, las instrucciones se ejecutan en secuencia. Primero se declaran e inicializan las
variables a y b, luego se realiza la operación de suma y finalmente se imprime el resultado.
Control selectivo:
El control selectivo permite tomar decisiones basadas en condiciones específicas. El flujo del programa
puede variar dependiendo de si una condición es verdadera o falsa. A continuación, se presenta un
ejemplo de control selectivo en lenguaje C utilizando la estructura de control if:
#include <stdio.h>
int main() {
// Declaración e inicialización de variables
int edad;
return 0;
}
En este ejemplo, se solicita al usuario ingresar su edad. Luego, se verifica si la edad ingresada es mayor
o igual a 18 utilizando una estructura de control if. Si la condición es verdadera, se imprime "Eres
mayor de edad". De lo contrario, se imprime "Eres menor de edad".
El control selectivo con la estructura de control switch se utiliza cuando se necesitan tomar decisiones
basadas en múltiples opciones específicas. Es especialmente útil cuando se desea comparar una
variable con múltiples valores diferentes. A continuación, se presenta un ejemplo de control selectivo
con switch en lenguaje C:
#include <stdio.h>
int main() {
// Solicitar al usuario que ingrese un número del 1 al 3
printf("Ingrese un número del 1 al 3: ");
int opcion;
scanf("%d", &opcion);
return 0;
}
En este ejemplo, se solicita al usuario ingresar un número del 1 al 3. Luego, se utiliza la estructura de
control switch para evaluar la opción ingresada. Cada caso (case) dentro del switch representa una
opción específica que se compara con el valor de opcion. Si el valor coincide con alguna de las
opciones, se ejecuta el bloque de código correspondiente. En caso de que no haya coincidencia, se
ejecuta el bloque de código del default. En este ejemplo, se imprime un mensaje dependiendo de la
opción seleccionada por el usuario.
Recuerda que cada caso dentro de un switch debe finalizar con la palabra clave break para evitar que la
ejecución continúe en los casos siguientes. Sin el break, se ejecutarían todos los casos siguientes al caso
que coincida, lo cual podría no ser deseado en la mayoría de los casos.
Control repetitivo:
El control repetitivo permite ejecutar un bloque de código varias veces. Se utilizan estructuras de
control como while, do-while y for para implementar ciclos en lenguaje C. A continuación, se presenta
un ejemplo de control repetitivo utilizando un ciclo for:
#include <stdio.h>
int main() {
// Imprimir los números del 1 al 5
for (int i = 1; i <= 5; i++) {
printf("%d ", i);
}
printf("\n");
return 0;
}
En este ejemplo, se utiliza un ciclo for para imprimir los números del 1 al 5. La variable i se inicializa
en 1, y mientras i sea menor o igual a 5, se ejecuta el bloque de código dentro del ciclo. En cada
iteración, se imprime el valor de i y luego se incrementa en 1.
Espero que esta guía de estudio te ayude a comprender los conceptos de control secuencial, control
selectivo y control repetitivo en lenguaje C. Recuerda practicar y experimentar con ejemplos
adicionales para fortalecer tus habilidades de programación. ¡Buena suerte en tu aprendizaje!
UNIDAD 4.
Declaración de funciones:
La declaración de una función en C permite al compilador conocer la firma de la función antes de que
se defina o se invoque. La declaración proporciona información sobre el nombre de la función, el tipo
de valor que devuelve y los parámetros que acepta.
Ejemplo:
Definición de funciones:
Ejemplo:
La definición de una función proporciona el código real que se ejecutará cuando se invoque la función.
El cuerpo de la función puede contener cualquier número de instrucciones válidas en C, como
operaciones aritméticas, llamadas a otras funciones, estructuras de control, etc.
Invocación de funciones:
La invocación de una función se realiza para ejecutar el conjunto de instrucciones que componen la
función.
Para invocar una función, se utiliza el nombre de la función seguido de paréntesis que contienen los
argumentos de la función (si la función acepta parámetros).
Ejemplo:
Recuerda que en C es necesario declarar una función antes de invocarla o definirla. Esto se puede hacer
colocando la declaración de la función en la parte superior del archivo o utilizando prototipos de
función al comienzo del archivo o en un archivo de encabezado (.h).
Al invocar una función, se pueden pasar los argumentos correspondientes a los parámetros de la
función. Si la función devuelve un valor, ese valor se puede asignar a una variable o utilizar
directamente en el programa.
UNIDAD 5.
Concepto de arreglo:
Un arreglo es una colección de elementos del mismo tipo de datos que se almacenan en una secuencia
contigua en la memoria. Cada elemento en el arreglo se identifica por un índice, que comienza en 0 y
se incrementa de forma consecutiva. Los arreglos son útiles para almacenar y manipular conjuntos de
datos relacionados.
Ejemplo:
Declaración de arreglo:
Para declarar un arreglo en C, se especifica el tipo de datos de los elementos y se indica el nombre del
arreglo, seguido de corchetes que contienen el tamaño del arreglo.
Ejemplo:
Inicialización de arreglo:
Los arreglos pueden inicializarse al momento de su declaración mediante una lista de valores entre
corchetes. El número de valores debe ser igual o menor que el tamaño del arreglo.
Ejemplo:
Arreglo multidimensional:
Un arreglo multidimensional es una matriz de elementos con más de una dimensión. Puede ser pensado
como una tabla con filas y columnas. La declaración y acceso a elementos en un arreglo
multidimensional se realiza utilizando índices separados por comas.
Ejemplo:
Un arreglo de caracteres (también conocido como una cadena de caracteres o string) es una secuencia
de caracteres terminada por el carácter nulo ('\0'). Los arreglos de caracteres se utilizan comúnmente
para representar texto en C.
Ejemplo:
Utilización de arreglos:
Los arreglos se utilizan para almacenar y manipular conjuntos de datos de manera eficiente. Se pueden
acceder y modificar los elementos de un arreglo utilizando índices. Los bucles, como el bucle for, son
útiles para recorrer los elementos de un arreglo.
Ejemplo:
===
int matriz[3][3] = {
{1, 2, 3}, // Primera fila
{4, 5, 6}, // Segunda fila
{7, 8, 9} // Tercera fila
};
En este ejemplo, se declara y se inicializa una matriz de enteros 3x3. Cada fila del arreglo
multidimensional se representa entre llaves {} y los elementos de cada fila se separan por comas. En
este caso, se asignan los valores del 1 al 9 a la matriz.
También es posible inicializar solo algunas filas o incluso algunos elementos de cada fila, dejando los
demás en cero o sin inicializar. Aquí tienes otro ejemplo:
int matriz[3][3] = {
{1, 2}, // Primera fila, los elementos restantes se inicializan a 0
{4, 5, 6}, // Segunda fila
{7} // Tercera fila, los elementos restantes se inicializan a 0
};
En este caso, la primera fila tiene dos elementos {1, 2}, mientras que la segunda fila tiene tres
elementos {4, 5, 6} y la tercera fila solo tiene un elemento {7}. Los demás elementos se inicializan
automáticamente a cero.
Recuerda que una vez inicializado el arreglo multidimensional, puedes acceder y modificar sus
elementos utilizando índices, de manera similar a como lo harías con un arreglo unidimensional.
int matriz[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
En este ejemplo, se declara y se inicializa una matriz de enteros 3x3. Luego, se accede al elemento en
la fila 1 y columna 2 utilizando los índices [1][2]. El valor del elemento (en este caso, 6) se guarda en
la variable elemento y se imprime en pantalla.
int matriz[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
printf("Matriz modificada:\n");
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ", matriz[i][j]);
}
printf("\n");
}
En este ejemplo, se declara y se inicializa una matriz de enteros 3x3. Luego, se modifica el elemento en
la fila 0 y columna 1 asignándole el valor 10 mediante la expresión matriz[0][1] = 10;. Después de la
modificación, se imprime la matriz completa en pantalla utilizando un bucle for anidado para recorrer
todas las filas y columnas.
Matriz modificada:
1 10 3
456
789
Recuerda que los índices comienzan en cero y se utilizan para acceder a elementos específicos en un
arreglo multidimensional. Puedes utilizar estos ejemplos como base para practicar y explorar más con
el acceso y la modificación de arreglos multidimensionales en lenguaje C.
UNIDAD 6.
Declaración de apuntadores:
Los apuntadores son variables especiales que almacenan direcciones de memoria. Para declarar un
apuntador en C, se utiliza el operador asterisco (*) antes del nombre de la variable. Por ejemplo:
Inicialización de apuntadores:
a) Inicialización a NULL: Se puede inicializar un apuntador a NULL, lo que significa que no apunta a
ninguna dirección de memoria en particular.
int *p = NULL;
Utilización de apuntadores:
Los apuntadores son muy útiles para trabajar con estructuras de datos complejas y para manipular
eficientemente el almacenamiento en memoria. A continuación se presentan algunos ejemplos de cómo
utilizar apuntadores en diferentes situaciones:
c) Aritmética de apuntadores: Los apuntadores en C también pueden ser utilizados para realizar
operaciones aritméticas, como incrementar o decrementar su valor.
Recuerda practicar regularmente y realizar ejercicios para afianzar tus conocimientos sobre
apuntadores en lenguaje C.
UNIDAD 7.
Cadenas
Las cadenas en lenguaje C son secuencias de caracteres terminadas por el carácter nulo ('\0'). Son
representadas como arreglos de caracteres y son ampliamente utilizadas para almacenar y manipular
texto.
Declaración de cadenas:
char cadena[tamaño];
Inicialización de cadenas:
Para leer una cadena desde la entrada estándar, se puede usar la función scanf o gets (considerado
obsoleto en C11). Para imprimir una cadena en la salida estándar, se utiliza la función printf o puts.
char nombre[50];
printf("Ingrese su nombre: ");
scanf("%s", nombre);
printf("Hola, %s\n", nombre);
Cuenta con una serie de funciones de biblioteca para manipular cadenas, como:
#include <string.h>
Arreglos de caracteres
Los arreglos de caracteres en C son utilizados para almacenar múltiples caracteres en una sola variable.
Pueden ser utilizados para representar cadenas de texto, pero no tienen las mismas funcionalidades que
las cadenas.
char arreglo[tamaño];
La utilización de cadenas en C implica el uso de funciones y técnicas para trabajar con cadenas de
caracteres de manera eficiente.
Es posible iterar sobre una cadena utilizando un bucle y accediendo a los elementos de la cadena
mediante su índice.
Es posible buscar la presencia de un carácter en una cadena utilizando un bucle y comparando cada
elemento de la cadena con el carácter buscado.
Recuerda practicar y experimentar con ejercicios adicionales para afianzar tus conocimientos en el
manejo de cadenas y arreglos de caracteres en lenguaje C.
UNIDAD 8.
Concepto de estructuras:
Las estructuras en lenguaje C son tipos de datos personalizados que permiten combinar diferentes tipos
de variables bajo un solo nombre. Una estructura se compone de varios campos o miembros, cada uno
con su propio tipo de dato. Esto permite agrupar información relacionada en una única entidad.
Ejemplo:
struct Persona {
char nombre[50];
int edad;
float altura;
};
Declaración de estructuras:
Para declarar una estructura en C, se utiliza la palabra clave struct, seguida del nombre de la estructura
y los campos que la componen, separados por punto y coma. La declaración de una estructura solo
define su estructura y no reserva memoria para las variables de ese tipo.
Ejemplo:
struct Persona {
char nombre[50];
int edad;
float altura;
};
Inicialización de estructuras:
Ejemplos:
Para acceder a los campos de una estructura, se utiliza el operador punto (.) seguido del nombre del
campo. Es posible asignar valores a los campos y obtenerlos para su uso en diferentes operaciones.
Ejemplos:
p2.edad += 1;
printf("Nueva edad de María: %d\n", p2.edad);
Las estructuras también se pueden utilizar en arreglos, punteros, como argumentos de funciones y en la
declaración de otras estructuras.
Ejemplo:
struct Estudiante {
struct Persona datosPersonales;
int numeroEstudiante;
};
Recuerda que practicar con ejercicios y ejemplos adicionales es fundamental para afianzar tus
conocimientos en el uso de estructuras en lenguaje C. ¡Explora y diviértete aprendiendo!