dev c 1 2011

45
Introducción Introducción a la a la Programación Programación Objetivos Al finalizar la asignatura el alumno debe conocer los aspectos fundamentales de los lenguajes de programación, siendo capaz de reconocer los elementos léxicos y sintácticos de un lenguaje. Así mismo, debe conocer los principios básicos de programación: Funcional y Concurrente, pudiendo resolver pequeños problemas siguiendo los principios básicos de programación.

Upload: zherisbeth-garces-de-sanchez

Post on 13-Jun-2015

1.669 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Dev c  1 2011

Introducción a la Introducción a la ProgramaciónProgramación

Objetivos

Al finalizar la asignatura el alumno debe conocer los aspectos fundamentales de los lenguajes de programación, siendo capaz de reconocer los elementos léxicos y sintácticos de un lenguaje. Así mismo, debe conocer los principios básicos de programación: Funcional y Concurrente, pudiendo resolver pequeños problemas siguiendo los principios básicos de programación.

Page 2: Dev c  1 2011

Introducción a la Introducción a la ProgramaciónProgramación

Fundamentos y Estructuras de Fundamentos y Estructuras de ControlControl

Page 3: Dev c  1 2011

Lenguaje C: Estructura de un ProgramaLenguaje C: Estructura de un Programa

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

… /* Otras definiciones */

int main(int argc, char *argv[]){ … /* Zona de */ … /* declaración */ … /* de variables */

… /* Zona de */ … /* instrucciones del */ … /* programa principal */

system("PAUSE"); return 0;}

Cabecera de Programa: ficheros cabecera y otras definiciones

Función main: cuerpo principal del programa

NORMALMENTE LA FUNCIÓN MAIN SE ENCUENTRA EN UN FICHERO

LLAMADO “main.c”

Page 4: Dev c  1 2011

Lenguaje C: CaracterísticasLenguaje C: Características

• Algunas características son:

• El Lenguaje C es sensible al uso de mayúsculas y minúsculas.

• Las sentencias (instrucciones) terminan con el símbolo punto y

coma ‘;’ y se componen de palabras reservadas o palabras clave,

identificadores, constantes, operadores y separadores.

• Se pueden establecer bloques de instrucciones mediante el uso

de llaves: los símbolos abre-llave ‘{’ y cierra-llave ‘}’.

• Los programas se componen de:

• Palabras reservadas o palabras clave.

• Variables y funciones de la librería estándar.

• Variables y funciones definidas por el programador.

Page 5: Dev c  1 2011

Lenguaje C: CaracterísticasLenguaje C: Características

• Palabras reservadas o palabras clave

auto double int struct

break else long switch

case enum register typedef

char extern return union

const float short unsigned

continue for signed void

default goto sizeof volatile

do if static while

Page 6: Dev c  1 2011

Lenguaje C: IdentificadoresLenguaje C: Identificadores

• Un identificador permite identificar (nombrar) una variable o una función dentro de un programa. Siguen las siguientes reglas:

1. Se forma de una secuencia de símbolos pertenecientes SÓLO

al conjunto de símbolos:

{‘a’, …, ‘n’, ‘o’, …, ‘z’, ‘A’, …, ‘N’, ‘O’, …, ‘Z’, ‘0’, …, ‘9’, ‘_’}.

2. El primer carácter o símbolo del identificador NO PUEDE SER

un dígito numérico.

3. Se distinguen las letras mayúsculas de las minúsculas, así, el

identificador “suma” de los identificadores “SUMA”, “Suma”,

“sUMa”, etc.

4. Se pueden definir identificadores de hasta 31 símbolos de

longitud.

Page 7: Dev c  1 2011

Lenguaje C: IdentificadoresLenguaje C: Identificadores

• Ejemplos de identificadores válidos son:

tiempo, modulo, distancia_total, suma10,_el_producto_, Tiempo, Modulo,

Distancia_Total, laSumaDeTodo, elProducto,miVariable, Tu_Variable, estaFuncion,

