SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
UNIVERSIDAD NACIONAL EXPERIMENTAL
DE LOS LLANOS OCCIDENTALES
EZEQUIEL ZAMORA
JORGE LEONARDO HIDALGO RODRIGUEZ
C.I.: N° V-19187649
BARINAS, 17 DE JULIO DE 2016
2
ÍNDICE
Pág.
Introducción………………………………………………………………………….3
Compilador…………………………………………………………………………..4
Estructura de Control Repetitiva…………………………..………………….……5
1. Bucle o Ciclo For…………………………………………………….6
2. Bucle While o Ciclo Mientras……………………………………...10
3. Bucle Do While o Ciclo Hacer Mientras………………………….12
EJERCICIOS PROPUESTOS……………………………………………………14
3
INTRODUCCIÓN
Las estructuras repetitivas o bucles es una de las estructuras permitidas
en la programación estructurada. Los bucles tienen que repetirse un número
finito de veces. Si no nos encontramos con un bucle infinito y el algoritmo no
tendrá solución. No será un algoritmo ya que no cumplirá la condición de
finitud.
Las condiciones repetitivas se componen básicamente de dos
elementos:
 Un cuerpo del bucle o conjunto de instrucciones que se ejecutan
repetidamente
 Una condición de salida para dejar de repetir las instrucciones y
continuar con el resto del algoritmo.
En c++ existen varias estructuras repetitivas. Según lo que se quiera
conseguir o la naturaleza del algoritmo o programa, se utilizarán unas u otras.
Estas estructuras son las siguientes:
 El bucle while. Es aquel que utilizaremos para realizar repeticiones de
sentencias cuando no sabemos, a priori, las veces que se han de
repetir. Para más información sobre ese bucle puedes consultar el
siguiente post: El bucle while.
 El bucle do-while. Tiene una función similar al bucle while. Los
programadores utilizamos dicho bucle para controlar errores de
entrada, puedes ver más información en el siguiente enlace: El bucle
do-while.
 El bucle for. Se utiliza cuando, a priori, sabemos cuántas repeticiones
