Está en la página 1de 22

Algoritmos y Programación 1.

Algoritmo. Es un conjunto finito y ordenado de instrucciones con las que podemos


resolver una situación.

Problema. Situación no deseada.

Propiedades.
1. Finitud.
Cada instrucción debe ser efectiva, esto es, los componentes de una instrucción deben ser
básicos y entendible para que esta pueda ejecutarse en una cantidad finita de tiempo y
esfuerzo.

2. Ausencia de Ambigüedad
Cada instrucción debe estar perfectamente definida.

3. Secuencia
Todo algoritmo tiene una instrucción inicial única y cada instrucción debe tener un sucesor
único.

4. Entradas y Salidas
Un proceso con 0 o más datos de entrada (datos necesarios) para iniciar el algoritmo
obtiene uno o más datos de salida (resultado del algoritmo).

5. Efectividad
Las instrucciones de un algoritmo deben ordenar tareas posibles de realizar, no se puede
llevar a cabo una instrucción si no se tiene la información suficiente o si el resultado de la
ejecución no está bien definido.

6. Alcance.
Un algoritmo se aplica a un problema o a una clase de problemas específicos, el rango de
entradas se tiene que definir previamente y es este el que determina la generalidad de un
algoritmo.

Partes de un algoritmo.
 Nombre del algoritmo
 Objetivo
 Precondiciones
 Instrucciones
 Salida

Representación de un Algoritmo.
Las herramientas utilizadas comúnmente para diseñar algoritmos son:
 Pseudocódigo  Diagramas  Método Jackson
 Diagrama de Nassi/Shneiderma  Método Bertini
Flujo. n  Método Tabourie
 Método Warnier
Pseudocódigo.
Es una combinación de un algoritmo y un lenguaje de programación (incluye palabras reservadas del
lenguaje de programación)
Mezcla de lenguaje de programación y español (o inglés o cualquier otro idioma) que se emplea, dentro
de la programación estructurada, para realizar el diseño de un programa.
Es la representación narrativa de los pasos que debe seguir un algoritmo para dar solución a un problema
determinado. El pseudocódigo utiliza palabras que indican el proceso a realizar. El inicio de un
algoritmo en pseudocódigo comienza con la palabra Inicio y termina con la palabra Fin. Las líneas que
están entre llaves ({ }) se denomina comentario.
Características.
 Uso del lenguaje técnico
 Expresa lo que queremos
 Orden de ejecución
 Se puede leer de arriba abajo y de derecha a izquierda.

Diagramas de Flujo.
Los diagramas de flujo son una herramienta que permite representar visualmente qué operaciones se
requieren y en qué secuencia se deben efectuar para solucionar un problema dado.
Un diagrama de flujo es la representación gráfica mediante símbolos especiales, de los pasos o
procedimientos de manera secuencial y lógica que se deben realizar para solucionar un problema
dado.

Características
Toda representación gráfica, de cualquier tipo sea, debe cumplir las siguientes cualidades.

Sencillez.
Un método gráfico de diseño de algoritmo debe permitir la construcción de estos de manera fácil y
sencilla

Claridad.
Cuando un algoritmo es representado por un método gráfico necesita ser interpretado por otra persona
distinta de la que lo diseñó, debe estar lo suficientemente claro para su un fácil reconocimiento de todos
los elementos. • Normalización. Tanto los diseñadores de programas como los usuarios que necesitan la
documentación de estos deben utilizar las mismas normas de documentación.
Flexibilidad.
Todo método gráfico de representación debe permitir, sin grandes dificultades, posteriores
modificaciones de algunas partes de un algoritmo y la inserción de alguna nueva.

Reglas
1. Expresa que todo diagrama de flujo debe tener un inicio y un final.

2. Las líneas utilizadas para indicar la dirección del flujo del diagrama deben ser rectas: verticales u
horizontales. (No se pueden cruzar, no deben ser inclinadas).

3. Todas las líneas utilizadas para indicar la dirección del flujo del diagrama deben estar conectadas.
La conexión puede ser a un símbolo que exprese lectura, proceso, decisión, impresión, conexión
o fin del diagrama.

4. Los diagramas de flujos deben construirse de arriba hacia abajo (top-down) y de izquierda a
derecha (right to left).

5. La notación utilizada en el diagrama de flujo debe ser independiente del lenguaje de programación.
La solución presentada se puede escribir posteriormente en diferentes lenguajes de programación.

6. Es conveniente cuando realizamos una tarea compleja poner comentarios que expresen o ayuden
a entender lo que hayamos hecho.

