SlideShare una empresa de Scribd logo
1 de 10
Descargar para leer sin conexión
Guión de prácticas                                               Estructuras secuenciales




                       GUIÓN DE PRÁCTICAS 1:
                     ESTRUCTURAS SECUENCIALES


Introducción.
Con este guión de prácticas no se pretende enseñar el uso de un entorno de
programación, sino que vamos a aprender a programar en C (con algunos trucos de
C++) y para ello utilizaremos pequeños ejemplos y ejercicios para afianzar los
conocimientos.


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 estricto
con respecto a las mayúsculas y las minúsculas.

A continuación, realiza los siguientes pasos escribiendo en tu entorno de compilación
preferido:
    • 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 un
programa que hace NADA.

El código escrito es un esqueleto que nos servirá para ir añadiendo distintas órdenes
hasta 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 (;). Este
sí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
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 de
programación no ha cerrado la ventana de ejecución del programa para que puedas
ver los resultados.

Sin embargo, lo más común es que dicha ventana se cierre al finalizar la ejecución. Si
ese es tu caso, no te preocupes, que lo vamos a solucionar añadiendo otra línea más
al 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 su
ejecución, pulsa cualquier tecla.

Vamos a ver qué significan las distintas líneas que hemos añadido en este primer
ejemplo.

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 grandes
ventajas del lenguaje C consiste en que muchas acciones ya están implementadas
dentro de sus librerías, en secciones de código llamadas funciones, para que
nuestros programas sepan qué funciones hay dentro de cada librería, incluimos sus
cabeceras al principio del código.

Por lo tanto, incluimos 2 librerías para poder utilizar las funciones:
   •   printf  stdio.h
   •   system  stdlib.h

Las 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
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.h

Algunos entornos de programación incluyen librerías NO estándar, como por ejemplo
la librería CONIO que se utiliza en MS-DOS para manipular la pantalla (escribir texto
en zonas de la pantalla, borrar la pantalla, cambiar colores, …). Nosotros no
utilizaremos estas librerías.

Para conocer más sobre las librerías estándar (librerías ANSI) puedes consultar la
página web: http://c.conclase.net/librerias/index.php


Funciones utilizadas.
En nuestro primer programa hemos utilizado 2 funciones distintas (de distintas
librerías).

La primera es:

printf( “Hola Mundo” );

Hace referencia a una función existente en la librería STDIO, y es una función de
salida, 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 llama
PAUSE. El programa muestra el texto “Presione una tecla para continuar . . .” y espera
hasta que se pulse una tecla.




                                    Página 3 de 10
Guión de prácticas                                               Estructuras secuenciales




Un programa algo más complejo.
Vamos a continuar con un programa con algo más de complejidad. Copia el siguiente
código en el entorno de programación elegido:

#include <stdio.h>
#include <stdlib.h>

#define PI 3.14

int 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 el
programa. 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.14

Como 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 el
valor 3.14 antes de realizar la compilación.




                                     Página 4 de 10
Guión de prácticas                                                  Estructuras secuenciales


Ejercicio:

    •     Aumenta la precisión de PI cambiando su valor por el de 3.141593

Variables.
Las variables son zonas de memoria reservadas para almacenar datos. C es un
lenguaje fuertemente tipificado, por lo tanto, es necesario declarar el identificador de
las 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 2
partes 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ínea
separá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ácter

Ejercicio:

    •     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 la
entrada de datos, ya que intentamos leer y almacenar un entero dentro de la variable
real radio.

A continuación vamos a ver con más detalle las entradas y las salidas.




                                      Página 5 de 10
Guión de prácticas                                                Estructuras secuenciales


Entradas 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 la
funció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 por
referencia.

En cuanto al tipo de dato que se quiere leer, hay una letra para cada tipo. Las letras
son las siguientes:

                             Letra           Tipo de variable
                            %i, %d                   int
                              %c                   char
                              %f                   float
                            %lg, %lf              double
                              %s           cadena de caracteres