se han de realizar a una o un conjunto de sentencias. Para más
información pulsa en este enlace: El bucle for.
4
COMPILADOR
Normalmente los compiladores de C++ son aptos para compilar
lenguaje C, pero los compiladores de C no son capaces de procesar el
lenguaje C++, esto se debe a que este último contiene una buena cantidad de
palabras reservadas y características que no están soportadas por C. Gran
parte de la sintaxis es la misma y por supuesto que quien programe en C
tendrá una buena base para programar en C++, pero estos no son lenguajes
totalmente equivalentes entre sí, así como tampoco lo son Visual Basic y
Visual Bsic . NET y mucho menos aun C++ y C#.
Lo primero y lo más importante, es que los archivos de cabecera que
conforman la librería estándar de C, no son los mismos que conforman la
librería estándar de C++, aunque si podemos utilizar las librerías de C en C++
(espero no estar repitiendo demasiado lo mismo). El caso es que en C
incluimos el archivo stdio.h en el cual están contenidas las funciones
necesarias para la entrada y salida de información, en C++ el archivo de
cabecera en el que se encuentran las funcione para ingresar y extraer datos
del sistema, tiene por título “iostream” del inglés “Imput-Output Stream”, que
significa “flujo de entrada y salida”.
A diferencia de C, en C++ no se coloca la extensión de archivo “.h” a
los ficheros de cabecera que se incluyen mediante la directiva “#include”. Por
otra parte, debido a que C++ se diseñó con el propósito de ser “compatible
hacia abajo” con su hermano mayor, este incorpora cada uno de los archivos
que integran la librería estándar de C, pero les cambia ligeramente el nombre
agregando la letra “c” al comienzo de cada uno de ellos y por supuesto
eliminando la extensión de archivo como en todos los demás que conforman
las bibliotecas de C++. Por ejemplo “stdio.h” cambia su título a “cstdio”.
5
Otra diferencia importante, es que se introduce el concepto de los
Espacios de Nombres (namespace), lo cual es un elemento propio de la
programación avanzada y que en C++ se implementa en cada una de las
funciones presentes en las bibliotecas, por lo tanto al invocar algún elemente
que se encuentre definido dentro de ellas, se debe especificar a qué espacio
de nombres pertenece, cosa que no se hacía en C, sencillamente porque al
ser un lenguaje menos moderno, no incorporaba este mecanismo de control
de títulos.
ESTRUCTURA DE CONTROL REPETITIVA
Si bien con las estructuras condicionales podemos tomar un camino u
otro en la consecutividad de las instrucciones, esas sentencias solo se realizan
una vez y en el orden en que se encuentran escritas, sin embargo en muchos
casos es necesario regresar algunas sentencias atrás en el código y repetir
varias veces un determinado número de instrucciones, para poder resolver
eficientemente un problemas concreto sin escribir tantas líneas de código, es
por ello que son necesarias las estructuras de control repetitivas, también
conocidas como sentencias repetitivas, estructuras iterativas, ciclos o bucles y
el más común y más utilizado de ellos es el bucle o ciclo for.
A la forma de programación en la que solo se ejecuta una línea de
código tras otra, se le conoce como programación secuencial, pero es mucho
más eficiente la llamada programación estructurada, en la cual es posible
ejecutar bloques o estructuras de código, las cuales internamente se siguen
ejecutando secuencialmente, pero que pueden repetirse o ser invocadas en el
momento en que se les necesite. El lenguaje C y también el C++, son
lenguajes que soportan el paradigma de Programación Estructurada y por ello
incorporan estructuras repetitivas, las cuales permiten romper un poco la
secuencialidad de las sentencias.
6
La Programación Estructurada nos ofrece lo que conocemos como las
estructuras repetitivas, que como su nombre lo indica, nos permiten repetir un
número determinado de veces un bloque o grupo de sentencias específicas
del programa, a este tipo de instrucciones, como dije anteriormente, se les
suele llamar Bucles o Ciclos y el lenguaje C, así como también el C++, poseen
tres tipos estructuras repetitivas que son el bucle For, el bucle While y el bucle
Do-While.
1. Bucle o Ciclo For
La palabra for en ingles significa “por” o “para”, es por ello que
podríamos leer o traducir lo que expresa un ciclo for como “para las
condiciones dadas entre los paréntesis (()), hacer lo que se encuentra dentro
de las llaves ({})”. Ya que esta estructura se compone de una cabecera que se
inicia con la palabra reservada for, seguida por una serie de parámetros dados
entre paréntesis y luego un cuerpo delimitado por llaves ({}), en el cual se
encuentran las instrucciones que se pretenden repetir.
Entre los paréntesis (()), se encuentran tres partes separadas por el
símbolo punto y coma (;), la primera de ellas corresponde a la inicialización de
una variable contador, que se encargara obviamente de contar los giros del
ciclo, luego en la segunda parte, debe colocarse una expresión condicional
como las utilizadas entre los paréntesis de las sentencias if, la cual se
encargara de determinar cuándo se producirá o no, una nueva iteración del
bucle y finalmente en la tercera parte se coloca otra expresión en la que se
indica, cómo se efectuara el incremento o decremento de la variable contador
cada vez que ocurra una nueva repetición.
Por ejemplo en el siguiente programa, tenemos un bucle o ciclo
repetitivo for, el cual tiene como contador a una variable que tiene por
identificador la letra i, la cual esta inicializada en cero (0), luego se encuentra
una expresión condicional en la que se nos indica, que el ciclo deberá girar o
7
repetir las instrucciones internas, mientras la variable i posea un valor inferior
o igual a 10, y finalmente se nos indica que dicho contador (i), con cada nueva
vuelta del ciclo, ira sumando un uno (1) a su valor actual, es decir que en la
primera iteración almacenara el valor cero (0), luego cero más uno (0+1), luego
uno más uno (1+1), luego dos más uno (2+1) y así sucesivamente hasta que
alcance el límite de diez (10) establecido por la condición de parada (i <= 0).
En el ejemplo anterior de la sintaxis de for realizado en lenguaje C, el
programa tiene como propósito mostrar en pantalla un mensaje, cada vez que
el bucle hace una nueva iteración, comenzando por el número cero (0) en la
primera vuelta del ciclo e indicando en el mensaje, el número correspondiente
a esa repetición. Podemos notar que la variable contadora, la cual almacena
un número entero que se irá incrementando con cada vuelta del bucle, está
declarada fuera de la estructura for, ya que el lenguaje C impide que se
realicen declaraciones fuera de la zona correspondiente para tal fin (las
primeras líneas de la función main antes de cualquier otro tipo de
instrucciones), en cambio en C++ podría haberse realizado la declaración junto
8
a la inicialización dentro de los paréntesis del for, como se muestra en el
siguiente programa ejemplo de for.
Otro detalle que puede modificarse tanto en C como en C++ es la forma de
realizar el incremento o decremento del contador tanto en los ciclos for como en otras
sentencias, por ejemplo en los programas anteriores se utilizó la recursividad para
indicar que la variable i toma su mismo valor más el número uno (1), mediante la
expresión i=i+1, pero esta pudo haber sido reemplazada por la expresión i++, ya que
estos lenguajes poseen el llamado operador de incremento que está compuesto de
dos signos de más consecutivos (++) y también el operador de decremento formado
por dos signos de menos consecutivos (--). Utilizando este operador el programa
quedaría así:
9
Es importante aclarar que el operador de incremento (++) así como el de
decremento (--), solo es válido emplearlos cuando el aumento o disminución que se
requiere realizar al contador, es de uno en uno, es decir en una sola unidad, en cambio
sí se requiere que el contador se incremente de dos en dos o de tres en tres o incluso
en cualquier otra cantidad, entonces será necesario hacerlo con una operación
expresa, como por ejemplo i=i+2, i=i+3 o i=i+5. Para observar esto aún mejor,
tenemos el próximo programa (ciclo for ejemplos), el cual imprime los números
impares entre cero y mil.
También existe una norma que establece, que si el contenido que se
pretende repetir con una estructura de control repetitiva, consta de más de una línea
de código, obligatoriamente debe estar delimitado por las llaves ({}) que agrupan el
cuerpo del bucle, pero que si este solo contiene una sentencia de código, entonces
las llaves ({}) pueden ser obviadas en el cuerpo del ciclo for (esto también es válido
para otras estructuras repetitivas). Si aplicamos esta norma al ejercicio anterior,
quedaría el ejemplo de for de la
siguiente forma:
10
El bucle For es el que más comúnmente se emplea ya que es el más
completo, posee una variable contador y una expresión de incremento o
decremento que las otras estructuras repetitivas del lenguaje C y C++ (While
y Do-While) no incorporan. Es particularmente útil cuando se tiene precisión
de cuantas iteraciones se requieren para alcanzar la solución a un problema,
ya que permite contar estas iteraciones, sin embargo con cualquiera de los
tres tipos de ciclos si utilizamos la lógica correcta, podemos alcanzar los
mismos resultados.
2. Bucle While o Ciclo Mientras
La palabra inglesa While significa “mientras” en español, por lo tanto el
bucle while o estructura repetitiva while, lógicamente indica la ejecución de las
sentencias que se encuentran agrupadas en el cuerpo de esta estructura de
control, el cual está delimitado por llaves ({}), solo si la condición ubicada entre
los paréntesis (()), es evaluada como verdadera. El funcionamiento de esta
estructura es muy similar al For, con la diferencia de no poseer una variable
contador, en el resto de su funcionamiento es igual, presenta una cabecera
que comienza por la palabra reservada while, seguida de entre paréntesis una
expresión condicional que debe cumplirse para que se pueda generar una
nueva iteración del ciclo.
Este tipo de estructuras repetitivas, es especialmente útil cuando no se
puede definir con precisión cuantas iteraciones o repeticiones deben
efectuarse a un bloque de sentencias para poder dar resolución al problema
que se esté afrontando. Por ejemplo si escribimos un programa que lea un
número por teclado y posteriormente divida ese número a la mitad tantas
veces como sea necesario, para que el valor resultante sea menor o igual que
uno (1), en ese caso no podríamos saber que numero tecleara el usuario y por
lo tanto tampoco podremos definir con certeza cuántas divisiones serán
necesarias para alcanzar el resultado que se desea.
11
Podría ser una sola iteración la que realice el bucle, si el usuario ingresa
por ejemplo el numero dos (2), ya que al dividirlo a la mitad obtendríamos el
número uno (1), por el contrario si el usuario ingresa el numero mil (1000),
sería necesario dividir el numero en múltiples ocasiones para qué el resultado
de la división sea menor o igual a uno (1). A continuación tenemos el programa
del cual estoy haciendo referencia, realizado implementando el bucle While.
Es importante dejar claro que este programa tienen como única finalidad
explicar la utilidad del ciclo While, por eso no arroja un resultado que
proporcione ninguna otra utilidad.
Utilizar un bucle For en este caso sería innecesario, ya que se estaría
desperdiciando la variable contador que este incorpora, en cambio While solo
requiere una condición a la cual se evalúa y si el resultado de esta evaluación
es verdadero el bucle continúa girando, en caso de ser negativa el ciclo se
detendrá. Imaginemos que el usuario introduce el número uno (1) o el cero (0)
cuando el programa le solicita el numero entero que será dividido, de ser así
el ciclo no realizaría ninguna iteración, ya que al evaluar la expresión
condicional el resultado sería falso y el bucle terminaría inmediatamente su
ejecución.
12
3. Bucle Do While o Ciclo Hacer Mientras
es posible que utilizando el bucle While, el bloque de sentencias
internas al ciclo, las que están dentro de las llaves ({}), nunca se ejecuten, pues
si la condición de parada de la estructura repetitiva se evalúa como falsa en la
cabecera del bucle (la parte superior), el ciclo culmina sin realizar ninguna
iteración, en cambio con el bucle Do-While siempre se realiza al menos una
iteración, es decir las sentencias internas, las que están agrupadas entre las
llaves ({}), se ejecutan obligatoriamente una vez como mínimo, ya que la
condición no se encuentra en la cabecera sino al pie (la parte inferior) de la
estructura.
La palabra Do en español significa “hacer” por lo tanto este bucle se
puede entender como: “hacer una serie de pasos mientras se cumpla la
condición final”. En la parte superior de la estructura se coloca la palabra “do”
seguida del bloque delimitado por llaves ({}) con las sentencias que se
pretenden repetir y luego en la parte inferir se coloca la palabra “while” seguida
de una expresión condicional ubicada entre paréntesis (()). A diferencia tanto
13
del bucle For como del While, el Do-While termina con un punto y coma (;) al
final de la estructura, luego del ultimo paréntesis ()) de la condición de parada
del ciclo.
Un caso en el cual sería particularmente útil la estructura de control
repetitiva Do-While, es por ejemplo en un programa que deba leer valores
numéricos, hasta que la suma de todos los valores leídos sea igual o superior
a mil (1000). Nótese que en este caso la lectura de los números también se
repite, en el ejemplo anterior no era necesario repetir la lectura del número que
se debía dividir a la mitad varias veces, en cambio en este nuevo ejemplo, si
debemos leer varias veces números enteros que se irán sumando entre si y
por lo tanto la lectura del número entero deberá estar dentro del bucle y
ejecutarse al menos una vez.
A continuación tenemos el programa que acabo de mencionar,
implementando la estructura repetitiva Do-While. En próximos artículos estaré
realizando ejercicios un poco más útiles en cuanto a su objetivo, ya que los
aquí expuestos no tienen más utilidad que la de ejemplificar el funcionamiento
de estos bucles o estructuras repetitivas.
14
EJERCICIOS PROPUESTOS TIPO EJEMPLO PARA DESARROLLARLOS
EN EL LENGUAJE DE C++ (FOR, WHILE Y DO-WHILE)
1. Programa que halla la suma de los 10 primeros números pares
mostrando el resultado en pantalla.
2. El siguiente programa muestra en pantalla las coordenadas de una
tabla cuyas dimensiones son 5x5 (filas x columnas).
3. Programa que muestra en pantalla todos aquellos caracteres
introducidos a través del dispositivo estándar de entrada hasta que
sea pulsado el carácter astensco.
4. El siguiente programa muestra en pantalla todos aquellos caracteres
introducidos por teclado hasta que la tecla de espacio en blanco sea
pulsada.
5. Hacer un programa que lea una serie de números enteros positivos
de la entrada estándar y calcule el valor máximo de los mismos y
cuántas veces aparece dicho valor repetido.
6. Programa que sume y muestre por pantalla todos los números
naturales del 1 hasta el 5, ambos incluidos. Lo mismo pero de 1 a
50; lo mismo pero de 1 a 500.
7. Programa que sume el número 5 y sus múltiplos hasta el 100
inclusive y muestre el resultado por pantalla.
8. Realizar un programa que calcule y muestre la suma de los múltiplos
de 5 comprendidos entre dos valores A y B. El programa no permitirá
introducir valores negativos para A y B y verificará que A es menor
que B. Si A es mayor que B, intercambiará sus valores.
9. Programa que calcule y muestre ex utilizando los cuatro primeros
términos de la serie: ex = 1 + x /1! + x2 /2! + x3 /3!. El valor “exacto”
15
se puede obtener con la función intrínseca EXP(argumento)
Programa que calcule y muestre ex utilizando los cuatro primeros
términos de la serie: ex = 1 + x /1! + x2 /2! + x3 /3!. El valor “exacto”
se puede obtener con la función intrínseca EXP(argumento).
10.Programa que pida la estatura (en metros) y sexo (V/M) de un
número indeterminado de personas (mientras el operador quiera).
Posteriormente escribirá la estatura media de los varones y la
estatura media de las mujeres.
11.n. Un centro numérico es un número que separa una lista de
números enteros (comenzando en 1) en dos grupos de números,
cuyas sumas son iguales. El primer centro numérico es el 6, el cual
separa la lista (1 a 8) en los grupos: (1, 2, 3, 4, 5) y (7, 8) cuyas
sumas son ambas iguales a 15. El segundo centro numérico es el
35, el cual separa la lista (1 a 49) en los grupos: (1 a 34) y (36 a 49)
cuyas sumas son ambas iguales a 595.
12.Programa que calcule el producto n! (n-1)!...3!*2!*1!
13.Programa que pida un número por teclado y diga si es primo o no,
mostrando todos sus divisores.
14.Calcular el factorial de un número natural (que se pedirá por teclado)
usando un bucle. Escribir los resultados parciales.
15.Leer números por teclado hasta introducir uno negativo.
16.Calcular la media de un conjunto de números. El programa recoge
tantos datos como el usuario quiera calculando tantas medias como
él quiera.
17.Calcular el valor de π aplicando la fórmula: π = 4* ( 1 – 1 / 3 +1 / 5 –
1/7) incluyendo hasta el término1 / 99.
18.Mostrar un mensaje por pantalla, por ejemplo, HOLA A TODOS, cien
veces.

