Sunteți pe pagina 1din 6

Fundamentos de la Informtica

Primero de Ingeniera Tcnica Industrial


Mecnica, Qumica, Electricidad y Electrnica
Departamento de Tecnologas de la Informacin

PRCTICA 3.PRIMEROS PROGRAMAS EN C.


1. De dnde venimos, a dnde vamos, y qu queremos conseguir.
A estas alturas de curso usted ya debe saber qu pasos tiene que seguir para resolver un
problema computable. Recuerde:
1. Analizar el problema.
2. Encontrar un algoritmo que lo resuelva.
3. Especificar ese algoritmo utilizando alguna tcnica formal: pseudocdigo o diagrama de
flujo.
4. Implementar el algoritmo especificado en un lenguaje determinado. En nuestro caso en
el lenguaje C.
Tambin debe entender ya plenamente que un ordenador slo entiende unos y ceros y que es
imprescindible la utilizacin de un compilador (o un intrprete) que nos permita traducir el
lenguaje de Alto Nivel en el cual implementamos nuestro algoritmo a un lenguaje entendible
por el ordenador.
El paso siguiente en su andadura para aprender a resolver determinados problemas mediante el
uso de un ordenador es aprender un lenguaje de programacin concreto mediante el cual
podamos escribir nuestros programas, es decir, aprender a programar.
A la hora de aprender a programar es necesario que entienda que debe aprender tres cosas
distintas:
1. Por un lado, deber aprender una serie de conceptos nuevos que no ha visto hasta
ahora en su formacin tcnica (como son los conceptos de tipo, sentencias de
control, etc.) y que por tanto necesitar de un esfuerzo importante para asimilarlos.
2. Adems de aprender conceptos nuevos, deber aprender la sintaxis de un lenguaje
de programacin. Aprender la sintaxis de un lenguaje de programacin es como
aprender cualquier otro idioma (ingls, italiano, etc.), usted necesita conocer qu
palabras existen en el lenguaje, qu significan y cmo se pueden combinar.
3. Y por ltimo necesita conocer las opciones del entorno de programacin que
utilizar para escribir programas, sobre todo aquella parte del entorno que le permite
depurar el cdigo de un programa, es decir, que le ayuda a encontrar los fallos.
Podemos decir que esto no ha hecho ms que empezar. A partir de esta prctica usted aprender
la sintaxis del lenguaje C, pero nunca olvide que el fin de esta asignatura no es aprender a
escribir programas en C (que es una condicin sine qua non) sino que la funcin de esta
asignatura en su aprendizaje como tcnico es aprender una serie de conceptos de programacin
(1) y aplicarlos con un lenguaje concreto (2) utilizando una herramienta determinada (3).
Una vez centrada nuestra evolucin y aclarada nuestra finalidad, veamos lo que trataremos en
esta prctica.

Fundamentos de la Informtica
Primero de Ingeniera Tcnica Industrial
Mecnica, Qumica, Electricidad y Electrnica
Departamento de Tecnologas de la Informacin

2. Introduccin a la prctica 3.
En esta prctica comprobar si ha entendido plenamente los conceptos vistos en el Tema 4 de
teora, de modo que antes de asistir a las clases de prcticas o de realizar los ejercicios que se
proponen debera repasar dicho tema, siguiendo las tres vertientes antes apuntadas: nuevos
conceptos, nuevas funciones del lenguaje C y nuevos caractersticas del entorno.

3. Conceptos nuevos
Los conceptos nuevos introducidos son:
1)
2)
3)
4)
5)
6)

Variables y constantes
Tipos de datos
Mdulos o funciones.
Tipos de funciones (definidas por el usuario o predefinidas)
Biblioteca de funciones
Expresiones y operadores

4. Lenguaje C
Las nuevas caractersticas de C que ha aprendido necesita saber para la realizacin de esta
prctica son:
1)
2)
3)
4)
5)
6)
7)
8)
9)
10)
11)
12)
13)

Existencia de palabras reservadas


Cmo crear un identificador de variable o constante en C
Cmo crear y manejar variables
Cmo crear y manejar constantes
Qu tipos de datos existen en C
Qu calificadores de tipos de datos existen en C
Problemas de conversin de tipos en expresiones y asignaciones en C
Qu operadores existen en C y su precedencia
Significado de la funcin main( )
Significado y uso de los ficheros de cabeceras en C, en particular stdio.h
Cmo introducir comentarios en un programa
Funciones de entrada: getch( ), getche( ), gets( ) y printf( ).
Funciones de salida: putch( ), putchar( ), puts( ), scanf( ).