Ejercicios:

    •     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 a
escribir 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 se
va a mostrar por la pantalla:

                           "El perimetro es: %fn"

Dentro de dicha cadena indicamos dónde queremos mostrar los valores, y de qué tipo
son. En este caso, vamos a mostrar un real (%f) al final de la cadena de texto. Las
letras utilizadas para indicar los valores son las mismas que para scanf.

Por ejemplo, si queremos mostrar 2 valores por pantalla necesitaremos modificar la
instrucción printf para que quede de la siguiente manera:



                                       Página 6 de 10
Guión de prácticas                                                 Estructuras secuenciales



printf("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 (o
expresiones) 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,4

NOTA: Es muy común confundir el funcionamiento de printf y escribir mal sus
parámetros. Escribir instrucciones del tipo:

                printf("El precio es ", valor, "euros")

sólo muestra por pantalla el primer texto:

                                     El precio es

y el contenido de valor y el texto “euros” no se mostrarán, ya que en el primer
texto 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 una
operación aritmética:

                                      2*PI*radio

y guardar el resultado dentro de la variable perimetro.




                                       Página 7 de 10
Guión de prácticas                                             Estructuras secuenciales



Ejercicios:

    •   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
Guión de prácticas                                            Estructuras secuenciales




Comentarios.
Cuando tenemos mucho código es muy útil poder incluir texto que explique lo que se
está haciendo en cada parte. De esta forma, cuando vayamos a mirar un código de
otra persona (o uno que hace mucho tiempo que hicimos) podríamos comprender
rápidamente su funcionamiento. Además, los comentarios no tienen ningún efecto en
nuestra 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
Guión de prácticas                                            Estructuras secuenciales




Recuerda.
   •    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

Más contenido relacionado

La actualidad más candente

Lenguajes diapositivas
Lenguajes diapositivasLenguajes diapositivas
Lenguajes diapositivasstarduslex
 
Sintaxis en java
Sintaxis en javaSintaxis en java
Sintaxis en javapbcanessa
 
Lenguajec diapositivas
Lenguajec diapositivasLenguajec diapositivas
Lenguajec diapositivastacubomx
 
C# documento de texto junto con mapa conceptual
C# documento de texto junto con mapa conceptualC# documento de texto junto con mapa conceptual
C# documento de texto junto con mapa conceptualFernando Jose
 
Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++yesid19
 
ESTRUCTURA BASICA PARA C++
ESTRUCTURA BASICA PARA C++ESTRUCTURA BASICA PARA C++
ESTRUCTURA BASICA PARA C++Idalia Tristan
 
Lenguajesdeprogramacion c nivel1-unidad2
Lenguajesdeprogramacion c nivel1-unidad2Lenguajesdeprogramacion c nivel1-unidad2
Lenguajesdeprogramacion c nivel1-unidad2camnav
 
Introducción gambas
Introducción gambasIntroducción gambas
Introducción gambasgregoryj733
 
TIPOS DE DATOS PARA C++
TIPOS DE DATOS PARA C++TIPOS DE DATOS PARA C++
TIPOS DE DATOS PARA C++Idalia Tristan
 
Programación en ‘‘c’’ ii
Programación en ‘‘c’’ iiProgramación en ‘‘c’’ ii
Programación en ‘‘c’’ iizamand14
 

La actualidad más candente (19)

Lenguajes diapositivas
Lenguajes diapositivasLenguajes diapositivas
Lenguajes diapositivas
 
Sintaxis en java
Sintaxis en javaSintaxis en java
Sintaxis en java
 
Funciones de entrada y salida
Funciones de entrada y salidaFunciones de entrada y salida
Funciones de entrada y salida
 
Introducción
IntroducciónIntroducción
Introducción
 
Sintaxis del lenguaje c++
Sintaxis del lenguaje c++Sintaxis del lenguaje c++
Sintaxis del lenguaje c++
 
