SlideShare una empresa de Scribd logo
1 de 5
2.1 Elemento básicos del lenguaje
de programación estructurado manipulación básica de
datos.
2.2 Utilizar estructuras de control.
2.1 Estructuras de control.
Las estructuras de control también conocidas como ciclos, bucles,
estructuras iterativas o repetitivas, son básicas para la elaboración de
programas, ya que el repetir una tarea varias veces a una gran velocidad,
precisión y fiabilidad es una de las características de las computadoras que
aumentan considerablemente su potencia. C soporta tres tipos de estructuras
de control:
 Ciclo while
 Ciclo do_while
 Ciclo for
2.1.1 Teoría de ciclos.
Un ciclo es cualquier construcción de programa que repite una sentencia
o secuencia de sentencias un número de veces. Las sentencias o grupo de
sentencias que se repiten en un bloque se denominan cuerpo del bucle y cada
repetición del cuerpo del ciclo se llama iteración del ciclo.
2.1.2 Contadores, acumuladores.
Contadores:
En los procesos repetitivos se necesita normalmente contar los sucesos
o acciones internos del ciclo, como pueden ser: registro o elementos en un
archivo y número de iteraciones a realizar por el ciclo. Para realizar esta tarea
se utilizan los contadores, cuya construcción es una de las técnicas corrientes
en la realización de cualquier programa.
Un contador es un campo de la memoria que está destinado a contener los
diferentes valores que se van incrementando o decrementando en cada
iteración. El campo contendrá las sucesivas sumas parciales que se van
realizando en la ejecución de las sucesivas repeticiones. El incremento en las
sumas parciales es siempre constante, pudiendo ser positivo o negativo, es
decir el contador se irá incrementando o decrementando. El contador se
representará en un programa por medio de una variable.
En las instrucciones de preparación del ciclo se realiza la inicialización del
contador o contadores. La inicialización de un contador consiste en poner el
valor inicial de la variable que representa al contador.
Ejemplos:
Contador =0 Contador = 4
Por consiguiente, el contador se representará por una instrucción de asignación
del tipo:
Contador = Contador + 1 Contador = Contador – 1
Siendo 1 el incremento del contador.
Acumuladores:
Un acumulador es un campo o zona de memoria cuya misión es almacenar
cantidades variables resultantes de sumas sucesivas. Realiza la función de un
contador con la diferencia que el incremento o decremento de cada suma es
variable en lugar de constante como en el caso del contador.
Se representa por S=S+N donde N es una variable y no constante.
Al igual que al contador a un acumulador se le inicializa.
2.1.3 Ciclos controlados por contadores, centinelas.
Ciclos controlados por centinelas.
Por lo general no se conoce con exactitud cuantos elementos de datos se
procesarán antes de comenzar su ejecución. Esto se produce bien porque hay
muchos datos a contar normalmente o porque el número de datos a procesar
depende de cómo prosigue el proceso de cálculo.
Un medio para manejar esta situación es instruir al usuario a introducir
un único dato definido y especificado denominado valor centinela como último
dato. La condición del ciclo comprueba cada dato y termina cuando se lee el
valor centinela. El valor centinela se debe seleccionar con mucho cuidado y
debe ser un valor que no pueda producirse como dato. En realidad el centinela
es un valor que sirve para terminar el proceso de ciclo.
Ejemplo:
//En el siguiente fragmento el centinela será –1
const centinela =-1;
printf(“Introduzca la primer calificación “);
scanf(“%d”,&calif);
while(calif!=centinela)
{
suma+=calif;
printf(“Introduzca la siguiente calificación “);
scanf(“%d”,&calif);
}
En este caso el ciclo se repetirá mientras la calificación sea diferente de –1, es
decir mientras sea diferente del centinela.
Ciclos controlado por contador.
Estos ciclos como su nombre lo indica son controlador por un contador,
es decir en este tipo de ciclos se conoce el número de veces que este se
repetirá desde el inicio del ciclo. El ciclo que de forma natural es controlado por
un contador es el ciclo for, en el caso de los ciclos while como ya se pudo ver
se controlan de diferentes maneras una de ellas es por medio de un contador.
Ejemplo:
El siguiente fragmento muestra un ciclo while que controlado por un contador
se repetira 10 veces.
int Contador =1;
while(Contador<=10)
{
printf(“%d, “, Contador);
Contador++;
}
Ciclos controlados por indicadores (Banderas)
En lenguajes como Pascal, que tienen el tipo bool, se utiliza una
variable booleana con frecuencia como indicadores o banderas de estado para
controlar la ejecución de un ciclo. El valor del indicador se inicializa
(normalmente a “ false“ ) antes de la entrada al ciclo y se
redefine (normalmente a verdadero “ true “) cuando un suceso específico
ocurre dentro del ciclo. En C no existe el tipo bolean, por lo que se utiliza como
bandera una variable que puede tomar dos valores, 0 o 1. Un ciclo controlado
por bandera se ejecuta hasta que se produce un proceso anticipado y se cambia
el valor del indicador.
Ejemplo.
Se desea leer diversos datos tipo carácter introducidos por teclado mediante
un ciclo while y se debe terminar el ciclo cuando se lea un dato tipo dígito (0-9).
La variable bandera, digito_leido se utiliza como un indicador que representa
cuando un dígito se ha producido por teclado.
Variable bandera Significado
Digito_leido Su valor es falso (cero) antes de entrar en el
ciclo y mientras el dato leído sea un
carácter y esverdadeo cuando el cuando el
dato leído es un dígito.
El problema que se desea resolver es la lectura de datos carácter y la lectura
debe detenerse cuando el dato leído sea numérico (un dígito de „0‟ a „9‟). Por
consiguiente, antes de que el ciclo se ejecute y se lean los datos de entrada, la
variable digito_leido se inicializa en falso (cero). Cuando se ejecuta el ciclo,
éste debe continuar ejecutándose mientras el dato leído sea un carácter y en
consecuencia la variabale digito_leido tiene de valor falso y se debe detener el
ciclo cuando el dato leído sea un dígito y en este caso el valor de la
variable dígito_leido debe cambiar a verdadero (uno). En consecuencia la
condición del ciclo debe ser !digito_leido ya que esta condición es verdadera
cuando digito_leido es falso. El ciclo quedaría así:
digito_leido=0;
while(!digito_leido)
{
printf(“Introduzca un carácter: “);
scanf(“%c”,&car);
digito_leido=((„0‟<=car)&&(car<=‟9‟));
...
}
Carolina M. Peña Hernández.
4º “C” Informática.

