Sei sulla pagina 1di 30

Programa en lenguaje C

Funciones

Creaci
on de sentencias

Programacion estructurada
Estructura de un programa en lenguaje C

Oscar Alvarado Nava


oscar.alvarado.nava@gmail.com
Departamento de Electr
onica
Divisi
on de Ciencias B
asicas e Ingeniera
Universidad Aut
onoma Metropolitana, Unidad Azcapotzalco

13O, septiembre de 2013

Oscar Alvarado Nava

UAM Azcapotzalco

Estructura de un programa en lenguaje C

1/30

Programa en lenguaje C

Funciones

Creaci
on de sentencias

Contenido

Programa en lenguaje C
Componentes

Funciones
Funciones
Directivas al pre-procesador

Creacion de sentencias
Tokens
Palabras reservadas
Tipos de datos

Oscar Alvarado Nava

UAM Azcapotzalco

Estructura de un programa en lenguaje C

2/30

Programa en lenguaje C

Funciones

Creaci
on de sentencias

Componentes

Numero de caracteres en un nombre


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

/* Comentario 1
Comentario 2 */
# include < stdio .h >
# define N 10

/* archivo encabezado */
/* constante global */

/* variable global */
/* tipo identificador */
char nombre [ N ];
int main ()
/* funcion principal */
{
/* declaracion de variables locales a la funcion main */
/* tipo e indentificador */
int i ;
printf ( " Ingresa tu nombre : " ) ;
scanf ( " %s " , nombre ) ;

/* caracteres a salida estandar */


/* caracteres de entrada estandar */

i = 0;
/* estructura repetitiva */
while ( nombre [ i ] != \0 )
i = i + 1;

/* sentencia */
/* expresion relacional */

printf ( " compuesto por %d letras \ n " ,i ) ;


return 0;
}

Oscar Alvarado Nava

UAM Azcapotzalco

Estructura de un programa en lenguaje C

3/30

Programa en lenguaje C

Funciones

Creaci
on de sentencias

Componentes

Elementos de un programa en lenguaje C

Comentarios
Directivas al preprocesador
Funciones
Variables y constantes
Variables globales y locales
Tipos de datos
Operadores
Expresiones
Sentencias

Oscar Alvarado Nava

UAM Azcapotzalco

Estructura de un programa en lenguaje C

4/30

Programa en lenguaje C

Funciones

Creaci
on de sentencias

Comentarios

Los comentarios son anotaciones legibles y generalmente


descriptivas del codigo para el programador
Son eliminados por el pre-procesador

En C, los comentarios deben ser encerrados entre /* y */ y


pueden extenderse por varias lneas
Se puede comentar por lnea al iniciarla con //
No includo en el estandar ANSI

Oscar Alvarado Nava

UAM Azcapotzalco

Estructura de un programa en lenguaje C

5/30

Programa en lenguaje C

Funciones

Creaci
on de sentencias

Funciones

Funciones

Un programa en C se compone a traves de funciones


Una funci
on agrupa e identifica una secuencia de sentencias

De a cuerdo a la complejidad del problema y de su


implementacion, el programa podra constar de una o varias
funciones

Oscar Alvarado Nava

UAM Azcapotzalco

Estructura de un programa en lenguaje C

6/30

Programa en lenguaje C

Funciones

Creaci
on de sentencias

Funciones

Funcion principal

Sin importar el n
umero de funciones en el programa, una de
ellas debera tener el nombre main
La nombre main o principal, indica quer sera la primera
funci
on en ser ejecutada

En un programa bien escrito, la funci


on main es la parte
central del programa y debera llamar a otras funciones

Oscar Alvarado Nava

UAM Azcapotzalco

Estructura de un programa en lenguaje C

7/30

Programa en lenguaje C

Funciones

Creaci
on de sentencias

Funciones

Grafo de llamadas a funciones

Oscar Alvarado Nava

main

funcionA

funcionC

funcionB

UAM Azcapotzalco

Estructura de un programa en lenguaje C

8/30

Programa en lenguaje C

Funciones

Creaci
on de sentencias

Funciones

Desarrollo de funciones

Las funciones seran desarrolladas por el programador


Algunas funciones podran ser de biblioteca, las cuales fueron
desarrolladas por otros programadores y son enlazadas al
ejecutable
En lenguaje C, toda funci
on debera contar
Declaraci
on
Definici
on
Llamada

Oscar Alvarado Nava

UAM Azcapotzalco

Estructura de un programa en lenguaje C

9/30

Programa en lenguaje C

Funciones

Creaci
on de sentencias

Directivas al pre-procesador

Directivas al pre-procesador

El pre-procesador es una programa de apoyo para compilador


y el programador
Identifica y procesa directivas o comandos, tambien conocidas
como macro-instrucciones

En lenguaje C, las directivas al pre-procesador son indicadas


con el caracter #

Oscar Alvarado Nava

UAM Azcapotzalco

Estructura de un programa en lenguaje C

10/30

Programa en lenguaje C

Funciones

Creaci
on de sentencias

Directivas al pre-procesador

Algunas directivas al pre-procesador en lenguaje C

