Elementos de un programa en C - Web personal de … • Código fuente en C • Elementos de un...

26
Estructuras de datos (Prof. Edgardo A. Franco) 1 Tema 05: Elementos de un programa en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom

Transcript of Elementos de un programa en C - Web personal de … • Código fuente en C • Elementos de un...

Page 1: Elementos de un programa en C - Web personal de … • Código fuente en C • Elementos de un programa • Comentarios • Identificadores • Constantes • Variables • Operadores

Estructuras de datos (Prof. Edgardo A. Franco)

1

Tema 05: Elementos de un programa en C

M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom

Page 2: Elementos de un programa en C - Web personal de … • Código fuente en C • Elementos de un programa • Comentarios • Identificadores • Constantes • Variables • Operadores

Contenido • Código fuente en C • Elementos de un programa

• Comentarios • Identificadores • Constantes • Variables • Operadores • Sentencias o instrucciones • Macros del pre-procesador

• Estructura de un programa en C • Ejemplo de programa en C

2

05 E

lem

ento

s de

un p

rogr

ama

en C

Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Page 3: Elementos de un programa en C - Web personal de … • Código fuente en C • Elementos de un programa • Comentarios • Identificadores • Constantes • Variables • Operadores

Código fuente en C • Un código fuente en C, es un conjunto de líneas que expresan

computaciones bajo la sintaxis y semántica del lenguaje C. Un programa escrito en C tiene como características sobresalientes, el ser eficiente y veloz.

• Como el lenguaje C es compilado, se requiere del empleo de un compilador apropiado según la plataforma en la que se desea ejecutar el programa.

Código Fuente en C

Compilador ANSI C (gcc)

Programa ejecutable u código objeto

3

05 E

lem

ento

s de

un p

rogr

ama

en C

Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Page 4: Elementos de un programa en C - Web personal de … • Código fuente en C • Elementos de un programa • Comentarios • Identificadores • Constantes • Variables • Operadores

Elementos de un Programa Un programa escrito en lenguaje C puede incluir uno, varios o todos los elementos siguientes:

• Comentarios • Identificadores • Constantes • Variables • Operadores • Sentencias o instrucciones • Macros del pre-procesador 4

05 E

lem

ento

s de

un p

rogr

ama

en C

Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Page 5: Elementos de un programa en C - Web personal de … • Código fuente en C • Elementos de un programa • Comentarios • Identificadores • Constantes • Variables • Operadores

Elementos de un Programa /* Programa que calcula el de un circulo de radio dado por el usuario Autor: Edgardo Adrián Franco Martínez Versión 1.0 Septiembre 2012 Todo lo anterior es un comentario y todo lo que comienza con // */ #include <stdio.h> //Macros del pre-procesador #define PI 3.141599 //Constantes int main(void) { float area,radio; //Variables y sus identificadores printf("\nIntroduce el radio del circulo: "); //Sentencias scanf("%f",&radio); //Sentencias area=PI*radio*radio; //Sentencias y operadores printf("\nEl área de un circulo de radio %f, es: %f",radio,area);//Sentencias return 0;//Sentencias } 5

05 E

lem

ento

s de

un p

rogr

ama

en C

Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Page 6: Elementos de un programa en C - Web personal de … • Código fuente en C • Elementos de un programa • Comentarios • Identificadores • Constantes • Variables • Operadores

Comentarios • Un comentario es un escrito que sirve de

explicación de parte del programa para que se entienda más fácilmente.

• Comentarios multi-línea • Comienzan con /* y terminan con */ • No puede anidarse un comentario dentro de otro.

• Comentarios de una sola línea • Comienzan al principio de la línea con //

• E.g. //Esto es un comentario /* Esto también es un comentario */

6

05 E

lem

ento

s de

un p

rogr

ama

en C

Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Page 7: Elementos de un programa en C - Web personal de … • Código fuente en C • Elementos de un programa • Comentarios • Identificadores • Constantes • Variables • Operadores

Identificadores • Los identificadores (IDs) son símbolos léxicos que