Más contenido relacionado

La actualidad más candente

Estructuras reptitivas y ciclos
Estructuras reptitivas y ciclosEstructuras reptitivas y ciclos
Estructuras reptitivas y ciclos
lincolnschoolgdl
 
Estructuras iterativas1
Estructuras iterativas1Estructuras iterativas1
Estructuras iterativas1
Kathy Granizo
 
Algoritmo con ciclos repetitivos
Algoritmo con ciclos repetitivosAlgoritmo con ciclos repetitivos
Algoritmo con ciclos repetitivos
gabriela puerta
 
¿Como hacer un pseudocodigo y diagrama de flujo?
¿Como hacer un pseudocodigo y diagrama de flujo?¿Como hacer un pseudocodigo y diagrama de flujo?
¿Como hacer un pseudocodigo y diagrama de flujo?
grachika
 
ESTATUTO WHILE
ESTATUTO WHILEESTATUTO WHILE
ESTATUTO WHILE
charnisch
 
Lenguajesdeprogramacion c nivel1-unidad4
Lenguajesdeprogramacion c nivel1-unidad4Lenguajesdeprogramacion c nivel1-unidad4
Lenguajesdeprogramacion c nivel1-unidad4
camnav
 

La actualidad más candente (20)

Estructuras reptitivas y ciclos
Estructuras reptitivas y ciclosEstructuras reptitivas y ciclos
Estructuras reptitivas y ciclos
 
Programación de nivel básico 1 y 2. c2.
Programación de nivel básico 1 y 2. c2.Programación de nivel básico 1 y 2. c2.
Programación de nivel básico 1 y 2. c2.
 
Programación de nivel básico 3. c2. p2.
Programación de nivel básico 3. c2. p2.Programación de nivel básico 3. c2. p2.
Programación de nivel básico 3. c2. p2.
 
Programación de nivel básico 3. c1. p2.
Programación de nivel básico 3. c1. p2.Programación de nivel básico 3. c1. p2.
Programación de nivel básico 3. c1. p2.
 
