Unidad 2 curso c

Preview:

Citation preview

Programación en C / C++ http://www.cartagena99.com/recursos/recursos_programacion.php

Programación en C 1

EL SOFTWARE (PROGRAMAS)

Las operaciones que debe realizar el hardware son específicas por una lista de instrucciones,

llamadas programas o software. El software se divide en dos grandes grupos: software del

sistema y de aplicaciones

Software de sistema Es el conjunto de programas indispensable para que la máquina funcione,

se domina también programas del sistema. Estos programas son básicamente el Sistema

Operativo, los editores de texto, los compiladores/interpretes (lenguajes de

programación) y los programas de utilidad.

Uno de los programas masi importantes es el Sistema Operativo que sirve, esencialmente para

facilitar la escritura y usos de sus programas. Este dirige las operaciones globales de la

computadores e instruye a la computadora para ejecutar otros programas y controla el

almacenamiento y recuperación de archivos (programas y datos).

Gracias al Sistema Operativo es posible que el programador pueda introducir y grabar nuevos

programas así como instruir a la computadora para que los ejecute.

Los lenguajes de programación sirven para escribir programas que permitan la

comunicación usuario maquina. Unos programas especiales llamados traductores

(compiladores o interpretes) convierten las instrucciones escritas en lenguajes de

programación en instrucciones escritas en lenguajes de maquina que esta pueda

entender.

Los programas de utilidad facilitan el uso de la computadora. Por ejemplo el editor

de textos

Los programas que realizan tareas concretas como nominas, contabilidad análisis

estadístico, etc de denominan programas de aplicación.

LENGUAJE DE MAQUINA

LENGUAJE DE BAJO NIVEL

LENGUAJE DE BAJO NIVEL

LENGUAJE DE ALTO NIVEL

LENGUAJE DE ALTO NIVEL

TRADUCTORES DE LENGUAJE

Los traductores de lenguaje son programas que traducen a su vez los programas fuente escritos en

lenguajes de alto nivel a código de máquina. Los traductores se dividen en: compiladores e interpretes

COMPILADOR

LA COMPILACION Y SUS FASES

La compilación es el proceso de traducción de programas fuente a programas objeto. El

programa objeto obtenido de la compilación ha sido traducido normalmente a código de

máquina.

Para conseguir el programa máquina real se debe utilizar un programa llamando montador o

enlazador (linker). El proceso de montaje conduce a un programa en lenguaje máquina

directamente ejecutable.

El proceso de ejecución de un programa escrito en un lenguaje de programación y mediante un

compilador suele tener los siguientes pasos:

1. Escritura del programa fuente y guardarlo en un dispositivo de almacenamiento

2. Introducir el programa fuente en memoria

3. Compilar el programa con el compilador

4. Verificar y corregir errores de compilación

5. Obtención del programa objeto

6. El enlazador obtiene el programa ejecutable

7. Se ejecuta el programa y se tendrá la salida deseada

EJECUCION DE UN PROGRAMA

FASES DE EJECUCION DE UN PROGRAMA

PROGRAMACION ESTRUCTURADA

VSPROGRAMACION

ORIENTADA A OBJETOS

Programación en C 15

Programación en C 16

UNA FORMA NUEVA DE PENSAR

Es muy importante destacar que cuando hacemos referencia a la programación orientada aobjetos no estamos hablando de unas cuantas características nuevas añadidas a un lenguajede programación. Estamos hablando de una nueva forma de pensar acerca del proceso dedescomposición de problemas y de desarrollo de soluciones de programación.

La programación orientada a objetos surge en la historia como un intento para dominar lacomplejidad que, de forma innata, posee el software. Tradicionalmente, la forma deenfrentarse a esta complejidad ha sido empleando lo que llamamos programaciónestructurada, que consiste en descomponer el problema objeto de resolución ensubproblemas y más subproblemas hasta llegar a acciones muy simples y fáciles de codificar.Se trata de descomponer el problema en acciones, en verbos. En el ejemplo de un programaque resuelva ecuaciones de segundo grado, descomponíamos el problema en las siguientesacciones: primero, pedir el valor de los coeficientes a, b y c; después, calcular el valor deldiscriminante; y por último, en función del signo del discriminante, calcular ninguna, una odos raíces.

