Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 21

Guía Básica de Algoritmos y Programación

GUÍA BÁSICA DE AYUDA Y APOYO


ALGORITMOS Y PROGRAMACIÓN

PRIMERA PARTE

1 CECP/AYP/2015
Guía Básica de Algoritmos y Programación

ÍNDICE

1. ENTORNO DE DESARROLLO INTEGRADO


1.1. NETBEANS
1.2. ECLIPSE
1.3. GEANY
2. LENGUAJE DE PROGRAMACION
2.1. TIPOS DE LENGUAJE
2.1.1. SEGÚN EL NIVEL DE ABSTRACCIÓN
2.1.2. SEGÚN LA FORMA DE EJECUCIÓN
3. PSEUDOCÓDIGOS
3.1. PSEINT
3.2. EJEMPLO SENCILLO DE UN ALGORITMO EN PSEINT
4. TIPOS DE DATOS
5. OPERADORES
6. VARIABLES
6.1. COMPOSICIÓN DE UNA VARIABLE
6.2. COMO DECLARAR VARIABLES EN C++
6.3. COMO DECLARAR VARIABLES EN JAVA
7. CONSTANTES
7.1. CONSTANTES DECLARADAS
7.2. CONSTANTES DEFINIDAS
8. LIBRERIAS O BIBLIOTECAS
9. ESTRUCTURAS DE CONTROL
9.1. ESTRUCTURA DE CONTROL SELECTIVAS
9.1.1. SIMPLES
9.1.2. DOBLES
9.1.3. MÚLTIPLES
9.2. ESTRUCTURAS DE CONTROL ITERATIVAS
9.2.1. MIENTRAS
9.2.2. PARA
9.2.3. REPETIR
9.3. USO DE LAS ESTRUCTURAS DE CONTROL EN C++
9.3.1 INSTRUCCIÓN IF
9.3.2. INSTRUCCIÓN SWITCH
9.3.3. INSTRUCCIÓN WHILE
9.3.4. INSTRUCCIÓN DO-WHILE
9.3.5. INSTRUCCIÓN FOR
10. EJERCICIOS RESUELTOS ESTRUCTURAS DE CONTROL

2 CECP/AYP/2015
Guía Básica de Algoritmos y Programación

1. ENTORNO DE DESARROLLO INTEGRADO

Un Integrated Development Environment (IDE), "por sus siglas en inglés”, es un ambiente de


desarrollo interactivo o Entorno de desarrollo integrado, el cual proporciona servicios integrales para
facilitar el desarrollo de software. Normalmente, un IDE consiste de un editor de código fuente,
herramientas de construcción automáticas y un depurador. La mayoría de los IDEs tienen auto-
completado inteligente de código. Los entornos de desarrollo integrados están diseñados para
maximizar la productividad del programador proporcionado componentes muy unidos con interfaces
de usuario similares. Los IDE presentan un único programa en el que se lleva a cabo todo el
desarrollo. Generalmente, este programa suele ofrecer muchas características para la creación,
modificación, compilación, implementación y depuración de software. Existen varias aplicaciones para
el desarrollo integrado de software, entre ellas encontramos NetBeans, Eclipse, Geany, etc.

1.1. NETBEANS

NetBeans es un entorno de desarrollo integrado siglas en inglés Integrated development


environment - (IDE), hecho principalmente para el desarrollo de aplicaciones bajo el lenguaje
de programación Java. NetBeans es un entorno de desarrollo muy completo, profesional y
libre, esto debido a que contiene muchas funcionalidades, para distintos tipos de aplicaciones
lo cual ayuda a facilitar al máximo la programación, la prueba y la depuración de las
aplicaciones que se desarrollan, el mismo cuenta con un editor propio, y además de soportar
el Lenguaje de Programación Java, tiene soporte para los lenguajes de programación C/C++ y
PHP.

1.2. ECLIPSE

Eclipse es una plataforma de desarrollo, diseñada para ser extendida de forma indefinida a
través de plug-ins. Fue concebida desde sus orígenes para convertirse en una plataforma de
integración de herramientas de desarrollo. No tiene contemplado un lenguaje específico, sino
que es un IDE genérico, aunque goza de mucha popularidad entre la comunidad de
desarrolladores del lenguaje de programación Java.