_el_Identificador_

• Ejemplos de identificadores no válidos son:

10_segundos, el-modulo, la distancia total, $dolares, %porciento,6seis6,

este-no-es-un-identificador-valido, módulo, estaFunción

Page 8: Dev c  1 2011

Lenguaje C: ConstantesLenguaje C: Constantes

• Las constantes en C pueden ser de los siguientes tipos:

1. Constantes numéricas: son valores numéricos, o bien, enteros o

en notación científica (punto flotante).

2. Constantes carácter: cualquier símbolo o carácter

alfanumérico encerrado entre apóstrofos (Ejs.: ‘a’, ‘:’, ‘Z’, ‘+’,

…).

3. Cadenas de caracteres: cualquier secuencia de símbolo o

caracteres encerrado entre comillas (Ejs.: “esto es una

cadena de caracteres”, “Hola Mundo!\n”, …).

4. Constantes simbólicas: son constantes que se identifican con

un identificador.

Page 9: Dev c  1 2011

Lenguaje C: OperadoresLenguaje C: Operadores

• Los operadores son símbolos que indican operaciones cuyos operandos son normalmente variables, y/o constantes, así como también funciones. En C hay diferentes tipos de operadores:

1. Aritméticos: { +, -, /, *, %, ++, --}.

2. De asignación: { =, +=, -=, *=, /= }.

3. Relacionales: { ==, <, >, <=, >=, !=}.

4. Lógicos: { &&, ||, ! }.

5. Otros: { &, |, ^, <<, >>, …}

Page 10: Dev c  1 2011

Lenguaje C: Separadores y ComentariosLenguaje C: Separadores y Comentarios

• Los separadores permiten que los programas sean legibles al permitir separar los diferentes elementos que aparecen en el programas (identificadores, sentencias, …). Los separadores son los llamados símbolos de formato: el espacio en blanco, el tabulador, y el salto de línea.

• En el código fuente de un programa el programador puede introducir comentarios para dar mayor legibilidad al mismo. Los comentarios en Lenguaje C deben estar entre los dos pares de símbolos siguientes:

• /*: indica comienzo de comentario• */: indica final de comentario• //: indica que el resto de la línea es un comentario

Ejemplos:a=b+c; /* aquí se calcula la suma */printf(“a=%d\n”,a); // aquí se imprime la

suma

Page 11: Dev c  1 2011

Lenguaje C: VariablesLenguaje C: Variables

• Tipos de datos fundamentales en C

Tipo Base

Modificador

signed unsigned short long

Tipo Carácter

char(signed)

charunsigned char ---- ----

Tipo Entero

int(signed)

intunsigned int

short (int)

long (int)

Tipo Real

float ---- ---- ---- ----

double ---- ---- ---- long double

Page 12: Dev c  1 2011

Lenguaje C: VariablesLenguaje C: Variables

• Variables Tipo Carácter

Ejemplos:char identificador1 = ‘c’;char identificador2, identificador3;

• Contienen un único símbolo o carácter ASCII.

• Almacenan un byte de información.

1 byte = 8 bits 28=256 números binarios diferentes

Page 13: Dev c  1 2011

Lenguaje C: VariablesLenguaje C: Variables

• Variables Tipo Entero

Ejemplos:short identificador1 = 345;int identificador2 = -2345;long identificador3= -4352359;

• Almacenan números enteros.

• Tienen diferentes tamaños:• Entero corto short (<=4 bytes)• Entero normal int (>=4 bytes)• Entero largo long (>= 4 bytes)

• Pueden aceptar los siguientes modificadores:• Entero con signo signed• Entero sin signo unsigned

Page 14: Dev c  1 2011

Lenguaje C: VariablesLenguaje C: Variables

• Variables Tipo Real

Ejemplos:float identificador1 = -4.4567;double identificador2,identificador3;long double identificador4= 6.19e+23;

