Beruflich Dokumente
Kultur Dokumente
1. OBJETIVOS
- Comprender los conceptos de arreglos de una y dos dimensiones.
- Comprender los conceptos de asignacin de memoria dinmica.
- Comprender los conceptos bsicos del manejo de cadena de caracteres en lenguaje C.
- Aplicar vectores y matrices en la resolucin de ejercicios y problemas.
- Aplicar los fundamentos de asignacin de memoria dinmica para crear vectores y
matrices.
2. MARCO TERICO
Los arreglos son estructuras de datos consistentes en un conjunto de datos del mismo tipo. Los
arreglos tienen un tamao que es la cantidad de objetos del mismo tipo que pueden almacenar.
Los arreglos son entidades estticas debido a que se declaran de un cierto tamao y conservan
este todo a lo largo de la ejecucin del programa en el cual fue declarado.
Sintaxis: <tipo><variable>[ M ]
Los arreglos se caracterizan por: Almacenan los elementos en posiciones contiguas de memoria
Tienen un mismo nombre de variable que representa a todos los elementos. Para hacer referencia
a esos elementos es necesario utilizar un ndice que especifica el lugar que ocupa cada elemento
dentro del archivo.
Estas estructuras de datos son adecuadas para situaciones en las que el acceso a los datos se
realice de forma aleatoria e impredecible. Por el contrario, si los elementos pueden estar
ordenados y se va a utilizar acceso secuencial sera ms adecuado utilizar una lista, ya que esta
estructura puede cambiar de tamao fcilmente durante la ejecucin de un programa.
Los arreglos bidimensionales son tablas de valores, cada elemento de un arreglo bidimensional
est simultneamente en una fila y en una columna, a los arreglos bidimensionales se les
llama matrices.
En un arreglo bidimensional, cada elemento tiene una posicin que se identifica mediante dos su
fila y su columna. Al igual que los arreglos de una dimensin, los arreglos bidimensionales tambin
pueden ser creados usando la funcin array, pero pasando como argumentos una lista con las filas
de la matriz, Todas las filas deben ser del mismo largo, o si no ocurre un error de valor:
Los arreglos tienen un atributo llamado shape, que es una tupla con los tamaos de cada
dimensin. En el ejemplo, a es un arreglo de dos dimensiones que tiene tres filas y cuatro
columnas:
a.shape: (3, 4)
Los arreglos tambin tienen otro atributo llamado size que indica cuntos elementos tiene el
arreglo:
a.size: 12
Las funciones zeros y ones tambin sirven para crear arreglos bidimensionales. En vez de pasarles
como argumento un entero, hay que entregarles una tupla con las cantidades de filas y columnas
que tendr la matriz:
zeros((3,2))
array([[ 0. 0.]
[ 0. 0.]
[ 0. 0.]])
ones((2, 3))
Lo mismo se cumple para muchas otras funciones que crean arreglos la funcin random por
ejemplo:
from numpy.random import random
random((5, 2))
[ 0.37728842, 0.72704627],
[ 0.56237317, 0.3491332 ],
[ 0.35710483, 0.44033758],
[ 0.04107107, 0.47408363]])
Para trabajar con estas funciones, al comienzo del programa hay que escribir:
#include <string.h>
Ejemplo:
#include <stdio.h>
#include <string.h>
main()
Para eso existe la librera que hoy vamos a ver, ctype.h. sta librera se encarga de todo lo
relacionado a modificar y operar con caracteres, sin duda alguna muy til a la hora de representar
en pantalla y comprobar informacin.
Los variables y vectores en C ocupan un tamao prefijado, no pueden variarlo durante la ejecucin
del programa. Por medio de punteros se puede reservar o liberar memoria dinmicamente, es
decir, asignacin dinmica de memoria C se refiere a la realizacin de la asignacin de memoria
dinmica en el Lenguaje de programacin C a travs de un grupo de funciones en la Biblioteca
estndar de C , es decir, malloc , realloc , calloc y free .
La funcin malloc sirve para solicitar un bloque de memoria del tamao suministrado como
parmetro. Devuelve un puntero a la zona de memoria concedida:
El tamao se especifica en bytes. Se garantiza que la zona de memoria concedida no est ocupada
por ninguna otra variable ni otra zona devuelta por malloc. Si malloc es incapaz de conceder el
bloque (no hay memoria suficiente), devuelve un puntero nulo.
La funcin calloc funciona de modo similar a malloc, pero adems de reservar memoria, inicializa a
0 la memoria reservada. Se usa comnmente para arreglos y matrices. Est definida de esta forma:
scanf("%d", &n);
if (vect1 == NULL) {
Cuando se utiliza la funcin free, una zona de memoria reservada con malloc ya no se necesita,
puede ser liberada mediante la funcin free.
ptr es un puntero de cualquier tipo que apunta a un rea de memoria reservada previamente con
malloc.
Si ptr apunta a una zona de memoria indebida, los efectos pueden ser desastrosos, igual que si se
libera dos veces la misma zona.
Donde ptr es el puntero a redimensionar, y size el nuevo tamao, en bytes, que tendr. Si el
puntero que se le pasa tiene el valor nulo, esta funcin acta como malloc. Si la reasignacin no se
pudo hacer con xito, devuelve un puntero nulo, dejando intacto el puntero que se pasa por
parmetro. Al usar realloc, se debera usar un puntero temporal. De lo contrario, podramos tener
una fuga de memoria, si es que ocurriera un error en realloc.
Cuando se redimensiona la memoria con realloc, si el nuevo tamao (parmetro size) es mayor
que el anterior, se conservan todos los valores originales, quedando los bytes restantes sin
inicializar. Si el nuevo tamao es menor, se conservan los valores de los primeros size bytes. Los
restantes tambin se dejan intactos, pero no son parte del bloque regresado por la funcin.
if (tmp_ptr == NULL) {
else {
ptr = tmp_ptr;
3. DESARROLLO
Codificar cada uno de los ejercicios del archivo EjerciciosLab5.pdf, cuyo nmero se
encuentra encerrado en crculo rojo.
NO INCLUIR EL CDIGO AQU.
Subir al aula Virtual un archivo .zip que incluya:
- Este formato completando las secciones 1, 2, 4 y 5.
- El cdigo fuente que resuelve cada ejercicio. Puede ser un solo proyecto con men de
opciones y con funciones que resuelvan cada planteamiento; , un proyecto para cada
ejercicio con men de opciones (de forma opcional) y con funciones que resuelvan el
planteamiento.
4. CONCLUSIONES
5. RECOMENDACIONES
6. BIBLIOGRAFA