1.3. GEANY

Geany es un editor de texto que usa el kit de herramientas GTK21, con las características
básicas de un entorno de desarrollo integrado. Fue desarrollado para proporcionar un
pequeño y rápido IDE, que tiene sólo unas pocas dependencias de otros paquetes. Es
compatible con muchos tipos de archivos y tiene algunas características interesantes.

1. GTK2 – The GIMP Toolkit es un conjunto de bibliotecas multiplataforma para desarrollar interfaces gráficas de usuario (GUI), principalmente para los
entornos gráficos GNOME, XFCE y ROX aunque también se puede usar en el escritorio de Windows, Mac OS y otros.

3 CECP/AYP/2015
Guía Básica de Algoritmos y Programación

2. LENGUAJE DE PROGRAMACIÓN

Un lenguaje de programación es aquel elemento dentro de la informática que nos permite crear
programas mediante un conjunto de instrucciones, operadores y reglas de sintaxis; que se ponen a
disposición del programador para que este pueda comunicarse con los dispositivos de hardware y de
software existentes.

2.1. TIPOS DE LENGUAJES:

Los lenguajes de programación se pueden clasificar atendiendo a varios criterios:

2.1.1. SEGÚN EL NIVEL DE ABSTRACCIÓN.

◦ Lenguaje Máquina.
El lenguaje de máquina es el sistema de códigos directamente interpretable por un
circuito microprogramable, como el microprocesador de un computador. Este
lenguaje está compuesto por un conjunto de instrucciones que determinan
acciones al ser tomadas por la máquina.

◦ Lenguajes de Bajo Nivel.


Es aquel en el que sus instrucciones ejercen un control directo sobre el hardware y
están condicionados por la estructura física del computador que lo soporta. El uso
de la palabra bajo en su denominación no implica que el lenguaje sea inferior a un
lenguaje de alto nivel, si no que se refiere a la reducida abstracción entre el
lenguaje y el hardware.

◦ Lenguajes de Medio Nivel.


Es un lenguaje de programación informática como por ejemplo el lenguaje C, el
cual se encuentran entre los lenguajes de alto nivel y de bajo nivel, ya que suelen
ser clasificados muchas veces como de alto nivel, pero permiten ciertos manejos
de bajo nivel, estos lenguajes son precisos para ciertas aplicaciones como la
creación de sistemas operativos.

◦ Lenguajes de Alto Nivel.


Son los lenguajes de programación que permiten al programador escribir
algoritmos que son más o menos independientes del hardware. Estos lenguajes
son considerados de alto nivel porque son más parecidos al lenguaje natural
humano y más lejano al lenguaje de las máquinas.

2.1.2. SEGÚN LA FORMA DE EJECUCIÓN.

◦ Lenguajes Compilados.
Un lenguaje compilado es aquel lenguaje de programación que típicamente se
ejecuta mediante un compilador. Esto implica que una vez escrito el programa, éste
debe traducir su código fuente por medio de un compilador en un archivo
ejecutable para una determinada plataforma. Algunos lenguajes compilados: C,
C++, Java, Pascal, Cobol, Visual Basic.

4 CECP/AYP/2015
Guía Básica de Algoritmos y Programación

◦ Lenguajes Interpretados.
Un lenguaje interpretado es aquel lenguaje de programación en que la mayoría de
sus instrucciones se ejecutan directamente, sin una previa compilación del
programa de instrucciones, el intérprete ejecuta el programa directamente
traduciendo cada sentencia en una secuencia de una o más subrutinas. Algunos
lenguajes interpretados: Perl, PHP, Ruby, Python.

3. PSEUDOCÓDIGOS