• Almacenan números reales.

• Tienen diferentes tamaños:

• Simple precisión float (4 bytes)• Doble precisión double (8 bytes)• Cuadruple precisión long double (16 bytes)

Page 15: Dev c  1 2011

Lenguaje C: ConstantesLenguaje C: Constantes

• Constantes Enteras

Ejemplos:

8797 // constante int o short0x3ae5 // constante int o short06573 // constante int o short7890L // constante long97987UL // constante unsigned long

• Constantes Reales

Ejemplos:

1.23 // constante float o double3.87e-3 // constante float o double-9.005768e-12 // constante float o double

Page 16: Dev c  1 2011

Lenguaje C: ConstantesLenguaje C: Constantes

• Constantes Carácter

Ejemplos:

‘a’ // constante char‘g’ // constante char‘A’ // constante char‘\n’ // constante char (salto de línea)‘\0’ // constante char (carácter nulo)‘\t’ // constante char (tabulador horizontal)

• Constantes Cadena de Carácteres

Ejemplos:

“Informática” // constante cadena (string)“Hola Mundo!\n” // constante cadena (string)“Esto es una frase” // constante cadena (string)

Page 17: Dev c  1 2011

Lenguaje C: ConstantesLenguaje C: Constantes

• Constantes Enumeración

Ejemplos:

enum Dia {lunes, martes, miercoles, jueves, viernes, sabado, domingo};

enum Mes {enero=1, febrero, marzo, abril, mayo, junio, julio, agosto, septiembre, octubre, noviembre, diciembre};

Dia diaCita=martes;Mes mesCita=abril;

Page 18: Dev c  1 2011

Lenguaje C: ConstantesLenguaje C: Constantes

• Variables constante

Ejemplos:

const int i=50;const long double pi= 3,141592653589;const char unaLetra=‘a’;const char unaCadena[]=“Esto es una cadena”;

• Se forman utilizando el cualificador const

Page 19: Dev c  1 2011

Lenguaje C: OperadoresLenguaje C: Operadores

• Operadores Aritméticos

• Suma: +• Resta: -• Multiplicación: *• División: /• Módulo (Resto de División Entera): %

Ejemplos:

y=a*x*x+b*x+c;b=50%12; // el resultado es 2z=k*x+(r-909)/((456.78-q)*s);l=2*pi*radio;x1=(-b+sqrt(b*b-4*a*c))/(2*a);x2=(-b-sqrt(b*b-4*a*c))/(2*a);

Page 20: Dev c  1 2011

Lenguaje C: OperadoresLenguaje C: Operadores

• Operadores Asignación

• Asignación: =• Suma y asignación: +=• Resta y asignación: -=• Multiplicación y asignación: *=• División y asignación: /=

Ejemplos:

t=a*s*s+b*s+c;b+=1; // equivalente a b=b+1;c-=1; // equivalente a c=c-1;d*=k; // equivalente a d=d*k;e/=m; // equivalente a e=e/m;

Page 21: Dev c  1 2011

Lenguaje C: OperadoresLenguaje C: Operadores

• Operadores Incrementales

• Incremento: ++• Decremento: --

Sólo se pueden utilizar con variables de tipo entero o puntero.

Ejemplos:

i++; // equivalente a i=i+1; o a i+=1;j--; // equivalente a j=j-1; o a j-=1;a= (i++) + k; // operador de post-incrementob= (++i) + k; // operador de pre-incremento

Page 22: Dev c  1 2011

Lenguaje C: OperadoresLenguaje C: Operadores

• Operadores Relacionales: expresan condiciones lógicas

• Igual que: ==• Menor que: <• Mayor que: >• Menor o igual que: <=• Mayor o igual que: =>• Distinto que: !=

Ejemplos:

(a<b) // ¿a es menor que b? Depende de a y b(r!=8) // ¿r es diferente de 8? Depende de r