5. Entorno Dev-C++.
Obviamente en las clases de teora no recibir nueva informacin sobre el entorno de
programacin, excepto casos excepcionales. En cualquier caso, aconsejamos que investigue las
opciones de depuracin de Dev-C++, bien a travs de la ayuda que ofrece el propio entorno, o
bien mediante un libro, o a travs de la Web como por ejemplo:
http://c.conclase.net/devcpp.php?art=depurar.
Eso le ayudar a ejecutar el programa paso a paso y ver el contenido de las variables durante la
ejecucin del programa, lo que le ayudar a entender los nuevos conceptos.

Fundamentos de la Informtica
Primero de Ingeniera Tcnica Industrial
Mecnica, Qumica, Electricidad y Electrnica
Departamento de Tecnologas de la Informacin

6. Ejercicios propuestos
Con todo lo que ha visto en el Tema 4 de teora, usted ya puede comenzar a hacer programas en
C. A continuacin le ofrecemos una serie de ejercicios que debera usted intentar hacer:
1) Realizar un programa que pida dos nmeros enteros por teclado y a continuacin
calcule su suma, su diferencia, su producto y su cociente y los muestre por pantalla
2) Realizar un programa que halle la longitud, la superficie y el volumen de la
circunferencia. El programa deber pedir el radio de la circunferencia. Frmulas:
Longitud = 2 * PI * R; Superficie = PI * R2 ; Volumen = 4 * PI * R3 / 3.
3) Realizar un programa que pida el ao de nacimiento del usuario y el ao actual y
calcule el nmero de das que lleva viviendo (puede suponer que cada ao tiene 365
das, y que no existen los aos bisiestos).
4) Determine cules de los siguientes identificadores son vlidos. Si son invlidos
explique por qu (prubelos en el Dev-C++ si tiene dudas):
a) registro 1
b) 1registro1
c) archivo_3
d) float
e) $impuesto
f) _nombre
g) nombre A
h) 123_opcion
i) Belen
j) Resultado_total
i) N_pasaje3
j) Float

5) A continuacin se muestra la seccin de declaracin de variables de un


programa mal escrito en C. Explique cada una de las lneas que componen el
siguiente programa con fallos (para explicar cada lnea, imagine que el
programa no tiene fallos):
#include <stdio.h>
#define PI = 3.1415
#define EDAD 34
//Funcin principal
int main (void)
{
/*Ejemplo de un programa en C*/
int a;
Int b,c=10,d;
short int edad = 39;
long int habitantes = 123421; millas = 42341;
unsigned char A;
char f = w, opcion = S, nombre = edo;
char b = 93;
char sexo = M;
float pi = 3.1416;
double ganancias;
return 0;
}

Este programa contiene 5 fallos. Encuntrelos y explique qu es lo que ocurre. Para


asegurarse comprubelo de manera prctica, compilndolo con el Dev-C++.

Fundamentos de la Informtica
Primero de Ingeniera Tcnica Industrial
Mecnica, Qumica, Electricidad y Electrnica
Departamento de Tecnologas de la Informacin

6) Indique los valores de las variables num1,num2 y num3 en cada una de las lneas de
la funcin principal del siguiente programa. Responda a la pregunta que se formula
en el comentario del programa.
#include <stdio.h>
#define PI 3.1416
//Funcin principal
int main (void )
{
//Declaracin de variables
int num1 = 10;
int num2, num3;
//Sentencias del programa
num2 = 23 ;
/*Pregunta: Cunto vale num3 en este momento? */
num3 = num1 + num2;
num1 = num1 + num3;
num2 = 3 + num2 ;
num3= 0;
num1= PI + num2 + num3 + 1;
return 0;
}

Si tiene algn tipo de dudas codifique el programa, complelo, ejectelo y utilice la