Guia4
Guia4Guia4
Guia4
 
Estructura de selección, ciclo y contador (counter)
Estructura de selección, ciclo y contador (counter)Estructura de selección, ciclo y contador (counter)
Estructura de selección, ciclo y contador (counter)
 
Pr109 while
Pr109 whilePr109 while
Pr109 while
 
Estructuras iterativas1
Estructuras iterativas1Estructuras iterativas1
Estructuras iterativas1
 
Algoritmo con ciclos repetitivos
Algoritmo con ciclos repetitivosAlgoritmo con ciclos repetitivos
Algoritmo con ciclos repetitivos
 
2.4 Bucles Repetitivos
2.4 Bucles Repetitivos2.4 Bucles Repetitivos
2.4 Bucles Repetitivos
 
¿Como hacer un pseudocodigo y diagrama de flujo?
¿Como hacer un pseudocodigo y diagrama de flujo?¿Como hacer un pseudocodigo y diagrama de flujo?
¿Como hacer un pseudocodigo y diagrama de flujo?
 
Presentacion ciclos-1
Presentacion ciclos-1Presentacion ciclos-1
Presentacion ciclos-1
 
Contadores y Acumuladores
Contadores y AcumuladoresContadores y Acumuladores
Contadores y Acumuladores
 
Estructuras iterativas en java y pseudocódigo
Estructuras iterativas en java y pseudocódigoEstructuras iterativas en java y pseudocódigo
Estructuras iterativas en java y pseudocódigo
 
Modulo2b
Modulo2bModulo2b
Modulo2b
 
2.5 Ciclo do While
2.5 Ciclo do While2.5 Ciclo do While
2.5 Ciclo do While
 
No regresan valor c3. p3.
No regresan valor c3. p3.No regresan valor c3. p3.
No regresan valor c3. p3.
 
Repeticiones
RepeticionesRepeticiones
Repeticiones
 
ESTATUTO WHILE
ESTATUTO WHILEESTATUTO WHILE
ESTATUTO WHILE
 
Lenguajesdeprogramacion c nivel1-unidad4
Lenguajesdeprogramacion c nivel1-unidad4Lenguajesdeprogramacion c nivel1-unidad4
Lenguajesdeprogramacion c nivel1-unidad4
 

Destacado

Codificar la solución del problema en un lenguaje de programación estructurado
Codificar la solución del problema en un lenguaje de programación estructuradoCodificar la solución del problema en un lenguaje de programación estructurado
Codificar la solución del problema en un lenguaje de programación estructurado
Edgar Garay
 
2. codificar la solución del problema en un lenguaje de programación estructu...
2. codificar la solución del problema en un lenguaje de programación estructu...2. codificar la solución del problema en un lenguaje de programación estructu...
2. codificar la solución del problema en un lenguaje de programación estructu...
carolina peña
 
2 unidad. Codificar la solución del problema en un lenguaje de programación e...
2 unidad. Codificar la solución del problema en un lenguaje de programación e...2 unidad. Codificar la solución del problema en un lenguaje de programación e...
2 unidad. Codificar la solución del problema en un lenguaje de programación e...
Domitho Ibarra
 
Tipos De Datos Lisp
Tipos De Datos LispTipos De Datos Lisp
Tipos De Datos Lisp
yamies
 
Tipos de lenguaje de programacion part 1
Tipos de lenguaje de programacion part 1Tipos de lenguaje de programacion part 1
Tipos de lenguaje de programacion part 1
Ernes 28
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
vnslgars
 
P. estructurada vs. programación orientada a objetos
P. estructurada vs. programación orientada a objetosP. estructurada vs. programación orientada a objetos
P. estructurada vs. programación orientada a objetos
Geovanny Yungán
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructurada
lexar4203
 

Destacado (20)

Codificar la solución del problema en un lenguaje de programación estructurado
Codificar la solución del problema en un lenguaje de programación estructuradoCodificar la solución del problema en un lenguaje de programación estructurado
Codificar la solución del problema en un lenguaje de programación estructurado
 
2. codificar la solución del problema en un lenguaje de programación estructu...
2. codificar la solución del problema en un lenguaje de programación estructu...2. codificar la solución del problema en un lenguaje de programación estructu...
2. codificar la solución del problema en un lenguaje de programación estructu...
 