SI LA CONDICIÓN ES VERDADERA SE EVALÚA COMO 1, SI ES FALSA SE EVALÚA COMO 0.

Page 23: Dev c  1 2011

Lenguaje C: OperadoresLenguaje C: Operadores

• Operadores Lógicos: expresan condiciones lógicas compuestas

• Y lógico: && • O lógico: ||• NO lógico: !

Ejemplos:

(a<b) && (k!=l) // ¿a es menor que b Y // k es diferente de 1? // Depende de a, b, k y l(m>=n) || !(q==j) // ¿m es mayor o igual que n O // q no es igual a j? Depende

de // m, n, q y j

SI LA CONDICIÓN COMPUESTA ES VERDADERA SE EVALÚA COMO 1, SI ES FALSA SE EVALÚA COMO 0.

Page 24: Dev c  1 2011

Lenguaje C: OperadoresLenguaje C: Operadores

• Otros operadores:

• Más unario: + (indica que una variable es positiva) • Menos unario: - (cambia el signo a una variable numérica)• sizeof (indica el tamaño en bytes de una variable)• Operador coma: ,(permite realizar varias sentencias en una sóla

línea)• Operador Dirección: & (permite obtener la dirección de memoria

donde se almacena una variable)• Operador Indirección: * (permite acceder a la memoria apuntada

por una dirección de memoria)

Ejemplos:

a=-b;r=sizeof(k);

Page 25: Dev c  1 2011

Lenguaje C: ExpresionesLenguaje C: Expresiones

Ejemplos:

x1=(-b+sqrt(b*b-4*a*c))/(2*a);

x2=(-b-sqrt(b*b-4*a*c))/(2*a);

a=b=c=d=e=f=1; // multi-asignación

a=((b>c)&&(c>d))||((c==e)||(e==b)); // condición // compuesta

zmas=sqrt(r*r-x*x-y*y) // semiesfera positiva

zmenos=sqrt(r*r-x*x-y*y) // semiesfera negativa

Page 26: Dev c  1 2011

Lenguaje C: Precedencia de OperadoresLenguaje C: Precedencia de Operadores

Precedencia Asociatividad

() [] -> . izda. a dcha.

++ -- ! sizeof() (tipo)

+ (unario) –(unario)

*(indirección) &(dirección)

dcha. a izda.

* / % izda. a dcha.

+ - izda. a dcha.

< <= > >= izda. a dcha.

== != izda. a dcha.

&& izda. a dcha.

|| izda. a dcha.

?: dcha. a izda.

= += -= *= /= dcha. a izda.

, (operador coma) izda. a dcha.

Page 27: Dev c  1 2011

Lenguaje C: Entrada/Salida BásicaLenguaje C: Entrada/Salida Básica

• Función printf:

… printf(“cadena_formato”,expresion1,expresion2,…); …

La función printf permite escribir texto por pantalla. La cadena_formato indica qué es lo que se va a escribir por pantalla en cada utilización de printf. Es posible incluir en cadena_formato referencias a expresiones que tras ser evaluadas deben incluirse en el texto que se imprimirá por pantalla.

Ejemplo: …int a=3;float x=23.0;char c=‘A’;printf(“Hola mundo!!\n”);

printf(“Un entero %d\n”,a);

printf(“Un real %f \ny un char %c\n”,x,c);…

Page 28: Dev c  1 2011

Lenguaje C: Entrada/Salida BásicaLenguaje C: Entrada/Salida Básica

• Función printf: Formato

Cadena Formato Tipo de Expresión Resultado Impreso%d %i short, int

número entero%ld %li long

%uunsigned short, unsigned

int número entero sin signo

%lu unsigned long

%o[unsigned] short,

[unsigned] int número entero octal sin signo

%lo [unsigned] long

%x %X[unsigned] short,

[unsigned] int número entero hexadecimal sin signo

%lx %lX [unsigned] long

%ffloat, double,

long doublenúmero real en coma fija

%e %E %g %Gfloat, double,