Como podemos ver, descomponíamos el problema en acciones, en verbos; por ejemploel verbo pedir, el verbo hallar, el verbo comprobar, el verbo calcular…

Programación en C 17

La programación orientada a objetos es otra forma de descomponer problemas.Este nuevo método de descomposición es la descomposición en objetos; vamosa fijarnos no en lo que hay que hacer en el problema, sino en cuál es elescenario real del mismo, y vamos a intentar simular ese escenario en nuestroprograma.

Los lenguajes de programación tradicionales no orientados a objetos, como C,Pascal, BASIC, o Modula-2, basan su funcionamiento en el concepto deprocedimiento o función. Una función es simplemente un conjunto deinstrucciones que operan sobre unos argumentos y producen un resultado. Deeste modo, un programa no es más que una sucesión de llamadas a funciones,ya sean éstas del sistema operativo, proporcionadas por el propio lenguaje, odesarrolladas por el mismo usuario.

PROGRAMACION ESTRUCTURADA VS P.O.O.

Programación en C 18

PROGRAMACION ESTRUCTURADA VS P.O.O.

En el caso de los lenguajes orientados a objetos, como es el caso de C++ y Java,el elemento básico no es la función, sino un ente denominado precisamenteobjeto. Un objeto es la representación en un programa de un concepto, ycontiene toda la información necesaria para abstraerlo: datos que describen susatributos y operaciones que pueden realizarse sobre los mismos.

Programación en C 19

EJEMPLOS DE OBJETOS.

Índice• Estructura de un programa

C.

• Variables básicas.

• Operaciones aritméticas.

• Sentencias de control.

• Arrays y Strings.

• Funciones.

• Estructuras de datos.

• Entrada/Salida básica.

• Ejemplos I.

• Modificadores de ámbito de las variables.

• Punteros y memoria dinámica.

• Operadores de bit.

• Preprocesador C y compilación.

• Librerías estándar.

• Ejemplos II.

Programación en C 20

Programación en C 21

CONCEPTOS BASICOS DE C

Estructura de un programa en C

Programación en C 22

Todo programa en C se construye básicamente mediante trestipos de objetos:

Funciones. Variables. Tipos de datos.

Programación en C 23

#include <biblioteca1.h>

#include <biblioteca2.h>

... declaraciones de funciones ...

... definiciones (cuerpos de funciones) ...

... declaraciones de variables globales ...

main()

{

... cuerpo del main ...

}

... otras definiciones de funciones ...

Definición de Cabecera y/o

Ficheros

Declaración de Datos

Función Principal

Otras Funciones y/o

Procedimientos

/*Variantes de Definición*/

#include<nombre_de_la_biblioteca>#define nombre_de_la_constante

//Función principal

void main(){

definición de variables locales;instrucciones del programa;

}

• Estructura de un programa en C

Estructura de un programa en C

Función main():

#include <stdio.h>

int main()

{

printf(“Hola mundo!!\n”);

return(0);

}

Programación en C 24

Estructura de un programa en CFichero hola.c

# include <stdio.h>int main()

{

printf(“Hola mundo!!\n”);

return(0);

}

Programación en C 25

Compilación

Ejecución

Características de C• Sensible a mayúsculas y minúsculas: sum y Sum

• Indentación y espacios en blanco.

• Sentencias (terminan con un punto y coma).

• Bloques (delimitados entre llaves).

• Elementos de un programa:• Palabras reservadas (muy pocas).

• Funciones de librería estándar.

• Variables y funciones definidas por el programador.

Programación en C 26

ESTRUCTURA DE UN PROGRAMA