El pseudocódigo (o falso lenguaje) es una descripción de alto nivel compacta e informal del principio
operativo de un algoritmo. Utiliza las estructuras de un lenguaje de programación real, pero está
diseñado para la lectura humana en lugar de la lectura máquina. Normalmente, el pseudocódigo
omite detalles que no son esenciales para la comprensión humana del algoritmo, tales como
declaraciones de variables, código específico del sistema y algunas subrutinas. Se utiliza
pseudocódigo pues este es más fácil de entender para las personas que el código del lenguaje de
programación convencional, ya que es una descripción eficiente y con un entorno independiente de
los principios fundamentales de un algoritmo. Se utiliza comúnmente para realizar bosquejos de la
estructura de un programa antes de realizar una efectiva codificación del mismo.

3.1 PSEINT

PSeInt de las palabras PSeudo Intérprete, es una herramienta educativa utilizada


principalmente por estudiantes para aprender los fundamentos de la programación y el
desarrollo de la lógica. Utiliza el pseudocódigo para la solución de algoritmos. PSeInt está
pensado para asistir a los estudiantes que se inician en la construcción de programas o
algoritmos computacionales. El pseudocódigo se suele utilizar como primer contacto para
introducir conceptos básicos como el uso de estructuras de control, expresiones, variables,
etc, sin tener que lidiar con las particularidades de la sintaxis de un lenguaje real. Este
software pretende facilitarle al principiante la tarea de escribir algoritmos en este
pseudolenguaje presentando un conjunto de ayudas y asistencias, y brindarle además algunas
herramientas adicionales que le ayuden a encontrar errores y comprender la lógica de los
algoritmos.

3.2 EJEMPLO SENCILLO DE UN ALGORITMO EN PSEINT:

Proceso SumaResta
var1 <- 0
var2 <- 0
resultado <- 0
Escribir "Ingrese dos Valores Enteros”
Leer var1, var2

Si var1 > var2 Entonces


resultado <- var1 – var2
Sino
resultado <- var1 + var2
FinSi

Escribir resultado
FinProceso

5 CECP/AYP/2015
Guía Básica de Algoritmos y Programación

El PSeInt es multiplataforma, ya que está disponible para los Sistemas Operativos Microsoft
Windows, Mac OS y GNU/Linux, se puede descargar a través del siguiente enlace
http://pseint.sourceforge.net/index.php?page=descargas.php. Allí deben elegir el sistema
operativo al cual le desean instalar el programa y solo si es para Linux deben escoger la
arquitectura del computador que tengan en su equipo 32 o 64 bits.

4. TIPOS DE DATOS

Un tipo de dato es un atributo de una parte de los datos que le indica al computador algo sobre la
clase de datos que se van a procesar. Esto incluye imponer restricciones en los datos, como qué
valores pueden tomar y qué operaciones se pueden realizar. Los tipos de datos más comunes son:
los numéricos, los caracteres y los lógicos.

La asignación de tipos a los datos tiene dos objetivos principales:


- Detectar errores en las operaciones.
- Determinar cómo ejecutar dichas operaciones.

TIPO DE DATO PSEUDO C/C++ JAVA EJEMPLO


entero int int int num = 10;
NUMERICOS float float float num = 10.5;
real
double double double num = 150.21;
caracter char char char var = 'a';
CARACTERES char var[10] = "hola”; //C++
cadena char[n] String
String var = "hola”; //Java
bool aux = true; //C++
LOGICOS booleano bool boolean
boolean aux = false; //Java

5. OPERADORES

Los operadores son aquellos símbolos que se utilizan para manipular datos existentes dentro de un
programa, estos nos permiten poder realizar tareas específicas al momento de una ejecución. Los
operadores se clasifican en los siguientes tipos: aritméticos, relacionales y lógicos.

OPERADOR PSEUDO C/C++ JAVA EJEMPLO


+ + + A+B
- - - A-B
ARITMETICOS * * * A*B
/ / / A/B
mod % % A % B == 0

6 CECP/AYP/2015
Guía Básica de Algoritmos y Programación

≤ <= <= A <= 20


< < < B<A
≥ >= >= B >= 1
RELACIONALES
> > > A>B
= == == A == B
≠ != != A != B
Y && && A > B && A > C
LOGICOS
O || || A == 10 || A >= B
ASIGNACION <- = = A = 200

6. VARIABLES