2 unidad. Codificar la solución del problema en un lenguaje de programación e...
2 unidad. Codificar la solución del problema en un lenguaje de programación e...2 unidad. Codificar la solución del problema en un lenguaje de programación e...
2 unidad. Codificar la solución del problema en un lenguaje de programación e...
 
Importancia De La ProgramacióN Estructurada
Importancia De La ProgramacióN EstructuradaImportancia De La ProgramacióN Estructurada
Importancia De La ProgramacióN Estructurada
 
Programación estructurada presentación
Programación estructurada presentaciónProgramación estructurada presentación
Programación estructurada presentación
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructurada
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructurada
 
lenguajes de programacion
lenguajes de programacionlenguajes de programacion
lenguajes de programacion
 
Tipos De Datos Lisp
Tipos De Datos LispTipos De Datos Lisp
Tipos De Datos Lisp
 
Mapa conceptual programacion
Mapa conceptual programacion Mapa conceptual programacion
Mapa conceptual programacion
 
Tipos de lenguaje de programacion part 1
Tipos de lenguaje de programacion part 1Tipos de lenguaje de programacion part 1
Tipos de lenguaje de programacion part 1
 
Tipos de programacion
Tipos de programacionTipos de programacion
Tipos de programacion
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
Tema 7: Funciones de orden superior en Haskell
Tema 7: Funciones de orden superior en HaskellTema 7: Funciones de orden superior en Haskell
Tema 7: Funciones de orden superior en Haskell
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
P. estructurada vs. programación orientada a objetos
P. estructurada vs. programación orientada a objetosP. estructurada vs. programación orientada a objetos
P. estructurada vs. programación orientada a objetos
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructurada
 
Tema 3: Tipos y clases en Haskell
Tema 3: Tipos y clases en HaskellTema 3: Tipos y clases en Haskell
Tema 3: Tipos y clases en Haskell
 
Programación funcional con haskell
Programación funcional con haskellProgramación funcional con haskell
Programación funcional con haskell
 

Similar a 2.1 elemento básicos del lenguaje de programación estructurado manipulación básica de datos.

Definición y análisis de un problema
Definición y análisis de un problemaDefinición y análisis de un problema
Definición y análisis de un problema
Joaquin Lara Sierra
 
Estructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestosEstructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestos
marigelcontreras
 
Estructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestosEstructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestos
marigelcontreras
 
183007957 estructuras repetitivas-estructurarepetitivadesdevi
183007957 estructuras repetitivas-estructurarepetitivadesdevi183007957 estructuras repetitivas-estructurarepetitivadesdevi
183007957 estructuras repetitivas-estructurarepetitivadesdevi
yaquelinpr
 
Conceptos básicos de programación.pdf
Conceptos básicos de programación.pdfConceptos básicos de programación.pdf
Conceptos básicos de programación.pdf
Xian11
 
Material de Clases TP 03 - Programación Computacional
Material de Clases TP 03 - Programación ComputacionalMaterial de Clases TP 03 - Programación Computacional
Material de Clases TP 03 - Programación Computacional
mnllorente
 

Similar a 2.1 elemento básicos del lenguaje de programación estructurado manipulación básica de datos. (20)

Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Definición y análisis de un problema
Definición y análisis de un problemaDefinición y análisis de un problema
Definición y análisis de un problema
 
Estructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestosEstructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestos
 
Estructuras iterativas
Estructuras iterativasEstructuras iterativas
Estructuras iterativas
 
Estructuras iterativas
Estructuras iterativasEstructuras iterativas
Estructuras iterativas
 
Estructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestosEstructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestos
 
Ciclos for , while y herramientas case
Ciclos for , while y herramientas caseCiclos for , while y herramientas case
Ciclos for , while y herramientas case
 
ESTRUCTURAS CONDICIONALES PARA. PSEINT
ESTRUCTURAS CONDICIONALES PARA. PSEINTESTRUCTURAS CONDICIONALES PARA. PSEINT
ESTRUCTURAS CONDICIONALES PARA. PSEINT
 
183007957 estructuras repetitivas-estructurarepetitivadesdevi
183007957 estructuras repetitivas-estructurarepetitivadesdevi183007957 estructuras repetitivas-estructurarepetitivadesdevi
183007957 estructuras repetitivas-estructurarepetitivadesdevi
 
