Ejercicios y prácticas resuletas sobre PROGRAMACIÓN AVANZADA EN C Copyright (c) 2008 Víctor Sánchez Sánchez.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy ofthe license is included in the section entitled “GNU Free Documentation License”.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANYWARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
La documentación y los programas quedan licenciados bajo las licencias GFDL y GPL.
Versión 1.0 (301108) Autor:Víctor Sánchez2
Web: www.victorsanchez2.com
Jabber: [email protected]
Se recomienda utilizar el compilador gcc y el sistema operativo GNU/Linux. En la carrera vais a tener que utilizarlo infinidad de veces, así que mejor comenzar ahora. Es el mejor compilador que existe y está arropado por la infinidad de programas de gran calidad del mundo GNU/Linux. Para la carrera podéisutilizar Anjuta para editar los programas y el DDD para corregir vuestros bugs.
PRÁCTICA 1:
El objetivo de esta práctica es afianzar ciertos conceptos básicos de la programación en lenguaje C:
Bucles y tablas.
Entrada y salida de datos.
Paso de argumentos a un programa.
Manejo de archivos.
Funciones.
Uso de memoria dinámica.
EJERCICIOSEscribir un programa (es decir una función main) que pida por teclado una serie de números enteros, los almacene en una tabla estática y posteriormente escriba por pantalla todos los números introducidos indicando además cual es el mayor y el menor. Lo primero que debe hacer el programa es preguntar al usuario cuantos números se van a introducir y comprobar que dicha cantidad es menor que ladimensión de la tabla. Para dicha dimensión debe definirse una constante (por ejemplo MAX_DIMENSION) a la cual se puede asignar un valor razonable (por ejemplo, 100).
Funciones C a utilizar:
scanf: para leer números introducidos por el teclado.
printf: para imprimir por pantalla.
Ejemplo de ejecución: lo que se vería por pantalla debe ser algo así como
Introduce la cantidad denúmeros:
3
Introduce los números:
5
7
2
Los números introducidos son:
5
7
2
El mayor es el 7.
{text:soft-page-break} El menor es el 2.
/*
Autor: Victor Sanchez2
Web: http://www.victorsanchez2.com
Correo: [email protected]
/
include include include define OK 1 define ERR -10001 define MAX_DIM 100 intenteros[MAX_DIM]; / Array para guardar los enteros /
int num_total;
int lectura(void);
int sacarpantalla(int max, int min, int num_total);
int calcular(int max, int min, int total);
int es_digito(char caracter[]);
int main()
{
int menor; / Numero menor /
int mayor; / Numero mayor /
if (lectura() == ERR)
{
printf(“Error al leer el numero de terminos.n”);
return ERR;
}if (calcular(&mayor, &menor, num_total) == ERR)
{
printf(“Error al intentar calcular el mayor y el menor”);
return ERR;
}
if (sacarpantalla(mayor, menor, num_total) == ERR)
{
printf(“Error al mostrar por pantalla.n”);
}
return OK;
}
/*
Funcion: int lectura(int *total)
IN: Toma una variable tipo int.
OUT: Devuelve OK si se ha leido…