7. Si el diagrama de flujo requiriera más de una hoja para su construcción, debemos utilizar los
conectores adecuados y enumerar las páginas correspondientes.

8. No pueden llegar más de una línea a un símbolo determinado.

Pasos para realizar un Diagrama de Flujo.

1. Análisis:
Para empezar con la estructura de un diagrama de flujo se tiene que ver todo lo necesario para resolver
la situación.
 Identificar las tareas en orden cronológico. Esto puede involucrar la observación de un proceso o
la revisión de cualquier documentación existente. Se puede escribir los pasos en forma de notas o
comenzar con un diagrama en versión borrador.
 Organizar por tipo y figura correspondiente, como procesos, decisiones, datos, entradas o salidas.

2. Construcción
Esta se hace de arriba hacia abajo y de izquierda a derecha utilizando los símbolos adecuados para cada
tipo de dato que se vaya a necesitar. Este se puede hacer ya sea dibujándolo a mano o usando un
programa
3. Prueba de escritorio
Consiste en hacer pruebas para verificar que el diagrama de flujo funciona Observa el proceso para
asegurarte de no dejar de lado nada que sea importante para tu propósito.

Símbolos

Estructura de un Programa
Programa
Algoritmo escrito en un lenguaje cuyas instrucciones son ejecutables por una computadora y que están
almacenados en un disco.
Lenguaje de programación
Un lenguaje de programación lo definiremos, como un conjunto de reglas, símbolos y palabras
especiales que permiten construir un programa.
Un lenguaje de programación consiste en un conjunto de órdenes o comandos que describen el proceso
deseado. Cada lenguaje tiene sus instrucciones y enunciados verbales propios, que se combinan para
formar los programas de cómputo.

Estructura.
La estructura (del latín structūra) es la disposición y orden de las partes dentro de un todo.
El teorema del programa estructurado, propuesto por Böhm-Jacopini, demuestra que todo programa
puede escribirse utilizando únicamente las tres instrucciones de control siguientes:
 Secuencia.
 Instrucción condicional.
 Iteración (bucle de instrucciones) con condición inicial.
Solamente con estas tres estructuras se pueden escribir todos los programas y aplicaciones posibles.

Estructura de un programa simple


Los programas más simples escritos en lenguajes imperativos suelen realizar tres tareas de forma
secuencial'
• Entrada de datos
• Procesamiento de los datos
• Salida de resultados

INICIO
1. Cabecera.
La biblioteca estándar de C (también conocida como libc) es una recopilación de ficheros cabecera y
bibliotecas con rutinas.
Las bibliotecas están clasificadas por el tipo de trabajos que hacen y todas con funciones específicas.
Sintaxis
#include <nombre de la librería>
El nombre y las características de cada función, el prototipo, así como la definición de algunos tipos de
datos y macros, se encuentran en un fichero denominado archivo de cabecera (con extensión ".h"), pero
la implementación real de las funciones están separadas en un archivo de la biblioteca.

Biblioteca ANSI C

Contiene la macro assert (aserción), utilizada para detectar errores lógicos y otros tipos
<assert.h>
de fallos en la depuración de un programa.

<complex.h> Conjunto de funciones para manipular números complejos (nuevo en C99).

Contiene funciones para clasificar caracteres según sus tipos o para convertir entre
<ctype.h> mayúsculas y minúsculas independientemente del conjunto de
caracteres(típicamente ASCII o alguna de sus extensiones).

<errno.h> Para analizar los códigos de error devueltos por las funciones de biblioteca.

<fenv.h> Para controlar entornos en coma flotante (nuevo en C99).

Contiene la definición de constantes que especifican ciertas propiedades de la


biblioteca de coma flotante, como la diferencia mínima entre dos números en coma
<float.h>
flotante (_EPSOLON), el número máximo de dígitos de precisión (_DIG), o el rango
de valores que se pueden representar (_MIN, _MAX).

<inttypes.h> Para operaciones de conversión con precisión entre tipos enteros (nuevo en C99).

<iso646.h> Para utilizar los conjuntos de caracteres ISO 646 (nuevo en NA1).

Contiene la definición de constantes que especifican ciertas propiedades de los tipos


<limits.h>
enteros, como rango de valores que se pueden representar (_MIN, _MAX).
Para la función setlocale() y las constantes relacionadas. Se utiliza para seleccionar el
<locale.h>
entorno local apropiado (configuración regional).