Directiva
#include
#define
#ifdef
#ifndef
#error
#pragma

Oscar Alvarado Nava

Descripci
on
Inclusi
on del contenido de un archivo
Definici
on de constantes
y macro-instrucciones
Compilaci
on condicional
Definici
on de mensajes de error
Extensiones del lenguaje

UAM Azcapotzalco

Estructura de un programa en lenguaje C

11/30

Programa en lenguaje C

Funciones

Creaci
on de sentencias

Directivas al pre-procesador

Directiva #include

A traves de la directiva #include, el pre-procesador agrega el


contenido de una archivo al programa
El nombre del archivo debera contener su ruta absoluta o
relativa y se escribira en entre comillas (cadena)
/home/oscar/programas/sockets.h

Oscar Alvarado Nava

UAM Azcapotzalco

Estructura de un programa en lenguaje C

12/30

Programa en lenguaje C

Funciones

Creaci
on de sentencias

Directivas al pre-procesador

Ruta estandar

Si el nombre del archivo se coloca entre los caracteres < y >,


indicara que el archivo se encuentra en la ruta estandar
La ruta estandar indica la ruta donde fueron instalados los
archivos encabezados
Generalmente en un sistema UNIX/Linux se instalan en la
ruta
/usr/include/

Oscar Alvarado Nava

UAM Azcapotzalco

Estructura de un programa en lenguaje C

13/30

Programa en lenguaje C

Funciones

Creaci
on de sentencias

Directivas al pre-procesador

Archivos encabezados

Las declaraciones de las funciones deberan estar antes de


definirlas y llamarlas
Los archivos encabezados contienen entre otras cosas
declaraciones de funciones
< tss-7-01@ce >
< /users/tss/7/tss-7-01 >
$ pico /usr/include/stdio.h

< tss-7-01@ce >


< /users/tss/7/tss-7-01 >
$ pico /usr/include/math.h

Oscar Alvarado Nava

UAM Azcapotzalco

Estructura de un programa en lenguaje C

14/30

Programa en lenguaje C

Funciones

Creaci
on de sentencias

Tokens

Creacion sentencias

Una sentencia es compuesta por expresiones y estructuras de


control
Las expresiones se crean a traves de variables, operadores y
palabras reservadas
Las variables y operadores se describen con identificadores
El lenguaje reconoce todos los elementos por medio de la
identificacion de tokens

Oscar Alvarado Nava

UAM Azcapotzalco

Estructura de un programa en lenguaje C

15/30

Programa en lenguaje C

Funciones

Creaci
on de sentencias

Tokens

Tokens

Un token o componente lexico, es una conjunto de caracteres


que tiene un significado coherente en un lenguaje de
programacion
En lenguaje C existen cinco tipos de tokens
Identificadores
Palabras reservadas
Variables
Operadores
Separadores

Oscar Alvarado Nava

UAM Azcapotzalco

Estructura de un programa en lenguaje C

16/30

Programa en lenguaje C

Funciones

Creaci
on de sentencias

Palabras reservadas

Identificadores

Un identificador es una secuencia de carateres, letras, dgitos


Un identificador es utilizador para asignar nombres a variables,
constantes y funciones
Las reglas para la formaci
on de identificadores
La longitud no debe exceder los 32 caracteres
El primer caracter debera ser una letra o un guon bajo
Sensible a may
usculas y min
usculas. Convencionalmente las
variables se escriben en min
uscula y las constantes en
may
usculas
No deberan ser palabras reservadas

Oscar Alvarado Nava

UAM Azcapotzalco

Estructura de un programa en lenguaje C

17/30

Programa en lenguaje C

Funciones

Creaci
on de sentencias

Palabras reservadas

Palabras reservadas de ANSI C

auto
break
case
char
const
continue
default
do

Oscar Alvarado Nava

double
else
enum
extern
float
for
goto
if

int
long
register
return
short
signed
sizeof
static

UAM Azcapotzalco

struct
switch
typedef
union
unsigned
void
volatile
while

Estructura de un programa en lenguaje C

18/30

Programa en lenguaje C

Funciones

Creaci
on de sentencias

Palabras reservadas

Palabras reservadas

Las palabras reservadas (keyword) representan


Tipos de datos, modificadores de tipo y estructuras de control

Todas las palabras reservadas deben de ser escritas en


min
usculas
C hace diferencia entre las palabras escritas en may
usculas y
min
usculas
else es diferente a ELSE, elsE, ElSe

Las palabras reservadas no deben ser utilizadas como


identificadores de variables o nombres de funciones

Oscar Alvarado Nava

UAM Azcapotzalco

Estructura de un programa en lenguaje C

19/30

Programa en lenguaje C

Funciones

Creaci
on de sentencias

Palabras reservadas

Variables y constantes

En un lenguaje de programaci
on, una variable es una localidad
de memoria donde se almacena un valor de cierto tipo
Una variable que NO podra cambiar su valor durante la
ejecuci
on del programa se le llama constante

Oscar Alvarado Nava

UAM Azcapotzalco

Estructura de un programa en lenguaje C

20/30

Programa en lenguaje C

