Está en la página 1de 70

Sesión 1:

Fundamentos de programación
RESUMEN
• Un programa se considera como una secuencia lógica de
instrucciones que manipulan un conjunto de objetos (datos)
para obtener unos resultados.
• Todo programa contiene dos bloques diferenciados:
• Bloque de declaraciones: se especifican los objetos que utiliza
el programa (constantes, variables, tablas, registros, etc)
• Bloque de instrucciones: conjunto de operaciones que se han
de realizar para la obtención de los resultados obtenidos.
• Las instrucciones de un programa consisten generalmente en
modificar los objetos del programa
OBJETIVOS
• Podremos identificar los conceptos básicos para poder
programar.
• Identificaremos y podremos realizar un algoritmo utilizando
diversos tipos de métodos.
• Podremos diferencial las diferentes tipos de ejercicios a los
cuales podremos realizarlos.
1. DATOS, ALGORITMOS Y LENGUAJES
CONCEPTO DE ALGORITMO

Para ser un programador eficaz se necesita aprender a


resolver problemas de un modo riguroso y sistemático.
Los algoritmos son más importantes que los lenguajes de
programación o las computadoras. Un lenguaje de
programación es tan sólo un medio para expresar el algoritmo,
y una computadora es sólo un procesador para ejecutarlo.

Un algoritmo es un conjunto de tareas o pasos en una


cantidad finita que se ejecutan en un orden determinado, y
para determinada situación inicial se resuelve el problema en
un tiempo finito.
• Características que debe cumplir
• 1) Debe ser correcto; responder a lo que me piden y resolver el
problema;
• 2) Eficiente en cuanto a recursos y tiempo;
• 3) Claro;
• 4) Flexible; poder adaptarse a pequeños cambios de lógica;
• 5) Preciso; e indicar el orden de realización de cada paso;
• 6) Estar definido: si se sigue un algoritmo dos veces, se debe
obtener el mismo resultado cada vez;
• 7) Ser finito: se debe terminar el algún momento; debe tener un
número finito de pasos;
• 8) Fiable o confiable; estar acorde a lo anterior en cuanto a
propuesta de solución.
• La definición de un algoritmo debe describir tres partes: entrada,
proceso y salida..
2. LOS LENGUAJES DE PROGRAMACIÓN
• El procesador debe ser capaz de interpretar el algoritmo, lo que
significa:
• - comprender las instrucciones de cada paso;
• - realizar las operaciones correspondientes.
• Semántica: Significado, interpretación de lo que la sintaxis está
expresando.
• Sintaxis: Combinación entre cierta simbología o signos, y palabras
clave (que no sean ambiguas).
• Los principales tipos de lenguajes utilizados en la actualidad son
tres:
• Lenguaje máquina;
• Lenguaje de bajo nivel (ensamblador);
• Lenguaje de alto nivel.
Instrucciones a la computadora
• Instrucciones de entrada / salida: instrucciones de
transferencia de información entre dispositivos periféricos y la
memoria central;

• Instrucciones aritméticas / lógicas: instrucciones que ejecutan


operaciones aritméticas y lógicas;

• Instrucciones selectivas: instrucciones que permiten la


selección de tareas alternativas en función de los resultados de
diferentes expresiones condicionales;

• Instrucciones repetitivas: Instrucciones que permiten la


repetición de secuencias de instrucciones un número
determinado o indeterminado de veces.
3. DATOS, TIPOS Y ESTRUCTURA DE DATOS, OPERACIONES
PRIMITIVAS
El primer objetivo de toda computadora es el manejo de la información o
datos. Un dato es la expresión general que describe los objetos con los cuales
opera una computadora.
• Entrada y salida de información
• Los cálculos que realizan las computadoras requieren la entrada de los
datos necesarios para ejecutar las operaciones, que posteriormente se
convertirán en resultados, es decir, salida.
• Esta entrada se conoce como operación de lectura. Los datos de entrada
se introducen al procesador mediante los dispositivos de entrada.
• La salida puede aparecer en un dispositivo de salida. La operación de
salida se denomina escritura.
• Estas acciones se representan por los formatos siguientes:
• Leer: (lista de variables de entrada)
• Escribir: (lista de expresiones de salida) o, en nuestro caso: Imprimir: (lista
de expresiones de salida)
4. ESTRUCTURA GENERAL DE UN PROGRAMA