Una variable es un espacio de memoria reservado para almacenar un valor que corresponde a un tipo
de dato soportado por el lenguaje de programación. Una variable es representada y usada a través
de una etiqueta (un nombre) que le asigna un programador o que ya viene predefinida.

Dependiendo de donde se declaren las variables, estas podrán ser o no accesibles desde distintas
partes del programa. De acuerdo a esto existen variables:

 Globales:
Devuelven su valor en cualquier parte del programa, afectado todas sus partes.

 Locales:
Solo devuelven su valor en la parte del programa en donde están definidas, lo que quiere decir
que están restringidas a esa parte y solo esa parte tendrá acceso a dicha variable.

6.1 COMPOSICIÓN DE UNA VARIABLE:

6.2 COMO DECLARAR VARIABLES EN C++:

int peso = 10; //Variable numérica tipo entera llamada peso con valor 10
float angulo = 12.87; //Variable numérica tipo coma flotante llamada angulo con valor 12.87
char letra = 'A'; //Variable de carácter tipo caracteres llamada letra con valor A.
char palabra[10] = "HOLA MUNDO”; //Variable de carácter tipo cadena llamada palabra con valor
HOLA MUNDO
bool decision = false; //Variable lógica tipo booleana llamada decision con valor false

7 CECP/AYP/2015
Guía Básica de Algoritmos y Programación

6.3 COMO DECLARAR VARIABLES EN JAVA:

int peso = 10; //Variable numérica tipo entera llamada peso con valor 10
float angulo = 12.87; //Variable numérica tipo coma flotante llamada angulo con valor 12.87
char letra = 'A'; //Variable de carácter tipo caracteres llamada letra con valor A.
String = "HOLA MUNDO”; //Variable de carácter tipo string llamada palabra con valor HOLA
MUNDO
boolean decision = false; //Variable lógica tipo booleana llamada decision con valor false

7. CONSTANTES

Una constante es un valor que no puede ser alterado ni modificado durante la ejecución de un
programa, únicamente puede ser leído por el mismo. Corresponde a una longitud fija dentro un área
reservada en la memoria principal del ordenador, donde el programa almacena valores fijos. Los
valores de una constante son asignados al momento en que estas son declaradas.

Las constantes pueden ser declaradas de las siguientes maneras:

7.1 CONSTANTES DECLARADAS


Se declaran mediante la palabra reservada const, que indica que el valor de la variable no se
puede modificar. Su sintaxis es la siguiente:

const tipo_de_dato nombre_de_la_constante = valor;

7.2 CONSTANTES DEFINIDAS


Se declaran mediante la directiva #define, se definen después de las librerías del programa,
como toda constante su valor no se puede alterar. Su sintaxis en la siguiente:

#define nombre_de_la_constante valor

8. LIBRERIAS O BIBLIOTECAS

Las librerías o bibliotecas un conjunto de subprogramas utilizados para desarrollar software,


contienen código y datos, que proporcionan servicios a programas independientes, es decir, pasan a
formar parte de éstos. Esto permite que el código y los datos se compartan y puedan modificarse de
forma modular. Las librerías o bibliotecas están clasificadas por el tipo de trabajos que hacen, hay
bibliotecas de entrada y salida, matemáticas, de manejo de memoria, de manejo de textos y como
imaginarás existen muchísimas librerías disponibles y todas con una función específica. La sintaxis
para declarar una librería es la siguiente:

#include <nombre_de_la_libreria>

Adicional es la línea que dice using namespace std; esta línea nos ayuda a declarar un espacio de
nombre que evita tener que usarlo cada que accedemos a alguna función específica de una librería.
Teniendo este namespace declarado podemos llamar por ejemplo el comando cout >>, que

8 CECP/AYP/2015
Guía Básica de Algoritmos y Programación

pertenece a la librería iostream, sin embargo sin este namespace sería std::cout >>, imagina tener
que hacer esto cada vez que uses algún comando o función de las librerías, sería bastante tedioso.

Algunas librerías o bibliotecas en C++ son las siguientes:

fstream Flujos hacia/desde ficheros. Permite la manipulación de archivos.