Más contenido relacionado

La actualidad más candente

Toma de decisiones If Else
Toma de decisiones If ElseToma de decisiones If Else
Toma de decisiones If Elsecompumet sac
 
Comandos de raptor
Comandos de raptorComandos de raptor
Comandos de raptor0cero
 
Cuadro sinóptico estructuras de datos y su clasificación
Cuadro sinóptico   estructuras de datos y su clasificaciónCuadro sinóptico   estructuras de datos y su clasificación
Cuadro sinóptico estructuras de datos y su clasificaciónAlex Uhu Colli
 
Variables y Constantes en C++
Variables y Constantes en C++Variables y Constantes en C++
Variables y Constantes en C++ivanjvic
 
02 Ejercicios Resueltos diagramas de flujo
02 Ejercicios Resueltos diagramas de flujo02 Ejercicios Resueltos diagramas de flujo
02 Ejercicios Resueltos diagramas de flujoTete Alar
 
Lenguajes libre de contexto
Lenguajes libre de contextoLenguajes libre de contexto
Lenguajes libre de contextoVerónica Es'Loo
 
Analisis de algoritmos complejidad en tiempo y espacio
Analisis de algoritmos complejidad en tiempo y espacioAnalisis de algoritmos complejidad en tiempo y espacio
Analisis de algoritmos complejidad en tiempo y espacioAdamari Cortes
 