Funciones

Creaci
on de sentencias

Palabras reservadas

Creacion y ambito de variables

Una variable debera tener asociado un tipo de dato y un


identificador
Una variable debera ser declarada antes de ser utilizada
De acuerdo al lugar en donde sean declaradas las variables
tendran un ambito o visibilidad
Global
Local o privada
Dinamicas

Oscar Alvarado Nava

UAM Azcapotzalco

Estructura de un programa en lenguaje C

21/30

Programa en lenguaje C

Funciones

Creaci
on de sentencias

Tipos de datos

Tipos de datos

En el lenguaje C hay cinco tipos de datos primitivos


Tipo

En C

Caracter
Entero
Real o de punto flotante
Real o de punto flotante doble precisi
on
Sin tipo o gen
erico

char
int
float
double
void

No. Bytes

Rango

El n
umero de bytes que los implementa y el rango
dependera del procesador y del compilador utilizados

Oscar Alvarado Nava

UAM Azcapotzalco

Estructura de un programa en lenguaje C

22/30

Programa en lenguaje C

Funciones

Creaci
on de sentencias

Tipos de datos

Modificadores de tipos de datos

Con excepcion del tipo de dato void, a todos los tipos de


datos se les pueden aplicar alg
un modificador de tipo
Modificador

Descripci
on

signed
unsigned
long
short

Oscar Alvarado Nava

UAM Azcapotzalco

Estructura de un programa en lenguaje C

23/30

Programa en lenguaje C

Funciones

Creaci
on de sentencias

Tipos de datos

Rango, precision y numero de bytes

Los tipos de datos en lenguaje C estan compuestos de uno o


varios bytes
Cual es la relacion entre el n
umero de bytes (o bits) y el
rango del tipo de dato?
Cual es la relacion entre el n
umero de bytes (o bits) y la
precision del tipo de dato?

Oscar Alvarado Nava

UAM Azcapotzalco

Estructura de un programa en lenguaje C

24/30

Programa en lenguaje C

Funciones

Creaci
on de sentencias

Tipos de datos

Tarea de tipos de datos

Investigar el n
umero de bytes de cada tipo de dato y su
modificacion
Revisar el operador sizeof

Investigar las restrciones al aplicar los modificadores a los


tipos de datos
Investigar el rango de cada tipo de datos y su modificacion
Revisar las en la pagina de GNU limits.h y float.h

Investigar la representaci
on de n
umeros con signo y sin signo
en binario
Signo-magnitud y complemento a dos

Oscar Alvarado Nava

UAM Azcapotzalco

Estructura de un programa en lenguaje C

25/30

Programa en lenguaje C

Funciones

Creaci
on de sentencias

Tipos de datos

Sentencias
Un programa en C esta compuesto de sentencias agrupadas en
funciones
Una sentencia siempre termina con un punto y coma (;)
Salvo en algunos casos en que una sentencia estructurada
termina con una palabra reservada

Una sentencia esta compuesta de expresiones


varA = varB + 4;
varA = varB + varC * varD;
y = sqrt( x ) + 1.0;

Oscar Alvarado Nava

UAM Azcapotzalco

Estructura de un programa en lenguaje C

26/30

Programa en lenguaje C

Funciones

Creaci
on de sentencias

Tipos de datos

Expresiones
Una expresion es una combinaci
on de operadores, variables y
funciones
De acuerdo a los operadores se tienen expresiones aritmeticas,
l
ogicas y de asignaci
on

Cada expresion debera ser evaluada de acuerdo a las reglas de


precedencia y asociatividad de los operadores
varA = varB + varC * varD;
varA = (varB + varC) * varD;
varA = 1;

Oscar Alvarado Nava

UAM Azcapotzalco

Estructura de un programa en lenguaje C

27/30

Programa en lenguaje C

Funciones

Creaci
on de sentencias

Tipos de datos

Operadores
El lenguaje C tiene varios tipos de operadores
Asignaci
on
Aritmeticos
De incremento y decremento
Relacionales
L
ogicos
Manipulaci
on de bits
Direcci
on e indirecci
on
Condicional
Listado
Longitud de tipo
Conversi
on de tipo
Aumento de prioridad

Hay operadores unarios, binarios y ternarios


Oscar Alvarado Nava

UAM Azcapotzalco

Estructura de un programa en lenguaje C

28/30

Programa en lenguaje C

Funciones

Creaci
on de sentencias

Tipos de datos

Precedencia y asociatividad

La precedencia (o prioridad) de los operadores determina el


orden en el que se aplican los operadores
La asociatividad de los operadores es la regla para aplicar los
operadores con la misma precedencia

Oscar Alvarado Nava

UAM Azcapotzalco

Estructura de un programa en lenguaje C

29/30

Programa en lenguaje C

Funciones

Creaci
on de sentencias

Tipos de datos

Tarea de operadores

Investigar todos los operadores en lenguaje C y su clasificacion


Investigar la precedencia y asociatividad de los operadores

Oscar Alvarado Nava

UAM Azcapotzalco

Estructura de un programa en lenguaje C

30/30

Potrebbero piacerti anche