Guia estructuras cíclicas
Guia estructuras cíclicasGuia estructuras cíclicas
Guia estructuras cíclicas
 
Estructuras basicas
Estructuras basicasEstructuras basicas
Estructuras basicas
 
Estructuras basicas
Estructuras basicasEstructuras basicas
Estructuras basicas
 
Estructuras basicas
Estructuras basicasEstructuras basicas
Estructuras basicas
 
Concepto básico de programación (1)
Concepto básico de programación  (1)Concepto básico de programación  (1)
Concepto básico de programación (1)
 
Conceptos básicos de programación.pdf
Conceptos básicos de programación.pdfConceptos básicos de programación.pdf
Conceptos básicos de programación.pdf
 
Conceptos básicos de programación.pdf
Conceptos básicos de programación.pdfConceptos básicos de programación.pdf
Conceptos básicos de programación.pdf
 
Conceptos básicos de programación.pdf
Conceptos básicos de programación.pdfConceptos básicos de programación.pdf
Conceptos básicos de programación.pdf
 
Conceptos básicos de programación.pdf
Conceptos básicos de programación.pdfConceptos básicos de programación.pdf
Conceptos básicos de programación.pdf
 
Material de Clases TP 03 - Programación Computacional
Material de Clases TP 03 - Programación ComputacionalMaterial de Clases TP 03 - Programación Computacional
Material de Clases TP 03 - Programación Computacional
 
Informe de pseint
Informe de pseintInforme de pseint
Informe de pseint
 

Más de carolina peña

3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...
3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...
3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...
carolina peña
 
1.6 prueba de escritorio de la solución del problema.
1.6 prueba de escritorio de la solución del problema.1.6 prueba de escritorio de la solución del problema.
1.6 prueba de escritorio de la solución del problema.
carolina peña
 
1.5 crear pseudocódigos de la solución del problema.
1.5 crear pseudocódigos de la solución del problema.1.5 crear pseudocódigos de la solución del problema.
1.5 crear pseudocódigos de la solución del problema.
carolina peña
 
1.4 elaborar diagramas de flujo de la solución del problema.
1.4 elaborar diagramas de flujo de la solución del problema.1.4 elaborar diagramas de flujo de la solución del problema.
1.4 elaborar diagramas de flujo de la solución del problema.
carolina peña
 
1.3 elaborar algoritmos de la solución de un problema.
1.3 elaborar algoritmos de la solución de un problema.1.3 elaborar algoritmos de la solución de un problema.
1.3 elaborar algoritmos de la solución de un problema.
carolina peña
 
1.2 analizar el problema.
1.2 analizar el problema.1.2 analizar el problema.
1.2 analizar el problema.
carolina peña
 
1.1 identificar los problemas de programación
1.1 identificar los problemas de programación1.1 identificar los problemas de programación
1.1 identificar los problemas de programación
carolina peña
 
1 . la resolución de problemas con computadoras y las herramientas de program...
1 . la resolución de problemas con computadoras y las herramientas de program...1 . la resolución de problemas con computadoras y las herramientas de program...
1 . la resolución de problemas con computadoras y las herramientas de program...
carolina peña
 
Practica27 gaem-121119155257-phpapp02
Practica27 gaem-121119155257-phpapp02Practica27 gaem-121119155257-phpapp02
Practica27 gaem-121119155257-phpapp02
carolina peña
 
Practica26 121109165959-phpapp02
Practica26 121109165959-phpapp02Practica26 121109165959-phpapp02
Practica26 121109165959-phpapp02
carolina peña
 
Cuesstionario unidad 4
Cuesstionario unidad 4Cuesstionario unidad 4
Cuesstionario unidad 4
carolina peña
 

Más de carolina peña (20)

3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...
3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...
3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...
 
1.6 prueba de escritorio de la solución del problema.
1.6 prueba de escritorio de la solución del problema.1.6 prueba de escritorio de la solución del problema.
1.6 prueba de escritorio de la solución del problema.
 
1.5 crear pseudocódigos de la solución del problema.
1.5 crear pseudocódigos de la solución del problema.1.5 crear pseudocódigos de la solución del problema.
1.5 crear pseudocódigos de la solución del problema.
 