El inicio del programa debe llevar:

El símbolo de numeral (#) la sentencia “include”, y entre

signos de mayor y menor que (<>) el nombre de la librería o

fichero.

Seguidas de las librerías, para que “Incluya” en el programa

la directiva la cual contiene las funciones para procesar

datos.

#include <fichero>

27

ESTRUCTURA DE UN PROGRAMA

#include <stdio.h>.- Contiene las funciones de entrada y

salida de datos.

#include <conio.h>.- Declara varias funciones usadas

llamando la consola del sistema operativo.

#include <string.h>.- Manejo de cadenas.

#include <stdlib.h >.- Memoria dinámica.

#include <math.h >.- Rutinas matemáticas.

28

Comentarios• Los comentarios en C pueden ocupar varias líneas y se

encuentran delimitados entre /* y */.

int main()

{

/* Esto es un comentario de varias

lineas.*/

return(0);

}

Programación en C 29

ENTRADA Y SALIDA DE DATOS

Se utiliza las funciones de biblioteca:

“scanf” para la entrada de valores.

Sintaxis es la siguiente:

Lee el valor y lo guarda en una variable.

“printf” para la salida de información.

Sintaxis es la siguiente:

Imprime en pantalla el texto y el valor

30

scanf ("%d", &variable);

printf ("El valor es %d", variable);

La función COUT

Programación en C 31

#include <iostream>

int main()

{

int x = 5;

int y = 7;

cout << "\n";

cout << x + y << " " << x * y;

cout << "\n";

return 0;

}

Programación en CVariables básicas

Programación en C 32

CONCEPTOS BASICOS

Programación en C 33

Ámbito de las variables• La declaración de las variables lleva asociado un ámbito,

dentro del cual la variable es visible:

• Ámbito global: La variable es visible para todas las funciones del programa.

• Ámbito local: La variable es visible sólo dentro de la función. (Tiene prioridad sobre el ámbito global)

Programación en C 34

Ámbito de las variablesint x,y;

int main()

{

float x,z;

/* Aquí x y z son reales e y un entero */

}

/* Aquí x e y son variables enteras */

/* La variable z no existe fuera de la

función */

Programación en C 35

AMBITO DE LAS VARIABLES

36

Variable Global Variable Local

#include <stdio.h>

int x;

int main()

{

}

#include <stdio.h>

int main()

{

int x;

}

Programación en C 37

C++ dispone del operador (::), llamado operador de resolución de visibilidad (scoperesolution operator). Este operador, antepuesto al nombre de una variable global que está oculta por una variable local del mismo nombre, permite acceder al valor de la variable globa l6.Considérese el siguiente ejemplo:int a = 2; // declaración de una variable global avoid main(void){...printf("a = %d", a); // se escribe a = 2int a = 10; // declaración de una variable local aprintf("a = %d", a); // se escribe a = 10printf("a = %d", ::a); // se escribe a = 2}El operador (::) no permite acceder a una variable local definida en un bloque más exterioroculta por otra variable local del mismo nombre. Este operador sólo permite acceder a una variableglobal oculta por una variable local del mismo nombre.

OPERADOR DE VISIBILIDAD

Tipos de variables

Programación en C 50

long double 96 18 3.3621e-4932 1.18973e+493

Llamada sizeof()• La llamada sizeof() se utiliza para determinar el número

de bytes que ocupa una variable o un tipo:

int a;

sizeof(a);

sizeof(unsigned int);

Programación en C 51

SetConsoleTextAttribute(GetStdHandle (STD_OUTPUT_HANDLE),X);

0 = Negro

1 = Azul

2 = Verde

3 = Aguamarina

4 = Rojo

5 = Purpura

6 = Amarillo

7 = Blanco

8 = Gris

9 = Azul claro

A = Verde claro

B = Aguamarina claro

C = Rojo claro

D = Purpura claro

E = Amarillo claroF = Blanco brillante

SetConsoleTextAttribute(GetStdHandle (STD_OUTPUT_HANDLE),X);

MODIFICADORES DE FORMATO

Programación en C 61

MODIFICADORES DE FORMATO

Programación en C 62

MODIFICADORES DE FORMATO

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

int x=45;double y=23.354;char z[]="Esto es vida";

/* utilizamos barras inclinadas (/) para ver claramente la anchura del campo de caracteres */printf("1) Voy a escribir /45/ utilizando el formato %%d: /%d/\n", x);printf("2)Voy a escribir /45/ utilizando el formato %%1d: /%1d/\n", x);printf("3)Voy a escribir /45/ utilizando el formato %%10d: /%10d/\n\n", x);printf("4)Voy a escribir /23.354/ utilizando el formato %%f:/%f/\n", y);printf("5)Voy a escribir /23.354/ utilizando el formato %%.3f: /%.3f/\n", y);printf("6)Voy a escribir /23.354/ utilizando el formato %%5.1f: /%5.1f/\n", y);printf("7)Voy a escribir /23.354/ utilizando el formato %%-10.3f:/%-10.3f/\n", y);printf("8)Voy a escribir /23.354/ utilizando el formato %%5f: /%5f/\n\n", y);printf("9)Voy a escribir /Esto es vida/ utilizando el formato %%s: /%s/\n", z);printf("10)Voy a escribir /Esto es vida/ utilizando el formato %%.7s:/%.7s/\n", z);printf("11)Voy a escribir /Esto es vida/ utilizando el formato %%-15.10s: /%-15.10s/\n", z);printf("12)Voy a escribir /Esto es vida/ utilizando el formato %%15s: /%15s/\n", z);

}