• Atributos, características
• Debe estar definido: único punto de entrada/salida, que se comprenda la
secuencia de las acciones;
• El proceso de programación es un proceso de solución de problemas, y el
desarrollo de un programa requiere las siguientes fases:
• 1-Definición y análisis del problema.
• 2-Diseño de algoritmos:
• -Diagrama de flujo
• -Diagrama N-S
• -Pseudocódigo
• 3-Codificación del programa.
• 4-Depuración y verificación del programa.
• 5-Documentación externa.
• 6-Mantenimiento.
• En todos los casos anteriores, llevar a cabo simultáneamente la adecuada
documentación interna.
• Bucles
• Un bucle o lazo (loop) es un segmento de un algoritmo o programa,
cuyas instrucciones se repiten una n cantidad de veces mientras se
cumpla una determinada condición.
• Se debe establecer un mecanismo para determinar las tareas
repetitivas; este mecanismo es una condición que puede ser
verdadera o falsa, y que se comprueba cada vez que se realiza un
paso o iteración del bucle.
• Contadores y acumuladores
• VARIABLE ACUMULADORA: Su función es acumular valores,
distintos o no, en forma parcial; valores resultantes de sumas
sucesivas. Se debe inicializar siempre, de lo contrario el valor que
esta tome va a incluir el acumulado de todas las veces que corrió el
programa. Generalmente se inicializa al comienzo o casi al final del
programa. El modo de acumularle valores es siempre el mismo:
5. INTRODUCCION A LA PROGRAMACION
ESTRUCTURADA

Las nuevas teorías de programación se centran en las técnicas de


programación modular y programación estructurada, de modo
que se pueda conseguir un programa eficaz.
• Programación modular
• Una estrategia para la resolución de un problema complejo
con computadoras, es la división o descomposición del mismo
en sub problemas más pequeños. Estos sub problemas se
implementan mediante módulos o subprogramas. Los
subprogramas son una herramienta importante para el
desarrollo de algoritmos y programas, ya que un proyecto de
programación normalmente se compone de un programa
principal, y de un conjunto de subprogramas, los cuales son
llamados o invocados desde el programa principal.
• Programación estructurada

• El término programación estructurada se refiere a un


conjunto de técnicas que aumentan la productividad del
programa reduciendo el elevado tiempo requerido para
escribir, verificar, depurar y mantener los programas.
• La programación estructurada es el conjunto de técnicas que
incorporando Diseño descendente (Top-Down).
• TEOREMA DE LA PROGRAMACIÓN ESTRUCTURADA:
ESTRUCTURAS BÁSICAS
• Un programa propio puede ser escrito utilizando solamente tres
tipos de estructuras de control:
• - Secuencial: En el mismo orden en forma imperativa, no
depende del contenido.
• - Repetición: Llevar a cabo la ejecución de un conjunto de
funciones una determinada cantidad de veces.
• - Decisión: Mediante estructura lógica >> saber si se realiza una
función o no.
• ESTRUCTURA DE CONTROL SECUENCIAL
• La estructura secuencial es aquella en la que una acción sigue
a otra en secuencia. La salida de una es la entrada de la
siguiente.
• EJ2) Calcular el sueldo (líquido) recibiendo el valor del básico,
descuento del 10% por IPS y el 4% de IOMA.
• #include<iostream.h>
• #include<conio.h>
• Void main (void)
• { int a,b;
• Cout<<”ingrese el sueldo”;
• Cin>>a;
• b= a-((a*14)/100)
• cout<<”el sueldo liquido es:”<<b;
• getch ();
• }
• ESTRUCTURAS DE CONTROL REPETITIVAS
• Las estructuras que repiten una secuencia de instrucciones un
número determinado de veces se denominan bucles; y se
llama iteración al hecho de repetir la ejecución de una
secuencia de acciones.
• -Repetición
• -Incondicional >> fija: // no utilizar incondicional cuando la
cantidad
• -constante (entero) de repeticiones no será fija. //
• -variable (entero)
• -Condicional >> indeterminada.
• Repetición incondicional; “Repetir Para”
• Esta estructura (For) ejecuta las acciones del cuerpo del bucle
un número especificado de veces, y de modo automático
controla la cantidad de iteraciones o pasos a través del cuerpo
del bucle.
• MAXIMO COMUN DIVISOR