1.4 elaborar diagramas de flujo de la solución del problema.
1.4 elaborar diagramas de flujo de la solución del problema.1.4 elaborar diagramas de flujo de la solución del problema.
1.4 elaborar diagramas de flujo de la solución del problema.
 
1.3 elaborar algoritmos de la solución de un problema.
1.3 elaborar algoritmos de la solución de un problema.1.3 elaborar algoritmos de la solución de un problema.
1.3 elaborar algoritmos de la solución de un problema.
 
1.2 analizar el problema.
1.2 analizar el problema.1.2 analizar el problema.
1.2 analizar el problema.
 
1.1 identificar los problemas de programación
1.1 identificar los problemas de programación1.1 identificar los problemas de programación
1.1 identificar los problemas de programación
 
1 . la resolución de problemas con computadoras y las herramientas de program...
1 . la resolución de problemas con computadoras y las herramientas de program...1 . la resolución de problemas con computadoras y las herramientas de program...
1 . la resolución de problemas con computadoras y las herramientas de program...
 
Practica30
Practica30Practica30
Practica30
 
Practica29
Practica29 Practica29
Practica29
 
Practica27 gaem-121119155257-phpapp02
Practica27 gaem-121119155257-phpapp02Practica27 gaem-121119155257-phpapp02
Practica27 gaem-121119155257-phpapp02
 
Práctica 28
Práctica 28Práctica 28
Práctica 28
 
Practica26 121109165959-phpapp02
Practica26 121109165959-phpapp02Practica26 121109165959-phpapp02
Practica26 121109165959-phpapp02
 
Unidad6
Unidad6 Unidad6
Unidad6
 
Practica 25
Practica 25Practica 25
Practica 25
 
Practica 21 gaem
Practica 21 gaemPractica 21 gaem
Practica 21 gaem
 
Cuesstionario unidad 4
Cuesstionario unidad 4Cuesstionario unidad 4
Cuesstionario unidad 4
 
Practica 20
Practica 20 Practica 20
Practica 20
 
Practica19
Practica19 Practica19
Practica19
 
Unidad5
Unidad5 Unidad5
Unidad5
 