ENTRADA Y SALIDA DE DATOS

ENTRADA DE TIPO CARÁCTER.

Se declara una variable de tipo carácter y se guarda en: getch() o

getche().

La diferencia es que getche() muestra en pantalla el carácter

introducido.

getch() lo mantiene oculto.

Sintaxis:

char opc;

opc=getch();

opc=getche();

65

Ejemplos

CONSTANTES

Una constante es un valor que, una vez fijado por el compilador, no cambia durante laejecución del programa. Una constante en C puede ser un entero, un real, un carácter, ouna cadena de caracteres.

DECLARACION DE CONSTANTES SIMBOLICAS

Declarar una constante simbólica significa decir al compilador de C el nombre de la constante y su valor. Esto se hace generalmente antes de la función main utilizando la directriz #define, cuya sintaxis es:

#define NOMBRE VALOR#define PI 3.14159#define NL ‘\n’#define MENSAJE “Pulse un tecla para continuar \n”

CONSTANTES C++

C++ y algunos compiladores de C admiten una forma adicional de declarar una constante; anteponer el calificador const al nombre de la constante .

const int k=12;

Programación en C

EXPRESIONES

OPERADORES

Una expresión es una secuencia de operadores yoperandos que especifican una operación determinada

Programación en C 72

Programación en C 73

Operaciones aritméticas• El operador de asignación es el igual (=).

Programación en C 74

Ejemplo Operaciones Aritmeticas

main(){

unsigned char a=255,r=0,m=32;int res;r=a&15;/*r=15 . Pone a cero todos los bits de a

excepto los 4 bits de menor peso*/res=(int)r;

cout<<r<<" "<<res<<endl;

r=r|m;/*r=47.Pone a 1 todos los bits de r que estana 1 en m */

res=(int)r;cout<<r<<" "<<res<<endl;r=a& ~7;/* r=248. Pone a 0 los 3 bits de menor peso de a*/res=(int)r;cout<<r<<" "<<res<<endl;r=a>>7;/*r=1. Desplazamiento de 7 bits a la derecha*/res=(int)r;cout<<r<<" "<<res<<endl;

}

Programación en C 82

Pre/post-incrementosLos operadores unarios (++) y (--) representan operaciones de incremento y decremento, respectivamente.

