Guión de prácticas                                               Estructuras secuenciales                       GUIÓN DE P...
Guión de prácticas                                                  Estructuras secuenciales¿Es ese tu resultado? o por el...
Guión de prácticas                                             Estructuras secuenciales   •    STDLIB: Librería con funcio...
Guión de prácticas                                               Estructuras secuencialesUn programa algo más complejo.Vam...
Guión de prácticas                                                  Estructuras secuencialesEjercicio:    •     Aumenta la...
Guión de prácticas                                                Estructuras secuencialesEntradas y salidas básicas.Nuest...
Guión de prácticas                                                 Estructuras secuencialesprintf("El perimetro para el ra...
Guión de prácticas                                             Estructuras secuencialesEjercicios:    •   Modifica el códi...
Guión de prácticas                                            Estructuras secuencialesComentarios.Cuando tenemos mucho cód...
Guión de prácticas                                            Estructuras secuencialesRecuerda.   •    El lenguaje C es mu...
Upcoming SlideShare
Loading in …5
×

P01 secuencial

454 views
403 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
454
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

P01 secuencial

  1. 1. Guión de prácticas Estructuras secuenciales GUIÓN DE PRÁCTICAS 1: ESTRUCTURAS SECUENCIALESIntroducción.Con este guión de prácticas no se pretende enseñar el uso de un entorno deprogramación, sino que vamos a aprender a programar en C (con algunos trucos deC++) y para ello utilizaremos pequeños ejemplos y ejercicios para afianzar losconocimientos.El primer programa.Vamos a realizar nuestro primer programa, por lo tanto escribe el siguiente código:int main( void ){}NOTA: Escribe el texto tal cual aparece aquí, puesto que el lenguaje C es muy estrictocon respecto a las mayúsculas y las minúsculas.A continuación, realiza los siguientes pasos escribiendo en tu entorno de compilaciónpreferido: • Guarda el código escrito en un fichero con el nombre de ejemplo1.cpp • Compila el archivo para obtener un programa ejecutable. • Ejecuta el programa obtenido en el paso anterior.Si has realizado todos los pasos correctamente podrás comprobar que has escrito unprograma que hace NADA.El código escrito es un esqueleto que nos servirá para ir añadiendo distintas órdeneshasta obtener un programa totalmente funcional.Vamos a añadir unas líneas al código escrito hasta el momento.#include <stdio.h>int main( void ){ printf( “Hola Mundo” );}NOTA: Observa que al final de la instrucción printf hay un punto y coma (;). Estesímbolo es muy importante y nos indica dónde finaliza la orden.Compila y ejecuta este código. El resultado de ejecutar este programa debería ser: Hola Mundo_ Página 1 de 10
  2. 2. Guión de prácticas Estructuras secuenciales¿Es ese tu resultado? o por el contrario, ¿tu programa no hace nada?.Si has podido ver el mensaje, estás de suerte: Lo más seguro es que tu entorno deprogramación no ha cerrado la ventana de ejecución del programa para que puedasver los resultados.Sin embargo, lo más común es que dicha ventana se cierre al finalizar la ejecución. Siese es tu caso, no te preocupes, que lo vamos a solucionar añadiendo otra línea másal código.#include <stdio.h>#include <stdlib.h>int main( void ){ printf(“Hola Mundo”); system(“PAUSE”);}Ahora compila y ejecuta, verás el siguiente mensaje en pantalla: Hola Mundo Presione una tecla para continuar . . . _Puedes ver el mensaje porque el programa aún no ha finalizado. Para terminar suejecución, pulsa cualquier tecla.Vamos a ver qué significan las distintas líneas que hemos añadido en este primerejemplo.Librerías.Las dos primeras líneas de nuestro código son:#include <stdio.h>#include <stdlib.h>Ambas hacen referencia a las cabeceras de unas librerías. Una de las grandesventajas del lenguaje C consiste en que muchas acciones ya están implementadasdentro de sus librerías, en secciones de código llamadas funciones, para quenuestros programas sepan qué funciones hay dentro de cada librería, incluimos suscabeceras al principio del código.Por lo tanto, incluimos 2 librerías para poder utilizar las funciones: • printf  stdio.h • system  stdlib.hLas librerías estándar más utilizadas son las siguientes: • STDIO: Librería con funciones de entrada y salida estándar. El fichero cabecera es stdio.h (es frecuente confundir el nombre de esta librería añadiendo una U, por lo que hay que prestar atención para NO ESCRIBIR studio.h) Página 2 de 10
  3. 3. Guión de prácticas Estructuras secuenciales • STDLIB: Librería con funciones de uso general. La cabecera es stdlib.h • MATH: Librería con funciones matemáticas. La cabecera es math.hAlgunos entornos de programación incluyen librerías NO estándar, como por ejemplola librería CONIO que se utiliza en MS-DOS para manipular la pantalla (escribir textoen zonas de la pantalla, borrar la pantalla, cambiar colores, …). Nosotros noutilizaremos estas librerías.Para conocer más sobre las librerías estándar (librerías ANSI) puedes consultar lapágina web: http://c.conclase.net/librerias/index.phpFunciones utilizadas.En nuestro primer programa hemos utilizado 2 funciones distintas (de distintaslibrerías).La primera es:printf( “Hola Mundo” );Hace referencia a una función existente en la librería STDIO, y es una función desalida, ya que muestra por pantalla el mensaje incluido entre comillas.Ejercicios: • Cambia el mensaje “Hola Mundo” entre comillas por el siguiente texto: “Bienvenidon”. • Cambia el mensaje que se muestra por uno personalizado.La segunda es una función genérica:system(“PAUSE”);Esta función ejecuta un programa existente en nuestro sistema operativo que se llamaPAUSE. El programa muestra el texto “Presione una tecla para continuar . . .” y esperahasta que se pulse una tecla. Página 3 de 10
  4. 4. Guión de prácticas Estructuras secuencialesUn programa algo más complejo.Vamos a continuar con un programa con algo más de complejidad. Copia el siguientecódigo en el entorno de programación elegido:#include <stdio.h>#include <stdlib.h>#define PI 3.14int main( void ){ int radio; float perimetro; printf( "Introduzca el radio de una circunferencia: " ); scanf("%i", &radio); perimetro = 2*PI*radio; printf( "El perimetro es: %fn", perimetro); system("PAUSE");}Guarda el código con el nombre ejemplo2.cpp, a continuación, compila y ejecuta elprograma. Cuando pida el radio introduce el valor 5.Si todo está correcto, en la pantalla veremos lo siguiente: Introduzca el radio de una circunferencia: 5 El perimetro es: 31.400000 Presione una tecla para continuar . . .Vamos a ver qué significan los nuevos elementos que hemos introducido en el código.Constantes.En nuestro programa hemos declarado una constante con la siguiente línea:#define PI 3.14Como puedes comprobar tiene 3 partes separadas por espacios: 1. La palabra reservada #define que indica que se va definir una constante (o macro). Esta palabra hay que escribirla siempre en minúscula. 2. El nombre de la constante, en este caso PI. Se suele escribir en mayúscula para aclarar visualmente que se trata de una constante. 3. El valor de la contaste, en este caso 3.14.En realidad, para C esto es una macro, es decir, la palabra PI será sustituida por elvalor 3.14 antes de realizar la compilación. Página 4 de 10
  5. 5. Guión de prácticas Estructuras secuencialesEjercicio: • Aumenta la precisión de PI cambiando su valor por el de 3.141593Variables.Las variables son zonas de memoria reservadas para almacenar datos. C es unlenguaje fuertemente tipificado, por lo tanto, es necesario declarar el identificador delas variables y su tipo antes de utilizarlas.En nuestro programa hemos declarado 2 variables: int radio; float perimetro;Observa que cada declaración termina con punto y coma, y están compuestas de 2partes separadas por espacios: 1. El tipo de datos que se almacenará (en el primer caso un entero y en el segundo un real - float). 2. El nombre (o identificador) que deseamos asignar a la variable para poder referenciarla.Se pueden declarar varios identificadores del mismo tipo, en una misma líneaseparándolos con comas, de la siguiente manera: int radio, edad, numero;Los tipos más sencillos de variables son: Declaración en C Tipo de dato int Entero float Real (aprox. 6 dígitos de precisión) double Real (aprox. 10 dígitos de precisión) char CarácterEjercicio: • Cambia el tipo de la variable radio para poder introducir valores reales y une las 2 declaraciones en una sola línea. Compila y ejecuta el programa. ¿Funciona correctamente?.Si has realizado la modificación del ejercicio, comprobarás que el programa sí compila,pero no funciona correctamente, ya que los valores mostrados son erróneos.El problema NO ESTÁ EN LA DECLARACIÓN. El problema se encuentra en laentrada de datos, ya que intentamos leer y almacenar un entero dentro de la variablereal radio.A continuación vamos a ver con más detalle las entradas y las salidas. Página 5 de 10
  6. 6. Guión de prácticas Estructuras secuencialesEntradas y salidas básicas.Nuestro programa es capaz de leer un valor por teclado y almacenarlo en una variable.A esto se le llama operación de entrada de datos y se realiza con la siguiente función: scanf("%i", &radio);Esta función pertenece a la librería STDIO y está formada por varias partes: Nombre de la función: scanf( … ); Parámetros, que en este caso son dos: 1. Tipo de dato que se quiere leer, en este ejemplo un entero: "%i". 2. Variable donde se almacena el valor: &radio.NOTA: El nombre de la variable va antecedido por el símbolo &, para indicarle a lafunción scanf que modifique el contenido de dicha variable. Si se omite ese símbolo,la función scanf leerá el valor pero no lo almacenará. A esto se le llama paso porreferencia.En cuanto al tipo de dato que se quiere leer, hay una letra para cada tipo. Las letrasson las siguientes: Letra Tipo de variable %i, %d int %c char %f float %lg, %lf double %s cadena de caracteresEjercicios: • Cambia la función scanf para que pueda leer un real y lo almacene en la variable radio (que tras los cambios realizados antes, debe ser también real). ¿Qué ocurre ahora?.Además de esta entrada de datos, tenemos una salida de datos algo diferente aescribir un simple mensaje por pantalla. La línea de código en concreto es: printf( "El perimetro es: %fn", perimetro);Al igual que scanf , la función printf tiene varios parámetros (en este caso dos).El primero de ellos es totalmente distinto a los demás, ya que nos indica qué texto seva a mostrar por la pantalla: "El perimetro es: %fn"Dentro de dicha cadena indicamos dónde queremos mostrar los valores, y de qué tiposon. En este caso, vamos a mostrar un real (%f) al final de la cadena de texto. Lasletras utilizadas para indicar los valores son las mismas que para scanf.Por ejemplo, si queremos mostrar 2 valores por pantalla necesitaremos modificar lainstrucción printf para que quede de la siguiente manera: Página 6 de 10
  7. 7. Guión de prácticas Estructuras secuencialesprintf("El perimetro para el radio %f es: %fn", radio, perimetro);En este caso el texto indica que se van a mostrar 2 números reales: "El perimetro para el radio %f es: %fn"El primer %f será sustituido por el valor de radio, mientras que el segundo %f serásustituido por el valor almacenado en la variable perimetro.En resumen, después de la cadena de texto deben ponerse tantas variables (oexpresiones) como elementos del estilo %tipo tengamos en dicha cadena.Ejercicio: • Cambia el programa para que muestre varias veces el resultado pero de distintas formas. Es decir, si el radio vale 5, el perímetro 31,4 y PI vale 3.14 deberá mostrar las siguientes líneas: radio = 5, perimetro = 31.4 2 * 3.14 * 5 = 31.4 El perimetro es de 31.4, para un radio de 5. Para PI = 3.14 y radio = 5 el perimetro es 31,4NOTA: Es muy común confundir el funcionamiento de printf y escribir mal susparámetros. Escribir instrucciones del tipo: printf("El precio es ", valor, "euros")sólo muestra por pantalla el primer texto: El precio esy el contenido de valor y el texto “euros” no se mostrarán, ya que en el primertexto no hay elementos de la forma %tipo para ser sustituidos.Asignación y operadores básicos.La última línea de código que nos queda por describir es: perimetro = 2*PI*radio;Esta es la más simple de todas las líneas, ya que lo único que hace es realizar unaoperación aritmética: 2*PI*radioy guardar el resultado dentro de la variable perimetro. Página 7 de 10
  8. 8. Guión de prácticas Estructuras secuencialesEjercicios: • Modifica el código del cálculo del perímetro de una circunferencia para que, además, calcule el área del círculo, teniendo en cuenta que el área se calcula multiplicando PI por el radio al cuadrado. • Añade también el cálculo del área de una esfera del mismo radio: área esfera = 4 * PI * radio2 • Calcula también el volumen de dicha esfera: volumen esfera = 4/3 * PI * radio3 Página 8 de 10
  9. 9. Guión de prácticas Estructuras secuencialesComentarios.Cuando tenemos mucho código es muy útil poder incluir texto que explique lo que seestá haciendo en cada parte. De esta forma, cuando vayamos a mirar un código deotra persona (o uno que hace mucho tiempo que hicimos) podríamos comprenderrápidamente su funcionamiento. Además, los comentarios no tienen ningún efecto ennuestra aplicación, ya que son ignorados por el compilador.Observa cómo quedaría el código del cálculo del perímetro comentado.#include <stdio.h>#include <stdlib.h>#define PI 3.14/* Programa principal */int main( void ){ int radio; //ENTRADA: radio de la circunferencia float perimetro; //SALIDA: Perímetro que vamos a calcular /* Leer los valores de entrada. */ printf( "Introduzca el radio de una circunferencia: " ); scanf("%i", &radio); /* Calcular el perímetro */ perimetro = 2*PI*radio; /* Mostrar el resultado */ printf( "El perimetro es: %fn", perimetro); system("PAUSE");}Como puedes observar hay 2 formas de realizar los comentarios: • Indicando dónde empieza y dónde acaba con /* … */. Este tipo de comentarios no se pueden anidar. • Indicando dónde empieza con // . Este tipo de comentarios acaba al final de la línea.Ejercicio: • Añade comentarios a tu programa que calcula el perímetro y el área de una circunferencia, y el volumen y el área de una esfera. Página 9 de 10
  10. 10. Guión de prácticas Estructuras secuencialesRecuerda. • El lenguaje C es muy estricto, por lo que hay que tener cuidado con las mayúsculas y las minúsculas. • La gran mayoría de las órdenes finalizan con un punto y coma (;) y es fácil olvidarse de él. • La librería de entrada y salida estándar es stdio.h . • En la función scanf, no olvides poner el símbolo & antes del nombre de la variable. Si lo omites, no se almacenará el valor leído. • La primera cadena de texto de printf es un patrón donde se indica dónde colocar los valores a mostrar, utilizando elementos de la forma %tipo. Poner los valores seguidos, simplemente separados por comas, no es suficiente para que se muestren todos los valores. • Los comentarios de tipo /* … */ no se pueden anidar. Ejercicios finales. 1. Diseñar un algoritmo que lea un valor entero y otro real, y muestre los resultados de sumar, restar, dividir y multiplicar dichos números. 2. Queremos conocer los datos estadísticos de una asignatura, por lo tanto, necesitamos un algoritmo que lea el número de suspensos, aprobados, notables y sobresalientes de una asignatura, y nos devuelva: a. El porcentaje de alumnos que han superado la asignatura. b. El porcentaje de suspensos, aprobados, notables y sobresalientes. 3. Un departamento de climatología ha realizado recientemente su conversión al sistema métrico. Diseñar un algoritmo para realizar las siguientes conversiones: a. Leer la temperatura dada en la escala Celsius e imprimir en su equivalente Fahrenheit (la fórmula de conversión es “F=9/5 ºC+32”). b. Leer la cantidad de agua en pulgadas e imprimir su equivalente en milímetros (25.5 mm = 1 pulgada). 4. Abajo se muestra el menú de un restaurante de bocadillos. Diseñar un algoritmo capaz de leer el número de unidades consumidas de cada alimento ordenado y calcular la cuenta total. a. Bocadillo de jamón: 2,50 € b. Bocadillo de queso: 2,00 € c. Patatas fritas: 1,00 € d. Refresco: 1,75 € e. Cerveza: 1,25 € Página 10 de 10

×