nombran entidades. El concepto es análogo al de "nombre". Nombrar las entidades hace posible referirse a las mismas, lo cual es esencial para cualquier tipo de procesamiento simbólico.

• Para el caso del lenguaje C • No pueden emplearse palabras reservadas como

identificadores • No pueden emplearse nombres de funciones que ya

existan en el programa o en la biblioteca estándar de C • No puede usarse el identificador main 7

05 E

lem

ento

s de

un p

rogr

ama

en C

Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Page 8: Elementos de un programa en C - Web personal de … • Código fuente en C • Elementos de un programa • Comentarios • Identificadores • Constantes • Variables • Operadores

Palabras reservadas • En los lenguajes de programación, una palabra

reservada es una palabra que tiene un significado gramatical especial para ese lenguaje y no puede ser utilizada como un identificador en ese lenguaje. En lenguaje C existen 32 palabras reservadas.

8

05 E

lem

ento

s de

un p

rogr

ama

en C

Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

char void default return int if break auto

float else continue extern double do goto register

long while struct const short for union static

signed switch enum volatile unsigned case typedef sizeof

Page 9: Elementos de un programa en C - Web personal de … • Código fuente en C • Elementos de un programa • Comentarios • Identificadores • Constantes • Variables • Operadores

Identificadores (Convenciones) • Los nombres de variables se escriben en minúsculas, los

nombres de funciones comenzarán con letras mayúsculas y terminarán con minúsculas.

Suma_Matrices //Función edad_alumno //Variable

Las constantes escritas con #define van con mayúsculas como #define PI 3.1416 • Utilizar el subguión para separar palabras intermedias.

Suma_Matrices

• No emplear nombres cortos, sino adecuados para la el

entendimiento de la implementación de una solución. 9

05 E

lem

ento

s de

un p

rogr

ama

en C

Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Page 10: Elementos de un programa en C - Web personal de … • Código fuente en C • Elementos de un programa • Comentarios • Identificadores • Constantes • Variables • Operadores

Constantes • En programación, una constante es un valor que no puede ser

alterado durante la ejecución de un programa.

• Una constante corresponde a una longitud fija de un área reservada en la memoria principal del ordenador, donde el programa almacena valores fijos.

• En el lenguaje de programación C • #define se utiliza para asignar un identificador a una constante.

#define PI 3.1416 #define NUM_COLUMNAS 20 • El pre-procesador de C, sustituye la ocurrencia de PI por el valor 3.1416 en

todo el programa antes de efectuar la compilación, del mismo modo se sustituye NUM_COLUMNAS por 20.

10

05 E

lem

ento

s de

un p

rogr

ama

en C

Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Page 11: Elementos de un programa en C - Web personal de … • Código fuente en C • Elementos de un programa • Comentarios • Identificadores • Constantes • Variables • Operadores

Variables • Una variable es una localidad de memoria cuyo valor

puede ser cambiado durante la ejecución del programa.

• Todas las variables deben de ser declaradas para se utilizadas.

<tipo de dato> espacio(s) <identificador>;

• E.g. int a; float area, radio, volumen;

11

05 E

lem

ento

s de

un p

rogr

ama

en C

Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Page 12: Elementos de un programa en C - Web personal de … • Código fuente en C • Elementos de un programa • Comentarios • Identificadores • Constantes • Variables • Operadores

Variables (Tipos de dato simples) Tipo en C Descripción Número de

bits Rango

char Carácter 8 0...255

int Enteros 16 -32768... 32767

long Enteros de largo alcance

32 -2147483648... 2147483647

float Reales 32 1.2E-38... 3.4E+38

double Reales de doble precisión

64 2.2E-308... 1.8E+308 12

05 E

lem

ento

s de

un p

rogr

ama

en C

Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

*Los tamaños de los tipos de datos dependen de la arquitectura y sistema operativo (actualmente los int son iguales a los long en tamaño)

Page 13: Elementos de un programa en C - Web personal de … • Código fuente en C • Elementos de un programa • Comentarios • Identificadores • Constantes • Variables • Operadores

Operadores • Son palabras o símbolos que implican una acción

sobre ciertas variables.

