Lenguaje C

80
Programación en Lenguaje C

description

detalles del lenguaje c y su aplicacion en el lenguaje de bajo nivel y la programacion asembler

Transcript of Lenguaje C

Page 1: Lenguaje C

Programación en Lenguaje C

Page 2: Lenguaje C

Programación en Lenguaje C

4.1 Programación aplicado al hardware usando: for, while, do – while, if – else.

Page 3: Lenguaje C

El Lenguaje de C Derivado a partir del Lenguaje B (y

del BPCL) por Dennis Ritchie en los Laboratorios BELL, 1972. Implantado por primera vez en una computadora PDP-11 de DEC.

Usado para desarrollar el UNIX. Independiente del hardware

(portable). Existieron muchas variaciones leves

del C incompatibles entre si. Se creó un comité para formar una

definición “no ambigua independiente de la máquina”.

Estándar se creó en 1989, actualizada en 1999.

Page 4: Lenguaje C

El Lenguaje de C Un lenguaje de nivel medio.

Combina elementos de lenguajes de alto nivel (Pascal, Basic) con funcionalidades de lenguaje ensamblador (Assembler).

Mejor manejo de recursos de hardware: disco y archivos.

Mejor manejo de posiciones de memoria. Portabilidad.

Page 5: Lenguaje C

El Lenguaje de C Un lenguaje estructurado

Estructura basada en funciones Bloques independientes invocados

desde un bloque principalo Concepto de módulo principal y

módulos secundarios

Page 6: Lenguaje C

Estructura general de un programa en CDeclaraciones globalesDeclaraciones de libreriasmain() {…}

funcion1(lista de parámetros){ variables locales de la funcióninstrucciones de la función}

funcion2(lista de parámetros){ variables locales de la funcióninstrucciones de la función}…funcionNN(lista de parámetros){ variables locales de la funcióninstrucciones de la función}

Programa principal

Funciones que serán

usadas en el main

Page 7: Lenguaje C

Entorno de Programación de C típico (IDE)

El compilador crea el código objeto y lo almacena en disco

Compiler Disk

El enlazador vincula el código objeto con las librerías

Linker Disk

.

.

.

.

.

.

Cargador coloca el programa en memoria

Loader

Memoria Principal

Disk

El CPU toma cada una de las instrucciones y las ejecuta, almacenando, de ser necesario, nuevos datos en la memoria

 

Memoria Principal

.

.

.

.

.

.

CPU

Preprocesa las directivas

Preprocessor

Disk

El programa es creado en el editor y almacenado en el disco

Editor Disk

1. Editar2. Preprocesar3. Compilar (Compile)4. Enlazar (Link)5. Cargar (Load)6. Ejecutar (Execute)

Fases de la generación de programas

Page 8: Lenguaje C

Ejemplos de programasEjemplo 1.

Escribir un programa en Lenguaje C que envíe un mensaje (Hola mundo) a la pantalla del computador.Solución

Fin

“Hola mundo”

Inicio

Page 9: Lenguaje C

Ejemplos de programas

#include <stdio.h>main(){ printf( “Hola mundo” ); return 0;}

SoluciónEjemplo

1

Fin

“Hola mundo”

Inicio

Page 10: Lenguaje C

Conceptos Fundamentales:Identificador Concepto de identificador

Nombre que permite hacer referencia a un objeto (constantes, variables, funciones) usado en un programa.

Page 11: Lenguaje C

Conceptos Fundamentales:Identificador Reglas de formación

Se componen de letras y dígitos. El primer carácter debe ser una

letra. El carácter de subrayado (_) cuenta

como una letra. Se diferencian las letras

mayúsculas de las minúsculas (case sensitive).

Los identificadores pueden tener cualquier longitud.

Al menos los 31 caracteres de un nombre interno son significativos. Para nombres externos, el estándar garantiza distinguir hasta 6 caracteres y sin diferenciar mayúsculas de minúsculas.

Algunas veces es útil para mejorar la legibilidad de nombres largos.No es recomendable empezar los nombres con él, pues las rutinas de bibliotecas suelen hacerlo.