<math.h> Contiene las funciones matemáticas comunes.

Declara las macros setjmp y longjmp para proporcionar saltos de flujo de control de
<setjmp.h>
programa no locales.

<signal.h> Para controlar algunas situaciones excepcionales como la división por cero.

<stdarg.h> Posibilita el acceso a una cantidad variable de argumentos pasados a una función.

<stdbool.h> Para el tipo booleano (nuevo en C99).

<stdint.h> Para definir varios tipos enteros (nuevo en C99).

<stddef.h> Para definir varios tipos de macros de utilidad.

Proporciona el núcleo de las capacidades de entrada/salida del lenguaje C (incluye la


<stdio.h>
venerable función printf ).

Para realizar ciertas operaciones como conversión de tipos, generación de números


<stdlib.h> pseudo-aleatorios, gestión de memoria dinámica, control de procesos, funciones de
entorno, de señalización (??), de ordenación y búsqueda.

<string.h> Para manipulación de cadenas de caracteres.

<tgmath.h> Contiene funcionalidades matemáticas de tipo genérico (type-generic) (nuevo en C99).


<time.h> Para tratamiento y conversión entre formatos de fecha y hora.

Para manipular flujos de datos anchos y varias clases de cadenas de caracteres anchos
<wchar.h> (2 o más bytes por carácter), necesario para soportar caracteres de diferentes idiomas
(nuevo en NA1).

<wctype.h> Para clasificar caracteres anchos (nuevo en NA1).

2. Función Principal
En programación una función es aquel bloque de instrucciones que realizan un procedimiento
Tiene que contener las siguientes características
 Tipo : es el tipo del valor devuelto por la función, o, en caso de que la función no devuelva valor
alguno, la palabra reservada void (valor de retorno nulo)
 Nombre de la función: es el nombre o identificador asignado a la función.
 Lista de parámetros: variables locales (solo existen dentro de una función, una sección del
código del programa que realiza una tarea especifica, en la que se definen o declaran) a los que
se les asigna un valor antes de comenzar la ejecución del cuerpo de una función y que serán
pasados a la función.

 Cuerpo de la función: Conjunto de sentencias que llevan a cabo la tarea específica para la cual
ha sido creada.
 Return: mediante la palabra reservada return, se devuelve el valor de la función.

Funciones definidas por el usuario.


Función en programación.
Es un fragmento de código que realiza una tarea bien definida.
La utilización de funciones nos permite dividir un programa extenso en pequeños segmentos que
realizan tareas concretas, haciendo este más eficaz y presentable.
Con el propósito de un manejo eficiente de los datos, las funciones en C, una función NO se puede
declarar dentro de otra función, o en otras palabras, no se pueden anidar las funciones.
Esto quiere decir que las funciones son globales o externas, lo que hace que puedan llamarse desde
cualquier parte del programa.
Estructura.
 Tipo de retorno: es el tipo del valor devuelto por la función.
 Nombre de la función: es el nombre o identificador asignado a la función.
 Lista de parámetros: lista de declaraciones de parámetros que se utilizara en la función.
 Cuerpo de la función: conjunto de sentencias o instrucciones que llevaran a cabo la tarea
específica para la cual ha sido creada la función.
 Return expresión: devuelve el valor de la función.

El prototipo de una función es una línea similar a la primera de su declaración: tipo del resultado,
seguido del nombre de la función y de la lista de tipos de datos de los parámetros separados por comas y
rodeados por paréntesis.

Una función en C sólo puede devolver un valor. Para devolver dicho valor, se utiliza la palabra
reservada return cuya sintaxis es la siguiente:
return <expresión>;
Donde <expresión> puede ser cualquier tipo de dato salvo un array o una función.
Además, el valor de la expresión debe coincidir con el tipo de dato declarado en el prototipo de la
función.
Hay que tener en cuenta que existen funciones que no devuelven ningún valor.
El tipo de dato devuelto por estas funciones puede ser void, considerado como un tipo especial de dato.
En estos casos, la sentencia return se puede escribir como return o se puede omitir directamente.

Función main()
 main es la función principal de un programa en C
 Debe estar escrita en todo programa en C.
 Solo debe ser declarada una vez.
 Debe ser declarada de forma global.
 Sirve como punto de partida para la ejecución del programa.
 Normalmente controla la ejecución del programa dirigiendo las llamadas a otras funciones
del programa.
 Tiene un valor de retorno de tipo int, por lo que return debe ir seguido de un valor entero (0
en el ejemplo). El valor 0 se utiliza para indicar que el programa ha llegado a un punto en el
que todo se ha desarrollado correctamente

