Clase 4

44
Evaluación Evaluación Indique la diferencia entre un lenguaje de alto nivel Indique la diferencia entre un lenguaje de alto nivel y un lenguaje de bajo nivel Indique que es un compilador y un interprete Indique que es un compilador y un interprete Indique los pasos que se deben tener en cuenta para realizar un programa

Transcript of Clase 4

Page 1: Clase 4

Evaluación Evaluación

Indique la diferencia entre un lenguaje de alto nivelIndique la diferencia entre un lenguaje de alto nively un lenguaje de bajo nivelIndique que es un compilador y un interpreteIndique que es un compilador y un interpreteIndique los pasos que se deben tener en cuentapara realizar un programa

Page 2: Clase 4

Evaluación Evaluación

Diseñar un algoritmo que lea tres números yDiseñar un algoritmo que lea tres números yencuentre si uno de ellos es la suma de los otros dosEscribir un algoritmo que permita calcular la edadEscribir un algoritmo que permita calcular la edadingresando la fecha de nacimiento y la fecha

t lactual

Page 3: Clase 4

EL LENGUAJE CEL LENGUAJE C:ELEMENTOS BASICOS

Page 4: Clase 4

CONTENIDO CONTENIDO 1. Estructura general de un programa en C

C ió d 2. Creación de un programa

3. El proceso de ejecución de un programa en C4. Los elementos de un programa en C5. Tipos de datos en C6. Le tipo de dato lógico7. Constantes variables8. Duración de una variable9. Entradas y salidas10. Ejercicios

Page 5: Clase 4

Estructura general de un programa en CEstructura general de un programa en C

Un programa en C se compone de una o mas funciones. Una de las funcionesdebe ser obligatoriamente main. Una función en C es un grupo deinstrucciones que realizan una o mas acciones

# include <stdio.h> archivo de cabecera stdio.hInt main ( ) cabecera de función{

……. sentencias}}

Page 6: Clase 4

ContCont…De modo mas explicito, un programa C puedep , p g pincluir;

Directivas de preprocesador;p p ;Declaraciones globales;La función main();();Las funciones definidas por el usuario;Comentarios del programa (utilizados en su totalidad)p g ( )

Page 7: Clase 4

Ejemplo Ejemplo 1. #include <stdio.h>2. /*Este programa imprime: Bienvenido a la

programación en C*/3. Int main ()4. {

f (“ C\ )5. Printf (“Bienvenido a la programación en C\n”);6. Return 0;

}7. }

Page 8: Clase 4

ContCont…La directiva # include de la primera línea es necesariapara que el programa tenga salida. Se refiere a unarchivo externo denominado stdio.h en el que seproporciona la información relativa a la funciónproporciona la información relativa a la funciónprintf(). Observe que los ángulos <y> no son parte delnombre del archivo; se usan para indicar que el archivo

hi d l bibli á d Ces un archivo de la biblioteca estándar CLa segunda línea es un comentario, identificado por loscaracteres /* y*/ Son ignorados por el compiladorcaracteres / y /. Son ignorados por el compilador

Page 9: Clase 4

ContCont…La tercera línea contiene la cabecera de la función main(),bli i d C I di l i d lobligatoria en cada programa C. Indica el comienzo del programa