Por ejemplo: n y N son distintas. La práctica usual es usar letras minúsculas para nombres de variables y todo en mayúsculas para constantes simbólicas.

Page 12: Lenguaje C

Conceptos Fundamentales:Identificador Reglas de formación

Para nombres definidos por el programador tener en cuenta que existen palabras reservadas por el lenguaje.

Algunas implementaciones reservan las palabras fortran y asm.

auto double int structbreak else long switchcase enum register switchchar extern return unionconst float shortunsignedcontinue for signed voiddefault goto sizeof volatiledo if static while

Page 13: Lenguaje C

Conceptos Fundamentales:Delimitadores Son símbolos que permiten al

compilador separar y reconocer las diferentes unidades sintácticas del lenguaje.

Los principales delimitadores son:; es necesario para finalizar sentencias o

declaraciones., separa dos elementos consecutivos de

una lista.() enmarca una lista de parámetros.[] enmarca la dimensión o el subíndice de

una tabla.{} enmarca un bloque de instrucciones o

una lista de valores iniciales.

Page 14: Lenguaje C

Conceptos Fundamentales:Tipos de datos El tipo de un objeto determina el

conjunto de valores que puede tener y qué operaciones se pueden realizar sobre él.

Hay unos cuantos tipos de datos básicos en C:char un solo byte, capaz de contener un

caracter del conjunto de caracteres local.

int un entero, normalmente del tamaño natural de los enteros en la máquina en la que se ejecuta.

float punto flotante de precisión normal.double punto flotante de doble precisión.

Page 15: Lenguaje C

Conceptos Fundamentales:Tipos de datos Existen, además, algunos

calificadores que se aplican a estos tipos básicos. short y long se aplican a enteros:

short int sh;long int cont;

La palabra int puede omitirse de tales declaraciones (lo que típicamente se hace).

signed o unsigned se puede aplicar a char o a cualquier entero. Los números unsigned son siempre positivos o cero.

Cada compilador puede seleccionar libremente los tamaños apropiados para su propio hardware, sujeto a la restricción de que los shorts e ints son por lo menos de 16 bits, los longs son por lo menos de 32 bits y el short no es mayor que int, el cual a su vez no es mayor que long.

Page 16: Lenguaje C

Conceptos Fundamentales:Tipos de datos Existen, además, algunos

calificadores que se aplican a estos tipos básicos. El tipo long double especifica

punto flotante de precisión extendida.

Igual que con los enteros, los tamaños de los objetos de punto flotante se definen en la implementación; float, double y long double pueden representar uno, dos o tres tamaños distintos.

Page 17: Lenguaje C

Conceptos Fundamentales:Tipos de datos Las enumeraciones son tipos

únicos que tienen valores enteros. Asociada con cada enumeración

hay un conjunto de constantes nombradas: los enumeradores.

Las enumeraciones se comportan como enteros.

El tipo void especifica un conjunto vacío de valores. Se usa como el tipo regresado por

funciones que no generan un valor.

Page 18: Lenguaje C

Conceptos Fundamentales:Tipos derivados Además de los tipos básicos, existe

una categoría conceptualmente infinita de tipos derivados, construidos a partir de los tipos fundamentales en las formas siguientes: Arreglos de objetos de un tipo dado. Funciones que regresan objetos de un

tipo dado. Punteros a objetos de un tipo dado. Estructuras que contienen una

secuencia de objetos de varios tipos. Uniones capaces de contener un

objeto cualquiera de varios tipos.

Page 19: Lenguaje C

Conceptos Fundamentales:Tipos de datos de usuario El usuario puede crear

identificadores que nombren tipos: Una declaración typedef atribuye

un tipo a cada nombre entre sus declaradores en la forma usual.

Ejemplo:typedef long Entero64;typedef int Entero32;typedef short Entero16;…Entero64 Total;Entero32 Acumulador;Entero16 Cont;

Page 20: Lenguaje C

Conceptos Fundamentales:Constantes Ejemplos de constantes