Introducción a Python
Introducción a PythonIntroducción a Python
Introducción a Python
 
Lenguajec diapositivas
Lenguajec diapositivasLenguajec diapositivas
Lenguajec diapositivas
 
Transparencias4
Transparencias4Transparencias4
Transparencias4
 
C# documento de texto junto con mapa conceptual
C# documento de texto junto con mapa conceptualC# documento de texto junto con mapa conceptual
C# documento de texto junto con mapa conceptual
 
Tutorial C
Tutorial CTutorial C
Tutorial C
 
Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++
 
ESTRUCTURA BASICA PARA C++
ESTRUCTURA BASICA PARA C++ESTRUCTURA BASICA PARA C++
ESTRUCTURA BASICA PARA C++
 
Lenguajesdeprogramacion c nivel1-unidad2
Lenguajesdeprogramacion c nivel1-unidad2Lenguajesdeprogramacion c nivel1-unidad2
Lenguajesdeprogramacion c nivel1-unidad2
 
Introducción gambas
Introducción gambasIntroducción gambas
Introducción gambas
 
Programacion c
Programacion cProgramacion c
Programacion c
 
TIPOS DE DATOS PARA C++
TIPOS DE DATOS PARA C++TIPOS DE DATOS PARA C++
TIPOS DE DATOS PARA C++
 
C++
C++C++
C++
 
Programación en ‘‘c’’ ii
Programación en ‘‘c’’ iiProgramación en ‘‘c’’ ii
Programación en ‘‘c’’ ii
 
Introducción
IntroducciónIntroducción
Introducción
 

Destacado

Nuevas fuentes alimenticias conejos
Nuevas fuentes alimenticias conejosNuevas fuentes alimenticias conejos
Nuevas fuentes alimenticias conejosNelly Pallasco
 
Print roomcolour096
Print roomcolour096Print roomcolour096
Print roomcolour096legspin
 
1.vidal vazquez natali vargas cavazos grecia estefani.actividad1.
1.vidal vazquez natali  vargas cavazos grecia estefani.actividad1.1.vidal vazquez natali  vargas cavazos grecia estefani.actividad1.
1.vidal vazquez natali vargas cavazos grecia estefani.actividad1.Nataly Vidal
 
LAPORAN KEGIATAN BEDP - WAAIDA FARM (kelompok Aditya)
LAPORAN KEGIATAN BEDP - WAAIDA FARM (kelompok Aditya)LAPORAN KEGIATAN BEDP - WAAIDA FARM (kelompok Aditya)
LAPORAN KEGIATAN BEDP - WAAIDA FARM (kelompok Aditya)Aditya Galih Utama, SP
 
8.vidal vàzquez natali.actividad8.
8.vidal vàzquez natali.actividad8.8.vidal vàzquez natali.actividad8.
8.vidal vàzquez natali.actividad8.Nataly Vidal
 
Strategic Audit (Final Draft)
Strategic Audit (Final Draft)Strategic Audit (Final Draft)
Strategic Audit (Final Draft)Yali Wen
 
Historia+de+la+evolución
Historia+de+la+evoluciónHistoria+de+la+evolución
Historia+de+la+evoluciónCArdeip
 

Destacado (12)

Nuevas fuentes alimenticias conejos
Nuevas fuentes alimenticias conejosNuevas fuentes alimenticias conejos
Nuevas fuentes alimenticias conejos
 
Seminario2
Seminario2Seminario2
Seminario2
 
Print roomcolour096
Print roomcolour096Print roomcolour096
Print roomcolour096
 
Historia+de+la+evolución cueva jhonny
Historia+de+la+evolución cueva jhonnyHistoria+de+la+evolución cueva jhonny
Historia+de+la+evolución cueva jhonny
 
1.vidal vazquez natali vargas cavazos grecia estefani.actividad1.
1.vidal vazquez natali  vargas cavazos grecia estefani.actividad1.1.vidal vazquez natali  vargas cavazos grecia estefani.actividad1.
1.vidal vazquez natali vargas cavazos grecia estefani.actividad1.
 