a++; /* similar a a=a+1 */

Ejemplos:

a=3; b=a++; /* a=4, b=3 */

a=3; b=++a; /* a=4, b=4 */

a=3; b=a--; /* a=2, b=3 */

Programación en C 83

Operaciones de asignaciónEl operador de asignación en C es el igual(=)

a=b+3;

Existen otras variantes de asignación:

a+=3; /* Equivalente a a=a+3 */

a*=c+d; /* Equivalente a a=a*(c+d) */

a/=a+1; /* Equivalente a a=a/(a+1) */

Para las asignaciones entre variables o expresiones de tipos diferentes se recomienda hacer casting:

a=(int)(x/2.34);

Programación en C 84

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

int x=0,n=10,i=1;x++;//incrementa el valor de x en 1++x;//incrementa el valor de x en 1x=--n;//decrementa n en 1 y asigna el resultado a xx=n--;//asigna el valor de n a x y despues decrementa n en 1i+=2; //realiza i=i+2x*=n-3;//Realiza x=x*(n-3) y no x=x*n-3n>>=1;//Realiza n=n>>1 desplaza el contenido de n un bit

//a la derecha }

OPERADORES

Programación en C 86

Dentro de c++ tenemos los típicos operadores matemáticos + - * / y también los operadoresunarios (++ --) En este primer ejemplo vemos operadores unarios y la asignación múltiple.

#include <iostream>int main () {

// Sacamos por salida standar un mensajecout << "Vamos a probar los peradores\n";unsigned int test = 0;unsigned int a = 0, b = 0, c;// Sacamos el valor por pantalla de testcout << "Valor de test: " << test << endl;// Sacamos el valor por pantalla de test++cout << "Valor de test++: " << (test++) << endl;cout <<“El valor de test es”<<test<<endl;// Sacamos el valor por pantalla de ++testcout << "Valor de ++test: " << (++test) << endl;cout << "Valor de test actual: " << test << endl;// asignacion multiplec = b = a = test;// Veamos el resto de valorescout << "Y los demas: " << c << " " << b << " " << a << endl;

return 0;}

Operador ?

El operador condicional es el único operador ternario de la gramática C++ y sirve paratomar decisiones. Proporciona un resultado entre dos posibilidades en función de unacondición.Sintaxisexpresion-relacional ? expr1 : expr2

El operador condicional ? : produce un resultado. En la expresión E1 ? E2 : E3, E1 es unaexpresión relacional ( 4.9.12) que se evalúa primero. Si el resultado es cierto, entoncesse evalúa E2 y este es el resultado. En caso contrario (si E1 resulta falso), entonces seevalúa E3 y este es el resultado. Observe que si la premisa E1 es cierta, entonces no llegaa evaluarse la expresión E3.

El operador ? : puede usarse para sustituir ciertas sentencias del tipo if-then-else, aunque puede conducir a expresiones más compactas que las correspondientes if...else. En el ejemplo que sigue, a y se le asigna el valor 100:x = 10;y = x > 9 ? 100 : 200;

Operador ?

int main()

{

int a,b=4,c=5;

a=b>0 ? c : c+1;

/* Equivalente a

if(b>0)

a=c;

else

a=c+1; */

}

Programación en C 88

Operador Dirección &Operador de Indireccion *Operador sizeof()

PRIORIDAD Y ORDEN DE EVALUACION

Ejemplos

a=3;x=(a++-8)*(a-6);

CONVERSIONES DE TIPO

CONVERSIONES DE TIPO

Casting (Conversion explísita)Casting: mecanismo usado para cambiar de tipoexpresiones y variables:

La forma de generar un casting es:(tipo) expresión

Donde • Tipo; es uno de los tipos estándares del lenguaje

• Expresion, es una esprexion de cualquier tipo

int a;

float b;

char c;

b=65.0;

a=(int)b; /* a vale 65 */

c=(char)a; /* c vale 65 (Código ASCII

de ‘A’) */Programación en C 94

