Académique Documents
Professionnel Documents
Culture Documents
Ingeniera en Informtica
Programacin I
*/
/* programa principal
int main (void){
/* Carga la pila hasta que se llene o ingrese un cero */
printf("ingrese un nmero distinto a 0: ");
scanf("%d",&dato);
while(dato!=0 && !pilallena()){
apilar();
printf("ingrese un nmero distinto a 0: ");
scanf("%d",&dato);
}
/* Muestra la pila, perdiendo todos los
*/
/* elementos que estaban cargados en ella */
printf("Datos cargados en la pila\n");
while(!pilavacia()) {
printf("%d\n", primeropila());
desapilar();
*/
}
/* ------------------------------------------------------------- */
/*
Implementacin de una cola circular esttica
*/
/* ------------------------------------------------------------- */
#include <stdio.h>
#define TAM 5
/* Variables globales
*/
int dato;
/* elemento a ingresar en la pila
*/
int cola [TAM]; /* vector donde se almacena los elem.de la cola */
int *poner=cola, /* direccin del elemento a poner
*/
*sacar=cola; /* direccin del prximo elemento a sacar
*/
/* prototipos de las funciones
void acolar
(void);
void desacolar (void);
int colavacia (void);
int colallena (void);
int primerocola(void);
*/
/* programa principal
int main (void){
/* Carga la cola hasta que se llene o ingrese un cero */
printf("Ingrese un nmero distinto a 0: ");
scanf("%d",&dato);
*/
2. Realizar una funcin que determine si una matriz cuadrada de dimensin N es simtrica con
respecto a su diagonal principal.
3. Realice una funcin devuelva verdadero si todas sus columnas de una matriz son palndromos.
Ejemplos:
1221233423341221
1221233233331111
4. Dada una matriz de 5x5 de nmeros enteros, ordenar en forma ascendente cada una de sus filas.
5. Realizar 9 funciones que generen las matrices detalladas a continuacin:
4000030000200
001
1111222233334
444
0001600800400
2000
12340123001200
01
1234123412341
234
4000340023401
234
010230400506
7080
1234567891011121
3141516
123412131451116
15610987
6. Hacer una funcin que cargue una matriz con nmeros al azar entre 0 y 999, la cual representa la
lluvia mensual cada del ao 1995 al 2008. Las filas representan los aos y las columnas
correponden a los 12 meses del ao.
7. Dada una matriz cargada utilizando la funcin del ejercicio anterior, realizar funciones para:
a) Almacenar en un vector la lluvia promedio caida en cada uno de los meses
b) Almacenar en un vector la lluvia promedio caida durante cada uno de los aos
c) Mostrar los resultados obtenidos en los puntos a y b
8. Dadas dos matrices cuadradas A y B de dimensin NxN, obtener una matriz C de dimensin NxN,
que contenga el producto de las dos primeras, sabiendo que:
n
C (i , k ) : A(i , j ) * B ( j , k )
j 1
472348237388539055823012
8237388539055823012
6. Hacer una funcin strNcpy() que permita extraer una sub-cadena, indicando la posicin inicial y la
cantidad de caracteres. Ejemplo, dada la secuencia: El nmero de telfono es 4356-7890.
extraer la sub-cadena que comienza en la posicin 26, la cantidad de 9 caracteres.
En los siguientes ejercicios utilice funciones de biblioteca para codificar las funciones solicitadas:
7. Hacer una funcin que permita insertar una sub-cadena en una cadena a partir de una posicin
dada.
8. Hacer una funcin que permita eliminar una sub-cadena a partir de una posicin y un tamao
dados.
9. Hacer una funcin que permita convertir nmeros enteros entre 0 y 999 a palabras. Para ello se
recibe como parmetros el nmero y una cadena. En qu cambiara su programa si el rango de
valores fuese diferente?
10. Escribir una funcin strright(<cadena>,<n>) que permita obtener una subcadena de caracteres
con los ltimos <n> caracteres de la cadena pasada como parmetro. La funcin no har nada si
el parmetro <n> es menor que cero o mayor que la longitud de la cadena.
Ejemplo:
CODIGO
10000
10001
.....
NOMBRE
TERRAMICINA
CARBOPLAT
............
CANTIDAD EN STOCK
xxxx
yyyy
....
grabarMatriz() permite grabar una matriz, tal que en un rengln se encuentren los valores
reales de toda una fila
leerMatriz() permite cargar una matriz desde el archivo generado por la funcin anterior
grabarMatriz() permite grabar una matriz, tal que los valores estan separados por comas (,)
leerMatriz() permite cargar una matriz desde el generado por la funcin anterior
5. Utilizar el Block de notas o cvualquier otro editor para crear un archivo de texto que contenga los
datos de una matriz rala (matriz con ms del 75 % de sus celdas sin valor definido) con el
siguiente formato: (fila;columna;valor). Luego escribir una funcin cargarMatriz() que permita leer
el archivo mencionado y cargarlo en una matriz de M x N enteros, teniendo en cuenta que no
todas las posiciones tienen un valor asociado.
Ejemplo:
Se tiene un archivo con una matriz de 3x3 con los siguientes datos:
(0;0;5)
(1;1;8)
(2;0;66)
La matriz deber quedar cargada con los siguientes valores.
5
0
66
0
8
0
0
0
0
nmero de vuelo
das de la semana de salida (se indica con No si ese da el
no parte del aeropuerto)
ciudad de destino
hora de partida
minuto de partida
hora de llegada
minuto de llegada
empresa de aviacin
Hacer una funcin permita informar todos los vuelos que salgan lunes, martes o sbado a un
determinado destino y su horario de salida sea posterior a las 15:30. Dicho destino deber
ingresarse desde teclado (el ingreso de este puede ser total o parcial).
La pantalla deber mostrar los siguientes datos.
nmero de avin destino
hora de partida - expresada como hh:mm duracin estimada de vuelo - expresada como hh:mm aerolnea.
Se sabe que existen aviones que parten un da y arriban al da siguiente.
9. Se dispone de tres formatos diferentes de archivos de texto donde se almacenan datos de
empleados. Los formatos se indican al pi.
Hacer un programa en 'C', para cada uno de los formatos de archivos suministrados, que
permitan leer uno de los archivos y grabar los datos obtenidos en un archivo binario con la
siguiente estructura:
#define
#define
typedef
N
16
M
32
struct {
char
nombre
[N];
char
domicilio [M];
int
dd,mm, aa;
int
plazoValidez;
}Cheque;
Nota:
1
2
3
4
5
6
123456789012345678901234567890123456789012345678901234567890123
Prez Juan
Gonzlez Ana M
2. Hacer una funcin que reciba como parmetro un puntero a la cabeza de una lista simple e
invierta el orden de sus nodos, sin destruir y crear nodos nuevos y sin intercambiar la informacin
contenida en los mismos.
3. Realizar una funcin que determine si todos los elementos de dos listas son iguales (puede haber
elementos repetidos), sin destruir y crear nodos nuevos y sin intercambiar la informacin
contenida en los mismos.
4. Implementar, sobre una lista vinculada, el tipo de datos PILA, con las siguientes operaciones:
apilar(DADA, e):
apila el elemento e en la pila DADA.
desapilar (DADA):
desapila un elemento de la pila DADA.
tope(DADA):
devuelve la informacin que se encuentra en el tope de la pila DADA.
pilaVacia (DADA):
devuelve verdadero si la pila DADA est vaca, y falso en caso contrario.
inicializarPila(DADA): inicializa la pila DADA vaca.
Probar las funciones cargando y mostrando una pila de elementos enteros.
5. Implementar, sobre una lista vinculada, el tipo de datos COLA, con las siguientes operaciones:
acolar(DADA, e):
agrega el elemento e en la cola DADA.
desacolar(DADA):
retira el primer elemento de la cola DADA.
primero(DADA) :
devuelve el primer elemento de la cola DADA.
colaVacia(DADA):
devuelve verdadero si la cola DADA est vaca, y falso en caso contrario.
inicializarCola(DADA): inicializa la cola DADA vaca.
Probar las funciones cargando y mostrando una pila de elementos enteros
6. Modificar el ejercicio 1 para utilizar una lista enlazada simple construida en forma ordenada en
lugar de un vector de punteros a estructuras.
7. Modificar el ejercicio anterior para utilizar una lista doblemente enlazada construida en forma
ordenada en lugar de una lista simple.
si m = 0
si n = 0
de otro modo
Realizar un cuadro con los valores que adopta la funcin para valores de m entre 0 y 3 y de n
entre 0 y 4.
2. Dados dos parmetros de tipo entero, devolver el resultado de calcular el Mximo Comn Divisor
de dos enteros no negativos, basndose en las siguientes frmulas matemticas:
MCD(X,X) = X
MCD(X,Y) = MCD(Y,X)
Si X>Y => MCD(X,Y) = MCD(X-Y,Y).
Utilizando la funcin MCD anterior calcular el MCD de todos los elementos de una cola dada,
sabiendo que: MCD(X,Y,Z) = MCD(MCD(X,Y), Z).
3. Realizar una funcin que muestre los N primeros nmeros naturales en forma ascendente.
4. Realizar una funcin que devuelva la suma de los N primeros nmeros naturales.
5. Realizar una funcin que devuelva el producto de dos nmeros enteros, por sumas sucesivas.
6. Realizar una funcin que devuelva el resto de dos nmeros enteros, utilizando restas sucesivas.
7. Realizar una funcin que devuelva la cantidad de dgitos de un nmero entero.
8. Realizar una funcin que reciba un nmero binario, y lo devuelva convertido a base decimal.
9. Realizar una funcin que imprima los valores por filas de una matriz de NxM.
10. Realizar una funcin que sume todos los elementos de una matriz de NxM.
11. Realizar una funcin que devuelva el elemento de valor mnimo de una matriz de NxM.
12. Realizar una funcin que imprima los valores de una lista en orden inverso.
13. Realizar una funcin que devuelva la suma de todos los elementos de la lista.
14. Realizar una funcin que devuelva la cantidad de elementos que posee la lista.
15. Realizar una funcin que devuelva el elemento de valor mnimo de una lista.
16. Realizar una funcin que devuelva el nmero de nodo en que se haya un valor dado; en caso de
no encontrarlo devolver -1.
17. Realizar una funcin que permita insertar un dato al final de la lista.
18. Realizar una funcin que permita eliminar un dato de la lista.
19. Realizar una funcin que permita invertir una lista sin tener que eliminar ni generar nuevos nodos.