Resume 9A
Resume 9AResume 9A
Resume 9A
 
LAPORAN KEGIATAN BEDP - WAAIDA FARM (kelompok Aditya)
LAPORAN KEGIATAN BEDP - WAAIDA FARM (kelompok Aditya)LAPORAN KEGIATAN BEDP - WAAIDA FARM (kelompok Aditya)
LAPORAN KEGIATAN BEDP - WAAIDA FARM (kelompok Aditya)
 
8.vidal vàzquez natali.actividad8.
8.vidal vàzquez natali.actividad8.8.vidal vàzquez natali.actividad8.
8.vidal vàzquez natali.actividad8.
 
Strategic Audit (Final Draft)
Strategic Audit (Final Draft)Strategic Audit (Final Draft)
Strategic Audit (Final Draft)
 
Historia+de+la+evolución
Historia+de+la+evoluciónHistoria+de+la+evolución
Historia+de+la+evolución
 
5.who invented 2pw
5.who invented 2pw5.who invented 2pw
5.who invented 2pw
 
الدبلوم
الدبلومالدبلوم
الدبلوم
 

Similar a P01 secuencial

Introducción a La Programación En C
Introducción a La Programación En CIntroducción a La Programación En C
Introducción a La Programación En Cpainni
 
Estructura de un programa en c
Estructura de un programa en cEstructura de un programa en c
Estructura de un programa en cArmando Jori
 
Manual de Programación c/c++ Ricky Bonilla
Manual de Programación c/c++ Ricky BonillaManual de Programación c/c++ Ricky Bonilla
Manual de Programación c/c++ Ricky BonillaEstudiantes ISI_UCA
 
definiciones de c++ para el trabajo.docx
definiciones de c++ para el trabajo.docxdefiniciones de c++ para el trabajo.docx
definiciones de c++ para el trabajo.docxEscorchaNoguera
 
Programación c++forcsma
Programación c++forcsmaProgramación c++forcsma
Programación c++forcsmaCarlos Avila
 
Conociendo los Lenguajes de Programacion
Conociendo los Lenguajes de ProgramacionConociendo los Lenguajes de Programacion
Conociendo los Lenguajes de Programacionsandra gutierrez
 
Primer programa en 1
Primer programa en 1Primer programa en 1
Primer programa en 1fehrhuichapa
 
Programación c
Programación cProgramación c
Programación cvictdiazm
 
Elementos basicos de programacion
Elementos basicos de programacionElementos basicos de programacion
Elementos basicos de programacionrotflol
 
Republica bolivariana de venezuela
Republica bolivariana de venezuelaRepublica bolivariana de venezuela
Republica bolivariana de venezuelaroyimar
 
Estructuras básicas_ Conceptos básicos de programación. 10-1.pdf
Estructuras básicas_ Conceptos básicos de programación. 10-1.pdfEstructuras básicas_ Conceptos básicos de programación. 10-1.pdf
Estructuras básicas_ Conceptos básicos de programación. 10-1.pdfSofiaMoreno74
 
Curso de iniciaci_n_al_lenguaje_c_www.emugamesworld.com_
Curso de iniciaci_n_al_lenguaje_c_www.emugamesworld.com_Curso de iniciaci_n_al_lenguaje_c_www.emugamesworld.com_
Curso de iniciaci_n_al_lenguaje_c_www.emugamesworld.com_ireneromaweb
 
Curso De IniciacióN Al Lenguaje C
Curso De IniciacióN Al Lenguaje CCurso De IniciacióN Al Lenguaje C
Curso De IniciacióN Al Lenguaje Cguestbc0748
 

Similar a P01 secuencial (20)

PROGRAMACIÓN EN C
PROGRAMACIÓN EN CPROGRAMACIÓN EN C
PROGRAMACIÓN EN C
 