y requieren los paréntesis () a continuación de main ()La cuarta y séptima línea contienen solo las llaves {y} que encierranel cuerpo de la función main () y son necesarias en todos losprogramas CLa quinta línea contiene la sentencia Printf (“Bienvenido a laq (programación en C/n”); que indica al sistema que escriba elmensaje

Page 10: Clase 4

ContCont…El símbolo “\n’ es el símbolo de nueva línea. Poniéndose esteí b l l fi l d l d ill i di l isímbolo al final de la cadena entre comillas, indica al sistema que

comience una nueva línea después de imprimir los caracteresprecedentesLa sexta línea contiene la sentencia return 0. esta sentencia terminala ejecución del programa y devuelve el control al sistema operativode la computadora. El 0 se utiliza para señalar que el programa hat i d t tterminado correctamenteObsérvese el ; al final de la quinta y sexta línea. C requiere quecada sentencia termine con un ;

Page 11: Clase 4

Directivas del preprocesador Directivas del preprocesador El preprocesador en un programa C se puede considerar como un editord t t i t li t t d di ti (i t i l il dde texto inteligente que consta de directivas (instrucciones al compiladorantes de que se compile el programa principal). Las sos directivas masusuales son #include y #define

La directiva #include indica al compilador que lea el archivo fuente que viene aLa directiva #include indica al compilador que lea el archivo fuente que viene acontinuación de ella y su contenido lo inserte en la posicion donde se encuentradicha directivaEl archivo de cabecera mas frecuente es STDIO.H. Este archivo proporciona al

l d C l f ó b l f d b blcompilador C la información necesaria sobre las funciones de biblioteca querealizan operaciones de entrada y salida#include <stdio.h>#incl de <string h>#include <string.h>

Page 12: Clase 4

Declaraciones globales Declaraciones globales Las declaraciones globales indican al compilador que las funcionesd fi id l i i bl í d l ddefinidas por el usuario o variables así declaradas son comunes atodas las funciones de su programa. Las declaraciones globales sesitúan antes de la función main ()

/*d l l b l *//*declaraciones globales*/Int Calificaciones;main(){……

}}

Page 13: Clase 4

Función main ()Función main ()Cada programa C tiene una función main () que es el punto de

d l S P ió Centrada al programa. Su estructura es: Programación en C.Metodología, algoritmo y estructura de datos

main (){

….. bloque de sentencias}}Las sentencias incluidas en las llaves {…} se denominan bloque. Unprograma debe tener solo una función main (). Además de la funciónmain (), un programa C consta de una colección de funciones

Page 14: Clase 4

Funciones definidas por el usuarioFunciones definidas por el usuarioUn programa C es una colección de funciones. Todos los programas se construyen a partir deuna o mas funciones que se integran para crear una aplicaciónuna o mas funciones que se integran para crear una aplicaciónLas funciones definidas por el usuario se invocan por su nombre y los parámetros opcionalesque puedan tener. Después de que la función es llamada, el código asociado con la función seejecuta y, a continuación, se retorna a la función llamadora

i () main () {….

}}obtenerdatos(){….

}}

Page 15: Clase 4

Comentarios Comentarios Un comentario es cualquier información que se añade asu archivo fuente para proporcionar documentación decualquier tipo. El compilador ignora los comentariosL t i C tá d i lLos comentarios en C estándar comienzan con lasecuencia /* y terminan con la secuencia */

scanf (“%d”,&x); /* sentencia de entrada de un valor entero*//

Page 16: Clase 4

Ejemplo Ejemplo /*ilustra el uso de include*/#include <stdio.h>#include <stdlib.h>int main (){

printf ("Luis Joyanes Aguilar\n");printf ("Avenida de andalucia, 48\n");p ( , \ );

system("PAUSE");return 0;

}}

Page 17: Clase 4

Creación de un programa Creación de un programa Para crear un programa se utilizan las siguientes etapas

Definir su programaDefinir directivas de preprocesadorDefinición de declaraciones globalesDefinición de declaraciones globalesCrear main ()Crear el cuerpo del programaCrear sus propias funciones definidas por el usuarioCompilar, enlazar, ejecutar y comprobar su programaUtilizar comentariosUtilizar comentarios

Page 18: Clase 4

El proceso de ejecución de un programa en CEl proceso de ejecución de un programa en C

El código fuente (archivo de programa) se crea con la ayuda deldi deditor de texto

El compilador traduce el archivo texto en un archivo objetoEl enlazador pone juntos a diferentes archivos objetos para ponerEl enlazador pone juntos a diferentes archivos objetos para ponerun archivo ejecutableEl sistema operativo pone el archivo ejecutable en la memoriacentral y se ejecuta el programacentral y se ejecuta el programa

Código fuente

Compilador Código objeto

Enlazador Programa ejecutable

Biblioteca

Page 19: Clase 4

Elementos de un programa en CElementos de un programa en CUn programa en C consta de uno o mas archivos. Unp garchivo es traducido en diferentes fases. Elpreprocesador se controla por directivas introducidas

#por líneas que contienen # como primer carácter. Elresultado del preprocesado es una secuencia de tokens.T k ( l lé i d l )Tokens (elementos léxicos de los programas)