instruccin printf( ) para averiguar el valor de cada variable en cada lnea.
7) Corrija el siguiente programa. Para salir de dudas, intente compilarlo.
main ( ) /* Este programa es perfecto
{
// Declaracin de variables
vacas, patas int;
//Programa principal
printf (Cuntas patas has contado? \n);
scanf (%c %c, patas);
vacas = patas / 4;
printf (Me parece que debe haber %d vacas |n, &vacas);
getch ( );
}

8) Qu imprimira este programa? Asegrese de ello compilndolo.


#include <stdio.h>
#include <conio.h>
int main (void )
{
int num = 0;
printf (%i \n, ++num);
printf (%i \n, num++);
printf (%i \n, num--);
printf (%i \n, num);
getch ( );
return 0;
}

Fundamentos de la Informtica
Primero de Ingeniera Tcnica Industrial
Mecnica, Qumica, Electricidad y Electrnica
Departamento de Tecnologas de la Informacin

9) Escriba un programa que lea cinco notas de exmenes por teclado y calcule la nota
media obtenida. Los datos de entrada deben leerse en la misma lnea y el resultado
deber mostrarse por pantalla
10) Realice un programa que pida una cantidad en pesetas y devuelva su equivalente en
dlares americanos y en euros. Nota: Utilice constantes para guardar el valor
cambio en pesetas del dlar y del euro.
11) Realice un programa que calcule el rea del tringulo, siguiendo el diagrama de
flujo que se muestra a continuacin:

Base

Altura

Area = (Base * Altura) / 2

Area
7. Conocimientos mnimos
Despus de haber realizado esta prctica usted debera responder sin dilacin a las siguientes
preguntas. Si no es as es que no ha aprendido lo suficiente, de modo que deber repasar algunos
conceptos.

Qu es un programa? Qu es un lenguaje de programacin?


Qu diferencias existen entre: Lenguaje C, Compilador de C y Entorno Integrado de
Desarrollo Dev-C++
Qu diferencia existe entre una constante y una variable.
Formas de definir una constante en C. Ponga ejemplos.
Qu es un identificador? y un tipo de datos? Indique cuntos tipos de datos existen en
C y por qu se caracteriza cada uno. Ponga ejemplos
Qu es una declaracin de variable. Qu informacin se especifica en una declaracin
de variable? Cmo se declara una variable en C? Ponga ejemplos.
Qu es una palabra clave en C? Ponga ejemplos. Puede un identificador en C llamarse
igual que una palabra clave?
Qu es una expresin? Cules son sus componentes?
Es obligatorio inicializar las variables con algn valor cuando se definen? y las
constantes?
Se pueden utilizar variables en un programa en C sin haberlas declarado previamente?
Dnde deben ser declaradas las variables? Se puede declarar ms de una variable en
una misma declaracin? En caso afirmativo indicar qu deben cumplir dichas variables.
Qu es una sentencia de asignacin. Para qu sirve?

Fundamentos de la Informtica
Primero de Ingeniera Tcnica Industrial
Mecnica, Qumica, Electricidad y Electrnica
Departamento de Tecnologas de la Informacin

Qu es un cualificador de tipo? Para que sirve? Enumere los cualificadores existentes


en C y explique su significado.
Cmo se determina el tipo de una expresin aritmtica cuando los operandos son de
tipos diferentes? Ejemplo: Dada una variable entera a y otra flotante f de qu tipo sera
a + f. Explicar qu ocurrira en el ejemplo. Explicar que ocurrira de forma genrica
fuese cual fuese los tipos de las variables a y f.
Cmo funciona la conversin de tipos cuando en una sentencia de asignacin se
intenta almacenar en una variable una expresin que no es de su tipo? Ejemplo: Dada
una variable entera a y otra flotante f inicializada con valor 5.24 cmo funciona la
conversin de tipos en expresiones como a = f ? Qu valor se almacena en a?
Explicar que ocurrira en el ejemplo. Explicar que ocurrira de forma genrica fuese
cual fuese los tipos de las variables a y f.
Cmo se puede cambiar el valor de una expresin a un tipo de datos diferentes?
Cmo se llama a esto?
Qu es una biblioteca, referida a un leguaje de programacin?
Qu se entiende por biblioteca estndar de C?
Por qu si todas las instrucciones en C acaban en punto y coma (;), la instruccin
#define no lo lleva?
Averige para qu sirve la opcin del Dev-C++:
- Depurar Aadir Watch
Cree un programa sencillo donde se use un par de variables e introduzca el nombre de la
variable en la ventana Depurar: qu ocurre? Para qu sirve esa ventana? Qu utilidad
cree usted que puede darle?
Pruebe, con la ventana Depurar visible, a situarse sobre el cdigo del programa e ir
pulsando la tecla F7 qu ocurre? Fjese en la ventana Depurar.
Qu valor tiene una variable en C inicialmente en el momento de crearla? (Puede
averiguar esta pregunta usando el Dev-C++, basndose en lo visto en las preguntas
anteriores)
La funcin system(cls) es un funcin predefinida que nos permite borrar la pantalla
ha probado a llamar a esta funcin antes de crear las variables?, qu ocurre?, y si la
llama justo despus de la ltima declaracin de variables qu ocurre? por qu? (Puede
averiguar esta pregunta usando el Dev-C++)
Cundo utiliza la directiva #define para crear una constante: es necesario utilizar el
smbolo de igual (=) para asignarle un valor a la constante? (Puede averiguar la
respuesta a esta pregunta usando el Dev-C++)
Para qu sirve el operador &
Para qu sirve la funcin scanf( )
Qu ocurre cuando en una funcin scanf( ) no precedemos a las variables donde
guardaremos los valores que se lean por teclado del operador &. Pruebe un par de
ejemplo (con y sin &) utilizando la ventana Depurar y la tecla F7.

8. La Frase....
Su computadora, su compilador y la ayuda de su entorno son buenos maestros. Si no est
seguro de cmo funciona una caracterstica de C, escriba un programa de muestra con dichas
caractersticas, compile y ejecute el programa, y vea qu es lo que ocurre.
H.M. Deitel & P.J. Deitel.
Practicas sanas de programacin.
Cmo programar en C/C++.

S-ar putea să vă placă și