1234 es una constante entera de tipo int. 123456789L es una constante entera de tipo long (se usa el sufijo l o L). 123456789 también será considerado como una constante entera de tipo long para el caso de manejar ints de 16 bits (cualquier entero demasiado grande para caber dentro de un int será tomado como long). 1234U es una constante entera sin signo (se usa el sufijo u o U para unsigned int, ul o UL para unsigned long). 31, 037 y 0x1f son constantes que tienen el mismo valor pero en formatos diferentes. Si al principio de una constante entera se coloca: 0 (cero) significa octal, 0x ó 0X significa hexadecimal.

Page 21: Lenguaje C

Conceptos Fundamentales:Constantes Ejemplos de constantes

123.4 y 1e-2 son constantes de punto flotante del tipo double (se usa el punto decimal, un exponente o ambos).

123.4f es una constante de punto flotante del tipo float (se usa el sufijo f o F para float, lf LF para long double).

Page 22: Lenguaje C

Conceptos Fundamentales:Constantes Ejemplos de constantes

‘x’ es una constante de carácter (éstas son del tipo entero). El valor de una constante de carácter es el valor numérico del carácter en el conjunto de caracteres de la máquina.

“x” y “hola” son constantes de cadena. “” es una cadena vacía. Las constantes de cadena pueden ser concatenadas en tiempo de compilación.

‘\n’ y “\n” son una constante de carácter y de cadena, respectivamente, formada por una secuencia de escape.

‘\0’ representa el carácter con valor 0, el carácter nulo. A menudo ‘\0’ se prefiere a 0 para resaltar la naturaleza de carácter de algunas expresiones.

Page 23: Lenguaje C

Conceptos Fundamentales:Secuencias de escape\a carácter de alarma (campana)\b retroceso\f avance de hoja\n nueva línea\r regreso de carro\t tabulador horizontal\v tabulador vertical\\ diagonal invertida\? Interrogación\’ apóstrofo\” comillas\ooo número octal\xhh número hexadecimal

Page 24: Lenguaje C

Conceptos Fundamentales:Constante Simbólicas Una constante simbólica es un

identificador cuyo valor nunca cambia durante la ejecución del programa.

El formato de declaración es:#define identificador expresion_constante

Una expresión constante es una expresión que sólo involucra constantes. Tales expresiones pueden ser evaluadas durante la compilación en vez de que se haga en tiempo de ejecución y por tanto pueden ser utilizadas en cualquier lugar en que pueda encontrarse una constante.

Page 25: Lenguaje C

Conceptos Fundamentales:Constante Simbólicas Ejemplos:#define PI 3.14159#define MAXIMO 999#define ULTIMALETRA 'Z'#define MENSAJE “Introduzca su edad:”

El Preprocesador sustituye los identificadores por su valor real antes de la compilación.

Page 26: Lenguaje C

Conceptos Fundamentales:Variables Las variables, junto con las constantes, son

los objetos básicos que se manipulan en un programa.

Toda variable debe ser declarada antes de ser usada: Requiere de un tipo, el cual determina el conjunto

de valores que puede tener y que operaciones se podrán realizar sobre él.

Requiere de un identificador (cuyas reglas de formación ya fueron presentadas).

Opcionalmente puede ser inicializada. La declaración de las variables se

hace de acuerdo con el siguiente formato:

tipo lista_de_identificadores;

Page 27: Lenguaje C

Conceptos Fundamentales:Variables Ejemploschar c;int i, j;double radio, longitud;

Toda variable se encuentra asociada a una posición en la memoria del computador.

Page 28: Lenguaje C

Conceptos Fundamentales:Operadores Un operador es un carácter o grupo

de caracteres que actúa sobre una, dos o más variables para realizar una determinada operación con un determinado resultado. Operador de Asignación Operadores Aritméticos Operadores Incrementales Operadores Relacionales Operadores Lógicos Otros Operadores

Page 29: Lenguaje C

Conceptos Fundamentales:Operador de Asignación Sirve para dar un valor a una variable. Este valor puede ser un número

(constante) u otra variable:a = 6; /* Se asigna el valor de 6

directamente */a = b; /* Le damos el valor de otra

variable */ Es válida la expresión:

a = b = c = 10; /*Damos a cada variable el valor 10*/

Page 30: Lenguaje C