• Pueden ser unarios (1 variable), binarios (2 variables) o ternarios (3 variables). • Operadores Aritméticos • Operadores Relacionales • Operadores Lógicos • Operadores de Asignación • Operadores de Dirección • Operadores de Bits

13

05 E

lem

ento

s de

un p

rogr

ama

en C

Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Page 14: Elementos de un programa en C - Web personal de … • Código fuente en C • Elementos de un programa • Comentarios • Identificadores • Constantes • Variables • Operadores

Operadores Aritméticos Operador Nombre Descripción

+ Suma 5+2 → 7

- Resta 5-2 → 3

* Multiplicación 5*2 → 10

/ División 5/2 → 2

% Módulo 5%2 → 1

(tipo de dato) “Cast” forzado (double)5 → 5.0 14

05 E

lem

ento

s de

un p

rogr

ama

en C

Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Page 15: Elementos de un programa en C - Web personal de … • Código fuente en C • Elementos de un programa • Comentarios • Identificadores • Constantes • Variables • Operadores

Operadores Relacionales Operador Nombre Descripción

== Igual a if (a==‘s’)

!= Diferente de if (a!=null)

> Mayor que if (a>0.5)

< Menor que if (a<2l)

>= Mayor o igual que if (a>=2f)

<= Menor o igual que if (a<=3) 15

05 E

lem

ento

s de

un p

rogr

ama

en C

Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Page 16: Elementos de un programa en C - Web personal de … • Código fuente en C • Elementos de un programa • Comentarios • Identificadores • Constantes • Variables • Operadores

Operadores Lógicos

Operador Nombre Descripción

&& Y (AND) if ((a>3) && (a<9))

|| O (OR) if ((a==2) || (a==3))

! NEGADO (NOT)

if (!(a==3)) es igual a if (a!=3)

Importante (en C): FALSO es igual a cero. VERDADERO es cualquier valor diferente de cero. 16

05 E

lem

ento

s de

un p

rogr

ama

en C

Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Page 17: Elementos de un programa en C - Web personal de … • Código fuente en C • Elementos de un programa • Comentarios • Identificadores • Constantes • Variables • Operadores

Operadores de Asignación

17

05 E

lem

ento

s de

un p

rogr

ama

en C

Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Operador Abreviado No Abreviado = a=2; a=2;

++ n++; n=n+1; -- n--; n=n-1; += n+=2; n=n+2; -= n-=2; n=n-2; *= n*=2; n=n*2; /= n/=2; n=n/2; %= n%=2; n=n%2;

Page 18: Elementos de un programa en C - Web personal de … • Código fuente en C • Elementos de un programa • Comentarios • Identificadores • Constantes • Variables • Operadores

Operadores de Dirección Operador Nombre Descripción

* Operador indirección

Me da el valor que está almacenado en una dirección de memoria. También sirve para declarar una variable apuntador.

& Operador dirección

Me da la dirección de memoria de una variable. 18

05 E

lem

ento

s de

un p

rogr

ama

en C

Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Page 19: Elementos de un programa en C - Web personal de … • Código fuente en C • Elementos de un programa • Comentarios • Identificadores • Constantes • Variables • Operadores

Operadores de Bits

19

05 E

lem

ento

s de

un p

rogr

ama

en C

Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Operador Nombre Descripción << Corrimiento a la izquierda b=a<<2;

>> Corrimiento a la derecha b=a>>3;

& Y (AND) entre bits c=a&128;

| O (OR) entre bits c=a|0x0a;

~ Complemento A1 c=~a;

^ O exclusivo (XOR) c=^a;

Page 20: Elementos de un programa en C - Web personal de … • Código fuente en C • Elementos de un programa • Comentarios • Identificadores • Constantes • Variables • Operadores

Operadores de Asignación para bits

Operador Abreviado No Abreviado <<= n<<=2; n=n<<2; >>= n>>=2; n=n>>2; &= n&=0x0a; n=n&0x0a; |= n|=7; n=n|7; ^= n^=0x03; n=n^0x03; = n=0x7f; n=0x7f;

Nota: 0x7f, 0x0a, 0x03 son un números hexadecimales.