iostream Parte del a STL que contiene los algoritmos estándar, es quizá la más usada e importante.
list Parte de la STL relativa a contenedores tipo list; listas doblemente enlazadas
math.h Manipulación de funciones matemáticas.
new Manejo de memoria dinámica
numeric Parte de la librería numérica de la STL relativa a operaciones numéricas.
ostream Algoritmos estándar para los flujos de salida.
stdio.h Prototipos de las funciones, macros, y tipos para manipular datos de entrada y salida.
stdlib.h Contiene los prototipos de las funciones, macros, y tipos para utilidades de uso general.
Parte de la STL relativa a contenedores tipo string; una generalización de las cadenas alfanuméricas para
string albergar cadenas de objetos. Muy útil para el fácil uso de las cadenas de caracteres, pues elimina muchas
de las dificultades que generan los char.
typeinfo Mecanismo de identificación de tipos en tiempo de ejecución
Parte de la STL relativa a los contenedores tipo vector; una generalización de las matrices unidimensionales
vector C/C++
forward_list Esta librería es útil para implementar con gran facilidad listas enlazadas simples.

9. ESTRUCTURAS DE CONTROL

Las estructuras de control permiten modificar el flujo de ejecución de las instrucciones de un


programa. Con estas estructuras, el programador puede determinar el orden en que se ejecutarán las
instrucciones que están dentro de estas estructuras. La estructura de control está formada por una
secuencia de instrucciones que se ejecutan en orden una a continuación de la otra. Cada una de las
instrucciones están separadas por el carácter punto y coma (;). No obstante, en algunos casos nos
interesará agrupar en un bloque una serie de instrucciones, como veremos al explicar las estructuras
de selección y de iteración. El bloque de sentencias se define por el carácter llave de apertura ({) para
marcar el inicio del mismo, y el carácter llave de cierre (}) para marcar el final. Con las estructuras de
control se puede:

 De acuerdo a una condición, ejecutar un bloque de instrucciones (if).


 De acuerdo al valor de una variable, ejecutar un grupo de sentencias (switch).
 Ejecutar un bloque de instrucciones mientras se cumpla una condición (while).
 Ejecutar un bloque de instrucciones hasta que se cumpla una condición (do-while).
 Ejecutar un bloque de instrucciones un número determinado de veces (for).

Todas las estructuras de control tienen un único punto de entrada y un único punto de salida. Las
estructuras de control se puede clasificar en: selectivas e iterativas. Esto es una de las cosas que
permite que la programación se rija por los principios de la programación estructurada.

9 CECP/AYP/2015
Guía Básica de Algoritmos y Programación

9.1 ESTRUCTURA DE CONTROL SELECTIVAS.

Se utilizan para tomar decisiones lógicas, se evalúa una condición y en función al resultado se
realiza una determinada secuencia de instrucciones. Estas estructuras se clasifican en:
Simple, Dobles, Múltiples.

9.1.1 SIMPLES:

Se identifican porque están compuestos únicamente de una condición. La estructura


si-entonces evalúa la condición y en tal caso, Si la condición es verdadera, entonces
ejecuta la acción por verdadero (o acciones si son varias). Si la condición es falsa no
se hace nada. La sintaxis en pseudocódigo seria la siguiente:

Si <condición> Entonces
<Accion_por_verdadero>
FinSi

9.1.2 DOBLES:

Son estructuras lógicas que permiten controlar la ejecución de varias acciones y se


utilizan cuando se tienen dos opciones de acción, si la condición es verdadera,
entonces ejecuta la acción por verdadero, si la condición es falsa entonces se ejecuta
la acción por falso, por la naturaleza de estas se debe ejecutar una o la otra, pero no
ambas a la vez, es decir, son mutuamente excluyentes. Su sintaxis en pseudocódigo
seria la siguiente:

Si <condición> Entonces
<Accion_por_verdadero>
Sino
<Accion_por_falso>
FinSi

9.1.3 MÚLTIPLES:

La estructura de decisión múltiples, es aquella que evalúa una expresión que podrá
tomar N valores distintos, por ejemplo, 1, 2, 3..., N y según que elija uno de estos
valores en la condición, se realizara una de las N acciones o lo que es igual, el flujo del
algoritmo seguirá solo un determinado camino ente los N posibles. Esta estructura se
representa por un selector el cual si toma el valor 1 ejecutará el bloque de acción 1, si
toma el valor 2 ejecutara el bloque de acción 2, si toma el valor N realizara el bloque
de acción N. Su sintaxis en pseudocódigo seria la siguiente:

Segun <variable> Hacer


caso_1:
<bloque_de_instrucciones_1>
caso_2:
<bloque_de_instrucciones_2>
caso_3:
<bloque_de_instrucciones_3>
caso_N:
<bloque_de_instrucciones_N>

10 CECP/AYP/2015
Guía Básica de Algoritmos y Programación

En caso contrario:
secuencia_de_acciones_dom
FinSegun

9.2. ESTRUCTURAS DE CONTROL ITERATIVAS

Las estructuras de control iterativas o repetitivas, son aquellas que repiten un bloque de
instrucciones mientras una condición dada sea verdadera. Cada una de las repeticiones que
realizan estas estructuras de control se les denomina bucles. Dentro de estas estructuras
encontramos los siguientes tipos: Mientras, Para, Repetir.

9.2.1. MIENTRAS:

La estructura repetitiva mientras (while) es aquella en la que el número de repeticiones


no se conoce por anticipado y el cuerpo del bucle se repite mientras se cumpla una
determinada condición, por esta razón, a estos bucles se les denomina bucles
condicionales.

Mientras <expresion_logica> Hacer


<bloque_de_instrucciones>
FinMientras

9.2.2. PARA:

La sentencia repetitiva para (for), es aquella que nos permite ejecutar un bucle que se
repita determinado número de veces. Esta sentencia requiere que conozcamos desde
el inicio el número de veces que se desea ejecutar la sentencia del interior del bucle.

Para variable <- valor_inicial Hasta valor_final Con Paso <paso> Hacer
<bloque_de_instrucciones>
FinPara

9.2.3. REPETIR:

La sentencia iterativa repetir (do-while), es muy parecida a la estructura mientras, ya


que las repeticiones están bajo una condición lógica, la cual controla el bloque de ins-
trucciones, la diferencia que se presenta es que este ciclo se ejecutara al menos una
vez se cumpla o no la condición establecida.

Repetir
<bloque_de_instrucciones>
Hasta Que <expresion_logica>

11 CECP/AYP/2015
Guía Básica de Algoritmos y Programación

9.3. USO DE LAS ESTRUCTURAS DE CONTROL EN C++

9.3.1. INSTRUCCIÓN IF

Esta instrucción hace que se ejecuten unas sentencias u otras dependiendo del valor
que toma una condición. La instrucción if puede ser simple o doble:

Alternativa Simple:

if (condición)
instrucción 1;

if (condición)
{
instrucción 1;
instrucción 2;
instrucción N;
}

Alternativa Doble:

if (condición)
instrucción 1;
else
instrucción 2;

if (condición)
{
instrucción 1;
instrucción 2;
}
else
{
instrucción 3;
instrucción 4;
}

12 CECP/AYP/2015
Guía Básica de Algoritmos y Programación

Alternativa Múltiple:

if (condición1)
instrucción 1;
else if (condición2)
instrucción 2;
else if (condición3)
instrucción 3;
else
instrucción 4;

if (condición1)
{
instrucción 1;
instrucción 2;
}
else if (condición2)
{
instrucción 3;
instrucción 4;
}
else if (condición3)
{
instrucción 5;
instrucción 6;
}
else
{
instrucción 7;
instrucción 8;
}

13 CECP/AYP/2015
Guía Básica de Algoritmos y Programación

9.3.2. INSTRUCCIÓN SWITCH

La sentencia switch selecciona una de entre múltiples alternativas. La forma general


de esta expresión es la siguiente:

switch (variable)
{
case constante1:
instrucción 1;
break;
case constante2:
instrucción 2;
break;
case constante3:
instrucción 3:
break;
default:
instrucción por default;
break;
}

