Está en la página 1de 4

Coleccin de ejercicios (1)

Para todos los ejercicios realice un programa utilizando el Lenguaje de Programacin C,


que permita dar solucin a cada requerimiento planteado. El estudiante deber construir el
cdigo utilizando el prototipo de la funcin en el caso en que se especifique. NOTA: No
deber cambiar ni el nombre que se le ha dado a cada funcin ni el conjunto de parmetros
que la definen.

1. INTRODUCCIN
Los ejercicios de esta seccin corresponden a ejercicios que el estudiante debe ser capaz de
realizar en las primeras semanas de iniciacin del curso (programas iniciales).
Para esto el estudiante debe conocer: los operadores bsicos en el Lenguaje, estructuras de
control anidadas y la utilizacin de funciones.
1) Dados dos nmeros enteros, determine:
a. cul es el mximo? int maximo (int x, int y);
b. cul es el mnimo? int minimo (int x, int y);
2) Se desea calcular el resultado final de una base x elevada a un cierta potencia y.
Escriba un programa que muestre por pantalla el resultado.
void potencia (int x, int y);
3) Determine las races reales de una ecuacin cuadrtica. Los coeficientes de la
ecuacin sern ledos por pantalla.
void raicesCuadra( float a, float b, float c);
4) Calcular la media aritmtica de las notas pertenecientes a n materias de un curso.
Existen m cursos. Para cada curso deber indicar la media obtenida.
void leerNotasCurso(float notas[]);
float Media_Materias_Curso(float notas[]);

5) Escriba un programa que determine si un nmero entero ledo por teclado, es:
a. par:
int esPar(int x);
b. primo: int esPrimo(int x);
6) Dado un nmero (leido por teclado), que representa los segundos que ha invertido
una persona en hacer un exmen, determinar cuantas horas, minutos y segundos ha
invertido. Imprima el resultado por pantalla.
void tiempo(int seg);

7) Dado un nmero entero ledo por pantalla, muestre cada uno de los dgitos del
nmero en orden inverso. Ej: Si el nmero es 324, se debe mostrar 4, 2, 3.
void Digit (int num);

Qu modificaciones tendra que hacer en la funcin para que pudiese obtener los
digitos del nmero en otra base distinta al decimal?
8) Implementar una funcin, que devuelva el dgito N-simo de un nmero num,
teniendo en cuenta que el dgito de posicin 0 es el dgito mas a la derecha del
nmero (el menos significativo en valor posicional). La funcin devolver -1 si el
nmero no tiene el digito que se pide.
int digitPos(int pos, int num);

2. VECTORES
En esta seccin se presentan los ejercicios de vectores separados en dos bloques: vectores
(nmeros) o cadenas (caracteres).
Para esto el estudiante debe conocer: declaracin y tipos de vectores, manejo de vectores
mediante una variable ndice de tipo entera, paso de vectores a funciones, lectura de
cadenas y tratamiento de cadenas.
2.1. Ejercicios de Vectores de Enteros.
- Bsicos:
1) Realizad un programa que lea una serie de nmeros enteros con valores
comprendidos entre 0 y 1000, hasta que nos introduzcan un nmero entero que no
est comprendido entre esos valores. El programa debe escribir despus, los valores
entre 0 y 1000 que el usuario haba introducido. Utilizad un vector.
Ejemplo de funcionamiento:
Dame la serie con valores entre 0 y 1000
(valor fuera de rango para parar de leer)
0
30
555
1000
-1
Valores entre 0 y 1000 son:
0
30
555
1000

2) Realizad un programa que lea una serie de nmeros enteros con valores
comprendidos entre 0 y 1000 y entre -1000 y -1, hasta que nos introduzcan un
nmero entero que no est comprendido entre esos valores. El programa debe
escribir despus, los valores entre -1000 y 1000 que el usuario haba introducido.
Utilizad un vector ms grande.
3) Lo mismo que el Problema 2 pero indicando adems, cuantas veces el usuario dijo
cada valor (frecuencia).

4) Leer n nmeros enteros por teclado, adicionalmente leer dos nmeros. Determinar si
los dos nmeros forman parte de la secuencia de nmeros inicial ledas. La
secuencia de nmeros finaliza en -1.
5) Conocida una secuencia de nmeros enteros positivos finalizada en -1 (fin de
secuencia), desarrolle un programa que determine:
a. Cuntos de esos nmeros son pares?
b. Cul es el valor del nmero mximo?
c. Cul es el valor del nmero mnimo?
- Funciones:
Los vectores sern declarados con una longitud mxima nmax=50 (elementos).
Las funciones siguientes pueden, por lo genenral, utilizar dichos vectores parcialmente,
debiendo pasar como parmetro una longitud num<=nmax.
Ntese que el inters por el cual algunos enteros se pasan por referencia (con punteros)
es el de modificar su valor puesto que el vector se modifica (longitud, elementos, etc.).
6) Leer m elementos de un vector por teclado. Deber considerar que no podr superar
el mximo de elementos de vector (num).
void leer(int vect[], int num);
7) Leer elementos de un vector hasta encontrar el nmero entero a (secuencias con
marca). Deber retornar el nmero de elementos que ha ledo sin contar el entero a.
No podemos leer ms de nmax enteros.
int leerMarca(int vect[]);
8) Dado un elemento y dado un vector de enteros, realice una funcin que devuelva el
nmero de apariciones del elemento en el vector.
int veces(int valor, int vect[], int num);
9) Invertir los elementos del vector sin utilizar otro vector. Por ejemplo, el vector
formado por los enteros: 1 2 3, debe quedar 3 2 1.
void invertirOrden(int vect[], int num);
10) Buscar el elemento mximo de un vector. Adems se desea saber la posicin que
ste elemento ocupa en el vector. En caso de que exista ms de un mximo,
quedarse con el ltimo encontrado. Qu modificaciones tendra que hacer para
quedarse con el primero?.
int buscar(int *pos, int vect[], int num);
11) Insertar un elemento considerando que el vector est ordenado ascendentemente.
(Insercin en orden). LO HE RESUELTO EN CLASE IO-7.doc
int insertarOrden(int elem, int vec[]t, int *num, int *pos);
12) Insertar elementos en un vector desordenado. LO HE RESUELTO EN CLASE IO7.doc

int insertarDesorden(int elem, int vect[], int *num);


13) Eliminar un elemento dado del vector. (Buscar, luego eliminar).
void eliminar(int* elem, int vect[], int *num);
14) Qu modificaciones tendra que hacer en los ejercicios 8, 9, 10, 11, 12 y 13
suponiendo que los vectores acaban con la marca del nmero entero a (p.ej.: a=-1),
en vez de conocer el nmero exacto de elementos que contienen (num).

3. MATRICES
15) Declare una matriz de nmero reales de tamao DIMxDIM (DIM constante con
valor 25). Escribir las siguientes funciones:
a. Funcin Traspuesta: Dada una matriz devolver su traspuesta.
void traspuesta(float mat[], float matras[]);
b. Funcin Simetrica: Dada una matriz indica si la matriz es simtrica (1) o si
no lo es (0).
int simetrica(float mat[]);
c. Funcion Suma: Dadas dos matrices, calcular la suma de stas.
void sumaMat(float mat1[],float mat2[], res[]);
d. Funcion Resta: Dadas dos matrices, calcular la resta de stas. Piensa esta
respuesta utilizando el procedimiento de suma de matrices, definido
anteriormente.
e. Funcin Multiplica: Dadas dos matrices, devuelve el producto de ellas.
void multiMat(float mat1[],float mat2[], res[]);

También podría gustarte