Conceptos Fundamentales:Operador de Asignación En algunas ocasiones, la asignación

puede ser abreviada:c = c + 3; puede ser escrita como c += 3;

Enunciados de la formavariable = variable operador expresion;

puede ser escrito comovariable operador= expresion;

Ejemplos:d -= 4; /*d = d – 4*/e *= 5; /*e = e * 5*/f /= 3; /*f = f / 3*/

Page 31: Lenguaje C

Conceptos Fundamentales:Operadores Aritméticos Nos permiten realizar cálculos

Aritméticos- resta + suma* producto / división % móduloObservaciones: División de enteros trunca el residuo

42 / 4 es igual a 10 Operador Módulo (%) retorna el residuo

42 % 4 es igual a 2

Page 32: Lenguaje C

Conceptos Fundamentales:Operadores Aritméticos Precedencia de los operadores.

Algunos operadores aritméticos actúan antes que otros (por ejemplo, la multiplicación antes que la suma)

Deben usarse paréntesis cuando sea necesario Ejemplo:

Hallar el promedio de tres variables a, b y c

Incorrecto: a + b + c / 3 Correcto: (a + b + c) / 3

Page 33: Lenguaje C

Conceptos Fundamentales: Reglas de Precedencia

Operador Operación Precedencia

() Paréntesis

Se calculan primero. Si los paréntesis están anidados, la expresión en el par más interno se evalúa primero. Si existen varios pares de paréntesis “en el mismo nivel” (es decir, no anidados), se calculan de izquierda a derecha.

*, /, %Multiplicación,

División, Módulo

Se evalúan en segundo lugar. Si existen varios se calculan de izquierda a derecha.

+, - Suma, RestaSe calculan al último. Si existen varios se calculan de izquierda a derecha.

Page 34: Lenguaje C

Conceptos Fundamentales: Reglas de Precedencia El resultado de una expresión

depende del orden en que se ejecutan las operaciones. El siguiente ejemplo ilustra claramente la importancia del orden. Considérese la expresión: 3 + 4 * 2.

Si se realiza primero la suma (3+4) y luego el producto (7*2), el resultado es 14.

Si se realiza primero el producto (4*2) y luego la suma (3+8), el resultado es 11.

Page 35: Lenguaje C

Conceptos Fundamentales: Precedencia y Asociatividad Existe dos tipos de reglas para

determinar el orden de evaluación: las reglas de precedencia y de asociatividad.

Los distintos operadores de C se ordenan según su distinta precedencia o prioridad.

Para operadores de la misma precedencia o prioridad, en algunos el orden de ejecución es de izquierda a derecha, y en otros de derecha a izquierda. A este orden se le llama asociatividad.

Page 36: Lenguaje C

36

Conceptos Fundamentales: Precedencia y Asociatividad Precedencia Asociatividad

() [] -> . Izquierda a derecha

* / % Izquierda a derecha

+ - Izquierda a derecha

< <= > >= Izquierda a derecha

== != Izquierda a derecha

&& Izquierda a derecha

|| Izquierda a derecha

?: Derecha a izquierda

= += -= *= /= Derecha a izquierda

, (operador coma) Izquierda a derecha

Page 37: Lenguaje C

Conceptos Fundamentales: Precedencia y Asociatividad En la Tabla anterior se indica que el

operador * tiene precedencia sobre el operador +.

Esto quiere decir que, en ausencia de paréntesis, el resultado de la expresión 3+4*2 es 11 y no 14.

Los operadores + y - tienen igual precedencia pero asociatividad de izquierda a derecha. Eso quiere decir que en la expresión a-b+d*5.0+u/2.0 el orden de evaluación es el indicado por los paréntesis:

(((a-b)+(d*5.0))+(u/2.0))

Page 38: Lenguaje C

Conceptos Fundamentales: Operadores de Incremento y Decremento Incremento (++)

Puede ser usado en vez de c = c + 1 Decremento (--)

Puede ser usado en vez de c = c - 1 Preincremento y Predecremento

Incrementa (decrementa) la variable antes de que su valor se utilice

Es usado antes de la variable++c --c