9.3.3. INSTRUCCIÓN WHILE.

Ejecuta una instrucción o un bloque de instrucciones cero o más veces, dependiendo


del valor de la condición. Se evalúa la condición, y si es cierta, se ejecuta la instrucción
o bloque de instrucciones y se vuelve a evaluar la condición; pero si la condición es
falsa, se pasa a ejecutar la siguiente instrucción después del while.

while (condición)
{
instrucción 1;
instrucción 2;
….........
instrucción N;
}

9.3.4. INSTRUCCIÓN DO-WHILE.

Ejecuta una instrucción o un bloque de instrucciones, una o más veces, dependiendo


del valor de la condición. Se ejecuta la instrucción o bloque de instrucciones y a
continuación se evalúa la condición. Si la condición es cierta, se vuelve a ejecutar la
instrucción o bloque de instrucciones, y si es falsa, pasa a ejecutarse la siguiente
instrucción después del do-while. Cuando se utiliza una instrucción do-while el bloque
de instrucciones se ejecuta al menos una vez, ya que la condición se evalúa al final.

14 CECP/AYP/2015
Guía Básica de Algoritmos y Programación

En cambio, con una instrucción while, puede suceder que el bloque de instrucciones
no llegue a ejecutarse nunca si la condición inicialmente es falsa.

do
{
instrucción 1;
instrucción 2;
….........
instrucción N;
} while (condición);

9.3.5. INSTRUCCIÓN FOR.

Un bucle for hace que una instrucción o bloque de instrucciones se repitan un número
determinado de veces mientras se cumpla la condición. A continuación de la palabra
for y entre paréntesis debe haber siempre tres zonas separadas por punto y coma:

 zona de inicialización
 zona de condición
 zona de incremento ó decremento.

En alguna ocasión puede no ser necesario escribir alguna de ellas. En ese caso se
pueden dejar en blanco, pero los punto y coma deben aparecer. El funcionamiento de
un bucle for el siguiente:

1. Se inicializa la variable o variables de control.


2. Se evalúa la condición.
3. Si la condición es cierta se ejecutan las instrucciones. Si es falsa, finaliza la ejecución
del bucle y continúa el programa en la siguiente instrucción después del for
4. Se actualiza la variable o variables de control (incremento/decremento)
5. Se pasa al punto 2).

Esta instrucción es especialmente indicada para bucles donde se conozca el número


de repeticiones que se van a hacer. Como regla práctica podríamos decir que las
instrucciones while y do-while se utilizan generalmente cuando no se conoce a priori
el número de repeticiones, y la instrucción for se utiliza generalmente cuando sí se
conoce el número de repeticiones.

for (inicialización; condicion; incremento ó decremento)


{
instrucción 1;
instrucción 2;
….........
instrucción N;
}

15 CECP/AYP/2015
Guía Básica de Algoritmos y Programación

10. EJERCICIOS RESUELTOS ESTRUCTURAS DE CONTROL

1. Desarrolle un algoritmo en C++ que determine si un número es primo.

#include <iostream>
using namespace std;

int main()
{
int num, cont, x;
cout << "Introduzca número: " << endl;
cin >> num;
cont = 0;

for (x=1; x <= num; x++)


{
if (num % x == 0)
cont++;
}

if (cont == 2 || num == 1 || num == 0)


cout << "Es primo\n" << endl;
else
cout << "No es primo\n" << endl;

return 0;
}

2. Desarrolle un algoritmo que muestre la tabla de multiplicar del 1 al 9.

#include <iostream>
using namespace std;

int main()
{
int x, y;
for (x=1; x <= 9; x++)
{
for (y=0; y <= 9; y++)
{
cout << x << " x " << y << " = " << (x * y) << endl;
}
cout << "\n" << endl;
}

cout << "\n" << endl;


return 0;
}

16 CECP/AYP/2015
Guía Básica de Algoritmos y Programación

3. Realice un algoritmo que calcule el factorial de un numero

#include <iostream>
using namespace std;

