Lenguaje C Elementos de un Programa. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006

Lenguaje C Elementos de un Programa Ing. Hugo Fdo. Velasco Peña Universidad Nacional © 2006 Objetivos „ Conocer los elementos que conforman un programa en C 1. Elementos léxicos de un Programa Cuando el programa es compilado el primer paso es realizar el “preprocesado”. Aquí el C obtiene una lista de Tokens (o elementos léxicos del programa). „ Estos son las palabras y/o caracteres que conforman el vocabulario de un programa. „ 1.1. Identificadores „ „ „ „ Es una cadena de caracteres alfanuméricos, dígitos y subrayados “_”. El primer carácter siempre debe ser una letra. Algunos compiladores aceptan “_” al inicio y tambien aunque puede ser de cualquier longitud algunos solo toman los primeros 32. Son sensibles a las mayusculas No pueden ser palabras reservadas 1.1. Identificadores „ Ejemplos: Nombre cuenta1 i cuenta2 cantidad_total Los siguientes identificadores son distintos: Fecha fecha 1.2. Palabras Reservadas Llamadas tambien keyword „ Son palabras que el lenguaje C asocia con un significado especial. „ No pueden ser utilizadas como nombre de identificadores o funciones „ 1.2. Palabras reservadas asm double long switch auto else register union break enum return unsigned case extern short void char float signed volatile const for sizeof while continue goto static default if struct do int typedef En rojo están los especificadores de tipo de dato En azul los modificadores de tipo de dato 1.3. Comentarios „ „ Los comentarios se encierran entre /* y */. Pueden extenderse a lo largo de varias líneas. Ejemplos: /* Promedio de Notas. Autor: Mario Baracus */ „ /* Programa para promediar las notas Autor: Mario Baracus */ „ En C++ un comentario de una sola línea se comienza con // 1.4. Signos de puntuación „ Toda sentencia debe acabar con un punto y coma “;” ! ] ? % + \ , ^ = ; . & { ‘ / * } : “ ( ~ < ) [ > 1.5. Separadores „ Son algunos caracteres que no son imprimibles a través de un símbolo. Espacios en blanco Tabulación Retornos de carro Avance de línea 2. Datos en C „ „ Todos los datos que maneja un programa se almacenan en variables. Estas variables tienen un identificador arbitrario definido por el programador e invisible para el usuario del programa. Ni el resultado, ni la velocidad de cálculo ni la cantidad de memoria utilizada dependen del identificador de las variables. 2.1. Variables „ Para declarar una variable en C se debe poner el tipo de dato y a continuación el nombre (identificador) de la variable. Si se desea dar un valor (definir) inicial a la variable, se debe poner a continuación. = ; „ Se puede declarar varias variables en una sola línea , , ; 2.1. Variables „ Ejemplos: int i = 1; double a; /*declarada y definida*/ /*declarada*/ int valor1, valor2; int mi_edad=26, mis_hijos=2; int mi_edad=26; int mis_hijos=2; 2.1. Variables „ Las variables deben ser declaradas antes de utilizarlas. „ Ejemplos Correctos: #include int mi_edad; int main() { printf(“¿Cuál es mi edad?”); scanf(“%d”,&mi_edad); } #include int main() { int mi_edad; printf(“¿Cuál es mi edad?”); scanf(“%d”,&mi_edad); } 2.1. Variables „ Incorrecto: Al final del bloque #include int main() { printf(“¿Cuál es mi edad?”); scanf(“%d”,&mi_edad); int mi_edad; } „ No recomendado En mitad del bloque #include int main() { printf(“¿Cuál es mi edad?”); int mi_edad; scanf(“%d”,&mi_edad); } 2.1.1. Duración de una Variable „ Dependiendo de donde se defina una variable, se puede utilizar en todo el programa, dentro de una función o temporalmente dentro de un bloque de una función. „ Según su duración se clasifican en: Globales Locales Dinámicas 2.1.1.1. Variable Global „ „ „ „ Se declaran fuera de las funciones donde se va a utilizar. Esto incluye la función main. Es visible desde el punto donde se define hasta el final del programa. Se utilizan para compartir información entre funciones. Pero por esto hay que tener cuidado de cambios indeseados en su valor. Se debe minimizar su uso. 2.1.1.2. Variable Local Es aquella definida al interior de una función. „ Es visible solo al interior de la función donde se define. „ Su valor no puede ser modificado por una sentencia externa a la función. „ No existen en memoria hasta que se ejecuta la función. „ 2.1.1.2. Variable Local „ Ejemplo: #include int a, b, c; /*declaración de variables globales*/ int main() { int valor; /*declaración de variable local*/ printf(“Tres valores: ”); scanf(“%d %d %d”,&a,&b,&c); valor = a+b+c; … } 2.1.1.3. Variables Dinámicas „ „ „ Estas variables son similares a las locales y a las globales. Se parecen en las locales en que se crean y se liberan durante la ejecución del programas. Pero son diferentes en que las dinámicas se crean tras su petición, no con la función. Se parecen a las globales en que se pueden crear para que sean visibles para múltiples funciones. 2.2. Tipos de datos en C Los tipos de datos o variables definidos en C son tres: „ A. números enteros „ B. números reales „ C. caracteres „ El lenguaje C trata a todos como si fueran números. „ A pesar de ser solo estos se pueden crear tipos de datos personalizados. 2.2.1. Números Enteros „ Los números enteros, positivos o negativos, se almacenan en variables de tipo int (comúnmente) o long. „ Los enteros son útiles en aplicaciones que trabajen con datos numéricos que no posean parte fraccionaria. 2.2.1. Números Enteros „ Los números enteros int, aceptan modificadores para permitir un uso más eficiente del tipo de dato. Tipo C int Rango -32768 … +32767 unsigned int 0 … 65535 short int -128 … 127 short unsigned short int 0 … 255 unsigned short A: Aritmética de enteros B: Ciclos C: Conteos I: Índices Uso A, B, C B, C, I A, B, C A, B, C, I 2.2.1. Números Enteros „ Ejemplo: La manera de declarar una variable llamada contador_1 es escribir la siguiente línea: int contador_1; „ Una vez declarada la variable se puede almacenar en ella cualquier valor entero que se encuentre dentro del rango del tipo int. Por ejemplo, en la variable contador_1 se puede almacenar el valor 123, pero no el valor 54196412 por no estar en el rango permitido, ni 7,4 por ser un número real. 2.2.1. Números Enteros „ Los números pueden ser escritos en formato decimal, octal o hexadecimal. Base 10 Decimal 8 10 16 Base 16 Hexadecimal 0x8 0xA 0x10 Base 8 Octal 010 012 020 2.2.1. Números Enteros „ Cuando el rango de los números enteros int no cubre las necesidades se recurre a los enteros largos long. Tipo C Rango long long int unsigned long unsigned long int -2147483648 … 2147483647 0 … 4294967295 2.2.1. Números Enteros „ Ejemplos long cedula = 79912345L; unsigned long distancia; 2.2.2. Números Reales „ Los números reales se almacenan en variables de tipo float o de tipo double. „ Los números reales son útiles en aplicaciones que trabajen con datos numéricos que posean parte fraccionaria o decimal. 2.2.2. Números Reales „ La manera de declarar variables de estos tipos es análoga al caso de variables enteras: float x; double z; Tipo C Rango Precisión Bytes float 3.4×10 -38…3.4×1038 7 dígitos 4 double 1.7×10-38…3.4×1038 15 dígitos 8 long double 3.4×10-4932…3.4×104932 19 dígitos 10 2.2.3. Caracteres „ Un carácter es una letra, un digito, un signo de puntuación o en general cualquier símbolo que puede escribirse en pantalla o en una impresora. Se almacena en una variable tipo char. „ La manera de declarar la variable dato como tipo char es la siguiente: char dato; char dato = ‘e’; 2.2.3. Caracteres „ Los caracteres se almacenan como números. „ Así, char c_1 = ‘A’; char c_1 = 65; son sentencias equivalentes. „ c_1 = c_1 + 32; /*convierte ‘a’=65 en ‘A’=97*/ 2.2.3. Caracteres „ Por otro lado caracteres de dígitos son iguales al digito + 0x30. Así, char c_1 = ‘5’; equivale a char c_1 = 53; pero NO equivale a char c_1 = 5; 2.2.3.1. ASCII Altos „ Además de los caracteres imprimibles de los ASCII estándar, se puede requerir de caracteres que no tiene el teclado. Ejemplo „ El simbolo “Ω” se representa mediante el prefijo \x y el número hexadecimal del código ASCII. En este caso 0xEA „ char ohms = ‘\xEA’; 2.2.3.2. Códigos de Escape „ Los códigos de escape se utilizan para imprimir algunos caracteres que pueden cumplir ciertas acciones, y que no necesariamente se representan o imprimen con un símbolo. También para imprimir caracteres que cumplen un significado especial en C. „ Los códigos de escape deben ir precedidos del la barra oblicua “\” 2.2.3.2. Códigos de Escape Código de escape Significado Código ASCII Hex \n Nueva línea 0A \r Retorno de carro 0D \t Tabulación 09 \v Tabulación vertical 0B \a Alerta (pitido sonoro) 07 \b Retroceso de espacio 08 \f Avance de pagina 0C \\ Barra inclinada inversa 5C \’ Comilla simple 27 \” Doble comilla 22 \? Signo de interroga