long doublenúmero real en notación científica

%c char, unsigned char se imprime un símbolo ASCII

%s char* se imprime una cadena de símbolos

%p void* se imprime el valor de un puntero

Page 29: Dev c  1 2011

Lenguaje C: Entrada/Salida BásicaLenguaje C: Entrada/Salida Básica

• Función scanf:

… scanf(“cadena_formato”,expresion1,expresion2,…); …

La función scanf permite leer texto desde teclado. La cadena_formato indica qué es lo que se va a leer por teclado en cada utilización de scanf. Es posible incluir en cadena_formato referencias a expresiones que tras ser evaluadas deben incluirse en el texto que se imprimirá por pantalla.

Ejemplo:…int a;float x;char c;

scanf(“%d”,&a); /* Lee un entero y lo almacena en a */scanf(“%f %c”,&x,&c); /* Lee x y c */…

Page 30: Dev c  1 2011

Lenguaje C: Entrada/Salida BásicaLenguaje C: Entrada/Salida Básica

• Función scanf: Formato

Cadena Formato Tipo de Expresión Resultado Impreso%hd %hi short

se lee un número entero%d %i int

%ld %li long

%hu unsigned short

se lee número entero sin signo%u unsigned int

%lu unsigned long

%ho Short

se lee un número entero en octal%o int

%lo long

%hx %hX Short

se lee un número entero en hexadecimal%x %X int

%lx %lX long

%f %e %E %g %G float

se lee un número real%lf %le %lE %lg %lG double

%Lf %Le %LE %Lg %LG long double

%c char se lee un símbolo ASCII

%s char* se lee una cadena de símbolos

Page 31: Dev c  1 2011

Lenguaje C: SentenciasLenguaje C: Sentencias

• Una sentencia de un programa en Lenguaje C es una instrucción de un programa. Hay tres tipos de sentencias:

• Sentencias Generales

float espacio,espacio_inicial,tiempo,velocidad;

Scanf(%f,espacio,%f,espacio_inicial…..)…espacio=espacio_inicial+velocidad*tiempo;printf(“Espacio recorrido =%f\n”,espacio);

• Sentencia Vacía o Nula

; // sentencia vacía o nula

• Sentencias Compuestas o Bloques

…{

int i,j,k,m;…i=j+k*m

}…

Page 32: Dev c  1 2011

Lenguaje C: Estructuras de ControlLenguaje C: Estructuras de Control

• Las estructuras o sentencias de control de flujo en C son las siguientes:

• Sentencias Condicionales• if, if-else• switch-case• Operador Condicional ?

• Sentencias Iterativas o Bucles• while• do-while• for

• Sentencias de Salto Incondicional• continue• break• goto

Page 33: Dev c  1 2011

Lenguaje C: Sentencias CondicionalesLenguaje C: Sentencias Condicionales

• Sentencia Condicional if:…if(expresion_logica)

sentencia;…

Si expresion_logica se evalúa como verdadera (1) entonces se ejecuta sentencia. Si expresion_logica se evalúa como falsa (0) entonces sentencia no se ejecuta y el programa continua ejecutándose en la siguiente línea.

Ejemplos:…

if(a>b)

mayor=a;

if(a>b)

{ // sentencia compuesta

mayor=a;

printf(“mayor=%d\n”,mayor);

}

Page 34: Dev c  1 2011

Lenguaje C: Sentencias CondicionalesLenguaje C: Sentencias Condicionales

• Sentencia Condicional if-else:…if(expresion_logica)

sentencia_1;else sentencia_2;

…Si expresion_logica se evalúa como verdadera (1) entonces se ejecuta sentencia_1. Si expresion_logica se evalúa como falsa (0) entonces se ejecuta sentencia_2.

Ejemplos:

if(a>b)

mayor=a;

else

mayor_o_igual=b;

if(a>b)

{ // sentencia compuesta

mayor=a;

printf(“mayor=%d\n”,mayor);

}

