Está en la página 1de 6

Resumen – Primer parcial Programación I

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

Selectivas: permiten la selección de tareas alternativas en función de operaciones


lógicas. Ej: función If, If else.

Sentencia de control Switch: Se utiliza para seleccionar una entre múltiples


alternativas dadas. Que dependiendo del resultado de la operación va a ejecutar cierta cosa
dentro del rango de posibilidades que le damos. Switch (Minumero),
La palabra reservada Break hace que la ejecución de cierta parte del bloque de una función
se corte e ignore el resto de instrucciones, saltando al siguiente bloque.

ESTRUCTURAS DE CONTROL REPETITIVAS


Las variables empleadas en estos bucles deben ser inicializadas, comprobadas y
actualizadas.

While: Esta se ejecuta mientras la condición del bucle permanece verdadera


(distinto de 0), y finaliza cuando esta se hace falsa (0). Esta evalúa la condición del bucle
antes de ejecutarse.
For: Este bucle se ejecuta un número determinado de veces, y dentro de su primer
línea tiene la declaración, condición y actualización de la variable. E itera siempre que la
condición sea verdadera
Do While: Este se ejecuta por lo menos una vez, y se evalúa la condición al final de
la primera iteración. Itera siempre que la condición sea verdadera.

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);

Pasaje de parámetros en una función


Por valor: en esta se le pasa la copia de una variable o array como parámetro de forma
directa.
Por referencia: en esta se le pasa la dirección de memoria de la variable a utilizar, y si esta
se modifica, se guardará en la misma dirección que se le pasó por referencia.
En la llamada a la función: fPorReferencia (&vVariable);
En la declaración de la función: void fPorReferencia (int* vVariable)

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]

Inserción de elementos: Matriz[ i ][ j ] = X; Extracción de elemento: X = Matriz[ i ][ j ];

CLASE 8
ORDENAMIENTO DE ARREGLOS

Es el procedimiento por el cual se ordenan los elementos del array en un orden


especificado. Como orden alfabético o numérico, ascendente o descendente.

Burbuja (o burbujeo): Se recorre el arreglo del primero al último elemento


comparando de a dos elementos consecutivos, intercambiándose si no están en orden. Se
repite hasta que no se produzcan intercambios.
Selección: Se recorre el arreglo completo y se selecciona al más chico para
colocarlo en la primera celda, luego se repite el mismo procedimiento para la segunda
celda, y así consecutivamente. Entonces, se recorre el array un número de veces igual a la
cantidad de columnas, pero en cada pasada se resta un elemento.
Inserción: Se toman los elementos del primero al último, y se coloca el elemento en
el lugar correcto mediante se va avanzando, de esta forma, se recorre el arreglo una sola

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

Búsqueda Secuencial: Utilizado en listas no ordenadas. Se recorre elemento por elemento


desde la celda 0 hasta encontrar el elemento o hasta que termine el array.
Búsqueda binaria: Utilizado en arrays ordenados. En esta se divide el array en dos con el
elemento que esté en el medio, y se pregunta si este es >, < o = al elemento buscado, si es
mayor o menor se vuelve a dividir el array al medio con los elementos restantes y se vuelve
a consular la condición hasta encontrarlo.

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;
};

Declaración: ésta solamente especifica el nombre y tipo de dato de la estructura de los


datos, pero no se reserva un lugar de almacenamiento en memoria.
struct numero_complejo
{
float parte_real, parte_imaginaria;
};

Definición: en esta sí se crea un área de memoria donde almacenar las variables


declaradas según el tipo de las mismas.
struct numero_complejo PartR, PartIm;

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.

Arreglos de estructuras: Son ideales para almacenar conjuntos de datos de diferentes


tipos con formato de estructura.
Función strlen: Calcula el número de caracteres de una cadena.
Ej: strlen (Miarreglo[ i ] . titulo)
Pasaje de structs a una función: Se puede pasar un struct a una función por valor o
referencia utilizando el & antes del array. Si el arreglo es muy grande y toma tiempo su
pasaje, es mejor pasar la dirección del arreglo.

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.

También podría gustarte