Existen 5 clases de tokens: identificadores, palabras reservadas literales operadores y otros separadoresreservadas, literales, operadores y otros separadores

Page 20: Clase 4

ContCont…Identificadores

U id tifi d i d t l t dí it b d ( ) El i á tUn identificador es una secuencia de caracteres, letras, dígitos y subrayados(_). El primer carácterdebe ser una letra; nombre_clase, indice,

Palabras reservadasUna palabra reservada (key word o reserved word), tal como void es una característica del lenguajeC i d l ú i ifi d i lC asociada con algún significado especial

Comentarios Los comentarios tienen el siguiente formato /* ……..*/

Signos de puntuación y separadoresSignos de puntuación y separadoresTodas las sentencias deben terminar con ; otros signos de puntuación son: %,^,&,*…etc.

Archivos de cabeceraUn archivo de cabecera es un archivo especial que contiene declaraciones de elementos y funciones de p q yla biblioteca; #include <stdio>, #include <math>

Page 21: Clase 4

Tipos de datos en CTipos de datos en CLos tres tipos de datos básicos son;

Enteros

Números de coma flotante (reales);

caracterescaracteres

Page 22: Clase 4

Declaración de variables Declaración de variables La forma mas simple de una declaración de variable en C es poner primero el tipo de dato y a continuación el nombre de la variable. Si se desea dar un valor inicial a la variable este se pone a continuación El formato a la variable, este se pone a continuación. El formato de la declaración es;

<tipo de dato> <nombre dela variable>=<valor inicial>Se pueden también declarar múltiples variables en la misma línea<tipo de dato> <nom var1> <nom var2><tipo de dato> <nom_var1>, <nom_var2>….

Page 23: Clase 4

Tipos de datos Tipos de datos Enteros (int)

Los enteros son adecuados para aplicaciones que trabajen con datos numéricosInt aritmética de enteros, bucles for, conteo

Tipos de coma flotante (float/double)Los tipos de datos de coma (punto) flotante representan números reales quecontienen una coma decimal, tal como 3.14159 o números grandes como1.85*1015

C ( h )Caracteres (char)Un carácter es cualquier elemento de un conjunto de caracteres predefinidos oalfabeto (ASCII). Existen caracteres que tienen un propósito especial y no sepueden escribir utilizando el método normal ‘\n’pueden escribir utilizando el método normal \n

Page 24: Clase 4

El tipo de dato lógico El tipo de dato lógico Los compiladores de C que siguen la norma ANSI noincorporan el tipo de dato lógico cuyos valores son<verdadero> (true) y <falso> (false). El lenguaje Csimula este tipo de dato tan importante en lassimula este tipo de dato tan importante en lasestructuras de control (if, while). Para ello utiliza el tipode dato int. C interpreta todo valor distinto de 0 como< d d > l l 0 <f l ><verdadero> y el valor 0 como <falso>Si es necesario se puede visualizar el valor de lavariable lógica utilizando la función para salida printf()variable lógica utilizando la función para salida printf()

Page 25: Clase 4

Constantes Constantes En C existen 4 tipos de constantes;

Constantes literalesConstantes definidasConstantes enumeradasConstantes declaradas

Constantes literales Las constantes literales se clasifican también en 4 gruposg p

Constantes enterasConstantes caracteresConstantes de coma flotanteConstantes de cadena

Page 26: Clase 4

ContCont…Constantes enterasLa escritura de constantes enteras requiere seguir unas determinadas reglas;

No utilizar nunca comas ni otros signos de puntuación en números enteros o complejosP f l l i l i l l L lPara forzar un valor al tipo long, terminar con la letra L o lPara forzar un valor al tipo unsigned, terminarlo con una letra mayúscula UPara representar un entero en octal, este debe estar precedido de 0Para representar un entero en hexadecimal, este debe estar precedido de 0xSe puede combinar sufijos L(l), que significa largo o bien U(u) que significa sin signo

Page 27: Clase 4

ContCont…Constantes reales

U fl lUna constante flotante representa un numero real; siempre tienen signo y representanaproximaciones en lugar de valores exactos; 82.347, 47e-4