3. Entradas y salidas
Entrada.
▪ La entrada es la operación que nos permite proporcionar datos durante la ejecución de un
programa. Los datos que se pueden leer son: enteros, reales, caracteres o cadenas. NO se
puede leer un *boolean por tener valores preestablecidos (V o F).
▪ Los datos estructurados como arrays, registros o conjuntos, no se pueden leer globalmente y
se suele recurrir a diseñar procedimientos específicos.
▪ LOS DATOS DE ENTRADA SON LOS QUE LA COMPUTADORA VA A PROCESAR

Salida.
▪ Los programas para ser útiles deben proporcionar información de salida (resultados). Esta
salida toma información de la memoria y la sitúa o almacena en: la pantalla, en un dispositivo
de almacenamiento (disco duro o flexible), o en un puerto de E/S (puertos serie para
comunicaciones o impresoras).
▪ Ambos tipos de datos (de entrada y de salida) son información solamente que Los datos de
salida son datos derivados producidos por el sistema, es decir, obtenidos a partir de los datos
de las entradas introducidas. Por esta razón, a los datos de salida se les considera más
significativos que a los datos de entrada.

4. Declaración de Variables
 Es solo un nombre para identificar posiciones de memoria.
 Este nombre de la variable debe ser un identificador válido.
 En las variables (posiciones de memoria) se guardan los datos usados por el programa
durante su ejecución.
 TODA variable debe ser DECLARADA antes de poder ser utilizada.
 Una variable debe ser declarada y opcionalmente asignada a un determinado valor.
 En la declaración de la variable se indica el tipo de datos que almacenará (int, float, char,
double)
Variables globales: son las que se declaran después del llamado a las cabeceras, pero antes de cualquier
función, y son útiles para cualquier parte del programa.
Variables locales: son las que se declaran dentro de una función, y solo sirven para ser usadas dentro de
esa función.

5. Procesos
La definición de los procesos de la función esta formada por un bloque de sentencias o instrucciones,
que está encerado entre llaves { }
Las sentencias, también llamadas instrucciones:
a) Definen la lógica del programa.
b) Manipulan los datos para producir el resultado esperado por el usuario.

FIN
Tipos de datos C
Dato. Un dato es una representación simbólica (numérica, alfabética, algorítmica, espacial, etc.) de un
atributo o variable cuantitativa o cualitativa.
Tipo de Dato. Un tipo de dato informático o simplemente tipo, es un atributo de los datos que indica al
ordenador (y/o al programador/programadora) sobre la clase de datos que se va a manejar. Esto incluye
imponer restricciones en los datos, como qué valores pueden tomar y qué operaciones se pueden realizar.
Los datos a procesar por una computadora pueden clasificarse en:
• Simples
• Estructurados
Los datos simples ocupan solo una casilla de memoria, por lo tanto, una variable simple hace referencia
a un único valor a la vez. Dentro de ese grupo de datos se encuentran: enteros, reales, caracteres,
booleanos.
Los datos estructurados se caracterizan por el hecho de que con un nombre (identificador de variable
estructurada) se hace referencia a un grupo de casillas de memoria. Es decir, un dato estructurado tiene
varios componentes (pueden ser datos simples o estructurados). Sin embargo, los componentes básicos
(los del nivel más bajo) de un dato estructurado son datos simples. Dentro de este grupo de datos se
encuentran: arreglos, cadenas de caracteres, registros y conjuntos.

Datos Numéricos.
Numéricos enteros
El tipo de dato numérico entero es un subconjunto finito de los números enteros del mundo real. Pueden
ser positivos o negativos.
Número de bytes
Tipo de Dato Descripción Rango
típico
short Entero corto 2 -32768 a 32767
int Entero 4 -2147483648 a +2147483647
long Entero largo 4 -2147483648 a +2147483647

char Carácter 1 -128 a 127


Usando estos calificadores podemos tener los siguientes tipos enteros:
Número de
Tipo de Dato Descripción Rango
bytes típico

signed short Entero corto 2 -32768 a 32767


unsigned short Entero corto sin signo 2 0 a 65535
signed int Entero 4 -2147483648 a +2147483647
unsigned int Entero sin signo 4 0 a 4294967295
signed long Entero largo 4 -2147483648 a +2147483647
unsigned long Entero largo sin signo 4 0 a 4294967295
signed char Carácter 1 -128 a 127
unsigned char Carácter sin signo 1 0 a 255