#include<iostream.h>
#include<conio.h> if (a<b)
#include<math.h> {z=a;}
void main (void) else z=b;
{ for (i=z;i>=1;i--)
int i,j,z,a,b; { if (a%i==0 && b%i==0)
cout<<"Ingrese el primer { cout<<" El maximo comun
numero dss : "; divisor es : "<<i<< endl;
cin>>a; break;
cout<<"Ingrese el segundo } }
numero dss : "; getch(); }
cin>>b;
• Repetición condicional; “Repetir Mientras”

• La estructura repetitiva mientras (while) es aquella en la cual


el cuerpo del bucle se repetirá mientras se cumpla una
determinada condición.
• <condición o condiciones compuestas> : En este sector de la
estructura, se debe expresar la condición que nos indique que
mientras permanezca verdadera, se siguen repitiendo las
instrucciones dentro del bucle; se observa que no hay una
repetición fija, sino que está condicionada, no se sabe cuantas
veces se va a repetir.
• -Condicional:
• -Verdadero >> repite otra vez
• -Falso >> deja de repetir
Bucles infinitos

• Algunos bucles no exigen fin y otros no encuentran el fin por


algún error en su diseño. Un bucle que nunca termina se
denomina bucle infinito. Los bucles sin fin, no intencionados,
son perjudiciales para el programa, y se deben evitar siempre.
• Estructuras repetitivas anidadas

• Es posible insertar un bucle dentro de otro. La estructura


interna debe estar incluida totalmente dentro de la externa, y
no puede existir solapamiento.
• Las variables de control de los bucles toman valores de modo
tal que, por cada valor de la variable índice del ciclo externo,
se debe ejecutar totalmente el bucle interno.
6. SUBPROGRAMAS PROCEDIMEINTOS Y
FUNCIONES
La resolución de problemas complejos se facilita considerablemente si
se dividen en problemas más pequeños; y la resolución de estos sub
problemas se realiza mediante sub algoritmos.
• FUNCIONES

• Una función es un subprograma que recibe, como argumentos


o parámetros, datos de tipo numérico o no numérico, y
devuelve un único resultado.
• Las funciones incorporadas al sistema se denominan funciones
internas, o intrínsecas; las funciones definidas por el usuario
se llaman funciones externas.
• El algoritmo o programa invoca la función con el nombre de
esta última en una expresión seguida
• de una lista de argumentos que deben coincidir en cantidad,
tipo y orden con los de la función que fue definida.
• PROCEDIMIENTOS
• Un procedimiento es un subprograma que ejecuta una tarea
determinada. Está compuesto por un conjunto de sentencias,
a las que s le asigna un nombre, o identificador. Constituyen
unidades del programa, y su tarea se ejecuta siempre y
cuando encuentre el nombre que se le asignó a dicho
procedimiento.
• Los procedimientos deben ser declarados obligatoriamente
antes de que puedan ser llamados en el cuerpo del programa
principal. Para ser activados o ejecutados, deben ser llamados
desde el programa en que fueron declarados.
• Todo procedimiento, al igual que un programa principal,
consta de una cabecera, que proporciona su nombre y sus
parámetros de comunicación; de una sección de declaraciones
locales y el cuerpo de sentencias ejecutables. Las ventajas más
destacables de usar procedimientos son:
• 1. Facilitan el diseño top-down.
• 2. Se pueden ejecutar más de una vez en un programa, con
solo llamarlos las veces que se desee. Con esto se ahorra
tiempo de programación.
• 3. El mismo procedimiento se puede usar en distintos
programas.
• 4. Su uso facilita la división de tareas entre los programadores
de un equipo.
• 5. Se pueden probar individualmente e incorporarlos en
librerías o bibliotecas.
• RECURSIÓN (recursividad)

• Un subprograma que se puede llamar a sí mismo se llama


recursivo. La recursión puede ser utilizada como una
alternativa a la repetición o estructura repetitiva. La
escritura de un procedimiento o función recursiva es
similar a sus homónimos no recursivos; sin embargo, para
evitar que la recursión continúe indefinidamente, es
preciso incluir una condición de terminación.
7. ESTRUCTURAS DE DATOS Y ARREGLOS
 Conceptos previos

Tipos primitivos

Nombre común Nombre C Longitud Procesador 64 bits

BYTE char 8 bits 8 bits

WORD short 16 bits 16 bits

DWORD int 32 bits 32 bits

DWORD long 32 bits 64 bits

DWORD float 32 bits 32 bits

QWORD double 64 bits 64 bits

TWORD long double 80 bits 128 bits


• Matrices estáticas
• Una matriz estática es una estructura cuyo tamaño es
determinado en tiempo de compilación, es decir, una
vez establecido el tamaño de la matriz ésta no podrá
cambiarse durante el tiempo de ejecución. En C, C++
para declarar un arreglo estático de datos se emplea la
sintaxis:
• Tipo identificador[ [tamaño] ] [ = { lista de inicialización }
] ; donde,
• tipo se refiere al tipo de datos que contendrá la matriz.
El tipo puede ser cualquiera de los tipos estándar (char,
int, float, etc.) o un tipo definido por el usuario. Es más,
el tipo de la matriz puede ser de una estructura creada
con: struct, unión y class.
• Identificador se refiere al nombre que se le dará a la
matriz.
• Tamaño es opcional e indica el número de elementos
que contendrá la matriz. Si una matriz se declara sin
tamaño, la misma no podrá contener elemento alguno a
menos que en la declaración se emplee una lista de
inicialización.
• Lista de inicialización es opcional y se usa para
establecer valores para cada uno de los componentes de
la matriz. Si la matriz es declarada con un tamaño
especifico, el número de valores inicializados no podrá
ser mayor a dicho tamaño.
• Estructuras compuestas (struct, union, class)
• Con base en los tipos básicos mostrados arriba, se pueden
crear nuevos tipos con estructuras compuestas por uno o más
de uno de los tipos mencionados. En C, C++ en orden de crear
nuevas estructuras se emplean las palabras
reservadas struct, union y class.
• struct: esta orden se emplea para agrupar variables de tipos
iguales o diferentes en un solo registro, con la misma se
pueden crear estructuras anónimas, estructuras con nombre,
y un tipo especial de estructura conocida como bit-fields
(banderas o campos de bits ).
• union: una union es similar a una struct, salvo que en una
estructura creada con union los campos o variables comparten
una dirección de almacenamiento común.
• class: una clase es una estructura en donde se agrupan
variables y funciones, la misma es usada en Programación
Orientada al Objeto. Las clases no son soportadas por el C
estándar.
• struct: Sintaxis ( variación uno, estructura anónima )

• De acuerdo con la sintaxis general de la orden struct es posible


crear estructuras de datos anónimas. Solamente hay que
tener en cuenta que en una declaración anónima se debe
definir al menos una variable al final de la declaración.
8. ARCHIVOS
• En un arreglo podemos almacenar información del mismo
tipo, es decir homogénea. Pero la realidad nos conduce a
veces a situaciones en donde la información que manejamos
no es toda del mismo tipo. Ello nos demuestra que en ciertas
ocasiones es necesario trabajar datos que se hallan
relacionados lógicamente, pero que no son homogéneos.
• Consideremos el siguiente ejemplo: Los siguientes datos le
pertenecen a un alumno, NUMERO DE ALUMNO, NOMBRE Y
APELLIDO, CARRERA, DOCUMENTO, DIRECCIÓN. Podemos ver
que por cada dato genérico alumno, hay una mezcla de datos
numéricos y alfabéticos que lo definen unívocamente como tal
entidad. Para almacenar esta información heterogénea vamos
a usar estructuras de datos compuestas, que reciben el
nombre de registros. O sea que, bajo un mismo nombre
genérico, vamos a manejar un conjunto de datos como un
todo, y que serán almacenados sobre variables y/o arreglos de
distinto tipo.
Algunos casos de alumnos
que cursaron Algoritmos y
Estructuras de Datos
(Grupo Frank Escobedo)
Caso 1: Revise su condición de
matrícula
Si escogió mi grupo, y tengo el honor de
ser tu docente, te doy la bienvenida…

¿Queeeé?
Me
matricularon al
grupo de
Escobedo!!!
Caso 2: Estudiar es la clave,
Piense con algoritmos, coma con
algoritmos, duerma con algoritmos, viva
con algoritmos
Tengo parcial de
Algoritmos, debo
estudiar, menos mal
tengo puntos que
me deben del ciclo
pasado y los cobraré
este ciclo…
Caso 3: Confía en tí
La autoconfianza te dará la capacidad de
poder asumir nuevos retos, recuerda
eres un(a) ganador(a), tuviste que
competir ante 1’000 0000 de otros
individuos para estar en este mundo ;-)

Que soy uno de


los que
aprobaron el
Parcial de
Algoritmos???
Caso 4: La perseverancia debe
ser una de tus fortalezas
No te rindas, esfuérzate al máximo, alcanza
tus objetivos…

Ya era hora, bye bye


Algoritmos!!!
bye bye Frank
Estructuras de Control
• El presente capítulo trata de la sintaxis de
las principales Estructuras de Control del
Lenguaje de Programación Borland C++
• TIPOS DE ESTRUCTURAS DE CONTROL

• Secuenciales
• Selectivas
• Repetitivas
Estructuras SECUENCIALES

• Definida como una secuencia finita de acciones hasta obtener


un resultado coherente. Su ejecución se realiza en el orden en
que se presentan las instrucciones, desde el inicio hasta el final
y solo un camino.

INICIO

Acción 1

Acción 2

Acción n

FIN
DIAGRAMA DE FLUJO

INICIO

”INGRESE UN NUMERO: ” A
” INGRESE OTRO NUMERO: ”
B

C=A+B

” EL RESULTADO ES: ” C

FIN
Código en borland c++

#include<iostream.h>
#include<conio.h>

void main(void)
{
int a,b,suma;
cout<<"Ingrese un numero:";
cin>>a;
cout<<"Ingrese otro numero:";
cin>>b;
suma=a+b;
cout<<"La suma de los valores ingresados es :"<<suma;
getch();
}
ESTRUCTURA SELECTIVA

La estructura de selección se utiliza para alterar el


flujo de control secuencial de un programa,
mediante la evaluación de una condición lógica.
Una condición lógica se expresa como una
expresión relacional, donde cada operando
pueden ser una constante o una variable y los
operadores relacionales deben ser uno de los
expuestos en la tabla de operadores de relación.
Operadores de relación

Operador Significado Ejemplo en C++ Significado

a == b igualdad X==Y X es igual a Y

a != b desigualdad X! = Y X es diferente de Y

a<b Menor que X >Y X es mayor que Y

a>b Mayor que X<Y x es menor que Y

a <= b Menor o Igual que X>=Y X es mayor o igual que Y

a >= b Mayor o Igual que X< = Y X es menor o igual que Y


ESTRUCTURAS SELECTIVAS

Estructura Selectiva Simple: Sentencia if


(Una alternativa)

Estructura Selectiva Doble: Sentencia if-


else
(Dos alternativas)

Estructura Selectiva Múltiple: Sentencia


switch (Varias alternativas)
SELECTIVA SIMPLE
S E N T E N C IA if

• Esta estructura permite evaluar una expresión lógica y


en función de dicha evaluación ejecutar una acción (o
composición de acciones) o no ejecutarla; también se la
suele denominar SI-ENTONCES.
SELECTIVA SIMPLE
S E N T E N C IA if

INICIO

NOTA

NOTA<11

SI NO

“REPROBADO”

FIN
EJEMPLO 1

#include <iostream.h>

void main (void)


{
float calificación;
cout<<"ingrese calificación: ";
cin>>calificación;
if ((calificación>=10.5)&&(calificación<=20) )
{
cout<<"aprobado!!!";
}
if ((calificación>=0)&&(calificación<10.5) )
{
cout<<"desaprobado!!!";
}
if ((calificación<0)||(calificación>20))
{
cout<<"nota invalida";
}
}
SELECTIVA DOBLE
SEN T EN C IA if - e ls e

• La estructura alternativa doble es similar a la anterior


con la salvedad de que en este tipo de estructura se
indican acciones no sólo para la rama “verdadera” sino
también para la “falsa”; es decir, en caso de la expresión
lógica evaluada sea cierta se ejecutan una acción o
grupo de acciones y en cado de que sea falsa se ejecuta
un grupo diferente.
SELECTIVA DOBLE
SEN T EN C IA if - e ls e

INICIO

NOTA

SI NO
NOTA<11

“REPROBADO” “APROBADO”

FIN
EJEMPLO 2

Realice un programa en C que calcule, de ser


posible, las raíces reales de la ecuación:
ax2 + bx + c = 0;
a != 0:
resolución:

#include<iostream.h>
#include<math.h>
void main(void)
{
int a,b,c;
float x1,x2;
cout<<"Ingresar 1º coeficiente:";
cin>>a;
cout<<"Ingresar 2º coeficiente:";
cin>>b;
cout<<"Ingresar 3º coeficiente:";
cin>>c;
if((a==0)||(b*b-(4*a*c))<0)
{
cout<<"Nose puede procesar";
}
else
{
x1=((b*1)+pow((b*b)-(4*a*c),0.5))/(2*a);
x2=((b*-1)-pow((b*b)-(4*a*c),0.5))/(2*a);
cout<<"La solución 1º es:"<<x1<<endl;
cout<<"La solución 2 es:"<<x2;
}
}
SELECTIVA MULTIPLE
SEN T EN C IA sw itch

• Esta estructura evalúa una expresión que pueda tomar n


valores (enteros, caracteres, etc. ) y ejecuta una acción
o grupo de acciones diferente en función del valor
tomado por la expresión selectora.
SELECTIVA MULTIPLE
SEN T EN C IA sw itch

INICIO

” Ingrese numero de Día” DIA

DIA

1 2 3

“LUNES” “MARTES” “MIERCOLES”

FIN
EJEMPLO 3

include<iostream.h>
void main(void)
{
int plato;
cout<<"Ingrese numero de plato:";
cin>>plato;
switch(plato)
{case 1:cout<<"Arroz Árabe";
break;
case 2:cout<<"Pollo a la Plancha";
break;
case 3:cout<<"Pescado frito";
break;
case 4:cout<<"Pollo a la Parrilla";
break;
case 5:cout<<"Pollo al horno";
break;
case 6:cout<<"sudado de pescado";
break;
default: cout<<"No existe ese plato";
}
}
EJEMPLO 4

Una tienda norteamericana efectúa un descuento a sus clientes


dependiendo del monto de la compra (en dólares). El descuento
se efectúa de acuerdo a los siguientes criterios:
(monto < $500 ) no hay descuento
($500 < monto $1000 ) 5% de descuento
($1000 < monto $7000 ) 11% de descuento
($7000 < monto $15000 ) 18% de descuento
(monto > $15000 ) 25% de descuento
Realice un programa en C tal que dado el monto de la compra
de un cliente, se determine lo que debe pagar.
#include<iostream.h>
#include<conio.h>
void main (void)
{
float monto, montototal, dscto=0;
cout<<"ingrese el monto de la compra";
cin>>monto;
if (monto<500)
{dscto=0;
}
if ((monto>=500)&&(monto<1000))
{
dscto=0.05;
}
if ((monto>=1000)&&(monto<7000))
{
dscto=0.11;
}
if ((monto>=7000)&&(monto<15000))
{
dscto=0.18;
}
if (monto>=15000)
{
dscto=0.25;
}
montototal=monto-(monto*dscto);
cout<<"el total a pagar es : "<<montototal;
getch();
}
ESTRUCTURA REPETITIVA

Corresponde a la ejecución repetida de una secuencia


de sentencias, mientras se cumple una determinada
condición. Poseen una sola entrada y
una sola salida.

Las estructuras que repiten una secuencia de sentencias


un número determinado de veces se denomina bucle o
lazos, y se llama ITERACCIÓN al hecho de repetir la
ejecución de una secuencia de sentencias.
SENTENCIA FOR

• Se conoce a priori el numero de veces que se debe


repetir el conjunto de instrucciones.
• El numero de repeticiones no depende de las sentencias
contenidas en el ciclo.
SENTENCIA FOR

Sintaxis de la sentencia for :

for (inicialización; <condición lógica>; contador)


{

<sentencia_1>;

<sentencia_2>;

<sentencia_3>;

}
PROCESO DE REPETICION
REPETICION CON NUMERO DEFINIDO DE ITERACCIONES

Inicialización: Indica las condiciones iniciales cuando se inicia el


bucle.

<condición>: Se evalúa antes de cada iteraccion. Si es verdadera,


se ejecuta el bloque de instrucciones, en caso contrario se
termina la estructura y se transfiere el control a la
sentencia siguiente.

Contador: Es la instrucción a ejecutarse cuando se termina


cada interacción.
FOR

INICIO

Ingrese numero de repeticiones: R

i=1 ; i<=R ; i++ NO

SI

“ ”

FIN
Diseñar un programa que permita leer un número n Positivo y luego
mostrar su factorial.

#include<iostream.h>
#include<conio.h>
void main()
{ int n, factorial=1,i;
clrscr(); gotoxy(10,4); cout<<" CALCULANDO FACTORIAL";
gotoxy(12,6);cout<<" Ingrese un numero :" ;cin>>n;
for(i=1;i<=n;i++)
factorial=factorial*i;
gotoxy(12,8);cout<<"el factorial de "<<n<<" es = "<<factorial;
getch();
}
SENTENCIA WHILE

BUCLE CON ENTRADA CONTROLADA

La sentencia WHILE permite evaluar una condición lógica y ejecuta el


cuerpo del bucle si la condición lógica es verdad.

Si la condición lógica de control es falsa no se ejecuta el cuerpo del


bucle.

while (condición lógica) sea verdad


{
Sentencia (s) ;
}
WHILE

INICIO

N=0

NO
N >=0

SI

“ Ingrese numero N ”

“ ”

FIN
Diseñar un programa que permita leer un número n entero positivo,
luego calcular su factorial e imprimir su resultado.

#include<iostream.h>
#include<conio.h>
void main()
{int fact=1,n,minumero;
gotoxy(8,4);cout<<" Ingrese un numero : ";cin>>n;
minumero=n;
while (n>0)
{ fact=fact*n;
n--; }
gotoxy(15,6);cout<<"El factorial de "<<minumero <<"es ="<<fact;
getche();
}
SENTENCIA do - WHILE
BUCLE CON SALIDA CONTROLADA

La sentencias do - while evalúa una condición lógica después de


ejecutar el cuerpo del bucle do, que se ejecutará en secuencia
repetitiva hasta que, la condición lógica tome un valor de falso.

El cuerpo del bucle se ejecuta por lo menos una vez porque la


condición se evalúa después de la ejecución del bucle repetitivo.
do
{
sentencia_1;
sentencia_2;
sentencia _n;
} while (condición lógica) (“sea falsa”)
DO - WHILE
INICIO

N=0

“ ”

“Ingrese numero” N

N >=0
SI
NO
FIN
EJERCICIO
Diseñar un programa que permita leer un número n y calcule la suma
acumulada de la serie: 1+2+3..n.
El usuario ingresa el número de términos a sumar.
# include < iostream.h >
#include <conio.h>
Void main()
{ int cont=1,suma=0,n;
cout<<"Ingrese numero de términos"; cin>>n;
do
{ suma+=cont;
cont++;
} while (cont<=n);
cout<<"la suma es :"<<suma;
getch();
}

También podría gustarte