Casting

Programación en C 95

/* ejemplo 4.- realizamos conversiones de tipos implícitas y explícitas */

#include <stdio.h>

int main()

{

double d , e , f = 2.33 ;

int i = 6 ;

e = f * i ; /* e es un double de valor 13.98*/

printf( "Resultado = %f", e);

d = (int) ( f * i ) ; /* d es un double de valor 13.00*/

printf( "Resultado = %f", d);

d = (int) f * i ; /* f se ha convertido a un entero truncando sus*/

/*decimales, d es un double de valor 12.00*/

printf( "Resultado = %f", d);

return 0;

}

Ejercicio

ESTRUCTURAS SELECTIVAS

Programación en C 97

• SIMPLES (if)• DOBLES (if…else)• MULTIPLES (switch)

Programación en C 98

#include <iostream>

int main ()

{

// Sacamos por salida standar un mensaje

cout << "Vamos a probar los operadores\n";

unsigned int test = 0;

unsigned int a = 0, b = 0, c;

// asignacion multiple

c = b = a = ++test;

b += 3;

c++;

a -= 1;

// Veamos el resto de valores

cout << "Son estos: c=" << c << " b=" << b << " a=" << a << endl;

a += b + c;

cout << "Y ahora son estos: c=" << c << " b=" << b << " a=" << a << endl;

// Tomamos el valor a

cout << "Dame valores. \na=";

cin >> a;

// Tomamos el valor b

cout << "b=";

cin >> b;

// Tomamos el valor c

cout << "c=";

cin >> c;

cout << "Y ahora son estos: c=" << c << " b=" << b << " a=" << a << endl;

//Probamos el if

if (a > b) {

cout << "A es mayor que B" << endl;

}

//Probamos el if

if (a >= b) {

cout << "A es mayor o igual que B" << endl;

}

//Probamos el if

if (a <= b) {

cout << "A es menor o igual que B" << endl;

}

return 0;

}

if ... else

int main()

{

int a=3,b;

if(a>2)

{

b=100+a;

printf(“parte if”);

}

else

printf(“parte else”);

}

Programación en C 99

a>2

<if> <else>

Programación en C 100

#include <iostream>

int main ()

{

// Sacamos por salida standar un mensaje

cout << "Vamos a probar los operadores\n";

unsigned int test = 0;

int a = 23, b = 21, c = 34;

// Veamos el resto de valores

cout << "Valores: " << c << " " << b << " " << a << endl;

// Tomamos el valor a

cout << "Dame valores. \na=";

cin >> a;

// Tomamos el valor b

cout << "b=";

cin >> b;

// Tomamos el valor c

cout << "c=";

cin >> c;

cout << "Y ahora son estos: c=" << c << " b=" << b << " a=" << a << endl;

// Veamos una sentencia if-else sencilla

if (!(a == b))

cout << "a y b no son iguales" << endl;

else

cout << "a y b son iguales" << endl;

// Veamos otra sentencia if-else sencilla

if ((a == b) || (b == c))

cout << "A y B son iguales o B y C son iguales" << endl;

else

cout << "ni A y B son iguales ni B y C son iguales" << endl;

// Nota. Ley de De Morgan

// !(A && B) == !A || !B

// !(A || B) == !A && !B

return 0;

}

Operadores lógicos. A continuación vemos algunos ejemplos de operadores lógicos (comparaciones) y lacombinación de estos.

Programación en C 101