else

{ // sentencia compuesta

mayor_o_igual=b;

printf(“mayor o igual=%d\n”,mayor_o_igual);

}

Page 35: Dev c  1 2011

Lenguaje C: Sentencias CondicionalesLenguaje C: Sentencias Condicionales

• Sentencia Condicional if-else:

Ejemplos:…

if(a>b)

mayor=a;

else

if(a=b)

igual=a;

else

menor=a;

if(i<10)

{

if(j<10)

k=i+j;

}

else

k=10;

if(a>b)

{ // sentencia compuesta

mayor=a;

printf(“mayor=%d\n”,mayor);

}

else

if(a=b) // sentencia compuesta

{ // sentencia compuesta

igual=a;

printf(“igual=%d\n”,igual);

}

else

{ // sentencia compuesta

menor=a;

printf(“menor=%d\n”,menor);

}

Page 36: Dev c  1 2011

Lenguaje C: Sentencias CondicionalesLenguaje C: Sentencias Condicionales

• Sentencia Condicional switch:

…switch(expresion_entera){ case expresion_cte_1: sentencia_1; [break;] case expresion_cte_2: sentencia_2; [break;] … case expresion_cte_n: sentencia_3; [break;] [default: sentencia_default;]}…

• Si expresion_entera es igual a alguna de la expresiones constantes {expresion_cte_1, …, expresion_cte_n} entonces se ejecuta la sentencia correspondiente de entre las sentencias {sentencia_1, …, sentencia_n}.

• Si expresión_entera no coincide con ninguna de las expresiones constantes {expresion_cte_1, …, expresion_cte_n} se ejecuta la sentencia sentencia_default asociada con la sentencia default.

• Las sentencias break saltan el resto de la sentencia condicional switch.

Page 37: Dev c  1 2011

Lenguaje C: Sentencias CondicionalesLenguaje C: Sentencias Condicionales

• Sentencia Condicional switch:

Ejemplo:…

printf (“Introduzca opción?:”);ç

scanf(“%d”,&opcion);

switch(opcion)

{

case 1: a=b+c; break;

case 2: a=b-c; break;

case 3: a=b*c; break;

case 4: a=b/c; break;

case 5: a=b%c; break;

default:

printf(“Error: opción %d no válida.\n”,opcion);

}

Page 38: Dev c  1 2011

Lenguaje C: Sentencias CondicionalesLenguaje C: Sentencias Condicionales

• Operador condicional ?:…(expresion_logica)? expresion_1: expresion_2;…

Si expresion_logica se evalúa como verdadera (1) entonces se evalua expresion_1. Si expresion_logica se evalúa como falsa (0) entonces se evalúa expresion_2.

Ejemplo:

a=(a<0)? a+b: a-b;

// sentencia if-else equivalente

if(a<0) a=a+b;

else a=a-b;

Page 39: Dev c  1 2011

Lenguaje C: Sentencias Iterativas o BuclesLenguaje C: Sentencias Iterativas o Bucles

• Sentencia iterativa while:…while(expresion_logica)

sentencia;…

Mientras expresion_logica se evalúe como verdadera (1) se ejecuta sentencia repetidamente. Cuando expresion_logica se evalúe como falsa (0) entonces la ejecución continua en la siguiente sentencia de programa.

Ejemplos: …

a=0;

while(a<b)

a++;

a=0;

while(a<b)

{ // sentencia compuesta

a++;

printf(“a=%d\n”,a);

}

Page 40: Dev c  1 2011

Lenguaje C: Sentencias Iterativas o BuclesLenguaje C: Sentencias Iterativas o Bucles

• Sentencia iterativa do-while:…do sentencia;while(expresion_logica);

…Inicialmente se ejecuta sentencia una vez.Luego mientras expresion_logica se evalúe como verdadera (1) sentencia se ejecuta repetidamente. Cuando expresion_logica se evalúe como falsa (0) entonces la ejecución continua en la siguiente sentencia de programa.