Constantes carácterUna constante carácter (char) es un carácter de código ASCII encerrado entre apostrofesUna constante carácter (char) es un carácter de código ASCII encerrado entre apostrofes‘A’, ‘b’Un carácter que se lee utilizando una barra oblicua (\) se llama sentencia o código deescape

Aritmética con caracteres CDada la correspondencia de un carácter y su código ASCII, es posible realizaroperaciones aritméticas sobre datos de caracteres;

Char c;Char c;C=‘T’+5; /*suma 5 al carácter ASCII*/

Page 28: Clase 4

ContCont…Constantes cadena

Una constante cadena (también llamada literal cadena o simplemente cadena)es una secuencia de caracteres encerrados entre dobles comillas; “123”, “12 deoctubre de 1942”Se puede escribir una cadena en varias lineas terminando varia linea con “\”Se puede escribir una cadena en varias lineas, terminando varia linea con \Se puede concatenar cadenas escribiendo “ABC””DEF”

Constantes definidas simbólicasL t t d ibi b i bóli di t l di ti #d fiLas constantes pueden recibir nombres simbólicos mediante la directiva #define#define PI 3.141592

Page 29: Clase 4

ContCont…Constantes enumeradas

Las constantes enumeradas permiten crear lista de elementos afines. Un ejemplo típico es una constante enumerada de lista de colores, que se puede declarar como;

C { }Enum Colores {rojo, naranja, amarillo, verde, azul, violeta};Constantes declaradas const y volatile

El cualificador const permite dar nombres simbólicos a constantes. El pformato general para crear una constante es;Const tipo nombre = valor;Const int Meses=12; /*meses es constante simbólica del valor 12*/Const int Meses 12; / meses es constante simbólica del valor 12 /

Page 30: Clase 4

Variables Variables En C una variable es una posición con nombre enmemoria donde se almacena un valor de un cierto tipode dato. Las variables pueden almacenar todo tipo dedatos; cadenas números y estructurasdatos; cadenas, números y estructurasDeclaración

Una declaración de una variable es una sentencia queU a dec a ac ó de u a va ab e es u a se e c a queproporciona información de la variable al compilador C;Tipo variableSh Di SShort DiaSemana;

Page 31: Clase 4

Ejemplo Ejemplo /*distancia a la luna en kilometros*/

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

#include <stdlib.h>

int main ()

{

const int luna=238857; /*distancia en millas*/

float luna_kilo;

printf ("distancia a la luna %d millas\n",luna);

luna_kilo=luna*1.609; /*una milla = 1.609Km*/

printf ("en kilometros es %fKm.\n",luna_kilo);

system ("PAUSE");

return 0;

}}

Page 32: Clase 4

ContCont…Inicialización de variables

El formato general de una declaración e inicialización es;Tipo nombre_variable=expresion

Declaración o definiciónDeclaración o definiciónLa diferencia entre declaración y definición es sutil. Una declaraciónintroduce un nombre de una variable y ascia un tipo con la variable.Una definición es una declaración que asigna simultáneamente unaq gvalor a la variabledouble x; /*declara el nombre de la variable x de tipo doble*/Int i=0; /*definido e inicializado a cero*/Int i 0; / definido e inicializado a cero /

Page 33: Clase 4

Duración de una variable Duración de una variable Dependiendo del lugar donde se definan las variablesp gde C, estas se pueden utilizar en la totalidad delprograma, dentro de una función o pueden existir solo

ftemporalmente dentro de un bloque de una función.Los tipos básicos de variables en C son;

Variables localesVariables globales

bl dVariables dinámicas

Page 34: Clase 4

ContCont…Variables locales

Las variables locales son aquellas definidas en el interior de una función y sonvisibles solo en esa función especifica.

Variables globalesLas variables globales son variables que se declaran fuera de la función y pordefecto (omisión) son visibles a cualquier función, incluyendo main ()

Variables dinámicaslas variables dinámicas tienen características que en algunos casos son similarestanto a variables locales como a globales. Al igual que una variable local, lavariable dinámica se crea y se libera durante la ejecución del programa

Page 35: Clase 4

Entradas y salidas Entradas y salidas Los programas interactúan con el exterior, a través dedatos de entrada o de salida, para lo que todoprograma deberá tener el archivo de cabecera stdio.hS lidSalida