Podemos ver que los datos enteros de tipo signed son equivalentes a los enteros sin utilizar el
calificador:
signed int a; es equivalente a escribir int a;

Numéricos reales
El tipo de dato numérico real es un subconjunto finito de los números reales. Pueden ser positivos o
negativos.

Tipo de Número de
Descripción Rango
Dato bytes típico

Real (Número en Positivos: 3.4E-38 a 3.4E38


float 4
coma flotante) Negativos: -3.4E-38 a -3.4E38
Real doble(Número en Positivos: 1.7E-308 a 1.7E308
double coma flotante de doble 8
precisión) Negativos: -1.7E-308 a -1.7E308

Positivos: 3.4E-4932 a 1.1E4932


long
Real doble largo 10 Negativos: -3.4E-4932 a -1.1E4932
double

Datos lógicos
Los datos de este tipo sólo pueden contener dos valores: true ó false (verdadero ó falso).
Si se muestran como enteros, el valor true toma el valor 1 y false el valor 0.
Tipo de Número de
Descripción Rango
Dato bytes típico

bool Dato de tipo lógico 1 0, 1

Tipo carácter extendido


Este tipo se utiliza para representar caracteres UNICODE. Utiliza 2 bytes a diferencia del tipo char que
solo utiliza 1.

Tipo de Número de
Descripción Rango
Dato bytes típico

wchar_t Carácter Unicode 2 0 a 65535

Datos Alfanuméricos
Dentro de este tipo de datos encontramos los de tipo carácter (simple) y cadena de caracteres
(estructurado). Son datos cuyo contenido pueden ser letras del abecedario, dígitos o símbolos especiales.
Debemos remarcar que, aunque este tipo de datos pueden contener números, no pueden ser utilizados
para realizar operaciones aritméticas. Un dato tipo carácter contiene un solo carácter, y se escribe entre
apóstrofes.
Un dato tipo cadena de caracteres contiene un conjunto de caracteres, y se escribe entre comillas. La
longitud de una cadena depende de los lenguajes de programación, aunque normalmente se acepta una
longitud máxima de 255.

Especificadores de formato
%c: Caracter
%d: Número entero(int)
%D: Número entero long(o también %ld)
%i: Número entero(int)
%f: Punto flotante(float)
%e: Notación científica con e minúscula
%E: Notación científica con E mayúscula
%g: Utiliza %f o %e según sea más corto
%G: Utiliza %f o %E según sea más corto
%o: Número octal sin signo
%s: Cadena de texto
%u: Entero sin signo
%U: Entero sin signo long(o también %lu)
%x: Hexadecimal sin signo con minúsculas
%X: Hexadecimal sin signo con mayúsculas
%p: Puntero, dirección de memoria
%n: Número de caracteres
%o: Formato entero octal
%O: Formato entero octal long(o también %lo)
%lf: Formato double
%LF: Formato long doublé

Identificador.
Un identificador es un conjunto de caracteres alfanuméricos que sirve para identificar las entidades del
programa (clases, funciones, variables, tipos compuestos, constantes). Un identificador es el nombre que
se le da a un elemento de un algoritmo.

Reglas.
 Debe comenzar con un carácter alfabético (A - Z, mayúscula o minúscula)
 Los demás caracteres pueden ser letras, dígitos o el carácter especial de subrayado (_)
 Las letras no deben ser tildadas y no está permitido el uso de las letras 'ñ' y 'Ñ'.
 No se admiten espacios en blanco.
 No deberá coincidir con palabras reservadas del lenguaje algorítmico
 La longitud de los identificadores puede ser de hasta 8 caracteres. Este valor dependerá del
lenguaje de programación que esté estudiando
 Indicar su tipo (Entero, Real, cadena, carácter o booleano)
Los datos a procesar por una computadora, ya sean simples o estructurados, deben almacenarse en
casillas o celdas para su posterior utilización. Estas casillas o celdas de memoria (constantes o variables)
tienen un nombre que permiten su identificación, el cual se le dará por medio de las reglas anteriores.

Constante.
Una constante es un valor que no puede ser alterado/modificado durante la ejecución de un programa,
únicamente puede ser leído.

Variable.
Es un espacio en la memoria que reservamos para poder guardar información con un nombre simbólico
(un identificador) que está asociado a dicho espacio y que además pueden cambiar de valor durante la
ejecución del programa.