4 downloads 100 Views 112KB Size

Story Transcript

Lenguaje C Elementos de un Programa Ing. Hugo Fdo. Velasco Peña Universidad Nacional © 2006

Objetivos „

Conocer los elementos que conforman un programa en C

1. Elementos léxicos de un Programa Cuando el programa es compilado el primer paso es realizar el “preprocesado”. Aquí el C obtiene una lista de Tokens (o elementos léxicos del programa). „ Estos son las palabras y/o caracteres que conforman el vocabulario de un programa. „

1.1. Identificadores „ „

„ „

Es una cadena de caracteres alfanuméricos, dígitos y subrayados “_”. El primer carácter siempre debe ser una letra. Algunos compiladores aceptan “_” al inicio y tambien aunque puede ser de cualquier longitud algunos solo toman los primeros 32. Son sensibles a las mayusculas No pueden ser palabras reservadas

1.1. Identificadores „

Ejemplos:

Nombre cuenta1

i cuenta2

cantidad_total

Los siguientes identificadores son distintos: Fecha fecha

1.2. Palabras Reservadas Llamadas tambien keyword „ Son palabras que el lenguaje C asocia con un significado especial. „ No pueden ser utilizadas como nombre de identificadores o funciones „

1.2. Palabras reservadas asm double long switch auto else register union break enum return unsigned case extern short void char float signed volatile const for sizeof while continue goto static default if struct do int typedef En rojo están los especificadores de tipo de dato En azul los modificadores de tipo de dato

