Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Lgica Algortmica
Primer Parcial
05/04/2016
Segundo Parcial
10 Puntos
20 Puntos
15/03/2016 Extraordinario
03/05/2016 Extraordinario
17/05/2016
Zona
Proyecto 1
05 Puntos
Proyecto 2
05 Puntos
Cortos
05 Puntos
Tareas
05 Puntos
20 Puntos
Final
Proyecto final
10 Puntos
24/05/2016
Examen Final
05/07/2016
40 Puntos
21/06/2016 Recuperacion
ALGORITMO
Es una sucesin de pasos ordenados que nos lleva a la solucin de un
problema
Algoritmo Informtico
Es una secuencia paso a paso de instrucciones numeradas a realizar y explica
cmo se debe procesar los datos para producir los resultados deseados. El
algoritmo responde a la pregunta Cul mtodo ha de emplearse para resolver
este problema?
Ejemplo
Desarrolle un algoritmo, diagrama de Flujos y programa en C++ de como
mostrar un mensaje en pantalla
Algoritmo
1. Inicio
1.1 Librera para mostrar mensajes
2. Mostrar Bienvenidos al curso de Lgica Algortmica
3. Finalizar
Diagrama de Flujos
inicio
Bienvenidos al
Curso de Lgica
Algortmica
Fin
Programa en C++
#include<iostream.h>
#include<conio.h>
int main (void)
{
gotoxy(10,6); cout<<Bienvenidos al Curso de Logica Algoritmica;
getch ();
return 0;
}
DIAGRAMA DE FLUJOS
Es un conjunto de figuras geomtricas que representa el corrimiento de cada
uno de los pasos del algoritmo, por lo que es importante colocar las flechas
hacia donde se dirige cada paso del algoritmo
TERMINAL
Mostrar o
Imprimir
Entrada / Salida
Proceso
si
Decisin
no
Lneas de flujo
Conector
Proceso pero
de un mdulo o
funcin
Decisin
mltiple
VARIABLES Y DECLARACIONES
Son espacios en memoria donde se guardan valores numricos y
alfanumricos, con las cuales podemos hacer clculos que pueden apuntar a
Flotante
Carcter
Area=2 rh
1. Inicio
2. Variables
2.1constante PI = 3.1416
2.2doble radio, altura, area;
3. Mostrar mensaje y leer variables
3.1mostrar Ingrese el valor del radio ;
3.2leer radio;
3.3mostrar Ingrese la altura ;
3.4leer altura;
4. calcular
4.1area = 2*PI*radio*altura;
5. mostrar El rea de un cilindro es: area;
6. fin
inicio
constante PI
doble radio,altura
area
Leer radio
Ingrese la altura
Leer altura
area = 2*PI*radio*altura
Fin
#include<iostream>
#include<conio>
#define pi 3.1416
int main (void)
{
double radio,altura,area;
gotoxy(10,6);cout<<"Ingrese el valor del radio [ ]";
gotoxy(38,6);cin>>radio;
gotoxy(10,8);cout<<"Ingrese la altura del cilindro [ ]";
gotoxy(43,8);cin>>altura;
area= 2*pi*radio*altura;
gotoxy(10,10);cout<<"El area de un cilindro es "<<area<<" Metros"<<endl;
getch();
return 0;
}
Tarea:
FOR
WHILE
DO WHILE
3. i= 1 y N=1
3.1Mostrar i N
3.2Comparar si i <= N
3.3Si es < N regresa a Para sumando a i+1 y N+1
3.4En caso contrario fin del ciclo
El diagrama de flujo del ciclo queda de la siguiente manera
Inicio
Para 1 hasta N
si
i<N
no
Fin
#include<iostream>
#include<conio>
int main (void)
{
int i;
for (i=1; i<=10; i++)
cout<<i<<"\n";
getch();
return 0;
}
FOR contando de dos en dos
#include<iostream>
#include<conio>
int main (void)
{
int i;
for (i=2; i<=10; i=i+2)
cout<<i<<"\n";
getch();
return 0;
}
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
#define numeromayor 10
int contador;
cout<<"Numero Cuadrado
<<"------ --------
Cubo\n"
----"<<endl;
"
"
getch();
return 0;
}
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
#include<math.h>
#define numeromayor 10
int contador;
cout<<"Numero Cuadrado
<<"------ --------
Cubo\n"
----"<<endl;
"
"
<<setw(4)<<pow(contador,3) <<endl;
getch();
return 0;
}
CICLO WHILE
Se construye cuando se necesita realiza una operacin una cantidad de veces
especifica o rango no especifico, su sintaxis es la siguiente
lista para inicializar ;
while (expresin )
lista para alterar;
instruccin;
la expresin en C++ es la siguiente
cuenta = 1;
while (cuenta < = 10)
cuenta ++;
cout<<cuenta;
y
cuenta = 1;
while (cuenta < = 10)
{
cout<<cuenta;
cuenta ++;
}
EJEMPLO
Basndonos en el ejemplo anterior donde se generan 10 nmeros y que luego
eleve al cuadrado y despus al cubo solo que realizarlo por un ciclo while
1. inicio
2. mientras contador = 1
3. mientras la expresin tiene valor menor o igual a contador regresar al
paso 2
2.1 mientras contador sea menor o igual a 10
2.2 contador = contador +1
2.3 mostrar num
2.4 mostrar num * num
2.5 mostrar num*num * num
4. si es valor falso ejecutar la siguiente instruccin
5. fin
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
#define numeromayor 10
int contador;
cout<<"Numero Cuadrado
<<"------ --------
Cubo\n"
----"<<endl;
contador = 1;
while(contador <= numeromayor)
{
cout<<setw(3)<<contador<<"
"
"
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
#include<math.h>
#define numeromayor 10
int contador;
cout<<"por ciclo FOR \n";
cout<<"Numero Cuadrado
<<"------ --------
Cubo\n"
----"<<endl;
"
"
<<setw(4)<<pow(contador,3) <<endl;
Cubo\n"
----"<<endl;
contador = 1;
while(contador <= numeromayor)
{
cout<<setw(3)<<contador<<"
<<setw(3)<<pow(contador,2) <<"
"
"
<<setw(4)<<pow(contador,3) <<endl;
contador++;
}
getch();
return 0;
}
DO WHILE
Sirve para repetir una estructura completa en un bloque de programa o todo el
programa en si; esta estructura es de mucha utilidad cuando tenemos procesos
que queremos que se ejecuten hasta que el usuario de una orden diferente. Su
estructura es la siguiente
do
instruccin;
while (expresin);
no olvide el final;
Tanto las instrucciones while como las for evalan una expresin al inicio del
ciclo de repeticin; como tales siempre se usan para crear ciclos de prueba
preliminar. Los ciclos de prueba posterior, los cuales tambin se conocen como
ciclos controlados a la salida, pueden construirse de igual forma en C++. La
estructura bsica de un ciclo as, el cual se conoce como ciclo do while, Ntese
que un ciclo do while contina las iteraciones a travs del ciclo mientras la
condicin es verdadera y sale del ciclo cuando la condicin es falsa.
PROCESO
ANTERIOR
INSTRUCCION1
ES
SI
VERDADERA LA
CONDICION
NO
SIGUIENTE
INSTRUCCIN
EJEMPLO EN C++:
Desarrolle un programa que pueda calcular las temperaturas dadas en Celsius
a Fahrenheit
#include<iostream.h>
#include<iomanip.h>
#include<conio.h>
int main(void)
{
const int MAX_CELSIUS=50;
const int VAL_INICIAL=5;
DIAGRAMA DE FLUJO
INICIO
Constante fijo = 32.0
Double Celcius, Fahren
Carcter respuesta
LEER celcius;
CALCULAR
fahren =(9.0/5.0)*
celcius +contante fijo;
"La conversin a Fahrenheit es: "
Variable Double fahren " grados";
Desea realizar otra conversion S/N [ ]
Leer
Variable carcter = respuesta
Mientras
si
Respuesta = s
no
FIN
PROGRAMA EN C++
#include<iostream.h>
#include<conio.h>
#define fijo 32.0
int main(void)
{
double celcius,fahren;
char respuesta;
do //Haga o hacer de nuevo
{
clrscr(); //limpia pantalla
gotoxy(10,3); cout<<"Ingrese un temperatura en celcius: ";
cin>>celcius;
fahren =(9.0/5.0)*celcius+fijo;
#include<iostream.h>
#include<iomanip.h>
int main(void)
{
char respuesta;
double celsius, fahren;
do
{
cout<<"Ingrese un temperatura en celcius: ";
cin>> celsius;
fahren =(9.0/5.0)*celsius+32.0;
cout<<setiosflags(ios::fixed)
<<setiosflags(ios::showpoint)
<<setprecision(2);
cout<<"La conversion a Fahrenheit es: "<<fahren<<endl;
cout<<"\nDesea realizar otra conversion S/N [ ]";
cin>> respuesta;
}
while (respuesta =='s');
return 0;
}
ESTRUCTURAS DE DECISIN
Permiten alterar el flujo de control secuencial de maneras definidas para que
podamos tomar un camino en nuestro algoritmo o bien otra ruta segn sea la
manera en que se utilice cada estructura de seleccin, existen dos estructuras
de seleccin
Estas estructuras permiten en base a nuestro deseo o situacin tomar una ruta
entre dos opciones o dependiendo el caso entre mas de dos opciones, estas
estructuras sirven para validar variables, ejecutar procesos y la manera en que
Aunque son muy parecidas su aplicacin depende mucho del caso a resolver.
ESTRUCTURA DE REPETICION IF ELSE
Es una de las estructuras mas utilizadas en programacin y puedo realizar una
validacin con ella o tomar una ruta de dos que se presentan
Indica al computador que efectu una serie de una o mas instrucciones
basadas en el resultado de una comparacin; esta estructura puede utilizarse
en situaciones como validar una variable si quisiramos que esta no tuviera
ningn numero negativo, su sintaxis es la siguiente
if( expresin )
instruccion1;
else
instruccin 2;
Algoritmo de IF ELSE
1. Instruccin previa
2. Evaluar la condicin
2.1si es verdadera ejecute instruccin1
2.1.1 Instruccin1;
2.1.2 Mostrar Resultado de Instruccion1;
2.2En caso contrario si es falsa ejecute instruccin2
2.2.1 Instruccin2;
3. Siguiente instruccin
DIAGRA DE FLUJO
INSTRUCCI
N
PREVIA
ES
NO (ELSE)
VERDADERA?
SI (SI)
INSTRUCCIO
N2
INSTRUCCIO
N1
CONTINUA
EL
PROCESO
EJEMPLO:
DESARROLLE UN PROGRAMA, QUE PUEDA CONVERTIR UNA TEMPERATURA EN
GRADOS FAHRENHEIT A GRADOS CELSIUS Y VISEVERSA, QUE EL PROGRAMA
PREGUNTE EN QUE RESULTADO DESEA LOS GRADOS SI EN EN FAHRENHEIT O
CELSIUS PARA ELLO UTILICE UN IF PARA REALIZAR ESTA VALUACION
ALGORITMO
1. Inicio
2. VARIABLES
2.1DOUBLE temperatura, fahren, celsius;
2.2CHAR respuesta;
3.
4.
5.
6.
HAGA
MOSTRAR Introduzca la temperatura a convertir [ ];
LEER temperatura;
SI temperatura es <= 0; //si la variable fahren es menor o igual a cero
6.1MOSTRAR No puede ingresar nmeros negativos o con valor
cero;
6.2CONTRARIO fahren = (9.0/5.0)*temperatura + 32.0;
6.2.1 MOSTRAR cout<< la temperatura equivalente en
Fahrenheit es:MOSTRAR fahren;
7. MOSTRAR Desea realizar otra temperatura [s/n] [ ];
8. LEER respuesta;
9. MIENTRAS
9.1respuesta = S regrese al paso 3
9.2salir MIENTRAS
10.FIN
DIAGRAMA DE FLUJO
INICIO
DOUBLE faharen,
celsius, temperatura;
CHAR respuesta;
Introduzca laTemperatura
a convertir [ ]
LEER temperatura
SI
temperatura
<= 0
No
si
fahren = (9.0/5.0)
No
SI
MIENTRAS
respuesta =s
NO
FIN
#include<iostream.h>
#include<iomanip.h>
#include<conio.h>
int main (void)
{
double temperatura, fahren, celsius;
char respuesta;
do
{
clrscr();
cout<<"Ingrese la temperatura a convertir [ ]";
cin>>temperatura;
if (temperatura <= 0)
{
cout<<"No puede ingresar numeros negativos o con valor cero";
}
else
{
fahren = (9.0/5.0)*temperatura + 32.0;
cout<<"\nla temperatura equivalente en Fahrenheit
"<<fahren<<endl;
}
cout<<"\nDesea realizar otra temperatura [s/n] [ ]";
cin>>respuesta;
}
while(respuesta =='s');
return 0;
}
es:
#include<iostream.h>
#include<iomanip.h>
#include<conio.h>
int main (void)
{
char tipotemp, seleccion;
float temperatura, fahren, celsius;
do
{
clrscr();
gotoxy(5,5);cout<<"Introduzca la temperatura a convertir [ ] ";
gotoxy(44,5);cin>>temperatura;
gotoxy(5,7);cout<<"Introduzca una f si la temperatura esta en grados
Fahrenheit";
gotoxy(5,8);cout<<"o una c si la temperatura esta en grados Celsius [ ] ";
gotoxy(55,8);cin>> tipotemp;
//establecer el formato de salida de resultados
cout<<setiosflags(ios::fixed)
<<setiosflags(ios::showpoint)
<<setprecision(2);
if (tipotemp == 'f')
{
fahren = (9.0/5.0)*temperatura + 32.0;
gotoxy(5,11);cout<<"la temperatura equivalente en Fahrenheit es: "
<<fahren<<endl;
}
else
{
celsius = (5.0/9.0)*(temperatura - 32.0);
gotoxy(5,11);cout<<"la temperatura equivalente en Celsius es: "
<<celsius<<endl;
}
SWITCH CASE
Es una instruccin de seleccin mltiple que permite al desarrollador tomar un
camino entre varias opciones, es una manera fcil de utilizar un if con la
diferencia que este se selecciona de acuerdo a lo seleccionado por el usuario y
este se va comparando con cada uno de los elementos hasta que encuentra el
igual, el case permite colocar variables tanto numricas como carcter y
permite repetir las variable pero se debe tomar en cuenta que se ubicara en la
primera que encuentre, su estructura es la siguiente:
Switch(expresion)
{
case valor1:
instruccin;
.
.
Break;
case valor2:
Instruccin;
.
.
Break;
case valor3:
instruccin;
.
.
.
.
Break;
.
.
default:
instruccin;
.
.
}
case 1:
instruccin;
.
.
Break;
EJEMPLO
Desarrolle un algoritmo, diagrama de flujos y programa en C++ de un proceso
que muestra un men para que posteriormente se elija que operacin se desea
realizar, las operaciones son suma, resta, multiplicacin y divisin, al
seleccionar cada una esta debe pedir ingresar dos nmeros, al ingresarlos debe
mostrar la operacin que se selecciono
1. Inicio
2. VARIABLES
2.1CHAR operacin;
2.2Double a,b;
3. MOSTRAR
3.1Seleccione una operacin matemtica a realizar
3.2A. SUMA
3.3B. RESTA
3.4C. MULTIPLICACION
3.5D. DIVISION
3.6E. VERSION
3.7F. DESARROLLADORES
3.8Escriba la operacion que selecciono [ ];
4. LEER operacin;
5. SWITCH operacion
5.1CASE A
5.1.1 MOSTRAR Ingrese dos nmeros
5.1.2 LEER a,b;
5.1.3 MOSTRAREl resultado de la suma es a+b;
5.2CASE B
5.2.1 MOSTRAR Ingrese dos nmeros
5.2.2 LEER a,b;
5.2.3 MOSTRAREl resultado de la resta es a-b;
5.3CASE C
5.3.1 MOSTRAR Ingrese dos nmeros
5.3.2 LEER a,b;
5.3.3 MOSTRAREl resultado de la multiplicacion es a*b;
5.4CASE D
5.4.1 MOSTRAR Ingrese dos nmeros
5.4.2 LEER a,b;
5.4.3 MOSTRAREl resultado de la division es a/b;
5.5CASE E
5.5.1 MOSTRAR Version 1.0
5.6CASE F
5.6.1 MOSTRAR 5212-807 Almunos de Logica Algoritmica ;
6. FIN SWITCH
7. FIN
INICIO
CHAR operacin;
Double a,b;
Seleccione una operacin matemtica a realizar
A. SUMA
B. RESTA
C. MULTIPLICACION
D. DIVISION
Escriba la operacion que selecciono [ ]
LEER operacin
SWITCH
operacion
MOSTRAR
MOSTRAR
MOSTRAR
MOSTRAR
MOSTRAR
MOSTRAR
Ingrese dos nmeros; Ingrese dos nmeros; Ingrese dos nmeros;
Ingrese dos nmeros;
Version 1.0
5212-807
LEER a,b;
LEER a,b;
LEER a,b;
LEER a,b;
Almunos de
MOSTRAR
MOSTRAR
MOSTRAR
MOSTRAR
Logica
Algoritmica
El resultado de la
El resultado de la
El resultado de la
El resultado de la
suma es a+b;
resta es a-b;
multiplicacin a*b;
division es a/b;
FIN
#include<iostream.h>
#include<conio.h>
int main (void)
{
char operacion, respuesta;
double a, b;
gotoxy(18,3);cout<<"SELECCIONE
LA
OPCION
TRABAJAR";
gotoxy(33,5);cout<<"A. SUMA";
gotoxy(33,6);cout<<"B. RESTA";
gotoxy(33,7);cout<<"C. MULTIPLICACION";
gotoxy(33,8);cout<<"D. DIVISION";
gotoxy(33,9);cout<<"E. VERSION";
gotoxy(33,10);cout<<"F. DESARROLLADORES";
gotoxy(18,12);cout<<"ESCRIBA SU OPCION [ ]";
gotoxy(37,12);cin>>operacion;
switch(operacion)
{
case 'A':
clrscr();
cout<<"Ingrese dos numeros: \n";
cin>>a>>b;
cout<<"El resultado de la suma es: "<<(a+b);
break;
case 'B':
clrscr();
cout<<"Ingrese dos numeros: \n";
cin>>a>>b;
cout<<"El resultado de la resta es: "<<(a-b);
break;
case 'C':
QUE
DESEA
clrscr();
cout<<"Ingrese dos numeros: \n";
cin>>a>>b;
cout<<"El resultado de la multiplicacion es: "<<(a*b);
break;
case 'D':
clrscr();
cout<<"Ingrese dos numeros: \n";
cin>>a>>b;
cout<<"El resultado de la division es: "<<(a/b);
break;
case 'E':
clrscr();
cout<<"Vesion 1.0 ";
break;
case 'F':
clrscr();
cout<<"5212-807 Almunos de Logica Algoritmica ";
break;
}
cout<<"\n\nDesea ejecutar de nuevo S/N [ ]";
cin>>respuesta;
getch ();
return 0;
}
MODULARIDAD
Es realizar un algoritmo y/ programa por partes, en otras palabras por
algoritmos o programas que al unirse forman un programa completo, C++ es
uno de los pioneros en trabajar por mdulos, el trabajar por mdulos tambin
se define como desarrollar por objetos
OBJETO
Es una persona, ente, cosa o un elemento que tiene caractersticas iguales con
otros de su clase pero que existe un dato que lo hace diferenciarse entre los
dems, un objeto se puede y debe relacionarse con otros objetos, un objeto se
compone de muchas caracteristicas que lo describen.
FUNCIONES
Son programas dentro de un programa principal, este tipo de programacin
atiende a llamadas a funcin y para su buen desarrollo se declara un prototipo
de funcin que es una accin similar a la declaracin de variables, se debe
hacer una declaracin de prototipo por cada una de las funciones, y las
PROTOTIPO DE FUNCION
Es la declaracin de una funcin, la cual ser creada fuera de cuerpo del
programa pero se debe declarar antes de realizarla excepto si esta se
desarrolla antes del cuerpo del programa, el formato de la declaracin es el
siguiente
EJEMPLO
Como transformar un programa a una funcin, que recibe datos para devolver
un valor y un funcin que trabaja por si sola, el programa trata sobre ingresar
tres variables y el programa debe indicar cual de las tres es la mayor y adems
indicar que variable fue
PROGRAMA ORIGINAL (refiere al programa hecho sin funcion)
#include<iostream.h>
#include<conio.h>
int main (void) //cuerpo del programa
{
int x, y, z, numeromayor;
char variable, respuesta;
do
{
clrscr();
cout<<"Ingrese el primer numero: ";
cin>>x;
cout<<"\nIngrese el segundo numero: ";
cin>>y;
cout<<"\nIngrese el segundo numero: ";
cin>>z;
if (x >= y && x >=z)
{
numeromayor = x;
variable = 'X';
}
else
if (y >= x && y >=z)
{
numeromayor = y;
variable = 'Y';
}
else
{
numeromayor = z;
variable = 'Z';
}
cout<<"\n El maximo de los numeros es "
<<numeromayor<<" y su variable es "<<variable<<endl;
cout<<"\n Desea eejecutar de nuevo s/n ";
cin>>respuesta;
} // fin do
while(respuesta =='s'||respuesta =='S');
return 0;
} // fin Del cuerpo programa
PROGRAMA EN FUNCION QUE DEVUELVE UN VALOR
#include<iostream.h>
#include<conio.h>
void mayorque (int, int, int); //prototipo de funcion
int main (void) //cuerpo del programa
{
int x, y, z;
char respuesta;
do
{
clrscr();
cout<<"Ingrese el primer numero: ";
cin>>x;
cout<<"\nIngrese el segundo numero: ";
cin>>y;
cout<<"\nIngrese el segundo numero: ";
cin>>z;
mayorque(x, y, z); //llamada a funcion
cout<<"\n Desea ejecutar de nuevo s/n ";
cin>>respuesta;
} // fin do
while(respuesta =='s'||respuesta =='S');
return 0;
}
void mayorque(int a, int b, int c)
{
char variable;
int numeromayor;
}
else
if (y >= x && y >=z)
{
numeromayor = y;
variable = 'Y';
}
else
{
numeromayor = z;
variable = 'Z';
}
cout<<"\n El maximo de los numeros es "
<<numeromayor<<" y su variable es "<<variable<<endl;
cout<<"\n Desea eejecutar de nuevo s/n ";
cin>>respuesta;
} // fin do
while(respuesta =='s'||respuesta =='S');
}
#include<iostream.h>
#include<conio.h>
void mayorque (); //prototipo de funcion
void MENU ();
int main (void) //cuerpo del programa
{
MENU (); //llamada a funcion
getch ();
return 0;
} // fin Del cuerpo programa
void MENU()
{
char operacion, respuesta;
clrscr ();
gotoxy(18,3);cout<<"SELECCIONE LA OPCION QUE DESEA
TRABAJAR";
gotoxy(23,5);cout<<"A. PRGRAMA QUE INDICA EL MAYOR DE TRES
NUMEROS";
gotoxy(23,7);cout<<"B. VERSION";
gotoxy(23,9);cout<<"C. DESARROLLADORES";
gotoxy(18,11);cout<<"ESCRIBA SU OPCION [ ]";
gotoxy(37,11);cin>>operacion;
switch(operacion)
{
case 'A':
clrscr();
mayorque ();
break;
case 'B':
clrscr();
cout<<"Vesion 1.0 ";
break;
case 'C':
clrscr();
cout<<"5212-807 Almunos de Logica Algoritmica ";
break;
}
cout<<"\n\nDesea ejecutar de nuevo S/N [ ]";
cin>>respuesta;
return;
}
void mayorque ()
{
int x, y, z, numeromayor;
char variable, respuesta;
do
{
clrscr();
cout<<"Ingrese el primer numero: ";
cin>>x;
cout<<"\nIngrese el segundo numero: ";
cin>>y;
cout<<"\nIngrese el segundo numero: ";
cin>>z;
if (x >= y && x >=z)
{
numeromayor = x;
variable = 'X';
}
else
if (y >= x && y >=z)
{
numeromayor = y;
variable = 'Y';
}
else
{
numeromayor = z;
variable = 'Z';
}
cout<<"\n El maximo de los numeros es "
<<numeromayor<<" y su variable es "<<variable<<endl;
cout<<"\n Desea eejecutar de nuevo s/n ";
cin>>respuesta;
} // fin do
Tarea
#include<math.h>
Raiz cuadrada sqrt(raiz)
Elevar a una potencia pow(numero, exponente)