Programa para probar operadores Lógicosusing namespace std;#include <iostream>int main () {// Sacamos por salida standar un mensajecout << "Vamos a probar los operadores\n";unsigned int test = 0;int a = 23, b = 21, c = 34;// Veamos el resto de valorescout << "Valores: " << c << " " << b << " " << a << endl;// Tomamos el valor acout << "Dame valores. \na=";cin >> a;// Tomamos el valor bcout << "b=";cin >> b;// Tomamos el valor ccout << "c=";cin >> c;cout << "Y ahora son estos: c=" << c << " b=" << b << " a=" << a << endl;// Veamos una sentencia if-else sencillaif (!a)cout << "A es false (igual 0)" << endl;elsecout << "A es true (distinto de 0)" << endl;// Veamos una sentencia if-else sencillaif (!b)cout << "B es false (igual 0)" << endl;elsecout << "B es true (distinto de 0)" << endl;// Veamos una sentencia if-else sencillaif (!c)cout << "C es false (igual 0)" << endl;elsecout << "C es true (distinto de 0)" << endl;// Sentencia con operador logico o TERNARIO ()?:c = (a == b)?0:1;cout << "C es : " << c << endl;return 0;}

Programación en C 102

Switch

switch(ch)

{

case ‘A’: printf(“A”);

break;

case ‘B’:

case ‘C’: printf(“B o C”);

case ‘D’: printf(“B, C o D”);

break;

default: printf(“Otra letra”);

}

Programación en C 104

Ejercicio

while

int main()

{

int i=0,ac=0;

while(i<10)

{

printf(“%d”,i*i);

ac+=i;

i++;

}

}

Programación en C 108

i<100

i=0

<while>

i++

Programación en C 109

Programación en C 110

Sentencia do…while

Programación en C 111

do ... while

int main()

{

int i=0,ac=0;

do

{

printf(“%d”,i*i);

ac+=i;

i++;

}

while(i<10);

}

Programación en C 112

i<100

i=0

<do>

i++

Sentencia for

Programación en C 113

Programación en C 114

Sentencia for

Programación en C 115

Ejemplos de la Sentencia for

Programación en C 116

Programación en C 117

#include <stdio.h>

int main(){

int n, a;

a = 0;do{printf( "Introduzca un numero entero: " );scanf( "%d", &n );

if ( n == 0 ){printf( "ERROR: El cero no tiene opuesto.\n" );continue;/* En el caso de que n sea un cero,

la iteración en curso del buclese interrumpe aquí. */

}printf( "El opuesto es: %d\n", -n );a += n;

} while ( n >= -10 && n <= 10 );

printf( "Suma: %d", a );return 0;

}

La instrucción de salto continue siempre se usa parainterrumpir (romper) la ejecución normal de un bucle. Sinembargo, el control del programa no se transfiere a laprimera instrucción después del bucle (como sí hace lainstrucción break, es decir, el bucle no finaliza, sino que,finaliza la iteración en curso, transfiriéndose el control delprograma a la condición de salida del bucle, para decidir sise debe realizar una nueva iteración o no.

Por tanto, la instrucción continue finaliza (termina) laejecución de una iteración de un bucle, pero, no laejecución del bucle en sí. De forma que, lainstrucción continue salta (no ejecuta) las instruccionesque existan después de ella, en la iteración de un bucle.

LA INSTRUCCION CONTINUE

Programación en C 118

LA INSTRUCCION BREAK

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

int n, a;a = 0;do{

printf( "Introduzca un numero entero: " );scanf( "%d", &n );

if ( n == 0 ){

printf( "ERROR: El cero no tiene opuesto.\n" );break;/* En el caso de que n sea un cero,

el bucle se interrumpe. */}printf( "El opuesto es: %d\n", -n );a += n;

} while ( n >= -10 && n <= 10 );

printf( "Suma: %d", a );return 0;

}

La instrucción de salto break se usapara interrumpir (romper) laejecución normal de un bucle, esdecir, la instrucción break finaliza(termina) la ejecución de un bucle y,por tanto, el control del programa setransfiere (salta) a la primerainstrucción después del bucle.

break y continue

int main()

{

int i;

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

{

if(i%2==0)

continue;/*Comienza la iteración*/

if(i%17==0)

break; /*Sale del bucle*/

printf(“%d”,i);

}

}

Programación en C 119

Ej. Sentencia goto

Ejercicios