20

05 E

lem

ento

s de

un p

rogr

ama

en C

Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Page 21: Elementos de un programa en C - Web personal de … • Código fuente en C • Elementos de un programa • Comentarios • Identificadores • Constantes • Variables • Operadores

Precedencia de Operadores

21

05 E

lem

ento

s de

un p

rogr

ama

en C

Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

( ) [ ] -> Alta prioridad

! ~ + - ++ -- & * sizeof Unarios

* / % + - Aritméticos

<< >> Corrimiento de bits

< <= > >= == != Relacionales

& ^ | && || ?: Bits / Lógicos / Condicional

= *= /= %= += -= &= ^= |= <<= >>=

Asignación

, Evaluación

Page 22: Elementos de un programa en C - Web personal de … • Código fuente en C • Elementos de un programa • Comentarios • Identificadores • Constantes • Variables • Operadores

Sentencias o instrucciones • Una sentencia es una instrucción o expresión en C que tiene

una consecuencia. Pueden ser asignaciones, operaciones, llamadas a funciones.

• Todas las sentencias terminan con el signo de punto y coma ;

• Pueden ser simples o compuestas. Las compuestas van entre llaves:

sentencia_compuesta { sentencia_simple_1; sentencia_simple_2; : sentencia_simple_n; };

22

05 E

lem

ento

s de

un p

rogr

ama

en C

Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Page 23: Elementos de un programa en C - Web personal de … • Código fuente en C • Elementos de un programa • Comentarios • Identificadores • Constantes • Variables • Operadores

• Sentencias de Selección • if – else, switch – case, ?:

• Sentencias de Repetición • do – while, while, for

• Sentencias de Salto • return, break, continue

23

05 E

lem

ento

s de

un p

rogr

ama

en C

Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Page 24: Elementos de un programa en C - Web personal de … • Código fuente en C • Elementos de un programa • Comentarios • Identificadores • Constantes • Variables • Operadores

Macros del pre-procesador Directivas más usadas del pre-procesador. • #define <nombre de macro> <nombre de reemplazo>

• Se usa para definir constantes o cualquier sustitución de macro

• #undef <nombre de macro> • Quitar una definición de nombre de macro que se haya definido

previamente

• #include <archivo> • Instruye al compilador para incluir otro archivo fuente que esta

dado con esta directiva y de esta forma compilar otro archivo fuente. El archivo fuente que se leerá se debe encerrar entre comillas dobles o paréntesis de ángulo.

24

05 E

lem

ento

s de

un p

rogr

ama

en C

Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

Page 25: Elementos de un programa en C - Web personal de … • Código fuente en C • Elementos de un programa • Comentarios • Identificadores • Constantes • Variables • Operadores

Estructura de un programa en C

25

05 E

lem

ento

s de

un p

rogr

ama

en C

Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez

I. Directivas (macros) del pre-procesador #include , #define, #if, #else, #endif, #line, etc.

II. Declaración de Prototipos

“Declaración de funciones” III. Declaración de variables globales

V. Función Principal main( )

IV. Funciones definidas por el usuario “Definición de funciones”

Page 26: Elementos de un programa en C - Web personal de … • Código fuente en C • Elementos de un programa • Comentarios • Identificadores • Constantes • Variables • Operadores

26

Ejemplo de programa en C

26

//Directivas del pre-procesador #include <stdio.h> #include <math.h> #define VALOR 5.7 //Definición de constantes //Declaración de prototipos double modulo3D(double x, double y, double z); //Declaración de variables globales double mod3; /* Variable global mod3*/ //Función principal int main(void) { int x, y, z; x=y=z=VALOR; mod3=modulo3D(x,y,z); printf(“\nEl módulo es: %lf”,mod3); return(0); } //Funciones definidas por el usuario double modulo3D(double x, double y, double z) { return(sqrt(x*x+y*y+z*z)); }

05 E

lem

ento

s de

un p

rogr

ama

en C

Al

gorit

mia

y p

rogr

amac

ión

estr

uctu

rada

Pr

of. E

dgar

do A

driá

n Fr

anco

Mar

tínez