La salida de datos de un programa se puede dirigir adiversos dispositivos, pantalla, impresora, archivosp , p , p ,La salida que se trata a continuación va a ser a pantalla.La función printf() visualiza en la pantalla datos delprogramaprograma

Page 36: Clase 4

ContCont…La forma general que tiene la funcion printf ()

printf (cadena_de_control, dato1, dato2,…)Cadena_de_control contiene los tipos de los datos y la forma demostrarlosmostrarlosDato1, dato2… variables, constantes, datos de salida

i=11 j=12 c=‘A’ n=40.791512printf (“%x %3d %c %.3f”, i,j,c,n);Visualizara en pantallaB 12 A 40 749B 12 A 40.749

Page 37: Clase 4

Cont Cont…

Page 38: Clase 4

Entrada Entrada La entrada de datos a un programa puede tener diversas fuentes, teclado,

hi di L t d id h t é d larchivos en disco. La entrada que consideramos ahora es a través delteclado. La función mas utilizada, por su versatilidad, para entradaformateada es scanf()La forma general que tiene la función scanf();La forma general que tiene la función scanf();

Scanf(cadena_de_control, var1, var2, var3…)Cadena_de_control contiene los tipos de los datos y si se desea su anchuraV 1 2 i bl d l ti d l ódi d t lVar1, var2… variables del tipo de los códigos de control

Las variables que se pasan a scanf() se transmiten por referencia parapoder ser modificadas y transmitir los datos de entrada, para ello se hacenpreceder de &preceder de &

Page 39: Clase 4

Ejemplo Ejemplo Cual es la salida del siguiente programa, si se introducen por teclado las letras LJ

/* d d d *//*entrada de datos */#include <stdio.h>#include <stdlib.h>int main ()(){

char primero, ultimo;printf ("introduzca su primera y ultima inicial");

f ("% % " & & l ) scanf ("%c %c", &primero, &ultimo); printf ("hola, %c. %c. \n", primero, ultimo);system ("PAUSE");return 0;;

}

Page 40: Clase 4

Salida de cadena de caracteresSalida de cadena de caracteresCon la función printf() se puede dar salida a cualquier dato,

iá d l l ódi l d E i l dasociándolo el código que le corresponde. En particular, para darsalida a una cadena de caracteres se utiliza el código %s.Para salida de cadenas, la biblioteca C proporciona la funciónespecifica puts(). Tiene un solo argumento, que es una cadena decaracteres. Escribe la cadena en la salida estándar (pantalla) yañade el fin de línea

puts(arbol)Muestra en la pantalla lo mismo quePrintf(“%s\n”,arbol);( \ , );

Page 41: Clase 4

Entrada de cadena de caracteres Entrada de cadena de caracteres La entrada de una cadena de caracteres se hace con la función mas general scanf()y el codigo%sy el codigo%sLa biblioteca de C tiene una función especifica para captar una cadena decaracteres, la función gets(). Capta del dispositivo estándar de entrada de unacadena de caracteres, termina la captación con un retorno de carro. El siguientep gejemplo muestra como captar una línea de cómo máximo 80 caracteres

char línea [81];puts(“Nombre y dirección”);gets (línea);

La función gets() tiene un solo argumento, una variable tipo cadena. Capta lacadena de entrada y la devuelve en la variable pasada como argumento

Page 42: Clase 4

Ejercicios Ejercicios Cual es la salida del siguiente Depurar el siguiente programa

#include <stdio.h>int main (){

Depurar el siguiente programa

#include <stdio h>{char pax[]=“juan sin miedo”;printf(“%s %s\n,pax,&pax[4]);

#include <stdio.h>void main (){puts (pax)

puts (&pax[4]);return0

{printf(“el lenguaje de

ió C”} programación C”

Page 43: Clase 4

Ejercicios Ejercicios Escribir y ejecutar un programa que imprima suy j p g q pnombre y direcciónEscribir y ejecutar un programa que imprima unaEscribir y ejecutar un programa que imprima unapagina de texto con no mas de 40 caracteres porlíneaEscribir un programa que imprima la letra B conasteriscos

Page 44: Clase 4

Patrón de prueba de pantalla panorámica (16:9)

Prueba de la relación de

aspecto

(Debe parecer circular)

16x9

4x3