int main()
{
int num, num2;
cout << "Introduce número: " << endl;
cin >> num;
num2 = num;

while (num2 != 1)
{
num2 = num2 - 1;
num = num * num2;
}
cout << "El factorial es: " << num << "\n" << endl;
return 0;
}

4. Realice un algoritmo que escriba los primeros 25 dígitos de la sucesión Fibonacci.

#include <iostream>
using namespace std;

int main()
{
int x = 0, y = 1, z, cont, num = 0;
cout << "Ingrese un numero " << endl;
cin >> num;

cout << z << " " << y << " ";


do
{
z = x + y;
cout << z << " ";
x = y;
y = z;
cont++;
} while (cont <= num);
return 0;
}

17 CECP/AYP/2015
Guía Básica de Algoritmos y Programación

5. Programa que lee un número entero por teclado y muestra si es par o impar.

#include <iostream>
using namespace std;

int main()
{
int num;
cout << "Introduzca numero:" << endl;
cin >> num;
if (num % 2 == 0)
cout << "NUMERO PAR" << endl;
else
cout << "NUMERO IMPAR" << endl;
return 0;
}

6. Algoritmo que lee un número entero que corresponde a una hora y muestra un mensaje según
la hora que se haya leído.

#include <iostream>
using namespace std;

int main()
{
int hora;
cout << "\nIntroduzca una hora (entre 0 y 24): " << endl;
cin >> hora;
if ((hora >= 0) && (hora < 12))
cout << "\nBuenos dias\n" << endl;
else if ((hora >= 12) && (hora < 18))
cout << "\nBuenas tardes\n" << endl;
else if ((hora >= 18) && (hora < 24))
cout << "\nBuenas noches\n";
else
cout << "\nHora no válida\n";

return 0;
}

18 CECP/AYP/2015
Guía Básica de Algoritmos y Programación

7. Algoritmo que lee la calificación obtenida por un alumno en un examen y muestra la estatus
correspondiente.

#include <iostream>
using namespace std;

int main()
{
float nota;
cout << "Introduzca una calificación numérica entre 0 y 20:" << endl;
cin >> nota;
cout << "La calificación del alumno es: " << endl;
if (nota >= 18 && nota <= 20)
{
cout << "Sobresaliente." << endl;
}
else
{
if (nota >= 14 && nota < 18)
{
cout << "Buena." << endl;
}
else
{
if (nota >= 10 && nota < 14)
{
cout << "Regular." << endl;
}
else
{
if (nota >= 0 && nota < 10)
{
cout << "Deficiente." << endl;
}
else
{
cout << "No es valida" << endl;
}
}
}
}
return 0;
}

19 CECP/AYP/2015
Guía Básica de Algoritmos y Programación

8. Algoritmo que lee dos números y una operación y realiza la operación entre esos números.

#include <iostream>
using namespace std;

int main()
{
int A, B;
float Resultado;
char operador;
cout << "Introduzca un numero:" << endl;
cin >> A;
cout << "Introduzca otro numero:" << endl;
cin >> B;
cout << "Introduzca un operador aritmético + - * / " << endl;
cin >> operador;
switch (operador)
{
case '-':
Resultado = A - B;
break;

case '+':
Resultado = A + B;
break;

case '*':
Resultado = A * B;
break;

case '/':
Resultado = (float) A / B; //Siempre que B sea diferente a cero.
break;

default:
cout << "Operador no valido" << endl;
break;
}
cout << "El resultado es: " << Resultado << endl;
return 0;
}

20 CECP/AYP/2015
Guía Básica de Algoritmos y Programación

9. Programa que determina si un carácter leído es o no una vocal.

#include <iostream>
using namespace std;

int main()
{
char car;
cout << "Introduzca una letra:" << endl;
cin >> car;
switch (car)
{
case 'a':
case 'A':
case 'e':
case 'E':
case 'i':
case 'I':
case 'o':
case 'O':
case 'u':
case 'U':
cout << "La letra " << car << " es una vocal." << endl;
break;
default:
cout << "La letra " << car << " es una consonante." << endl;
break;
}
return 0;
}

21 CECP/AYP/2015

También podría gustarte