Palabras Reservadas.
Las palabras reservadas son identificadores predefinidos (tienen un significado especial).
Operadores.
Relacionales.
Un operador relacional se utiliza para comparar los valores de dos expresiones. Éstas deben ser del
mismo tipo (aritméticas, lógicas o de carácter).

Lógico.
Un operador lógico actúa, exclusivamente, sobre valores de expresiones lógicas.
Aritméticos.
De la evaluación de una expresión aritmética siempre se obtiene un valor de tipo entero o real.

Asignación.
Una operación de asignación asigna el valor del operando derecho a la ubicación de almacenamiento
designada por el operando izquierdo.

Estructuras de Control.
Para resolver estas situaciones existen las denominadas estructuras de control que poseen las siguientes
características:
 Una estructura de control tiene un único punto de entrada y un único punto de salida.
 Una estructura de control se compone de sentencias o de otras estructuras de control.
Tales características permiten desarrollar de forma muy flexible todo tipo de algoritmos aun cuando sólo
existen tres tipos fundamentales de estructuras de control:
 Secuencial.
 Alternativa o condicional
 Repetitiva o Iterativa

Secuencial.
las instrucciones se ejecutan una después de la otra, en el orden en que están escritas, es decir, en
secuencia.

Condicional.
Permiten tomar decisiones y realizar un proceso repetidas veces. Es necesario especificar, condiciones,
es decir, expresiones booleanas que se evalúan como verdadero o falso. Una condición se puede formar,
usando los operadores relacionales o de igualdad.
Disponemos de tres estructuras alternativas diferentes: alternativa simple, alternativa doble y alternativa
múltiple.

Alternativa Simple
Esta estructura permite evaluar una expresión lógica y en función de dicha evaluación ejecutar una
acción si es verdadera o no ejecuta si es falsa; también se la suele denominar “if”

Bloque de instrucciones: Secuencia de instrucciones encerradas entre dos llaves {....}


Alternativa Doble.
Una sentencia if, cuando incluye la cláusula else, permite ejecutar un bloque de código si se cumple la
condición y otro bloque de código diferente si la condición no se cumple.
Alternativa Múltiple.
Esta estructura evalúa una expresión que pueda tomar n valores (enteros, caracteres y lógicos, pero
nunca reales) y ejecuta una acción o grupo de acciones diferente en función del valor tomado por la
expresión selectora.
if-else anidadas

Iterativas.
Inician o repiten un bloque de instrucciones si se cumple una condición o mientras se cumple una
condición. Son también conocidas como “bucles”
Existen tres tipos de estructuras repetitivas: desde-hasta, mientras y repetir-hasta.
Iteración: Cada repetición de las instrucciones de un bucle.
Bucle while
Es una estructura de control iterativa que permite ejecutar un bloque de instrucciones 0 o más veces,
mientras que cierta condición lógica sea verdadera.

Por tanto, cuando el flujo de un programa llega a un bucle while, existen dos posibilidades:
1. Si la condición se evalúa a falsa, el bloque de instrucciones no se ejecuta, y el bucle while
finaliza sin realizar ninguna iteración.
2. Si la condición se evalúa a verdadera, el bloque de instrucciones sí que se ejecuta y, después, se
vuelve a evaluar la condición, para decidir, de nuevo, si el bloque de instrucciones se vuelve a
ejecutar o no. Y así sucesivamente, hasta que, la condición sea falsa.

Bucle do-while (repetir-hasta)


El cuerpo del bucle se ejecuta una y otra vez mientras la condición (expresión booleana) sea verdadera.
Se termina de ejecutar cuando el valor de la condición es falsa.

Por consiguiente, cuando el flujo de un programa llega a un bucle do while, existen dos posibilidades:
1. Se ejecuta el bloque de instrucciones y, después, si la condición se evalúa a falsa, el bloque de
instrucciones no se vuelve a ejecutar, de manera que, el bucle do while finaliza, habiendo
realizado una sola iteración.
2. Se ejecuta el bloque de instrucciones y, a continuación, si la condición se evalúa a verdadera, el
bloque de instrucciones se vuelve a ejecutar. Y así sucesivamente, hasta que la condición sea
falsa.
Bucle for (desde/para)
Suele utilizarse en sustitución del bucle while, ya que, en muchas ocasiones se conoce de antemano el
número de veces que se desean ejecutar las acciones de un bucle.
En estos casos, en el que el número de iteraciones es fijo, se debe usar la estructura desde o para.
Expresion1--------Inicio
Expersion2--------Fin
Expresion3--------Incremento

También podría gustarte