Ejemplos:…

a=-1;

do

a++;

while(a<b);

a=-1;

do

{ // sentencia compuesta

a++;

printf(“a=%d\n”,a);

} while(a<b);

Page 41: Dev c  1 2011

Lenguaje C: Sentencias Iterativas o BuclesLenguaje C: Sentencias Iterativas o Bucles

• Sentencia iterativa for:…for(sentencia_inicializacion; expresion_logica; sentencia_actualizacion) sentencia;…

Inicialmente se ejecuta sentencia_inicializacion. A continuación se evalúa expresion_logica. Si se evalúa como verdadera (1) se ejecuta sentencia, y luego sentencia_actualizacion. Luego se vuelve a evaluar expresion_logica y si es verdadera se vuelve a ejecutar sentencia, y luego sentencia_actualizacio. Esto se hará repetidamente hasta que expresion_logica se evalúe como falsa (0), en ese punto el bucle finaliza y la ejecución continua en la siguiente sentencia de programa.

Page 42: Dev c  1 2011

Lenguaje C: Sentencias Iterativas o BuclesLenguaje C: Sentencias Iterativas o Bucles

• Sentencia iterativa for:

Ejemplo:

// contando

for(a=0; a<b; a++)

printf(“a=%d\n”,a);

// sentencia while equivalente

a=0;

while(a<b)

{ // sentencia compuesta

a++;

printf(“a=%d\n”,a);

}

// sumando

for(i=0, suma=0; i<n; i++)

{

printf(“Sumando %d\n”,i);

suma=suma+i;

}

// sentencia while equivalente

i=0; suma=0;

while(i<n)

{ // sentencia compuesta

printf(“Sumando %d\n”,i);

suma=suma+i;

i++;

}

Page 43: Dev c  1 2011

Lenguaje C: Sentencias de Salto IncondicionalLenguaje C: Sentencias de Salto Incondicional

• Sentencia continue:…continue;…

Se utiliza dentro de sentencias repetitivas o bucles para obligar a la finalización de la iteración actual y reevaluación de la expresión lógica que controla la duración del bucle.

Ejemplo: …

// sumando

for(i=-n, suma=0; i<n; i++)

{

if(n<0) continue;

printf(“Sumando %d\n”,a);

suma=suma+i;

}

// sentencia while equivalente

i=-n; suma=0;

while(i<n)

{ // sentencia compuesta

if(n<0) continue;

printf(“Sumando %d\n”,a);

suma=suma+i;

i++;

}

Page 44: Dev c  1 2011

Lenguaje C: Sentencias de Salto IncondicionalLenguaje C: Sentencias de Salto Incondicional

• Sentencia break:…break;…

Se utiliza dentro de la sentencia condicional switch, así como en sentencias repetitivas o bucles para obligar a la finalización de la sentencia y continuación del programa en la siguiente sentencia de programa.

Ejemplo:…

// sumando

for(i=0; i<n; i++)

{

if(i==2) break;

printf(“Sumando %d\n”,i);

suma=suma+i;

}

// sentencia while equivalente

i=0; suma=0;

while(i<n)

{ // sentencia compuesta

if(i==2) break;

printf(“Sumando %d\n”,i);

suma=suma+i;

i++;

}

Page 45: Dev c  1 2011

Lenguaje C: Sentencias de Salto IncondicionalLenguaje C: Sentencias de Salto Incondicional

• Sentencia goto:…goto etiqueta;…etiqueta: sentencia;…

La instrucción goto hace saltar la ejecución del programa a la sentencia sentencia etiquetada con la etiqueta etiqueta.

Ejemplo:…

// contando

i=0;

inicio_bucle:

prinft(“i=%d\n”,i);

i++;

if(i<n)

goto inicio_bucle;

// sentencia while equivalente

i=0;

while(i<n)

{ // sentencia compuesta

printf(“i=%d\n”,i);

i++;

}