2.1 elemento básicos del lenguaje de programación estructurado manipulación básica de datos.

  • 1. 2.1 Elemento básicos del lenguaje de programación estructurado manipulación básica de datos. 2.2 Utilizar estructuras de control. 2.1 Estructuras de control. Las estructuras de control también conocidas como ciclos, bucles, estructuras iterativas o repetitivas, son básicas para la elaboración de programas, ya que el repetir una tarea varias veces a una gran velocidad, precisión y fiabilidad es una de las características de las computadoras que aumentan considerablemente su potencia. C soporta tres tipos de estructuras de control:  Ciclo while  Ciclo do_while  Ciclo for 2.1.1 Teoría de ciclos. Un ciclo es cualquier construcción de programa que repite una sentencia o secuencia de sentencias un número de veces. Las sentencias o grupo de sentencias que se repiten en un bloque se denominan cuerpo del bucle y cada repetición del cuerpo del ciclo se llama iteración del ciclo. 2.1.2 Contadores, acumuladores. Contadores: En los procesos repetitivos se necesita normalmente contar los sucesos o acciones internos del ciclo, como pueden ser: registro o elementos en un archivo y número de iteraciones a realizar por el ciclo. Para realizar esta tarea se utilizan los contadores, cuya construcción es una de las técnicas corrientes en la realización de cualquier programa. Un contador es un campo de la memoria que está destinado a contener los diferentes valores que se van incrementando o decrementando en cada iteración. El campo contendrá las sucesivas sumas parciales que se van
  • 2. realizando en la ejecución de las sucesivas repeticiones. El incremento en las sumas parciales es siempre constante, pudiendo ser positivo o negativo, es decir el contador se irá incrementando o decrementando. El contador se representará en un programa por medio de una variable. En las instrucciones de preparación del ciclo se realiza la inicialización del contador o contadores. La inicialización de un contador consiste en poner el valor inicial de la variable que representa al contador. Ejemplos: Contador =0 Contador = 4 Por consiguiente, el contador se representará por una instrucción de asignación del tipo: Contador = Contador + 1 Contador = Contador – 1 Siendo 1 el incremento del contador. Acumuladores: Un acumulador es un campo o zona de memoria cuya misión es almacenar cantidades variables resultantes de sumas sucesivas. Realiza la función de un contador con la diferencia que el incremento o decremento de cada suma es variable en lugar de constante como en el caso del contador. Se representa por S=S+N donde N es una variable y no constante. Al igual que al contador a un acumulador se le inicializa. 2.1.3 Ciclos controlados por contadores, centinelas. Ciclos controlados por centinelas. Por lo general no se conoce con exactitud cuantos elementos de datos se procesarán antes de comenzar su ejecución. Esto se produce bien porque hay muchos datos a contar normalmente o porque el número de datos a procesar depende de cómo prosigue el proceso de cálculo.
  • 3. Un medio para manejar esta situación es instruir al usuario a introducir un único dato definido y especificado denominado valor centinela como último dato. La condición del ciclo comprueba cada dato y termina cuando se lee el valor centinela. El valor centinela se debe seleccionar con mucho cuidado y debe ser un valor que no pueda producirse como dato. En realidad el centinela es un valor que sirve para terminar el proceso de ciclo. Ejemplo: //En el siguiente fragmento el centinela será –1 const centinela =-1; printf(“Introduzca la primer calificación “); scanf(“%d”,&calif); while(calif!=centinela) { suma+=calif; printf(“Introduzca la siguiente calificación “); scanf(“%d”,&calif); } En este caso el ciclo se repetirá mientras la calificación sea diferente de –1, es decir mientras sea diferente del centinela. Ciclos controlado por contador. Estos ciclos como su nombre lo indica son controlador por un contador, es decir en este tipo de ciclos se conoce el número de veces que este se repetirá desde el inicio del ciclo. El ciclo que de forma natural es controlado por un contador es el ciclo for, en el caso de los ciclos while como ya se pudo ver se controlan de diferentes maneras una de ellas es por medio de un contador.
  • 4. Ejemplo: El siguiente fragmento muestra un ciclo while que controlado por un contador se repetira 10 veces. int Contador =1; while(Contador<=10) { printf(“%d, “, Contador); Contador++; } Ciclos controlados por indicadores (Banderas) En lenguajes como Pascal, que tienen el tipo bool, se utiliza una variable booleana con frecuencia como indicadores o banderas de estado para controlar la ejecución de un ciclo. El valor del indicador se inicializa (normalmente a “ false“ ) antes de la entrada al ciclo y se redefine (normalmente a verdadero “ true “) cuando un suceso específico ocurre dentro del ciclo. En C no existe el tipo bolean, por lo que se utiliza como bandera una variable que puede tomar dos valores, 0 o 1. Un ciclo controlado por bandera se ejecuta hasta que se produce un proceso anticipado y se cambia el valor del indicador. Ejemplo. Se desea leer diversos datos tipo carácter introducidos por teclado mediante un ciclo while y se debe terminar el ciclo cuando se lea un dato tipo dígito (0-9). La variable bandera, digito_leido se utiliza como un indicador que representa cuando un dígito se ha producido por teclado. Variable bandera Significado Digito_leido Su valor es falso (cero) antes de entrar en el ciclo y mientras el dato leído sea un carácter y esverdadeo cuando el cuando el dato leído es un dígito.
  • 5. El problema que se desea resolver es la lectura de datos carácter y la lectura debe detenerse cuando el dato leído sea numérico (un dígito de „0‟ a „9‟). Por consiguiente, antes de que el ciclo se ejecute y se lean los datos de entrada, la variable digito_leido se inicializa en falso (cero). Cuando se ejecuta el ciclo, éste debe continuar ejecutándose mientras el dato leído sea un carácter y en consecuencia la variabale digito_leido tiene de valor falso y se debe detener el ciclo cuando el dato leído sea un dígito y en este caso el valor de la variable dígito_leido debe cambiar a verdadero (uno). En consecuencia la condición del ciclo debe ser !digito_leido ya que esta condición es verdadera cuando digito_leido es falso. El ciclo quedaría así: digito_leido=0; while(!digito_leido) { printf(“Introduzca un carácter: “); scanf(“%c”,&car); digito_leido=((„0‟<=car)&&(car<=‟9‟)); ... } Carolina M. Peña Hernández. 4º “C” Informática.