PROGRAMACION EN C
PROGRAMACION EN CPROGRAMACION EN C
PROGRAMACION EN C
 
Introducción a La Programación En C
Introducción a La Programación En CIntroducción a La Programación En C
Introducción a La Programación En C
 
Estructura de un programa en c
Estructura de un programa en cEstructura de un programa en c
Estructura de un programa en c
 
Manual de Programación c/c++ Ricky Bonilla
Manual de Programación c/c++ Ricky BonillaManual de Programación c/c++ Ricky Bonilla
Manual de Programación c/c++ Ricky Bonilla
 
Apuntes de c
Apuntes de cApuntes de c
Apuntes de c
 
definiciones de c++ para el trabajo.docx
definiciones de c++ para el trabajo.docxdefiniciones de c++ para el trabajo.docx
definiciones de c++ para el trabajo.docx
 
Xd1
Xd1Xd1
Xd1
 
Pascal
PascalPascal
Pascal
 
Programación c++forcsma
Programación c++forcsmaProgramación c++forcsma
Programación c++forcsma
 
Conociendo los Lenguajes de Programacion
Conociendo los Lenguajes de ProgramacionConociendo los Lenguajes de Programacion
Conociendo los Lenguajes de Programacion
 
Primer programa en 1
Primer programa en 1Primer programa en 1
Primer programa en 1
 
Programación c
Programación cProgramación c
Programación c
 
Programación c
Programación cProgramación c
Programación c
 
Elementos basicos de programacion
Elementos basicos de programacionElementos basicos de programacion
Elementos basicos de programacion
 
Republica bolivariana de venezuela
Republica bolivariana de venezuelaRepublica bolivariana de venezuela
Republica bolivariana de venezuela
 
Estructuras básicas_ Conceptos básicos de programación. 10-1.pdf
Estructuras básicas_ Conceptos básicos de programación. 10-1.pdfEstructuras básicas_ Conceptos básicos de programación. 10-1.pdf
Estructuras básicas_ Conceptos básicos de programación. 10-1.pdf
 
Curso de iniciaci_n_al_lenguaje_c_www.emugamesworld.com_
Curso de iniciaci_n_al_lenguaje_c_www.emugamesworld.com_Curso de iniciaci_n_al_lenguaje_c_www.emugamesworld.com_
Curso de iniciaci_n_al_lenguaje_c_www.emugamesworld.com_
 
Curso De IniciacióN Al Lenguaje C
Curso De IniciacióN Al Lenguaje CCurso De IniciacióN Al Lenguaje C
Curso De IniciacióN Al Lenguaje C
 
Introduccion actionscript
Introduccion actionscriptIntroduccion actionscript
Introduccion actionscript
 

