Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CLASE 1
Algoritmo: Conjunto ordenado y finito de instrucciones de pasos, que nos permite resolver
un problema o tomar una decisión.
Lenguaje: Conjunto de instrucciones, con signos y reglas, que la computadora interpreta y
ejecuta directamente.
CLASE 2
Tipos básicos de variables
Char(1 B): Caracteres, texto, letras.
Int(2 B): Números enteros.
Float(4 B): Números decimales.
Double(8 B): También está dedicada a números decimales pero con un rango más amplio.
Al nombrar una variable, no se puede empezar el nombre con un número, ni se puede usar
la Ñ.
Modificadores de tipo
Signed: Con signo por defecto, es decir, si es un número, toma valores negativos.
Unsigned: Sin signo, si es un número arranca en 0 y no toma valores negativos.
Long: Largo. Se utiliza para alargar el rango de una variable numérica.
Short: Corto. Se utiliza para acortar el rango de una variable numérica.
Calificador Const: Especifica el valor de una variable sin que esta sea modificada durante
el programa.
Visibilidad: Esta depende del lugar donde se declare la variable. Si se declara fuera
de la función main, tiene visibilidad global, es decir que existe para todo el programa. En
cambio, si esta se declara dentro de alguna función, existirá únicamente dentro de la
misma.
CLASE 3
El operador dirección &: Obtiene la dirección en memoria de cualquier variable.
ARRAYS: Es una colección de variables o valores (llamados elementos) de cierto
tipo almacenados de forma continua en una fila de determinada cantidad de casillas.
Este posee un índice de las posiciones de los elementos, comenzando en 0.
Los arrays de chars, se llaman cadenas. Ej: char Cadena [número de elementos] = “Texto”;
1
CLASE 4
INSTRUCCIONES
CLASE 5
Funciones: Son bloques con instrucciones individuales con un fin específico, se le
puede asignar un nombre, y recibe y entrega parámetros. Deben ser declaradas con su tipo
de datos y sus parámetros. Ej: int fSumar(int valora, int valorb).
Segmentación: Dividir los bloques del código utilizando llaves {} para que sea más
manejable y estructurado.
Encapsulación: Es la ocultación del código utilizado detrás de cada módulo de
función o librería. Esto se divide en dos ficheros: Los que tienen extensión .h, que declaran
las funciones y tipos de datos, y las de extensión .c, que contienen todo el código de cada
una de las funciones declaradas en el .h.
CLASE 6
OPERADORES DE DIRECCIONES
* Lee el valor de la variable apuntada.
& Proporciona la dirección de la variable.
. Permite acceder a un miembro de un dato agregado de un Struct.
2
-> Permite acceder a un miembro de un dato agregado de un puntero.
Puntero: Es el tipo de variable que almacena una dirección de memoria. En dicha dirección
se almacena el valor de la variable apuntada.
sizeof: Muestra el tamaño en Bytes de cualquier variable, de los tipos básicos de variables,
o de una estructura. sizeof (int); sizeof(vVariable); sizeof(Struct Elemento);
CLASE 7
ARREGLOS
Los arreglos o arrays pueden tener tantas dimensiones como se requieran, aunque cuando
se le suman dimensiones a los arrays, ya estamos hablando de matrices. Estas se forman
por la sucesión de los datos en cada celda en forma de múltiples filas y columnas.
Ej: int Array[Número de columnas] Por default la fila va a ser una sola
int Matriz[filas][columnas]
CLASE 8
ORDENAMIENTO DE ARREGLOS
3
vez.
Otros: Rápido (quick sort), Fusión (merge), Montículo (heap), Shell, etc.
CLASE 8
Recursividad: Una función recursiva directa es una función que se llama a sí misma
directa o indirectamente desde el propio cuerpo de la función. La recursión indirecta implica
más de una función. Por ejemplo, la existencia de dos funciones: fUno() y fDos().
Suponga que main() llama a fUno(), y a continuación fUno() llama a fDos(). En alguna
parte del proceso, fDos() llama a fUno(). Es una segunda llamada a fUno()
Esta acción es recursión indirecta, pero es recursiva, ya que fUno() ha sido llamada dos
veces, sin retornar nunca a su llamadora. Un proceso recursivo debe tener una condición
de terminación, ya que si no puede continuar indefinidamente.
CLASE 9
BÚSQUEDA EN LISTAS
Estructuras
Es una colección de uno o más tipos de datos dentro de un mismo “Array”, como dentro de
un array no se pueden almacenar variables de distintos tipos, en un struct sí. Cada
componente del struct se llama miembro. Un struct es un nuevo tipo de dato definido por el
programador. Ej: struct Miestructura {
char A = ‘a’;
int F= 190;
float MiNum = 10.5;
};
4
Acceso a la estructura: Para acceder a algún miembro de alguna estructura se utiliza el
operador punto “ . “ o el operador puntero “ -> “.
Almacenamiento en un estructura: <nombre del struct> . <miembro> = <dato>;
Los datos que se almacenan en un miembro dado deben ser del mismo tipo que el tipo
declarado para ese miembro.
CLASE 10
Estructuras anidadas: Son structs dentro de otros structs. Ahorra tiempo de escritura de
programas que utilizan estructuras similares. Se definen los miembros structs comunes una
sola vez en su propia estructura, y después se usa en otras estructuras.
Uniones
Son similares a las estructuras por cómo agrupan los datos, pero nos almacenan de forma
diferente, ya que en vez de almacenarlos uno detrás de otro en orden, se almacenan
solapando entre sí en la misma posición. Ej:
union nombre {
tipo 1 miembro1;
tipo 2 miembro2;
5
...
};
La memoria reservada para una unión será igual al ancho de su variable más grande. Por
esto el peso de la unión es igual al de su variable más grande también. Es útil para ahorrar
memoria en programas donde no se utilicen todas las variables al mismo tiempo.
Para referirse a los miembros de una unión, se utiliza el operador punto (.), o bien el
operador -> si se hace desde un puntero a unión.
Enum: Es un tipo definido con un nombre y asociado a los números enteros, por ejemplo:
Enero=1, Febrero=2, Marzo=3, etc.
Typedef: Un typedef permite a un programador crear un sinónimo de un tipo de dato
definido por el usuario o de un tipo ya existente. La ventaja de typedef es que permite dar
nombres de tipos datos más acordes o resumidos con lo que representan en una
determinada aplicación. Ej: struct Base_de_datos.Nombres
CLASE 11
Break y Continue: La sentencia continue hace que cuando se ejecuta, se salten todas las
sentencias que vienen a continuación, y comienza una nueva iteración si se cumple la
condición del bucle. Sin embargo el Break saltea todas las demás instrucciones y sale del
bucle.
EXTERNAL: variable que se declara en otro archivo, debemos usar la palabra "extern" para
indicarle al compilador que tiene que acceder a ella desde afuera de nuestro programa,
asimismo podemos usarlas y/o modificarlas. Un claro ejemplo de esto son las librerías ".h"
REGISTER: esta palabra le sugiere al compilador que la variable sea almacenada en uno
de los registros de la cpu. Por ejemplo la familia de cpus 80x86 no posee muchos registros
de reserva, por lo que el compilador puede decidir ignorar el register. La variable register
debe ser local a una función, no puede ser nunca global. Si no hay registros suficientes C
ignora "register" y crea una variable auto local.
STATIC: las variables estáticas no pierden su valor cuando termina la función, y en
consecuencia retiene sus valores entre llamadas a una función. A diferencia de las v
locales, las estáticas se inicializan una sola vez.
AUTO: son aquellas variables que se declaran dentro de una función (locales), es decir que
se les asigna espacio en memoria automáticamente a la entrada de la función, y se les
libera al salir de ella. Por ende podemos decir que las variables locales no existen en
memoria hasta que se ejecuta la función. La keyword "auto" es opcional.