Postincremento y Postincremento Incrementa (decrementa) la variable

después de que su valor ha sido utilizado Es usado después de la variable

c++ c--

Page 39: Lenguaje C

Conceptos Fundamentales: Operadores de Incremento y Decremento Si dato es igual a 5, entonces

printf( “%d”, ++dato );Imprime 6

printf( “%d”, dato++ );Imprime 5

En cualquier caso, dato ahora toma el valor de 6

Cuando la variable no está presente en una expresión, preincremento y postincremento tienen el mismo efecto:

++dato;printf(“%d”,dato);

dato++;printf(“%d”,dato);

Page 40: Lenguaje C

Conceptos Fundamentales: Operadores Relacionales

Los operadores relacionales se utilizan cuando se desea tomar una decisión:> mayor que >= mayor o igual que< menor que <= menor o igual que== igual que != distinto de

Cuando se evalúa una condición el resultado que se obtiene es 0 si no cumple (falso), y un número distinto de 0 si se cumple (verdadero). Normalmente cuando se cumplen devuelven un 1.

Page 41: Lenguaje C

Conceptos Fundamentales: Toma de decisiones Ejemplos de expresiones relacionales:

x >= (y+z)contador < MAXIMOnumero%2 == 0

ordenado != Cierto Ejemplo de toma de decisiones:

Se puede imprimir “aprueba” o “desaprueba” dada una nota en un examen; nota >= 11

Estructura de control if (Versión sencilla) Si una condición es verdadera, entonces

el cuerpo del enunciado if es ejecutado El control continúa después de la

estructura if

Page 42: Lenguaje C

Conceptos Fundamentales: Operadores Lógicos A veces se requiere comprobar si

varias condiciones se cumplen de determinada manera.

&& (Y lógico - AND) Retorna verdadero si ambas condiciones

son verdaderas Ejemplo: n > 5 && n < 8

|| (O lógico - OR) Retorna verdadero si cualquiera de las

condiciones es verdadera Ejemplo: D == 3 || D >= 5

Page 43: Lenguaje C

Conceptos Fundamentales: Operadores Lógicos ! (negación lógica - NOT lógico)

Invierte la condición de falso o verdadero

Sólo tiene un operando Ejemplo: !(m == 3)

Útiles para condiciones en lazos.

Page 44: Lenguaje C

Conceptos Fundamentales: Operadores Lógicos

Tablas de verdad

&& (Y lógico - AND) ResultadoFalso Falso Falso

Falso Verdadero Falso

Verdadero Falso Falso

Verdadero Verdadero Verdadero

Page 45: Lenguaje C

Conceptos Fundamentales: Operadores Lógicos

|| (O lógico - OR) ResultadoFalso Falso Falso

Falso Verdadero Verdadero

Verdadero Falso Verdadero

Verdadero Verdadero Verdadero

! (negación lógica - NOT) ResultadoFalso Verdadero

Verdadero Falso

Page 46: Lenguaje C

46

Error Peligroso: No causa necesariamente errores de

sintaxis Cualquier expresión que produce un valor

puede ser usado en estructuras de control Valores distintos de cero verdaderos,

valores cero son falsos

Conceptos Fundamentales: Confusiones comunes

Page 47: Lenguaje C

47

Ejemplo usando ==if(payCode == 4) printf(”ganas un bonus!\n”);

Si paycode es 4 se gana un bonus Si reemplazamos == por =

if(payCode = 4) printf(“ganas un bonus!\n”);

Se asigna 4 a paycode 4 es distinto de cero, la expresión es verdadera, y se gana un bonus sin importar el valor previo de paycode

Es un error lógico, no de sintaxis.

Conceptos Fundamentales: Confusiones comunes

Page 48: Lenguaje C

Representación Gráfica de un algoritmo

Símbolo de rectángulo : Indica una acción

Óvalo : Indica comienzo o fin de un

programa

Diagramas de Flujo

INICIO

Page 49: Lenguaje C

Estructuras Lógicas Todo algoritmo puede expresarse

mediante 3 estructuras lógicas: La secuencia. La condición. La repetición.

Page 50: Lenguaje C