Salidas internas de bucles.
Salidas internas de bucles.Salidas internas de bucles.
Salidas internas de bucles.Chad Bridge
 
Lenguaje ensamblador basico
Lenguaje ensamblador basicoLenguaje ensamblador basico
Lenguaje ensamblador basicoGustavo Davila
 
Estructuras repetitivas
Estructuras repetitivasEstructuras repetitivas
Estructuras repetitivasDanny Martinez
 
Estructuras de control algoritmos
Estructuras de control algoritmosEstructuras de control algoritmos
Estructuras de control algoritmosRuby
 
Presentacion de circuitos y relacion a la ingenieria de sistemas
Presentacion de circuitos y relacion a la ingenieria de sistemasPresentacion de circuitos y relacion a la ingenieria de sistemas
Presentacion de circuitos y relacion a la ingenieria de sistemasJulio Martinez Valerio
 
Estructura básica de un programa en C++
Estructura básica de un programa en C++Estructura básica de un programa en C++
Estructura básica de un programa en C++Rosbelia Balza
 
Conceptos básicos de programación y Fundamentos básicos de PSEINT
Conceptos básicos de programación y Fundamentos básicos  de PSEINTConceptos básicos de programación y Fundamentos básicos  de PSEINT
Conceptos básicos de programación y Fundamentos básicos de PSEINTJudith Martos Florez
 
Unidad no. 2 búsqueda en espacio de estados
Unidad no. 2   búsqueda en espacio de estadosUnidad no. 2   búsqueda en espacio de estados
Unidad no. 2 búsqueda en espacio de estadosMilton Klapp
 

La actualidad más candente (20)

Toma de decisiones If Else
Toma de decisiones If ElseToma de decisiones If Else
Toma de decisiones If Else
 
Comandos de raptor
Comandos de raptorComandos de raptor
Comandos de raptor
 
Cuadro sinóptico estructuras de datos y su clasificación
Cuadro sinóptico   estructuras de datos y su clasificaciónCuadro sinóptico   estructuras de datos y su clasificación
Cuadro sinóptico estructuras de datos y su clasificación
 
Variables y Constantes en C++
Variables y Constantes en C++Variables y Constantes en C++
Variables y Constantes en C++
 
Pseint
PseintPseint
Pseint
 
Contadores y Acumuladores
Contadores y AcumuladoresContadores y Acumuladores
Contadores y Acumuladores
 
02 Ejercicios Resueltos diagramas de flujo
02 Ejercicios Resueltos diagramas de flujo02 Ejercicios Resueltos diagramas de flujo
02 Ejercicios Resueltos diagramas de flujo
 
Lenguajes libre de contexto
Lenguajes libre de contextoLenguajes libre de contexto
Lenguajes libre de contexto
 
Analisis de algoritmos complejidad en tiempo y espacio
Analisis de algoritmos complejidad en tiempo y espacioAnalisis de algoritmos complejidad en tiempo y espacio
Analisis de algoritmos complejidad en tiempo y espacio
 
Salidas internas de bucles.
Salidas internas de bucles.Salidas internas de bucles.
Salidas internas de bucles.
 
Lenguaje ensamblador basico
Lenguaje ensamblador basicoLenguaje ensamblador basico
Lenguaje ensamblador basico
 
Estructuras repetitivas
Estructuras repetitivasEstructuras repetitivas
Estructuras repetitivas
 
Estructuras de control algoritmos
Estructuras de control algoritmosEstructuras de control algoritmos
Estructuras de control algoritmos
 
Presentacion de circuitos y relacion a la ingenieria de sistemas
Presentacion de circuitos y relacion a la ingenieria de sistemasPresentacion de circuitos y relacion a la ingenieria de sistemas
Presentacion de circuitos y relacion a la ingenieria de sistemas
 
Funciones Internas
Funciones Internas Funciones Internas
Funciones Internas
 
Estructura básica de un programa en C++
Estructura básica de un programa en C++Estructura básica de un programa en C++
Estructura básica de un programa en C++
 
Programación Funcional en Scala
Programación Funcional en ScalaProgramación Funcional en Scala
Programación Funcional en Scala
 