P01 secuencial

  • 1. Guión de prácticas Estructuras secuenciales GUIÓN DE PRÁCTICAS 1: ESTRUCTURAS SECUENCIALES Introducción. Con este guión de prácticas no se pretende enseñar el uso de un entorno de programación, sino que vamos a aprender a programar en C (con algunos trucos de C++) y para ello utilizaremos pequeños ejemplos y ejercicios para afianzar los conocimientos. 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 estricto con respecto a las mayúsculas y las minúsculas. A continuación, realiza los siguientes pasos escribiendo en tu entorno de compilación preferido: • 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 un programa que hace NADA. El código escrito es un esqueleto que nos servirá para ir añadiendo distintas órdenes hasta 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 (;). Este sí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. 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 de programación no ha cerrado la ventana de ejecución del programa para que puedas ver los resultados. Sin embargo, lo más común es que dicha ventana se cierre al finalizar la ejecución. Si ese es tu caso, no te preocupes, que lo vamos a solucionar añadiendo otra línea más al 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 su ejecución, pulsa cualquier tecla. Vamos a ver qué significan las distintas líneas que hemos añadido en este primer ejemplo. 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 grandes ventajas del lenguaje C consiste en que muchas acciones ya están implementadas dentro de sus librerías, en secciones de código llamadas funciones, para que nuestros programas sepan qué funciones hay dentro de cada librería, incluimos sus cabeceras al principio del código. Por lo tanto, incluimos 2 librerías para poder utilizar las funciones: • printf  stdio.h • system  stdlib.h Las 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. 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.h Algunos entornos de programación incluyen librerías NO estándar, como por ejemplo la librería CONIO que se utiliza en MS-DOS para manipular la pantalla (escribir texto en zonas de la pantalla, borrar la pantalla, cambiar colores, …). Nosotros no utilizaremos estas librerías. Para conocer más sobre las librerías estándar (librerías ANSI) puedes consultar la página web: http://c.conclase.net/librerias/index.php Funciones utilizadas. En nuestro primer programa hemos utilizado 2 funciones distintas (de distintas librerías). La primera es: printf( “Hola Mundo” ); Hace referencia a una función existente en la librería STDIO, y es una función de salida, 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 llama PAUSE. El programa muestra el texto “Presione una tecla para continuar . . .” y espera hasta que se pulse una tecla. Página 3 de 10
  • 4. Guión de prácticas Estructuras secuenciales Un programa algo más complejo. Vamos a continuar con un programa con algo más de complejidad. Copia el siguiente código en el entorno de programación elegido: #include <stdio.h> #include <stdlib.h> #define PI 3.14 int 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 el programa. 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.14 Como 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 el valor 3.14 antes de realizar la compilación. Página 4 de 10
  • 5. Guión de prácticas Estructuras secuenciales Ejercicio: • Aumenta la precisión de PI cambiando su valor por el de 3.141593 Variables. Las variables son zonas de memoria reservadas para almacenar datos. C es un lenguaje fuertemente tipificado, por lo tanto, es necesario declarar el identificador de las 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 2 partes 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ínea separá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ácter Ejercicio: • 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 la entrada de datos, ya que intentamos leer y almacenar un entero dentro de la variable real radio. A continuación vamos a ver con más detalle las entradas y las salidas. Página 5 de 10
  • 6. Guión de prácticas Estructuras secuenciales Entradas 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 la funció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 por referencia. En cuanto al tipo de dato que se quiere leer, hay una letra para cada tipo. Las letras son las siguientes: Letra Tipo de variable %i, %d int %c char %f float %lg, %lf double %s cadena de caracteres Ejercicios: • 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 a escribir 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 se va a mostrar por la pantalla: "El perimetro es: %fn" Dentro de dicha cadena indicamos dónde queremos mostrar los valores, y de qué tipo son. En este caso, vamos a mostrar un real (%f) al final de la cadena de texto. Las letras utilizadas para indicar los valores son las mismas que para scanf. Por ejemplo, si queremos mostrar 2 valores por pantalla necesitaremos modificar la instrucción printf para que quede de la siguiente manera: Página 6 de 10
  • 7. Guión de prácticas Estructuras secuenciales printf("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 (o expresiones) 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,4 NOTA: Es muy común confundir el funcionamiento de printf y escribir mal sus parámetros. Escribir instrucciones del tipo: printf("El precio es ", valor, "euros") sólo muestra por pantalla el primer texto: El precio es y el contenido de valor y el texto “euros” no se mostrarán, ya que en el primer texto 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 una operación aritmética: 2*PI*radio y guardar el resultado dentro de la variable perimetro. Página 7 de 10
  • 8. Guión de prácticas Estructuras secuenciales Ejercicios: • 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. Guión de prácticas Estructuras secuenciales Comentarios. Cuando tenemos mucho código es muy útil poder incluir texto que explique lo que se está haciendo en cada parte. De esta forma, cuando vayamos a mirar un código de otra persona (o uno que hace mucho tiempo que hicimos) podríamos comprender rápidamente su funcionamiento. Además, los comentarios no tienen ningún efecto en nuestra 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. Guión de prácticas Estructuras secuenciales Recuerda. • 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