Notación gráfica

Secuencia

Condición

Page 51: Lenguaje C

Notación gráfica

Repetición

Page 52: Lenguaje C

Estructura de Selección if La estructura de selección if es

utilizada para realizar una de dos acciones distintas en base a una condición.

Page 53: Lenguaje C

Estructuras selectivas en C: if Estructura

selectiva if - else Funcionamiento

similar que en Pascal

Sintaxis: versión simple

if (expresión) sentencia 1;

elsesentencia 2;

Diferencia con Pascal:NO SE USA LA PALABRA

THEN

Diferencia con Pascal:SE ESCRIBE ; ANTES DE ELSE

Page 54: Lenguaje C

Estructuras selectivas en C: if Sintaxis: versión bloques

if (expresión){…….. }else{……..}

Bloque de instrucciones del if

Bloque de instrucciones del else

Page 55: Lenguaje C

Estructura de Selección if Por ejemplo, el siguiente

pseudocódigo:Si la nota del alumno es mayor o igual a

11Imprimir “Aprobado”

La condición “la nota del alumno es mayor o igual a 11” tiene dos posibilidades: es verdadera o es falsa.

Si la condición es verdadera Se ejecuta la acción de imprimir y el

programa continúa al siguiente enunciado

Si la condición es falsa: El enunciado de impresión es ignorado y

el programa continúa al siguiente enunciado

Page 56: Lenguaje C

Estructura de Selección if Veamos otra vez el ejemplo:

Si la nota del alumno es mayor o igual a 11Imprimir “Aprobado”