Conceptos básicos de programación y Fundamentos básicos de PSEINT
Conceptos básicos de programación y Fundamentos básicos  de PSEINTConceptos básicos de programación y Fundamentos básicos  de PSEINT
Conceptos básicos de programación y Fundamentos básicos de PSEINT
 
Unidad no. 2 búsqueda en espacio de estados
Unidad no. 2   búsqueda en espacio de estadosUnidad no. 2   búsqueda en espacio de estados
Unidad no. 2 búsqueda en espacio de estados
 
Arquitectura de computadores
Arquitectura de computadoresArquitectura de computadores
Arquitectura de computadores
 

Destacado

Estructuras de Control C++
Estructuras de Control C++Estructuras de Control C++
Estructuras de Control C++Jorge Leonardo
 
Programacion en lenguaje_c
Programacion en lenguaje_cProgramacion en lenguaje_c
Programacion en lenguaje_cDiana Naveda
 
задание6 мыйтын оол
задание6 мыйтын оолзадание6 мыйтын оол
задание6 мыйтын оолMyolorrrr
 
Ejercicios pseint omar web technology
Ejercicios pseint omar web technologyEjercicios pseint omar web technology
Ejercicios pseint omar web technologyOmar Landaeta
 
Clase 2 Estructuras de Control
Clase 2 Estructuras de ControlClase 2 Estructuras de Control
Clase 2 Estructuras de ControlDesireé mart?ez
 
PROGRAMAS EN DEV C++
PROGRAMAS EN DEV C++PROGRAMAS EN DEV C++
PROGRAMAS EN DEV C++KarenAlmanza
 
Problemas resueltos de c++
Problemas  resueltos de c++Problemas  resueltos de c++
Problemas resueltos de c++johnny herrera
 
Manual c++
Manual c++Manual c++
Manual c++slent
 
Dibujo Técnico
Dibujo TécnicoDibujo Técnico
Dibujo TécnicoR. Sosa
 

Destacado (12)

Estructuras de Control C++
Estructuras de Control C++Estructuras de Control C++
Estructuras de Control C++
 
Programacion en lenguaje_c
Programacion en lenguaje_cProgramacion en lenguaje_c
Programacion en lenguaje_c
 
задание6 мыйтын оол
задание6 мыйтын оолзадание6 мыйтын оол
задание6 мыйтын оол
 
Mapa conceptual de c++
Mapa conceptual de c++Mapa conceptual de c++
Mapa conceptual de c++
 
Ejercicios pseint omar web technology
Ejercicios pseint omar web technologyEjercicios pseint omar web technology
Ejercicios pseint omar web technology
 
Clase 2 Estructuras de Control
Clase 2 Estructuras de ControlClase 2 Estructuras de Control
Clase 2 Estructuras de Control
 
PROGRAMAS EN DEV C++
PROGRAMAS EN DEV C++PROGRAMAS EN DEV C++
PROGRAMAS EN DEV C++
 
INTEGRAL DE LINEA
INTEGRAL DE LINEAINTEGRAL DE LINEA
INTEGRAL DE LINEA
 
Problemas resueltos de c++
Problemas  resueltos de c++Problemas  resueltos de c++
Problemas resueltos de c++
 
Manual c++
Manual c++Manual c++
Manual c++
 
lenguaje de programacion C++
lenguaje de programacion C++lenguaje de programacion C++
lenguaje de programacion C++
 
Dibujo Técnico
Dibujo TécnicoDibujo Técnico
Dibujo Técnico
 

Similar a ESTRUCTURAS REPETITIVAS

Similar a ESTRUCTURAS REPETITIVAS (20)

Practicas 2016
Practicas 2016Practicas 2016
Practicas 2016
 
Manual
ManualManual
Manual
 
Intro2
Intro2Intro2
Intro2
 
Tutorial lenguaje c
Tutorial lenguaje cTutorial lenguaje c
Tutorial lenguaje c
 
Tutorial lenguaje c
Tutorial lenguaje cTutorial lenguaje c
Tutorial lenguaje c
 
Introducción a Python
Introducción a PythonIntroducción a Python
Introducción a Python
 
Practicas 2016
Practicas 2016Practicas 2016
Practicas 2016
 
Jorge salazar 4 to b xd
Jorge salazar 4 to b xdJorge salazar 4 to b xd
Jorge salazar 4 to b xd
 
Jorge salazar 4 to b xd
Jorge salazar 4 to b xdJorge salazar 4 to b xd
Jorge salazar 4 to b xd
 
Jorge salazar 4 to b xd
Jorge salazar 4 to b xdJorge salazar 4 to b xd
Jorge salazar 4 to b xd
 
IntroLenguajeC.ppt
IntroLenguajeC.pptIntroLenguajeC.ppt
IntroLenguajeC.ppt
 
2 estructura programa-c
2 estructura programa-c2 estructura programa-c
2 estructura programa-c
 
Lenguajec
LenguajecLenguajec
Lenguajec
 
programacion iterativa trabajo
programacion iterativa trabajoprogramacion iterativa trabajo
programacion iterativa trabajo
 
Curso de iniciaci_n_al_lenguaje_c_www.emugamesworld.com_
Curso de iniciaci_n_al_lenguaje_c_www.emugamesworld.com_Curso de iniciaci_n_al_lenguaje_c_www.emugamesworld.com_
Curso de iniciaci_n_al_lenguaje_c_www.emugamesworld.com_
 
Curso De IniciacióN Al Lenguaje C
Curso De IniciacióN Al Lenguaje CCurso De IniciacióN Al Lenguaje C
Curso De IniciacióN Al Lenguaje C
 
Introduccion al-lenguaje-c
Introduccion al-lenguaje-cIntroduccion al-lenguaje-c
Introduccion al-lenguaje-c
 
Programación c
Programación cProgramación c
Programación c
 
Programación c
Programación cProgramación c
Programación c
 
Lenguaje c 2_neo
Lenguaje c 2_neoLenguaje c 2_neo
Lenguaje c 2_neo
 