1.3. Comentarios „ „

Los comentarios se encierran entre /* y */. Pueden extenderse a lo largo de varias líneas.

Ejemplos: /* Promedio de Notas. Autor: Mario Baracus */ „

/* Programa para promediar las notas Autor: Mario Baracus */ „

En C++ un comentario de una sola línea se comienza con //

1.4. Signos de puntuación „

Toda sentencia debe acabar con un punto y coma “;”

! ] ?

% + \ ,

^ = ; .

& { ‘ /

* } : “

( ~ <

) [ >

1.5. Separadores „

Son algunos caracteres que no son imprimibles a través de un símbolo.

Espacios en blanco Tabulación Retornos de carro Avance de línea

2. Datos en C „

„

Todos los datos que maneja un programa se almacenan en variables. Estas variables tienen un identificador arbitrario definido por el programador e invisible para el usuario del programa. Ni el resultado, ni la velocidad de cálculo ni la cantidad de memoria utilizada dependen del identificador de las variables.

2.1. Variables „

Para declarar una variable en C se debe poner el tipo de dato y a continuación el nombre (identificador) de la variable. Si se desea dar un valor (definir) inicial a la variable, se debe poner a continuación.

= ; „

Se puede declarar varias variables en una sola línea

, , ;

2.1. Variables „

Ejemplos: int i = 1; double a;

/*declarada y definida*/ /*declarada*/

int valor1, valor2; int mi_edad=26, mis_hijos=2; int mi_edad=26; int mis_hijos=2;

2.1. Variables „

Las variables deben ser declaradas antes de utilizarlas.

„

Ejemplos Correctos:

#include int mi_edad; int main() { printf(“¿Cuál es mi edad?”); scanf(“%d”,&mi_edad); }

#include int main() { int mi_edad; printf(“¿Cuál es mi edad?”); scanf(“%d”,&mi_edad); }

2.1. Variables „

Incorrecto: Al final del bloque

#include int main() { printf(“¿Cuál es mi edad?”); scanf(“%d”,&mi_edad); int mi_edad; }

„

No recomendado En mitad del bloque

#include int main() { printf(“¿Cuál es mi edad?”); int mi_edad; scanf(“%d”,&mi_edad); }

2.1.1. Duración de una Variable „

Dependiendo de donde se defina una variable, se puede utilizar en todo el programa, dentro de una función o temporalmente dentro de un bloque de una función.

„

Según su duración se clasifican en: Globales Locales Dinámicas

2.1.1.1. Variable Global „ „ „

„

Se declaran fuera de las funciones donde se va a utilizar. Esto incluye la función main. Es visible desde el punto donde se define hasta el final del programa. Se utilizan para compartir información entre funciones. Pero por esto hay que tener cuidado de cambios indeseados en su valor. Se debe minimizar su uso.

2.1.1.2. Variable Local Es aquella definida al interior de una función. „ Es visible solo al interior de la función donde se define. „ Su valor no puede ser modificado por una sentencia externa a la función. „ No existen en memoria hasta que se ejecuta la función. „

2.1.1.2. Variable Local „

Ejemplo: #include int a, b, c; /*declaración de variables globales*/ int main() { int valor; /*declaración de variable local*/ printf(“Tres valores: ”); scanf(“%d %d %d”,&a,&b,&c); valor = a+b+c; … }

2.1.1.3. Variables Dinámicas „ „

„

Estas variables son similares a las locales y a las globales. Se parecen en las locales en que se crean y se liberan durante la ejecución del programas. Pero son diferentes en que las dinámicas se crean tras su petición, no con la función. Se parecen a las globales en que se pueden crear para que sean visibles para múltiples funciones.

2.2. Tipos de datos en C Los tipos de datos o variables definidos en C son tres: „ A. números enteros „ B. números reales „ C. caracteres „

El lenguaje C trata a todos como si fueran números.

„

A pesar de ser solo estos se pueden crear tipos de datos personalizados.

2.2.1. Números Enteros „

Los números enteros, positivos o negativos, se almacenan en variables de tipo int (comúnmente) o long.

„

Los enteros son útiles en aplicaciones que trabajen con datos numéricos que no posean parte fraccionaria.

2.2.1. Números Enteros „

Los números enteros int, aceptan modificadores para permitir un uso más eficiente del tipo de dato. Tipo C

int

Rango -32768 … +32767

unsigned int 0 … 65535 short int -128 … 127 short unsigned short int 0 … 255 unsigned short A: Aritmética de enteros B: Ciclos C: Conteos I: Índices

Uso A, B, C B, C, I A, B, C A, B, C, I

2.2.1. Números Enteros „

Ejemplo: La manera de declarar una variable llamada contador_1 es escribir la siguiente línea: int contador_1;

„

Una vez declarada la variable se puede almacenar en ella cualquier valor entero que se encuentre dentro del rango del tipo int. Por ejemplo, en la variable contador_1 se puede almacenar el valor 123, pero no el valor 54196412 por no estar en el rango permitido, ni 7,4 por ser un número real.

2.2.1. Números Enteros „

Los números pueden ser escritos en formato decimal, octal o hexadecimal. Base 10 Decimal 8 10 16

Base 16 Hexadecimal 0x8 0xA 0x10

Base 8 Octal 010 012 020

2.2.1. Números Enteros „

Cuando el rango de los números enteros int no cubre las necesidades se recurre a los enteros largos long. Tipo C

Rango

long long int unsigned long unsigned long int

-2147483648 … 2147483647 0 … 4294967295

2.2.1. Números Enteros „

Ejemplos long cedula = 79912345L; unsigned long distancia;

2.2.2. Números Reales „

Los números reales se almacenan en variables de tipo float o de tipo double.

„

Los números reales son útiles en aplicaciones que trabajen con datos numéricos que posean parte fraccionaria o decimal.

2.2.2. Números Reales „

La manera de declarar variables de estos tipos es análoga al caso de variables enteras: float x; double z;

Tipo C

Rango

Precisión Bytes

float

3.4×10 -38…3.4×1038

7 dígitos

4

double

1.7×10-38…3.4×1038

15 dígitos

8

long double 3.4×10-4932…3.4×104932 19 dígitos

10

2.2.3. Caracteres „

Un carácter es una letra, un digito, un signo de puntuación o en general cualquier símbolo que puede escribirse en pantalla o en una impresora. Se almacena en una variable tipo char.

„

La manera de declarar la variable dato como tipo char es la siguiente: char dato; char dato = ‘e’;

2.2.3. Caracteres „

Los caracteres se almacenan como números.

„

Así, char c_1 = ‘A’; char c_1 = 65; son sentencias equivalentes.

„

c_1 = c_1 + 32;

/*convierte ‘a’=65 en ‘A’=97*/

2.2.3. Caracteres „

Por otro lado caracteres de dígitos son iguales al digito + 0x30. Así, char c_1 = ‘5’; equivale a

char c_1 = 53;

pero NO equivale a

char c_1 = 5;

2.2.3.1. ASCII Altos „

Además de los caracteres imprimibles de los ASCII estándar, se puede requerir de caracteres que no tiene el teclado.

Ejemplo „ El simbolo “Ω” se representa mediante el prefijo \x y el número hexadecimal del código ASCII. En este caso 0xEA „

char ohms = ‘\xEA’;

2.2.3.2. Códigos de Escape „

Los códigos de escape se utilizan para imprimir algunos caracteres que pueden cumplir ciertas acciones, y que no necesariamente se representan o imprimen con un símbolo. También para imprimir caracteres que cumplen un significado especial en C.

„

Los códigos de escape deben ir precedidos del la barra oblicua “\”

2.2.3.2. Códigos de Escape Código de escape

Significado

Código ASCII Hex

\n

Nueva línea

0A

\r

Retorno de carro

0D

\t

Tabulación

09

\v

Tabulación vertical

0B

\a

Alerta (pitido sonoro)

07

\b

Retroceso de espacio

08

\f

Avance de pagina

0C

\\

Barra inclinada inversa

5C

\’

Comilla simple

27

\”

Doble comilla

22

\?

Signo de interrogación

3F

\xhh

Número hexadecimal

Todos

2.2.3.2. Códigos de Escape „

Ejemplo #include int main() { char alarma = ‘\a’; char bs = ‘\b’; printf(“%c %c”, alarma, bs); return 0; }

Ejercicios /* Programa que multiplica dos números enteros y muestra el resultado por pantalla */ #include int main( ) { int multiplicador; /* se define multiplicador como un entero */ int multiplicando; /*se define multiplicando como un entero */ int res; /* se define resultado como un entero*/ multiplicador =1000; /* se les asigna valores*/ multiplicando=2; res=multiplicador*multiplicando; printf("Resultado = %d",res); /*muestro resultado en pantalla*/ return 0; }

Ejercicios „

Probar el siguiente programa: #include main() { float cels, farh; farh = 35.0; cels = 5.0 * ( farh - 32.0 ) / 9.0; printf(">>> %f F son %f C\n", farh, cels ); }

Trabajo Extraclase Complete el programa anterior para convertir a grados Kelvin. „ Hacer un programa que calcule el rango de los un tipo de entero con signo que abarque 3 Bytes y muestre este rango en pantalla. „

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.