Si lo traducimos al lenguaje C:if ( nota_alumno >= 11 ) printf( ”Aprobado\n" );

Observar que el código en C se parece al pseudocódigo

La sangría permite que los programas sean más fáciles de leer, pues C ignora los espacio en blanco

Page 57: Lenguaje C

Estructura if: representación en diagrama de flujo Estructura if es del tipo una-

entrada/una-salida

verd

falso

nota >= 11 print “Aprobado”

En lenguaje C:Es cero – falso

No es cero – verdadero

Page 58: Lenguaje C

Estructura de Selección if/else if

Sólo realiza una acción si la condición es verdadera

if/else Especifica una acción a realizarse si

la condición es verdadera y otra acción si la condición es falsa

 

Page 59: Lenguaje C

Estructura de Selección if/else Otro ejemplo en pseudocódigo:

Si la nota del alumno es mayor o igual a 11Imprime “Aprobado”

de lo contrarioImprime “Jalado”

Notar las convenciones de espaciado y tabulado

Traducido a C :if ( nota >= 11 ) printf( ”Aprobado\n");else printf( ”Jalado\n");

Page 60: Lenguaje C

Estructura de Selección if/else Diagrama de flujo de la

estructura if/else

verdfalso

print “Jalado”

print “Aprobado”

nota >= 11

Page 61: Lenguaje C

Anidación de estructuras if/else Se pone a prueba casos

múltiples colocando estructuras if/else dentro de estructuras if/else.

Se cumple con una condición, el resto de los enunciados se evitan.

Page 62: Lenguaje C

Anidación de estructuras if/else Ejemplo

Si la nota del alumno es mayor o igual a 16Imprimir “A”

de lo contrario Si la nota del alumnos es mayor o igual a 12 Imprimir “B”de lo contrario Si la nota del alumno es mayor o igual a 8 Imprimir “C” de lo contrario Si la nota del alumno es mayor o igual a

4 imprimir “D” de lo contrario imprimir “E”

Page 63: Lenguaje C

Estructura de Selección if/else Enunciados compuestos:

Uso de llaves Ejemplo:

if ( nota >= 11 ) printf( “Aprobado.\n” );else { printf( “jalado.\n”); printf( “Debe repetir el curso.\n” );

} Sin las llaves, el enunciado

printf( “Debe repetir el curso.\n” );se ejecutaria siempre

Page 64: Lenguaje C

La estructura de Selección Múltiple switch switch

Permite realizar una ramificación múltiple, ejecutando sólo una de varias posibilidades, dependiendo de los diferentes valores que puede tomar una variable.

 

Page 65: Lenguaje C

switch: Diagrama de Flujo

caso aVerdadero

Falso

Acciones de l caso a

caso bVerdadero

Falso

Acciones de l caso b

caso zVerdadero

Falso

Acc iones de l caso z

Acc iones por defecto

Page 66: Lenguaje C

Formato Series de etiquetas case y el caso

opcional defaultswitch ( variable ){

case '1':acciones

case '2':acciones

default:acciones

} “break;” permite salir de la estructura

 

La estructura de Selección Múltiple switch

Page 67: Lenguaje C
Page 68: Lenguaje C

Estructuras de repetición controlada Con control al inicio del bloque:

while()

Con control al final del bloque:do-while()

Con control al inicio y con contadores:for()

Instrucciones de control:break

continue

Page 69: Lenguaje C

La estructura while() while = mientras Estructura

El programador especifica que una acción se repite mientras cierta condición se mantenga como verdadera

Pseudocódigo:Mientras haya más cosas en mi lista de

compras Comprar el siguiente item y sacarlo de mi lista

El bucle while se repite hasta que la condición sea falsa

 

Page 70: Lenguaje C

La estructura de repetición while

Ejemplo: int producto = 2;while ( producto <= 1000 )

producto = 2 * producto;

producto <= 1000 producto = 2 * productoverd

falso

Page 71: Lenguaje C

Algoritmos típicos de repetición Validación de ingreso de datos. Repetición controlada por

contador. Repetición controlada por

centinela.

Page 72: Lenguaje C

La estructura de repetición do/while Estructura de repetición do/while Similar a while La condición para la repetición se

evalúa después que el lazo es ejecutado

Todas las acciones se ejecutan al menos una vez

Formato:do { enunciado;} while ( condicion );

Page 73: Lenguaje C

Ejemplodo { printf( "%d ", contador );} while (++contador <= 10);

Imprime los enteros del 1 al 10 

La estructura de repetición do/while

Page 74: Lenguaje C

do/while: Diagrama de Flujo

condic iónVerdadero

Falso

acciones

Page 75: Lenguaje C

Estructuras de repetición Otras estructuras de control de

repetición for do/while

break Usado para salir en forma inmediata y

rápida de ciertas estructuras de control continue

Usado para saltarse el resto de una estructura de repetición, continuando con la siguiente iteración del ciclo

Page 76: Lenguaje C

Lo esencial de la repetición Bucle o Lazo

Grupo de instrucciones que la computadora ejecuta en forma repetida mientras cierta condición se mantiene como verdadera

Repetición controlada por contador Repetición Definida: se conoce cuántas

veces se ejecuta el lazo Se usa una variable de control para

contar repeticiones

Page 77: Lenguaje C

Estructura de repetición for

Formato a usarse con bucles for for ( inicialización;

CondiciondeContinuaciondeCiclo; incremento )

enunciado Ejemplo:

for( int contador = 1; contador<=10; contador++)

printf( "%d\n", contador ); Imprime los enteros del uno al diez

Sin punto y coma (;) al final

Page 78: Lenguaje C

Estructura de repetición for La sentencia for reemplaza a bucles

del tipo while del siguiente tipo:inicialización;while (CondiciondeContinuaciondeCiclo)

{enunciado o acción;incremento;}

Inicialización e incremento Se separan por comas Ejemplo:

for (i = 0, j = 0; j + i <= 10; j++, i++) printf( "%d\n", j + i );

Page 79: Lenguaje C

Los enunciados break y continue break

Causa una salida inmediata de una estructura tipo while, for, do/while o switch

La ejecución del programa continúa con la primera sentencia después de la estructura.

Usos comunes de break Salida temprana de un lazo Saltar el resto de una estructura switch

Page 80: Lenguaje C

Los enunciados break y continue continue

Salta los enunciados restantes del cuerpo de una estructura while, for o do/while

Continúa con la siguiente iteración del lazo while y do/while

Se realiza la evaluación de la continuación del lazo inmediatamente después que continue es ejecutada

for La expresión de incremento es ejecutada, y

luego es evaluada la condición de continuación del lazo