ESTRUCTURAS REPETITIVAS

  • 1. UNIVERSIDAD NACIONAL EXPERIMENTAL DE LOS LLANOS OCCIDENTALES EZEQUIEL ZAMORA JORGE LEONARDO HIDALGO RODRIGUEZ C.I.: N° V-19187649 BARINAS, 17 DE JULIO DE 2016
  • 2. 2 ÍNDICE Pág. Introducción………………………………………………………………………….3 Compilador…………………………………………………………………………..4 Estructura de Control Repetitiva…………………………..………………….……5 1. Bucle o Ciclo For…………………………………………………….6 2. Bucle While o Ciclo Mientras……………………………………...10 3. Bucle Do While o Ciclo Hacer Mientras………………………….12 EJERCICIOS PROPUESTOS……………………………………………………14
  • 3. 3 INTRODUCCIÓN Las estructuras repetitivas o bucles es una de las estructuras permitidas en la programación estructurada. Los bucles tienen que repetirse un número finito de veces. Si no nos encontramos con un bucle infinito y el algoritmo no tendrá solución. No será un algoritmo ya que no cumplirá la condición de finitud. Las condiciones repetitivas se componen básicamente de dos elementos:  Un cuerpo del bucle o conjunto de instrucciones que se ejecutan repetidamente  Una condición de salida para dejar de repetir las instrucciones y continuar con el resto del algoritmo. En c++ existen varias estructuras repetitivas. Según lo que se quiera conseguir o la naturaleza del algoritmo o programa, se utilizarán unas u otras. Estas estructuras son las siguientes:  El bucle while. Es aquel que utilizaremos para realizar repeticiones de sentencias cuando no sabemos, a priori, las veces que se han de repetir. Para más información sobre ese bucle puedes consultar el siguiente post: El bucle while.  El bucle do-while. Tiene una función similar al bucle while. Los programadores utilizamos dicho bucle para controlar errores de entrada, puedes ver más información en el siguiente enlace: El bucle do-while.  El bucle for. Se utiliza cuando, a priori, sabemos cuántas repeticiones se han de realizar a una o un conjunto de sentencias. Para más información pulsa en este enlace: El bucle for.
  • 4. 4 COMPILADOR Normalmente los compiladores de C++ son aptos para compilar lenguaje C, pero los compiladores de C no son capaces de procesar el lenguaje C++, esto se debe a que este último contiene una buena cantidad de palabras reservadas y características que no están soportadas por C. Gran parte de la sintaxis es la misma y por supuesto que quien programe en C tendrá una buena base para programar en C++, pero estos no son lenguajes totalmente equivalentes entre sí, así como tampoco lo son Visual Basic y Visual Bsic . NET y mucho menos aun C++ y C#. Lo primero y lo más importante, es que los archivos de cabecera que conforman la librería estándar de C, no son los mismos que conforman la librería estándar de C++, aunque si podemos utilizar las librerías de C en C++ (espero no estar repitiendo demasiado lo mismo). El caso es que en C incluimos el archivo stdio.h en el cual están contenidas las funciones necesarias para la entrada y salida de información, en C++ el archivo de cabecera en el que se encuentran las funcione para ingresar y extraer datos del sistema, tiene por título “iostream” del inglés “Imput-Output Stream”, que significa “flujo de entrada y salida”. A diferencia de C, en C++ no se coloca la extensión de archivo “.h” a los ficheros de cabecera que se incluyen mediante la directiva “#include”. Por otra parte, debido a que C++ se diseñó con el propósito de ser “compatible hacia abajo” con su hermano mayor, este incorpora cada uno de los archivos que integran la librería estándar de C, pero les cambia ligeramente el nombre agregando la letra “c” al comienzo de cada uno de ellos y por supuesto eliminando la extensión de archivo como en todos los demás que conforman las bibliotecas de C++. Por ejemplo “stdio.h” cambia su título a “cstdio”.
  • 5. 5 Otra diferencia importante, es que se introduce el concepto de los Espacios de Nombres (namespace), lo cual es un elemento propio de la programación avanzada y que en C++ se implementa en cada una de las funciones presentes en las bibliotecas, por lo tanto al invocar algún elemente que se encuentre definido dentro de ellas, se debe especificar a qué espacio de nombres pertenece, cosa que no se hacía en C, sencillamente porque al ser un lenguaje menos moderno, no incorporaba este mecanismo de control de títulos. ESTRUCTURA DE CONTROL REPETITIVA Si bien con las estructuras condicionales podemos tomar un camino u otro en la consecutividad de las instrucciones, esas sentencias solo se realizan una vez y en el orden en que se encuentran escritas, sin embargo en muchos casos es necesario regresar algunas sentencias atrás en el código y repetir varias veces un determinado número de instrucciones, para poder resolver eficientemente un problemas concreto sin escribir tantas líneas de código, es por ello que son necesarias las estructuras de control repetitivas, también conocidas como sentencias repetitivas, estructuras iterativas, ciclos o bucles y el más común y más utilizado de ellos es el bucle o ciclo for. A la forma de programación en la que solo se ejecuta una línea de código tras otra, se le conoce como programación secuencial, pero es mucho más eficiente la llamada programación estructurada, en la cual es posible ejecutar bloques o estructuras de código, las cuales internamente se siguen ejecutando secuencialmente, pero que pueden repetirse o ser invocadas en el momento en que se les necesite. El lenguaje C y también el C++, son lenguajes que soportan el paradigma de Programación Estructurada y por ello incorporan estructuras repetitivas, las cuales permiten romper un poco la secuencialidad de las sentencias.
  • 6. 6 La Programación Estructurada nos ofrece lo que conocemos como las estructuras repetitivas, que como su nombre lo indica, nos permiten repetir un número determinado de veces un bloque o grupo de sentencias específicas del programa, a este tipo de instrucciones, como dije anteriormente, se les suele llamar Bucles o Ciclos y el lenguaje C, así como también el C++, poseen tres tipos estructuras repetitivas que son el bucle For, el bucle While y el bucle Do-While. 1. Bucle o Ciclo For La palabra for en ingles significa “por” o “para”, es por ello que podríamos leer o traducir lo que expresa un ciclo for como “para las condiciones dadas entre los paréntesis (()), hacer lo que se encuentra dentro de las llaves ({})”. Ya que esta estructura se compone de una cabecera que se inicia con la palabra reservada for, seguida por una serie de parámetros dados entre paréntesis y luego un cuerpo delimitado por llaves ({}), en el cual se encuentran las instrucciones que se pretenden repetir. Entre los paréntesis (()), se encuentran tres partes separadas por el símbolo punto y coma (;), la primera de ellas corresponde a la inicialización de una variable contador, que se encargara obviamente de contar los giros del ciclo, luego en la segunda parte, debe colocarse una expresión condicional como las utilizadas entre los paréntesis de las sentencias if, la cual se encargara de determinar cuándo se producirá o no, una nueva iteración del bucle y finalmente en la tercera parte se coloca otra expresión en la que se indica, cómo se efectuara el incremento o decremento de la variable contador cada vez que ocurra una nueva repetición. Por ejemplo en el siguiente programa, tenemos un bucle o ciclo repetitivo for, el cual tiene como contador a una variable que tiene por identificador la letra i, la cual esta inicializada en cero (0), luego se encuentra una expresión condicional en la que se nos indica, que el ciclo deberá girar o
  • 7. 7 repetir las instrucciones internas, mientras la variable i posea un valor inferior o igual a 10, y finalmente se nos indica que dicho contador (i), con cada nueva vuelta del ciclo, ira sumando un uno (1) a su valor actual, es decir que en la primera iteración almacenara el valor cero (0), luego cero más uno (0+1), luego uno más uno (1+1), luego dos más uno (2+1) y así sucesivamente hasta que alcance el límite de diez (10) establecido por la condición de parada (i <= 0). En el ejemplo anterior de la sintaxis de for realizado en lenguaje C, el programa tiene como propósito mostrar en pantalla un mensaje, cada vez que el bucle hace una nueva iteración, comenzando por el número cero (0) en la primera vuelta del ciclo e indicando en el mensaje, el número correspondiente a esa repetición. Podemos notar que la variable contadora, la cual almacena un número entero que se irá incrementando con cada vuelta del bucle, está declarada fuera de la estructura for, ya que el lenguaje C impide que se realicen declaraciones fuera de la zona correspondiente para tal fin (las primeras líneas de la función main antes de cualquier otro tipo de instrucciones), en cambio en C++ podría haberse realizado la declaración junto
  • 8. 8 a la inicialización dentro de los paréntesis del for, como se muestra en el siguiente programa ejemplo de for. Otro detalle que puede modificarse tanto en C como en C++ es la forma de realizar el incremento o decremento del contador tanto en los ciclos for como en otras sentencias, por ejemplo en los programas anteriores se utilizó la recursividad para indicar que la variable i toma su mismo valor más el número uno (1), mediante la expresión i=i+1, pero esta pudo haber sido reemplazada por la expresión i++, ya que estos lenguajes poseen el llamado operador de incremento que está compuesto de dos signos de más consecutivos (++) y también el operador de decremento formado por dos signos de menos consecutivos (--). Utilizando este operador el programa quedaría así:
  • 9. 9 Es importante aclarar que el operador de incremento (++) así como el de decremento (--), solo es válido emplearlos cuando el aumento o disminución que se requiere realizar al contador, es de uno en uno, es decir en una sola unidad, en cambio sí se requiere que el contador se incremente de dos en dos o de tres en tres o incluso en cualquier otra cantidad, entonces será necesario hacerlo con una operación expresa, como por ejemplo i=i+2, i=i+3 o i=i+5. Para observar esto aún mejor, tenemos el próximo programa (ciclo for ejemplos), el cual imprime los números impares entre cero y mil. También existe una norma que establece, que si el contenido que se pretende repetir con una estructura de control repetitiva, consta de más de una línea de código, obligatoriamente debe estar delimitado por las llaves ({}) que agrupan el cuerpo del bucle, pero que si este solo contiene una sentencia de código, entonces las llaves ({}) pueden ser obviadas en el cuerpo del ciclo for (esto también es válido para otras estructuras repetitivas). Si aplicamos esta norma al ejercicio anterior, quedaría el ejemplo de for de la siguiente forma:
  • 10. 10 El bucle For es el que más comúnmente se emplea ya que es el más completo, posee una variable contador y una expresión de incremento o decremento que las otras estructuras repetitivas del lenguaje C y C++ (While y Do-While) no incorporan. Es particularmente útil cuando se tiene precisión de cuantas iteraciones se requieren para alcanzar la solución a un problema, ya que permite contar estas iteraciones, sin embargo con cualquiera de los tres tipos de ciclos si utilizamos la lógica correcta, podemos alcanzar los mismos resultados. 2. Bucle While o Ciclo Mientras La palabra inglesa While significa “mientras” en español, por lo tanto el bucle while o estructura repetitiva while, lógicamente indica la ejecución de las sentencias que se encuentran agrupadas en el cuerpo de esta estructura de control, el cual está delimitado por llaves ({}), solo si la condición ubicada entre los paréntesis (()), es evaluada como verdadera. El funcionamiento de esta estructura es muy similar al For, con la diferencia de no poseer una variable contador, en el resto de su funcionamiento es igual, presenta una cabecera que comienza por la palabra reservada while, seguida de entre paréntesis una expresión condicional que debe cumplirse para que se pueda generar una nueva iteración del ciclo. Este tipo de estructuras repetitivas, es especialmente útil cuando no se puede definir con precisión cuantas iteraciones o repeticiones deben efectuarse a un bloque de sentencias para poder dar resolución al problema que se esté afrontando. Por ejemplo si escribimos un programa que lea un número por teclado y posteriormente divida ese número a la mitad tantas veces como sea necesario, para que el valor resultante sea menor o igual que uno (1), en ese caso no podríamos saber que numero tecleara el usuario y por lo tanto tampoco podremos definir con certeza cuántas divisiones serán necesarias para alcanzar el resultado que se desea.
  • 11. 11 Podría ser una sola iteración la que realice el bucle, si el usuario ingresa por ejemplo el numero dos (2), ya que al dividirlo a la mitad obtendríamos el número uno (1), por el contrario si el usuario ingresa el numero mil (1000), sería necesario dividir el numero en múltiples ocasiones para qué el resultado de la división sea menor o igual a uno (1). A continuación tenemos el programa del cual estoy haciendo referencia, realizado implementando el bucle While. Es importante dejar claro que este programa tienen como única finalidad explicar la utilidad del ciclo While, por eso no arroja un resultado que proporcione ninguna otra utilidad. Utilizar un bucle For en este caso sería innecesario, ya que se estaría desperdiciando la variable contador que este incorpora, en cambio While solo requiere una condición a la cual se evalúa y si el resultado de esta evaluación es verdadero el bucle continúa girando, en caso de ser negativa el ciclo se detendrá. Imaginemos que el usuario introduce el número uno (1) o el cero (0) cuando el programa le solicita el numero entero que será dividido, de ser así el ciclo no realizaría ninguna iteración, ya que al evaluar la expresión condicional el resultado sería falso y el bucle terminaría inmediatamente su ejecución.
  • 12. 12 3. Bucle Do While o Ciclo Hacer Mientras es posible que utilizando el bucle While, el bloque de sentencias internas al ciclo, las que están dentro de las llaves ({}), nunca se ejecuten, pues si la condición de parada de la estructura repetitiva se evalúa como falsa en la cabecera del bucle (la parte superior), el ciclo culmina sin realizar ninguna iteración, en cambio con el bucle Do-While siempre se realiza al menos una iteración, es decir las sentencias internas, las que están agrupadas entre las llaves ({}), se ejecutan obligatoriamente una vez como mínimo, ya que la condición no se encuentra en la cabecera sino al pie (la parte inferior) de la estructura. La palabra Do en español significa “hacer” por lo tanto este bucle se puede entender como: “hacer una serie de pasos mientras se cumpla la condición final”. En la parte superior de la estructura se coloca la palabra “do” seguida del bloque delimitado por llaves ({}) con las sentencias que se pretenden repetir y luego en la parte inferir se coloca la palabra “while” seguida de una expresión condicional ubicada entre paréntesis (()). A diferencia tanto
  • 13. 13 del bucle For como del While, el Do-While termina con un punto y coma (;) al final de la estructura, luego del ultimo paréntesis ()) de la condición de parada del ciclo. Un caso en el cual sería particularmente útil la estructura de control repetitiva Do-While, es por ejemplo en un programa que deba leer valores numéricos, hasta que la suma de todos los valores leídos sea igual o superior a mil (1000). Nótese que en este caso la lectura de los números también se repite, en el ejemplo anterior no era necesario repetir la lectura del número que se debía dividir a la mitad varias veces, en cambio en este nuevo ejemplo, si debemos leer varias veces números enteros que se irán sumando entre si y por lo tanto la lectura del número entero deberá estar dentro del bucle y ejecutarse al menos una vez. A continuación tenemos el programa que acabo de mencionar, implementando la estructura repetitiva Do-While. En próximos artículos estaré realizando ejercicios un poco más útiles en cuanto a su objetivo, ya que los aquí expuestos no tienen más utilidad que la de ejemplificar el funcionamiento de estos bucles o estructuras repetitivas.
  • 14. 14 EJERCICIOS PROPUESTOS TIPO EJEMPLO PARA DESARROLLARLOS EN EL LENGUAJE DE C++ (FOR, WHILE Y DO-WHILE) 1. Programa que halla la suma de los 10 primeros números pares mostrando el resultado en pantalla. 2. El siguiente programa muestra en pantalla las coordenadas de una tabla cuyas dimensiones son 5x5 (filas x columnas). 3. Programa que muestra en pantalla todos aquellos caracteres introducidos a través del dispositivo estándar de entrada hasta que sea pulsado el carácter astensco. 4. El siguiente programa muestra en pantalla todos aquellos caracteres introducidos por teclado hasta que la tecla de espacio en blanco sea pulsada. 5. Hacer un programa que lea una serie de números enteros positivos de la entrada estándar y calcule el valor máximo de los mismos y cuántas veces aparece dicho valor repetido. 6. Programa que sume y muestre por pantalla todos los números naturales del 1 hasta el 5, ambos incluidos. Lo mismo pero de 1 a 50; lo mismo pero de 1 a 500. 7. Programa que sume el número 5 y sus múltiplos hasta el 100 inclusive y muestre el resultado por pantalla. 8. Realizar un programa que calcule y muestre la suma de los múltiplos de 5 comprendidos entre dos valores A y B. El programa no permitirá introducir valores negativos para A y B y verificará que A es menor que B. Si A es mayor que B, intercambiará sus valores. 9. Programa que calcule y muestre ex utilizando los cuatro primeros términos de la serie: ex = 1 + x /1! + x2 /2! + x3 /3!. El valor “exacto”
  • 15. 15 se puede obtener con la función intrínseca EXP(argumento) Programa que calcule y muestre ex utilizando los cuatro primeros términos de la serie: ex = 1 + x /1! + x2 /2! + x3 /3!. El valor “exacto” se puede obtener con la función intrínseca EXP(argumento). 10.Programa que pida la estatura (en metros) y sexo (V/M) de un número indeterminado de personas (mientras el operador quiera). Posteriormente escribirá la estatura media de los varones y la estatura media de las mujeres. 11.n. Un centro numérico es un número que separa una lista de números enteros (comenzando en 1) en dos grupos de números, cuyas sumas son iguales. El primer centro numérico es el 6, el cual separa la lista (1 a 8) en los grupos: (1, 2, 3, 4, 5) y (7, 8) cuyas sumas son ambas iguales a 15. El segundo centro numérico es el 35, el cual separa la lista (1 a 49) en los grupos: (1 a 34) y (36 a 49) cuyas sumas son ambas iguales a 595. 12.Programa que calcule el producto n! (n-1)!...3!*2!*1! 13.Programa que pida un número por teclado y diga si es primo o no, mostrando todos sus divisores. 14.Calcular el factorial de un número natural (que se pedirá por teclado) usando un bucle. Escribir los resultados parciales. 15.Leer números por teclado hasta introducir uno negativo. 16.Calcular la media de un conjunto de números. El programa recoge tantos datos como el usuario quiera calculando tantas medias como él quiera. 17.Calcular el valor de π aplicando la fórmula: π = 4* ( 1 – 1 / 3 +1 / 5 – 1/7) incluyendo hasta el término1 / 99. 18.Mostrar un mensaje por pantalla, por ejemplo, HOLA A TODOS, cien veces.