Sei sulla pagina 1di 231

Programas con swhich

Agenda telefnica comida rpida.


Planteamiento del problema.
Disear un programa que simule una agenda telefnica de comida
rpida, mediante la metodologa para resolver problemas por
computadora.

Algoritmo.
1.

Inicio.

2.

Dar a conocer variables a utilizar.

3.

Imprimir opciones.

4.

Solicitar al usuario la opcin elegida.

5.

Imprimir el resultado segn sea la opcin.

6.

FIN

Diagrama de flujo.

Inicio

num

Seleccione el
servicio que desea
a, b o c

num
Case
1

num=1

No.Dominos

Brea
k

Case
3
Num=3

Case
2
Num=2

No.Burger

Brea
k
Fin

No.KFC

Brea
k

Codificacin.
#include <stdio.h>
#include <conio.h>
int num;
int main (){
printf("Binvenido a su agenda\n");
printf("Seleccione el numero que desea conocer\n");
printf("1) Dominos \n");
printf("2) Burger King \n");
printf("3) Kentuchy Fried Chicken \n");
scanf("%i", &num);
switch(num) {
case 1:
printf("El numero es: 01 800 36 64 667 \n ");
break;
case 2:
printf("El numero es: 01 55 1454 5464\n ");
break;
case 3:
printf("El numero es: 01 55 5868 68 68 \n ");
break;
default:
printf("Error, ingrese un inciso valido \n");
break;
} getch (); return 0; }
3

Captura de pantalla

Prueba de escritorio.
Num?
Case1
1
X
2
3

Case2

Case3

X
X

Imp
Domins
Burger
KFC

Sacar dinero de un cajero automtico


Planteamiento del problema:
Tener que hacer la funcin de un cajero automtico con la sentencia
de switch en lenguaje de programacin
Algoritmo:
1.

Inicio

2.

Asignar variable de opcin y cdigo de acceso

3.

Pedir el cdigo de acceso

4.

Pedir al usuario lo que desea hacer dentro del men:

traspaso
recargas
retiro
salir
5.
Relizar la operacin de cada opcin dependiendo de la opcin
elegida
6.

Fin

Diagrama de flujo:
Inicio

opc

Introduzca su
contrasea

Traspaso

Recarga

Retiro

Salir

opc
case1

Opc=1

Traspaso

Break
Break

case2

Opc=3

case 3

Opc=2

Retiro

Recarga

Break
Fin

Codificacin:
7

#include<stdio.h>
#include<conio.h>
int a=123,opcion=0;
main()
{printf("\nESTE PROGRAMA MUESTRA COMO ES EL SISTEMA
DE UN CAJERO AUTOMATICO");
printf("\nDame tu clave ");
scanf("\n%d",&a);
if(a==123)
printf("\nEs correcto");
else
printf("\n Contrasea invalida");
printf("\nTeclea otra ves tu clave ");
scanf("\n%d",& a);
printf("\nEste es el menu de opciones ");
printf("\n1.-Traspaso\n");
printf("\n2.-Recargas\n");
printf("\n3.-Retiro en efectivo\n");
printf("\n11.-Salir\n");
printf("\nTeclea la opcion que quieras\n");
scanf("\n%d",&opcion);
switch(opcion){
case 1:{
puts("Traspaso");
puts("GRACIAS POR SU PREFERENCIA");
break;
8

}
case 2:
{
puts("Recargas");
puts("GRACIAS POR SU PREFERENCIA");
break;
}
case 3:
{
puts("\nRetiro en efectivo");
puts("\nCuanto deseas retirar:");
puts("\nElige la opcion que quieras para retirar");
puts("\nPuedes elegir:");
puts("\n4.- $20");
puts("\n5.- $50");
puts("\n6.- $100");
puts("\n7.- $200");
puts("\n8.- $500");
puts("\n9.- $1000");
puts("\nElige la opcion que quieras");
break;
}
case 4:
{
puts("Elegiste la opcion de $20");
puts("GRACIAS POR SU PREFERENCIA");
9

break;
}
case 5:
{
puts("Elegiste la opcion de $50");
puts("GRACIAS POR SU PREFERENCIA");
break;
}
case 6:
{
puts("Elegiste la opcion de $100");
puts("GRACIAS POR SU PREFERENCIA");
break;
}
case 7:
{
puts("Elegiste la opcion de $200");
puts("GRACIAS POR SU PREFERENCIA");
break;
}
case 8:
{
puts("Elegiste la opcion de $500");
puts("GRACIAS POR SU PREFERENCIA");
break;
}
10

case 9:
{
puts("Elegiste la opcion de $1000");
puts("GRACIAS POR SU PREFERENCIA");
break;
}
case 11:
{
puts("Elejiste la opcion de salir");
puts("GRACIAS POR SU PREFERENCIA");
break;
}
default:
puts("opcion erronea");
}
getchar();
getchar();
}

Prueba de escritorio
Introducer la
clave

Traspaso

Recargas

11

Retiro
Seleccion de
monto

Salir

Si
Si
Si
Si

Gracias por su
preferencia
Gracias por su
preferencia
Gracias por su
preferencia
Gracias por su
preferencia

Gracias por su
preferencia
Gracias por su
preferencia
Gracias por su
preferencia
Gracias por su
preferencia

20
50
100
200

Gracias por su
preferencia
Gracias por su
preferencia
Gracias por su
preferencia
Gracias por su
preferencia

Anlisis de resultados

PROGRAMA PARA CALCULAR EL PERIMETRO DE UN TRIANGULO


EQUILATERO ISOSELES O ESCALENO
Algoritmo:

12

1. Inicio
2. Se dan a conocer las variables a trabajar lado,base,opcin,r
3.Se asignan valores a la variable de opcin
Opcin 1 :Equilatero
Opcion2: Issceles
Opcin 3:Escaleno
4. Se pide al usuario determinar los valores de lado, base y opcin
5. Si se escoje la opcin 1 realizar el proceso: r=(2*lado)+base;
6. Si se escoje la opcin 2 realizar el proceso r=3*lado;
7. Si se escoge la opcin 3 realizar el proceso r=lado+lado+lado;
8. Imprimir r de cualquiera de los 3 casos
9. Si se escoge una opcin incorrecta se imrpime opcin invalida
10. fin

Diagrama de flujo
Inicio
13

R
Opcin=otro

Lado,base,opcion

Opcin 1 :Equilatero
Opcion2:Isoseles
Opcion 3:Escaleno

opcion

Opcin=1

r=(2*lado)
+base;

Opcin=3

Opcin=2

r=lado+lado+l
ado;

r=3*lado;

Fin

14

Codificacion:
#include<stdio.h>
#include<conio.h>
main (){
int lado,base,opcion,r;
printf("Introduca la medida de el lado de el triangulo en cm\n");
scanf("%d",&lado);
printf("Introduca la medida de la basse de el triangulo en cm\n");
scanf("%d",&base);
printf("seleccione una opcion\n");
printf("1. EQUILATERO\n");
printf("2.ISOSELES\n");
printf("3.ESCALENO\n");
scanf("%d",&opcion);
switch (opcion){
case 1:
r=(2*lado)+base;
printf("el perimetro es %d \n",r);
break;
case 2:
r=3*lado;
printf("el perimetro es %d \n",r);
break;
case 3:
r=lado+lado+lado;
printf("el perimetro es %d \n",r);
break;

default:
printf("opcion invalida \n");
break; }
getch ();

lado

base

opcion

12

Prueba de escritorio:
Anlisis de resultados:

Opcion 1
r=(2*lado)
+base;
r=2*2+2=
6

Opcin 2
r=3*lado;

Opcin 3
r=lado+lad
o+lado;

defau
lt

Imprimi
r
r=6

r=3*3=9

r=9
r=4+4+4=1
2

r=12
Opci
n
invali
da

Opcin
invalida

PROGRAMA PARA CLASIFICAR EVALUACIONES


PLANTEAMIENTO
Clasificaremos una serie de evaluaciones por medio de la funcin
switch.
ALGORITMO
1. Inicio
2. Se dan las variables nota
3. Ingresar tu nota
4. Case 6
5. Imprimir aprobado
6. Case 7 y 8
7. Imprimir alumno notable
8. Case 9 y 10
9. Imprimir alumno sobresaliente
10. Si no, no aparece en el plan de estudios e introducir
nmeros de entre seis y diez
11. Fin
INICIO
NOTA

Case 6

Case 7
Case 8

FIN

Case 9
Case 10

CODIFICACION

Estas
aprobado

Eres
alumno
notable

Eres
alumno
sobresalien
te

#include<stdio.h>
#include<cstdlib>
main(void)
{
int nota;
printf("introduce tu nota entre 6 y 10\n\n");
scanf("%i",& nota);
switch(nota)
{
case 6:
printf("estas aprobado\n\n");
break;
case 7:
case 8:
printf("eres un alumno notable\n\n");
break;
case 9:
case 10:
printf("eres un alumno sobresaliente\n\n");
break;
default:
printf("no existes en el programa de estudios\n\n");
}
system ("pause");
}
PRUEBA DE ESCRITORIO
NOTA
6
7
8
9
10

IMPRIMIR
Estas aprobado
Eres un alumno notable
Eres un alumno notable
Eres un alumno
sobresaliente
Eres un alumno
sobresaliente

Programa para asignar un planeta de acuerdo al da de nacimiento

Planteamiento del problema


Se desarrollara un programa que le permita al usuario asignarle un
planeta de acuerdo al da que naci.
Algoritmo
1.

Inicio

2.

Se declaran las variable con las que se trabajara (da=0)

3.

Se le pide al usuario que elija una opcin del men

1. Lunes
2. Martes
3. Mircoles
4. Jueves
5. Viernes
6. Sbado
7. Domingo
4.

Se lleva a cabo la siguiente relacin

Lunes = Luna
Martes = Marte
Mircoles = Mercurio
Jueves = Jpiter
Viernes = Venus
Sbado = Saturno
Domingo = Sol
5.

Se imprime el resultado de acuerdo a la eleccin del usuario

6.

Fin

Algoritmo

Inicio

Dia=0

Dia

no

lunes

no martes

si

si

luna

Marte

no
miercoles

si

Mercurio
Fin

no
jueves

si

Jpiter

si

Venus

no
viernes

Domingo

no

Sol

Codificacin

no
Sabado

si

Saturno

#include <stdio.h>
#include <conio.h>
int main() {
int dia = 0;
printf("Elige un Dia a la Semana\n\n");
printf("1. Lunes\n");
printf("2. Martes\n");
printf("3. Miercoles\n");
printf("4. Jueves\n");
printf("5. Viernes\n");
printf("6. Sbado\n");
printf("7. Domingo\n");
printf("Que numero de dia de la semana escoges: ");
scanf("%i",&dia);
switch(dia) {
case 1 :
printf("Lunes es, Luna\n");
break;
case 2 :
printf("Martes es, Marte\n");
break;
case 3 :
printf("Miercoles es, Mercurio\n");
break;
case 4 :
printf("Jueves es, Jupiter\n");
break;
case 5 :
printf("Viernes es, Venus\n");
break;
case 6 :
printf("Sbado es, Saturno\n");
break;
case 7 :
printf("Domingo es, Sol\n");
break;
default :
printf("No existe\n");
}
getch();
return 0;
}
Prueba de escritorio

Dia=
0

Di
a

Cas
e1
Lun
a

Case
2

Case 3

Case
4

Case
5

Case 6

Cas
e7

Imprim
ir

Mart
e
Mercuri
o
Jpite
r
5

Venu
s

Venus
Saturn
o
Sol

Anlisis de resultados

FI
N

Programa para asignar un color a un usuario en un rango del 1 al 7


Planteamiento del problema: Se requiere la creacin de un programa
capaz de asignar un color a el usuario dependiendo de qu numero
haya escogido este, e imprimirlo en pantalla con el color
correspondiente.
Algoritmo:
1._Inicio
2._Se dan a conocer las variables a trabajar: 1, 2 y 3
3._Se asigna el color correspondiente a cada numero:
1._Blue
2._Yellow
3._Red
4._Se solicita al usuario seleccione una opcin.
5._Se imprime el color asignado al usuario
6._ Fin
Diagrama de flujo:

Inicio

1,2,3

Switch(Color)

Color=1
Si
Blue

No
Color=2
Si

Yellow

No
Color=3

Fin
Red

Prueba de escritorio:
Color

Color

Case 1
Case 2
Case 3

Blue
Yellow
Red

Anlisis de resultados

Imprimir
Color
Azul
Amarillo
Rojo

Fin

Planteamiento del problema: Elaborar un programa que ejecute las


operaciones bsicas de dos nmeros dados por el usuario y que elija
qu se hace con esos nmeros:
Algoritmo:
1 Inicio del programa
2 Establecer las variables que se ocuparn a, b, res, opc
3 Pedir el valor A
4 Asignar a
5 Pedir el valor B
6 Asignar b
7 Preguntar qu se quiere hacer con los nmeros
8 Si desea hacer suma, asignar resa+b
9 Si desea hacer resta, asignar resa-b
10 Si desea hacer producto, asignar resa*b
11 Si desea hacer divisin, asignar resa/b
12 Imprimir el resultado res
13 Fin del programa
Prueba de escritorio
14 a
20

b
5

res
25

opc=4?

Anlisis de resultados

Diagrama de flujo

opc
1

OPERACIN
20 + 5

opc=1?
1=1?

opc=2?

opc=3?

Imprimir (res)
25

Inicio
a,b,res,opc

a,b,opc

opc=1?

res=a+b

opc=2?
res=a-b

2
2

opc=3?

opc=4?

res=a*b

res=a/b

res

Fin

Codificacin

Pregunta de Opcin Mltiple

Planteamiento del problema


Realizar un programa que imprima un mensaje en pregunta, en este
caso la pregunta ser: Qu significan las palabras Karate-Do? Luego
de haber preguntado, imprimir tres mensajes diferentes, en los cuales
existan tres posibles respuestas a la pregunta correspondiente, y si la
opcin escogida por el usuario es la respuesta correcta o incorrecta,
hacerle saber al usuario con otro mensaje.
Algoritmo
1. Inicio
2. Dar a conocer la variables a utilizar: opc
3. Imprimir el siguiente mensaje: Qu significan las palabras
Karate-Do?
4. Imprimir por separado las siguientes opciones:
[1] El combate cuerpo a cuerpo
[2] Artes marciales de Japn
[3] Camino o senda de la mano vaca
5. Solicitar al usuario el valor de la variable opc
6. Realizar la operacin de cada caso segn el valor de opc
Caso1: Imprimir: Tu respuesta es incorrecta
Caso2: Imprimir: Tu respuesta es incorrecta
Caso3: Imprimir: Felicidades, tu respuesta es correcta
7. Fin
Diagrama de flujo
Inicio

opc

Qu significan las
palabras Karate-Do?

[1] El combate cuerpo a cuerpo

[2] Artes marciales de Japn

[3] Camino o senda de la mano


vaca

opc
Case
1

opc=1

Tu respuesta
es incorrecta

Brea
k

Case
2
opc=2

Tu respuesta
es incorrecta

Brea
k
Fin

Case
3
opc=3

Felicidades, tu
respuesta es
correcta

Brea
k

Codificacin
#include<stdio.h>
#include<conio.h>
int main()
{
int opc;
printf("\t\t\t\tA VER SI SABES...\n");
printf("Que significan las palabras Karate-Do?\n");
printf("[1]El combate cuerpo a cuerpo\n");
printf("[2]Artes marciales de Japon\n");
printf("[3]Camino o senda de la mano vacia\n");
scanf("%i", &opc);
switch(opc)
{
case 1:
printf("Tu respuesta es incorrecta\n");
break;
case 2:
printf("Tu respuesta es incorrecta\n");
break;
case 3:
printf("Felicidades, tu respuesta es correcta!!\n");
break;
}
getch();
return 0;
}

Inicio

Prueba de escritorio
[1] El combate
cuerpo a cuerpo
[2] Artes marciales
de Japn
[3] Camino o senda
de la mano vaca

opc
3

Imprimir: Tu
respuesta es
incorrecta

Anlisis de resultados

case2
Imprimir: Tu
respuesta es
incorrecta

case3
Imprimir:
Felicidades,
tu respuesta
es correcta
Felicidades, tu
respuesta es
correcta

Fin

Qu significan las palabras Karate-Do?

case1

Planteamiento del problema


Programa para saber que nombre del grado es de una escala musical,
del 1 al 7.
Planteamiento del problema
Realizar un programa atreves con switch , un programa que pueda
ayudar a identificar atreves del 1 al 7 , lo grados de una escala
musical.
Algoritmo
1. inicio
2. Se dan a conocer las variables a trabajar N (variable
independiente).
3. Se pide al usuario introducir un numero del 1al 7.
4. Si se escoje la opcin 1 ,imprimir Tnica.
5. Si se escoje la opcin 2 , imprimir Supertonica.
6. Si se escoge la opcin 3 ,imprimir Mediante.
7. Si se escoge la opcin 4, imprimir Subdominante.
8. Si se escoge la opcin 5, imprimir Dominante.
9. Si se escoge la opcin 6, imprimir Superdominante.
10.
Si se escoge la opcin 7, imprimir Sensible.
11.
Si se escoge una opcin incorrecta se imrpime opcin
invalida
12.
Fin

Diagrama de flujo
inicio

Case 1
Tonica

Tnica
Case6
Superdominate

Case2
Supertonica

Case3
Mediante

Superdotica

Mediante

Case5
Cae4
Dominante
sudominate

Subdominat
Dominante
e

Supertonica
fin
default
Vuelva a intentarlo

Case7
Sensible

Codificacin

Sensible

#include<stdio.h>
#include<conio.h>
int main()
{
int N;
printf("Programa para saber que nombre del grado es de una
escala musical, del 1 al 7. ");
printf(" \n Introdusca un numero del 1 al 7: \n");
scanf("%d",&N);
switch (N)
{
case 1:{
printf("Tonica");
break;}
case 2:
printf("Supertonica");
break;
case 3 :
printf("Mediante");
break;
case 4:
printf("Sudomiante");
break;
case 5:
printf("Dominante");
break;
case 6:
printf("Supertonica");
break;
case 7:
printf("Sensible");
break;
default:
printf("Vuelva a intentarlo");
break;

}
getch();

Prueba de escritorio

N Case
:1
Tonic
a
1 Tonic
a
2
3
4
5
6
7
8

Case:2
Supertoni
ca

Case:3
Median
te

Case:4
Subdomina
nte

Case:5
Domina
nte

Case:6
Superdomina
nte

Case:
7
Sensib
le

Defaulft
Opcion
invalida

Imprimir

Tonica
Supertoni
ca

Supertonica
Median
te

Mediante
Subdomina
nte

Subdominant
e
Dominante

Dominat
e
Superdomina
nte

Superdomina
nte
Sensible

Sensib
le
Vuelva
a
intentar
lo

Vuelva a
intentarlo

PROGRAMA CON MENU PARA CONOCER LO QUE ENTRGA UN


PROVEEDOR EN UN HOSPITAL
ALGORITMO.
1.
2.
3.
4.

Inicio
Declarar las variables que se van a ocupar.
num como una variable independiente
Pedir al usuario que ingrese el valor de la variable i dentro del
rango del 1 al 8
5. Si escoge el nmero 1,
6. Se va a imprimir al proveedor B. Braun
7. Si escoge el nmero 2,
8. Se va a imprimir al proveedor Maypo
9. Si escoge el nmero 3,
10.
Se va a imprimir al proveedor Instrumental mdico
11.
Si escoge el nmero 4,
12.
Se va a imprimir al proveedor Sinthes
13.
Si escoge el nmero 5,
14.
Se va a imprimir al proveedor Karlan
15.
Si escoge el nmero 6,
16.
Se va a imprimir al proveedor Joga
17.
Si escoge el nmero 7,
18.
Se va a imprimir al proveedor Degasa
19.
Si escoge el nmero 8,
20.
Se va a imprimir al proveedor Dentilab
21.
Fin
DIGRAMA DE FLUJO
INICIO

num

num?

1
8

Proveedor solicitado

FIN

CODIFICACION
#include <stdio.h>
#include <conio.h>
main(void)
{
Int num;
printf("Elige la opcin que deseas saber sobre el IPN\n");
printf("1. B. Braun.\n");
printf("2. Maypo \n");
printf(3. Instrumental mdico.\n);
printf(4. Sinthes.\n);
printf(5. Karlan.\n);
printf(6. Joga.\n);
printf(7. Degasa.\n);

printf(8. Dentilab.\n);
printf("Qu opcin es la que desaes saber? ");
scanf("%d",num);
switch(num)
{
case 1 :
printf(" Proveen al hospital con Material de osteosintesis.\n");
break;
case 2 :
printf("Proveen al hospital con medicamentos .\n");
break;
case 3 :
printf("Proveen al hospital con material de curacin.\n");
break;
case 4 :
printf(": Proveen al hospital con material de osteosintesis.\n");
break;
case 5 :
printf(": Proveen al hospital con sutura hospitalaria.\n");
break;
case 6 :
printf("Proovedor emergente.\n");
break;
case 7 :
printf(": Proveen al hospital con gasas y vendas.\n");
break;

case 8 :
printf(": Proveen al hospital con material de curacin.\n");
break;

}
getch ();
return 0;
}
Anlisis de resultados

PROGRAMA QUE ENLISTA 5 TELEFONOS DE GAMA ALTA


PLANTEAMIENTO DEL PROBLEMA

A travez de la metodologia para resolver un problema por


computadora se require un programa en el cual se impriman 5
modelos de telefonos de gama alta segun el fabricante seleccionado.
ALGORITMO
1. Inicio
2. Se dan a conocer las variables con las que se va a trabajar
3. Se imprimen las 5 opciones que el usuario puede elegir (Sony
Apple, Motorola, HTC, Samsung y Lumia)
4. Se pide al usuario que opcin quiere (1, 2, 3, 4, 5.)
5. Se imprimen los 5 modelos de la opcin elegida
6. Fin del proceso.
CODIFICACION
#include <stdio.h>
#include <stdlib.h>
int fabricante = 0;
main(void) {
printf("Elige un Fabricante de telefonos moviles\n\n");
printf("1. Sony\n");
printf("2. Apple\n");
printf("3. Motorola\n");
printf("4. LG\n");
printf("5. HTC\n");
printf("6. Samsung\n");
printf("7. Microsoft Lumia\n");
printf("Que numero de fabricante eliges: ");
scanf("%i",&fabricante);
switch(fabricante) {
case 1 :
printf("Xperia Z2\n Xperia Z3\n Xperia Z3+\n Xperia Z5\n Xperia Z5
Premium\n");
break;
case 2 :
printf("iPhone 5\n iPhone 5s\n iPhone 6\n iPhone 6 Plus\n iPhone
6s\n");
break;
case 3 :
printf("Motorola Moto X Play\n Motorola Moto X Tercera Gen\n Google

Nexus 6\n Motorola Moto X Seg Gen\n Motorola Moto X\n");


break;
case 4 :
printf("LG G4\n LG Flex 2\n LG G3\n LG G2\n LG G FLex\n");
break;
case 5 :
printf("HTC One M9\n HTC One M8s\n HTC One M8\n HTC One M7\n
HTC One\n");
break;
case 6 :
printf("Samsumg Galaxy S6 Edge\n Samsumg Galaxy S6\n Samsumg
Galaxy S6+\n Samsumg Gaalaxy S5\n");
break;
case 7 :
printf("Lumia 950\n Lumia 950 XL\n Lumia 930\n Lumia 830\n Lumia
Inicio
1020\n");
break;
default :
LG G Flex
printf("No existe\n"); LG G2
LG G3
fabricante=0
}
Fabricante=4
LG G Flex 2
system ("PAUSE");
LG G4
}
Switch (fabricante)

SI
Fabricante=1
NO

SI
Fabricante=2

Fabricante=
3

iPhone 5
iPhone 5s
iPhone 6
iPhone Plus
iPhone 6s

Motorola moto X
Motorola moto X 2da Gen
Google Nexus 6
Motorola moto X 3ra Gen
Motorola moto X Play

Xperia Z2
Xperia Z3
Xperia Z3+
Xperia Z5
Xperia Z5 Premium

Fin

fabricant
e

fabricante
=0

fabricanteX
#

Imprimir (res)
Xperia Z2
Xperia Z3

FIN

Case 1

Sony

Case 2

Apple

Case 3

Motorola

Case4

LG

Case5

HTC

Case6

Samsung

Case7

Microsoft
Lumia

Xperia Z3+
Xperia Z5
Xperia Z5 Premium
iPhone 5
iPhone 5s
iPhone 6
iPhone Plus
iPhone 6s
Motorola moto X
Motorola moto X 2da
Gen
Google Nexus 6
Motorola moto X 3ra
Gen
Motorola moto X Play
LG G Flex
LG G2
LG G3
LG G Flex 2
LG G4
HTC One
HTC One M7
HTC One M8
HTC One M8s
HTC One M9
Samsung Galaxy S5
Samsung Galaxy S6
Samsung Galaxy
S6+
Samsung Galaxy S6
Edge
Samsung Galaxy
Note4
Lumia 1020
Lumia 830
Lumia 930
Lumia 950 XL
Lumia 950

Anlisis de resultados

Programa para saber el nmero de x amigo (agenda telefnica)


Planteamiento del problema
Se desea encontrar el nmero telefnico de x amigo con acceso
directo con nmeros, realizaremos un programa con switch capaz de
realizarlo.Algoritmo
1.
2.
3.
4.
5.
6.

Inicio
Declarar la variables a utilizar:A,N,X
Presionar enter para desplegar el men
Asignar valor a X(seleccionar contacto)
Imprimir contacto
Fin
Diagrama de flujo
Inicio

A,N,X

SWITCH(X)

X=1?
SI

EL NUMERO
DE ANA

NO
X=2?
SI

NO

FIN

EL NUMERO
DE PEPE

Prueba de escritorio
X NUMERO
Case 1
Case 2

X (NUMERO)
1
2

IMPRIMIR
5552340945
5552347825

FIN

Codificacin
//agenda telefonica
#include<stdio.h>

int main(){
int X,A,;
float N;
printf("hola perciona enter para desplegar el menu de tus
contactos:\n\n");
scanf("&d",&A);
printf("\teclee cual contacto deseas saber su numero?\n\n");
printf("1-ana\n");
printf("2-pepe\n");
scanf("%d",&X);
switch(X){
case 1: N=5552340945;
break;
case 2: N=5552347825;
break;}
printf("el numero del contacto seleccionado es: %f",N);
return 0;
}

Anlisis de resultados

PROGRAMA PARA CALCULAR EL REA O PERMETRO DE UN


RECTNGULO
Planteamiento: desarrolla un programa para obtener el rea o el permetro de un
rectngulo de pendiendo de lo que el usuario desee
Algoritmo:
1. Inicio
2. Determinar las variables con las que se trabajaran
b,h,A,P
3. Hacer una pregunta con respecto a que quiere calcular:
1rea
2 permetro
4. Se solicitan los valores a las variables independientes
b
h
5. Se va a determinar el valor dependiendo del nmero que eligi lo que pidi:
A
b*h
P
(2*h)+ (2*b)
6. Imprimir el valor de A y P
7. Fin

Diagrama de flujo
Inicio

b,h,P,A

b,h

Quieres calcular el
permetro?

Quieres calcular el
area?

A=b*h

P=(2*h)+(2*b)

Fin

Codificacin
#include <stdio.h>
#include <conio.h>
int main ()
{
float b,h,A,P;
int opc;
printf("\n Seleccione lo que desea calcular del rectangulo \n");
printf("\n 1---->area \n");
printf("\n 2---->perimetro\n");
scanf("%d",&opc);
switch (opc)
{
case 1:
{
printf("\n Dame el valor de la base:\n");
scanf("%f",&b);
printf("\n Dame el valor de la altura:\n");
scanf("%f",&h);
A=b*h;
printf(" \n El area es %f\n",A);
}
break;
case 2:
{
printf("\n Dame el valor de la base:\n");
scanf("%f",&b);
printf("\n Dame el valor de la altura:\n");
scanf("%f",&h);
P=2*h+2*b;
printf(" \n El perimetro es %f\n",P);
}
}
getch();
return 0;
}

Prueba de escritorio
b

Quiere
calcular el
rea?

12

84

si

14

40

no

b*h

12*7

--

Quiere
calcular el
permetro?

(2*h)+ (2*b)

si

--P

(2*6)+ (2*14)

Anlisis de resultados

Programa que muestra un men para desarrollar el concepto de peso


Algoritmo:
1.- Inicio.
2.- Se dan a conocer las variables con las que se va a trabajar: w, m, res.
3.- Se solicita al usuario elegir que operacin desarrollara el programa:
Peso/Masa.
4.- Si el usuario elige Peso, se solicita al usuario proporcionar el valor de la
masa, m.
5.- Se procede a la obtencin del peso: res
m*9.81
6.- Se imprime el valor de res, y finaliza el proceso.
7.- Si el usuario elige Masa, se solicita al usuario proporcionar el valor del peso,
w.
8.- Se procede a la obtencin de la masa: res
w/9.81
9.- Se imprime el valor de res.
10.- Fin del proceso.

Fin
-

Diagrama de flujo:
INICIO

w, m, res

SI

Opcion=Peso?

NO
res
m*9.81

Opcion=Masa?

NO

default

SI

res
w

res
w/9.81
FIN

res
0

Prueba de escritorio:
w
3

m
5

res

Opcion res
Peso res
Masa

m*9.81
5*9.81

res
res

w/9.81
3/9.81

Imprimir
49.05
0.30

FIN
FIN

Codificacin:
#include <stdio.h>
#include <conio.h>
main ()
{
int Opcion;
float w, m, res;
printf ("Menu para calcular el concepto de peso");
printf ("\n\nSelecciona una opcion\n");
printf ("\n1-->Peso");
printf ("\n2-->Masa\n\nOpcion: ");
scanf ("%d", &Opcion);
switch(Opcion)
{
case 1:
printf ("\nCalcular el peso");
printf ("\n\nEscribe el valor de la masa (kg): ");
scanf ("%f", &m);
res=m*9.81;
printf ("\nEl valor del peso (Newtons) es: %.2f", res);
break;
case 2:
printf ("\nCalcular la masa");
printf ("\n\nEscribe el valor del peso (Newtons): ");
scanf ("%f", &w);
res=w/(9.81);
printf ("\nEl valor de la masa (kg) es: %.2f", res);
break;
default:
res=0;
}
printf ("\n\nPresione cualquier tecla para salir");
getch ();
return 0;
}

Programa con switch MRU


Planteamiento del programa
Se necesita un programa que desarrolle las distintas opciones del MRU, como lo
son la velocidad, la distancia y el tiempo.
Algoritmo
1) Inicio
2) Se declaran las variables que se van a utilizar opcin, v, d, t(variables
independientes) operacion1, operacin2, operacion3(variables
dependientes)
3) Se pide la opcin que quieres realizar (1,2,3)
4) Se asigna el valor a la opcin
5) Si la opcin es 1, se piden los valores de distancia y del tiempo
6) Se asignan los valores de la distancia y del tiempo donde d y t
7) Se calcula el valor de la velocidad vd/t
8) Se imprime el valor de la velocidad (v) y se finaliza el programa
9) Si no se regresa al punto nmero 3 y se vuelve a pedir la opcin que quiera
desarrollar
10)Se asigna el valor a la opcin
11) Si la opcin es 2, se pide el valor de la velocidad y del tiempo
12)Se asigna el valor de la velocidad y del tiempo donde v y t
13)Se calcula el valor de la distancia donde dv*t
14)Se imprime el valor de la distancia (d) y se finaliza el programa
15)Si no se vuelve al punto nmero 3 y se vuelve a pedir la opcin que se
quiera desarrollar
16)Se asigna el valor a la opcin
17)Si la opcin es 3, se pide la distancia y la velocidad
18)Se asigna el valor de la distancia y de la velocidad donde d y v
19)Se calcula el valor del tiempo donde td/v
20)Se imprime el valor del tiempo (t) y se finaliza el programa

Diagrama de flujo
Inicio

Opcin, v, t, d, operacion1,
operacion2, operacion3.

Opcin, v, d, t

Opcin

Opcin=1?

Opcin=3?

Opcin=2?
NO

NO

NO

SI

SI

Dv*t

Td/v

Vd/t

Fin

SI

Codificacin
#include <stdio.h> /*Biblioteca para entrada y salida de datos*/
#include <conio.h> /*biblioteca para entrada y salida de datos*/
main() /*inicio del metodo principal*/
{ /*Inicio del cuerpo del programa*/
int opcion; /*declaracion de las variables de tipo entero*/
float operacion1,operacion2,operacion3,v,d,t; /*delcaracion de las variables
de tipo flotante*/
printf("\t\nMRU\n"); /*titulo del programa*/
printf("\t\t\nQue quieres hacer?\n"); /*se le pide al usuario una opcion*/
printf("\t\nVelocidad(1)\n"); /*opcion 1*/
printf("\t\t\n Distancia(2)\n"); /*opcion 2*/
printf("\t\t\nTiempo(3)\n"); /*opcion 3*/
scanf("%d",&opcion); /*se asigna el valor de la opcion*/
printf("\t\nMRU\n"); /*imprime le titulo de un formulario*/
printf("\t\t\nFormulario\n"); /*imprime un mensaje*/
printf("\t\t\n v=d/t\n"); /*imprime la primera formula del MRU*/
printf("\t\t\n d=v*t\n"); /*imprime la segunda formula del MRU*/
printf("\t\t\n t=d/v\n"); /*imprime la tercera formula del MRU*/
switch(opcion) /*se comienza el switch en el cual se indica que se tomara el
valor de la opcion*/
{ /*incio del switch*/
case 1: /*caso 1 aqui se realiza lo siguiente*/
printf("\t\t\nDame el valor de la distancia\n"); /*se pide el valor de la
distancia*/
scanf("%f",&d); /*se le asigna valor a la distancia*/
printf("\t\t\nDame el valor del tiempo\n"); /*se pide el valor del tiempo */
scanf("%f",&t); /*se asinga el valor del tiempo*/
operacion1=d/t; /*se realiza la operacion para obtenes la velocidad en el
MRU*/
printf("\t\t\nEl valor de la velocidad es:\n%.2f",operacion1); /*se imprime el
resultado de la velocidad*/
break;/*se cierra el caso 1*/
case 2: /*caso 2 aqui se realiza lo siguiente*/
printf("\t\t\nDame el valor de la velocidad\n"); /*se pide el valor de la
velocidad*/
scanf("%f",&v);/*se le asigna un valor a la velocidad*/
printf("\t\t\nDame el valor del tiempo\n"); /*se pide el valor del tiempo */
scanf("%f",&t); /*se le asigna el valor al tiempo */
operacion2=v*t; /*se realiza la operacion en la que se obtendra el valor de la
distancia*/
printf("\t\t\nEl valor de la distancia es:\n%.2f",operacion2); /*se imprime el
valor de la distancia*/
break; /*se cierra el caso 2*/
case 3: /*caso 3 en este se realizara lo siguiente*/
printf("\t\t\nDame el valor de la distancia\n"); /*se pide el valor de la
distancia*/
scanf("%f",&d); /*se le asigna el valor a la distancia*/

printf("\t\t\nDame el valor de la velocidad\n"); /*se pide el valor de la


velocidad*/
scanf("%f",&v); /*se asigna el valor de la velocidad*/
operacion3=d/v; /*se realiza la operacion para obtener el tiempo*/
printf("\t\t\nEl valor del tiempo es:\n%.2f",operacion3); /*se imprime el valor
del tiempo*/
break; /*se cierra el caso 3*/
default: /*clausula que representa las instrucciones que se ejecutaran en caso
de que no se verifique ninguno de los caso evaluados*/
operacion1=0; /*se iguala la operacion 1 a 0 */
operacion2=0; /*se iguala la operacion 2 a 0*/
operacion3=0; /*se iguala la operacion 3 a 0 */
} /* fin del switch*/
printf("\t\t\nPresione una tecla para salir\n"); /*se le da una indiacion al
usuario*/
getch (); /*lee u obtiene un solo caracter ingresado por el teclado*/
return 0; /*retorna los valores a 0 */
} /*fin del programa*/

Prueba de escritorio
Opci
n
1

Vd/t

Dv*t

Td/v

30

30

60

15

V30/
2
D30*
2
T15/
2

Imprim
ir
15

7.5

Fin

Fin

anlisis de resultados

Programa de productos de una tienda de abarrotes*/


Algoritmo:
1.- inicio
2.-se da a conocer la variable cocacola, sabritas, bimbo, opc;
3.- se pide la marca que desea consumir
4-imprime los productos de la marca deseada
5.- fin

Diagrama de flujo
Inicio

Cocacola,
sabritas, bimbo,
opc

Se pide la
marca a
consumir

cocaco

Manzanit
a
Coca
2
Mirinda
Jumex

bimb
o

sabrit
as

Rufles
Doritos
Dorilocos
Chetos
colmillos

Panquesit
os
Conchas
Lechita
bimbo
Nito

Algoritmo
#include <stdio.h>
#include<conio.h>
void main()
{
int cocacola, sabritas, bimbo, opcin;
printf("elige la marca que deseas\n");
printf("1.cocacola\n");
printf("2.sabritasn");
printf("3.bimbo\n");
scanf("%d",&opcion);
switch(opcion)
{
case 1:
printf("los productos son:\n Manzanita\n Coca\n Mirinda\n Jumex ");
break;
case 2:
printf("los productos son:\n Rufles\n Doritos\n Dorilocos\n Chetos\n colmillos");
break;
case3:

fin

printf("los productos son\n Panquesitos\n Conchas\n Lechita bimbo\n Nito");


break;
}
getch();
return 0;
}
Prueba de escritorio
not
a
1

Case1
Cocacola

Case2
sabritas

Case3
bimbo

Productos cocacola

Anlisis de resultados.

Programa para calcular el rea de 4 figuras geomtricas.


Planteamiento:

Imprime
resultado
Manzanit
a
Coca
Mirinda
Jumex

Desarrollar un programa con Smith, que nos permita calcular el area de 4


figuras geomtricas bsicas.
Algoritmo:
1. Inicio.
2. Se dan a conocer las variables con las que se va a trabajar: cuad, tri, rec,
cir, b, a, opc;
3. Se solicita elegir una opcin opc.
4. Se piden los valores de a y b, o solo de a en el caso del crculo, para
calcular el area.
5. Se imprime el resultado.
6. Fin.
Codificacin
#include <iostream>
#include <cstdlib>
using namespace std;
int main ()
{
float cuad,tri,rec,cir,b,a;
int opc;
cout<<"~~~Programa para calcula el area de 4 figuras geometricas con
switch~~~\n\n\n";
cout<<"~~~ELIGE LA OPCION QUE DESEAS~~~\n";
cout<<"*** 1. CUADRADO ***\n";
cout<<"*** 2. TRIANGULO ***\n";
cout<<"*** 3. RECTANGULO ***\n";
cout<<"*** 4. CIRCULO ***\n";
cin>>opc;
switch (opc){
case 1:
cout<<"***Has elegido calcular el area del cuadrado***\n\n";
cout<<"***Ingresa el lado***\n";
cin>>b;
cuad=b*b;
cout<<"***El area del cuadrado es:"<<cuad<<endl;
break;
case 2:
cout<<"***Has elegido calcular el area del triangulo***\n\n";
cout<<"***Ingresa la base***\n";
cin>>b;
cout<<"***Ingresa la altura***\n";
cin>>a;
tri=(b*a)/2;
cout<<"***El area del triangulo es:"<<tri<<endl;

break;
case 3:
cout<<"***Has elegido calcular el area del rectangulo***\n\n";
cout<<"***Ingresa la base***\n";
cin>>b;
cout<<"***Ingresa la altura***\n";
cin>>a;
rec=b*a;
cout<<"***El area del rectangulo es:"<<rec<<endl;
break;
case 4:
cout<<"***Has elegido calcular el area del circulo***\n\n";
cout<<"***Ingresa el radio***\n";
cin>>a;
cir=3.1416*(a*a);
cout<<"***El area del circulo es:"<<cir<<endl;
break;
default:
cout<<"*Esta opcin es incorrecta*\n";
}system("pause");}

Diagrama de flujo
Inicio

cuad,tri,rec,cir,
b,a, opc.

Case 1

opc

Case 2
b,a.

Cuad

Cuad=b

tri=(b*a)/

tri

Fin

Case 3

b,a.

rec= b*a

rec

Case 4
a.

cir=3.1416*(

cir

Anlisis de resultados

Programa para detectar vocales


Problema: identificar si la letra que da el usuario es una vocal o no a travs de un
switch, utilizando los casos pertinentes.
Algoritmo
1.
2.
3.
4.
5.
6.

Inicio.
Determinar la variable con la que voy a trabajar, C.
Pedir a usuario que proporcione una letra.
Si entra en cualquiera de los siguientes casos es vocal. A,e,i,o,u.
De lo contrario no es vocal.
Fin del programa.

Diagrama de flujo

Inicio

e
A,e,i,o,u

No es vocal

Codificacin
include <stdio.h>
#include <conio.h>
int main ()
{char c;
printf("Introduzaca un caracter");
scanf("%c",&c);
switch(c){
case'a'

Es vocal

Fin

:printf("Es vocal");
break;
case'e'
:printf("Es vocal");
break;
case'i'
:printf("Es vocal");
break;
case'o'
:printf("Es vocal");
break;
case'u'
:printf("Es vocal");
break;
defalt:
printf("No es vocal");
break;}
getch ();
return 0;}

Prueba de escritorio
C
A
h

C= (a,e,i,o,u)?
C=a
C=h

Anlisis de resultados

imprimir
Es vocal
No es vocal

fin

Completa la frase (Reacciones de Combustin)


Planteamiento del problema
Realizar un programa que imprima un mensaje dando la instruccin que se
complete la frase mostrada. Imprimir 4 opciones diferentes, de las cuales solo una
ser correcta y si la opcin escogida por el usuario es la respuesta correcta o
incorrecta, hacerle saber al usuario con otro mensaje.
Algoritmo
8. Inicio

9. Dar a conocer la variables a utilizar: opc


10. Imprimir el siguiente mensaje: Completa la frase de manera correcta!
11. Imprimir la frase a completar: Las reacciones de combustion son...
12. Imprimir por separado las siguientes opciones:
[1] exotermicas porque liberan energia en forma de calor hacia los alrededores
[2] exotermicas porque absorben energia en forma de calor de los alrededores
[3] endotermicas porque liberan energia en forma de calor hacia los
alrededores
[4] endotermicas porque absorben energia en forma de calor de los
alrededores
13. Solicitar al usuario el valor de la variable opc
14. Realizar la operacin de cada caso segn el valor de opc
Caso1: Imprimir: Felicidades, tu respuesta es correcta!!
Caso2: Imprimir: Tu respuesta es incorrecta
Caso3: Imprimir: Tu respuesta es incorrecta
Caso4: Imprimir: Tu respuesta es incorrecta
15. Fin

Diagrama de flujo

Inicio

opc

Completa la frase de
manera correcta!

[1] exotermicas porque liberan energia en forma de calor hacia los alrededores

[2] exotermicas porque absorben energia en forma de calor de los alrededores

[3] endotermicas porque liberan energia en forma de calor hacia los alrededores

[4] endotermicas porque absorben energia en forma de calor de los alrededores

opc

opc=1

Case
1

Felicidades, tu
respuesta es
correcta!!

opc=2

Case
2

Tu respuesta
es incorrecta

opc=3

Case
3

Tu respuesta es
incorrecta

opc=4

Case
4

Tu respuesta
es incorrecta

Codificacin

Fin

#include<stdio.h>
#include<conio.h>
int main()
{
int opc;
printf("\t\t\t\t Completa la frase de manera correcta! \n");
printf("\n\t Las reacciones de combustion son...\n");
printf("[1]exotermicas porque liberan energia en forma de calor hacia los alrededores.\n");
printf("[2]exotermicas porque absorben energia en forma de calor de los alrededores.\n");
printf("[3]endotermicas porque liberan energia en forma de calor hacia los alrededores.\n");
printf("[4]endotermicas porque absorben energia en forma de calor de los alrededores.\n");
printf("\n\t\t\tSelecciona tu respuesta\n");
scanf("%i", &opc);
switch(opc)
{
case 1:
printf("Felicidades, tu respuesta es correcta!!\n");
break;
case 2:
printf("Tu respuesta es incorrecta\n");
break;
case 3:
printf("Tu respuesta es incorrecta\n");
break;
case 4:
printf("Tu respuesta es incorrecta\n");
break;
}
getch();
return 0;
}

Prueba de escritorio
opc
Case1
1
X
2
3
4

Case2

Case3

Case 4

X
X
X

Imp
Correcta!
Incorrecta
Incorrecta
Incorrecta

Anlisis de resultados

Planteamiento del problema:


Utilizando la metodologa para resolver problemas por computadora y con el uso
de la instruccin de control switch, desarrollar un programa que permita resolver la
diferencia de potencial electrosttico.
Algoritmo
1. Inicio
2. Declarar variables m, w, q, v
3. Solicitar valor de m
4. Si m=1 solicitar valores de q, v
5. Calcular w=q*v
6. Imprimir valor de w
7. Si m=2 solicitar valores de w, v
8. Calcular q=w/v
9. Imprimir valor de q
10. Si m=3 solicitar valores de w, q
11. Calcular v=w/q
12. Si m es diferente de 1, 2, 3 imprimir Ingresa opcin vlida
13. Fin

Diagrama de flujo

Inicio

m, w, q, v

Si

No

m=1

Si

q, v
w=q*v

No

m=2

Si
m=3

w, v

No

q=w/v

w, q

Ingresa una opcin valida

v=w/q

q
v

Fin

Prueba de escritorio
m w

w=q*v

1
2
3

6
6

w=3*6

18
18

q=w/v

v=w/q

q=18/6

Imprimir
w
18

imprimir q

Imprimir v

3
v=18/3

Codificacin
#include<stdio.h>
#include<conio.h>
main()
{
int m;
float w, q, v;
printf("Selecciona la magnitud a calcular \n");
printf("\t 1.Trabajo \t 2. Carga electrica \t 3. Diferncia de pontencial \n");
scanf("%d",&m);
switch(m)
{
case 1:
printf("Ingresa el valor de la carga electrica (Coulombs):\n");
scanf("%f",&q);
printf("Ingresa el valor del la diferencia de potencial (Volts):\n");
scanf("%f",&v);
w=q*v;
printf("El valor del trabajo es: %f \n joules",w);
break;
case 2:
printf("Ingresa el valor del trabajo (joules):\n");
scanf("%f",&w);
printf("Ingresa el valor del la diferencia de potencial (Volts):\n");
scanf("%f",&v);
q=w/v;
printf("El valor la carga electrica es: %f \n Coulombs",q);
break;
case 3:
printf("Ingresa el valor del trabajo (joules):\n");
scanf("%f",&w);
printf("Ingresa el valor de la carga electrica (Coulombs):\n");
scanf("%f",&q);
v=w/q;
printf("El valor de la diferencia de potencial es: %f \n Volts",v);
break;
default:
printf("Ingresa una opcion valida");
break;
}

getch();Anlisis de resultados

PROGRAMA PARA SABER QUE DIA DE LA SEMANA ES SEGN EL


NUMERO CON SWITCH
PLANTEAMIENTO DEL PROBLEMA: Utilizando la metodologa de
resolucin de un problema a travs de un programa de computadora, se
desea saber que da de la semana es con un rango de nmeros de 1 al
7.
ALGORITMO

1. Inicio
2. Declarar variable a usar: Da
3. Se solicita el valor de la variable al usuario
4. Evaluar si Da=1
5. Si esta premisa es verdadera imprime en pantalla el dia es Lunes
6. Si la premisa es falsa Evalua si Dia=2
7. Si esta premisa es verdadera imprime en pantalla el dia es martes
8. Si la premisa es falsa Evalua si Dia=3
9. Si esta premisa es verdadera imprime en pantalla el dia es miercoles
10. Si la premisa es falsa Evalua si Dia=4
11. Si esta premisa es verdadera imprime en pantalla el dia es jueves
12. Si la premisa es falsa Evalua si Dia=5
13. Si esta premisa es verdadera imprime en pantalla el dia es viernes
14. Si la premisa es falsa Evalua si Dia=6
15. Si esta premisa es verdadera imprime en pantalla el dia es sabado
16. Si la premisa es falsa Evalua si Dia=7
17. Si esta premisa es verdadera imprime en pantalla el dia es domimgo
18. Fin del proceso.

DIAGRAMA DE FLUJO

Prueba de escritorio
Dia Dia==1?

Dia==2? Dia==3? Dia==4? Dia=5


?

Dia==6
?

Dia==7
?

Imprimir mensaje

4==2

4==6

4==7

El dia es jueves

4==1

4==3

4==4

4==5

19.
Codificacin
//PROGRAMA PARA ADIVINAR EL DIA SEGUN EL NUMERO DEL 1 AL 7
#include<stdio.h>

#include<conio.h>
void main(){
int dia;
printf("Dame el numero del dia (1 a 7)");
scanf("%d",&dia);
switch(dia)
{
case 1:
printf("El dia es lunes");
break;
case 2:
printf("El dia es martes");
break;
case 3:
printf("El dia es miercoles");
break;
case 4:
printf("El dia es jueves");
break;
case 5:
printf("El dia es viernes");
break;
case 6:
printf("El dia es sabado");
break;
case 7:
printf("El dia es domingo");
break;
default: printf("El dia no existe"); } getch(); }

Anlisis de resultados

PROGRAMA QUE MUESTRA UN MENU CON LAS TABLAS DE MULTIPLICAR


DEL 1 AL 10
ALGORITMO
1.-INICIO
2.- se da a conocer las variables a conocer i, j, mult, op
3.-se le indica al usuario que seleccione la opcin que desee
4.-imprime los valores de la opcin que selecciono el usuario
5.-fin
DIAGRAMA DE FLUJO

PRUEBA DE ESCRITORIO
NOT
A

CASO
1

Tabla1

2
3

CASO
2

CASO
3

CASO
4

CASO
5

CASO
6

CASO
7

CASO
8

CASO
9

CASO1
0

1X1=1
1X2=2
1X3=3
1X4=4
1X5=5
1X6=6
1X7=7
1X8=8
1X9=9
1X10=
10

Tabla2
Tabla3

Tabla4

Tabla5

Tabla6

Tabla7

Tabla8

Tabla9

10

IMP.
RES.

Tabla1
0

CODIFICACIN
//* PROGRAMA QUE MUESTRA UN MENU CON LAS TABLAS DE MULTIPLICAR DEL
1 AL 10
#include<stdio.h>
#include<conio.h>
main()
{
int i,j,mult;
int op;
printf(" \n ----Menu de las Tablas de Multiplicar.----");
printf( "\n\n Tabla del 1. Tabla del 2. Tabla del 3. Tabla del 4. ");
printf("\n\n Tabla del 5. Tabla del 6. Tabla del 7. Tabla del 8. ");
printf("\n\n Tabla del 9. Tabla del 10. ");
printf("\n\n\n Seleccione una Opcion " );
scanf("%d",&op);
switch(op)

{
case 1:
printf("\nLa tabla de multiplicar del
i=1; j=1;
while(j<=10)
{
mult=i*j;
printf("\n%d*%d=%d\n",i,j,mult);
j++;
}
break;
case 2:
printf("\nLa tabla de multiplicar del
i=2; j=1;
while(j<=10)
{
mult=i*j;
printf("\n%d*%d=%d\n",i,j,mult);
j++;
}
break;
case 3:
printf("\nLa tabla de multiplicar del
i=3; j=1;
while(j<=10)
{
mult=i*j;
printf("\n%d*%d=%d\n",i,j,mult);
j++;
}
break;
case 4:
printf("\nLa tabla de multiplicar del
i=4; j=1
while(j<=10)
{
mult=i*j;
printf("\n%d*%d=%d\n",i,j,mult);
j++;
}
break;
case 5:
printf("\nLa tabla de multiplicar del
i=5; j=1;
while(j<=10)
{
mult=i*j;
printf("\n%d*%d=%d\n",i,j,mult);
j++;

1");

2");

3");

4");

5");

}
break;
case 6:
printf("\nLa tabla de multiplicar del
i=6; j=1;
while(j<=10)
{
mult=i*j;
printf("\n%d*%d=%d\n",i,j,mult);
j++;
}
break;
case 7:
printf("\nLa tabla de multiplicar del
i=7; j=1;
while(j<=10)
{
mult=i*j;
printf("\n%d*%d=%d\n",i,j,mult);
j++;
}
break;
case 8:
printf("\nLa tabla de multiplicar del
i=8; j=1;
while(j<=10)
{
mult=i*j;
printf("\n%d*%d=%d\n",i,j,mult);
j++;
}
break;
case 9:
printf("\nLa tabla de multiplicar del
i=9; j=1;
while(j<=10)
{
mult=i*j;
printf("\n%d*%d=%d\n",i,j,mult);
j++;
}
break;
case 10:
printf("\nLa tabla de multiplicar del
i=10; j=1;
while(j<=10)
{
mult=i*j;
printf("\n%d*%d=%d\n",i,j,mult);

6");

7");

8");

9");

10");

j++;
}
break;
default:printf("\n\n No se Realizo Ninguna Operacion.");
}
getch();
}

Anlisis de resultados

Programas con for

Divisores de un nmero
Planteamiento del problema.
Disear un programa que sea capaz de darnos todos los nmeros divisores de un
numero cualquiera, mediante la metodologa para resolver problemas por
computadora.
Algoritmo.
1.
2.
3.
4.

Inicio
Declaramos la variable.
Solicitamos un nmero al usuario y lo guardamos en la variable.
Con un bucle for, recorremos todos los nmeros desde el 1 hasta el
introducido por el usuario para comprobar si el num es divisible.
5. El bucle se ejecuta mientras el num sea >=i.
6. Mostramos i en cada paso del bucle.
7. FIN
Codificacion.
#include <stdio.h>
#include <conio.h>
main ()
{
int num1,i;
printf("Bienvenido al programa para calcular divisores de un numero \n\n");
printf("Introduzca un numero: ");
scanf("%d",&num1);
printf("\n\n Sus divisores son: \n");
for(i=1;i<=num1;i++)
{
if(num1%i==0)
{
printf("\n\t %d, es divisor de %d \n",i,num1);
}
}
printf("\n");
printf("\n Gracias por utilizar este programa. \n\n");
}

Prueba de escritorio.
num

I<=num

i++

1
2
3
4
5
1
2

1<=5
2<=5
3<=5
4<=5
5<=5
1<=2
2<=2

0+1
1+1
2+1
3+1
4+1
0+1
1+1

num
%i==0
5/1=5
5/2=
5/3=
5/4=
5/5=0
2/1=2
2/2=0

Diagrama de flujo.

Inicio

num, i

num

i=1, i<=num1, i++

num1%i=0
N

num/i=1

num/i=0

FIN
Programa de for: serie de nmeros impares

Imprimir
Div 1

Div 5
Div 1
Div 2

FIN

Planteamiento del problema:


Tenemos que hacer una serie de nmeros impares utilizando la instruccin for en lenguaje
de programacin
Algoritmo:
1.
2.
3.
4.
5.

Inicio
Se introduce la variable x
Se establece el ciclo de la serie que se quiere hacer x=1;x<50;x+=2
Dentro del ciclo se imprime el contador n que vale la variable de x
Fin

Diagrama de flujo:
Inicio

1
2
X<50?

si
El contaodr n
vale

2
FIN
Codificacin:

#include <stdio.h>
#include<conio.h>
int main()
{
for(int x=1;x<50;x+=2)
{
printf("El contador n vale: %d\n",x);
}
getch();
return 0;
}
Prueba de escritorio:

x
1
3
5
7

x<50?

1<50?

3<50?

1+2

5<50?

3+2

7<50?

5+2

Anlisis de resultados

PROGRMAMA QUE VA CARGANDO

Imprimir el
resultado de x
El contador n
vale 1
El contador n
vale 3
El contador n
vale 5
El contador n
vale 7

Fin

-ALGORITMO1. INICIO
2. Dar a conocer la variables con la que se va trabajar
3. Se establece el ciclo con el cual va a trabajar carga=10; carga<=100;
carga=carga+15
4. Dentro del ciclo se imprime cargando y el valor de la variable carga
5. Se establece que cada vez que vaya a imprimir se tarde un segundo
6. FIN
DIAGRAMA DE FLUJO

CODIFICACIN
#include <stdio.h>
#include <conio.h>
#include <dos.h>
int main()
{
int carga;
carga=10;
for(carga=10;carga<=100;carga=carga+15)
{
textbackground(BLUE);
clrscr();
textcolor(YELLOW);
gotoxy(28,6);
cprintf("CARGANDO...%d %",carga);
sleep (1);
}
getch ();
return 0;
}
PRUEBA DE ESCRITORIO
Car
ga

Carga<=1
00?

10 10<=100
25 25<=100
40 40<=100
55 55<=100
70 70<=100
85 85<=100
100 100<=100
115 115<=100

Cargacarga
+15
Carga10+1
5
Carga25+1
5
Carga40+1
5
Carga55+1
5
Carga70+1
5
Carga85+1
5
Carga100+
15

IMPRIMI
R
Carga
Carga
Carga
Carga
Carga
Carga
Carga
FIN

Anlisis de resultados

PROGRAMA PARA SABER EL VALOR DE LOS COLORES DE LAS


RESISTENCIAS Y POR CUANTO MULTIPLICAR
Necesitamos un programa el cual nos indique por color el valor de la
resistencia y por cuanto multiplicar.
Prueba de escritorio
i

i<=9

i+1

imrpimir

i<=9

0+1

0 , *10^0

i<=9

1+1

1 , *10^1

.
9

i>=9

9+1

9, *10^9

10

10<=9

.
.

FIN

Codificacion
#include <stdio.h>
#include <conio.h>
main()
{
int i;
float n=1,c=10,r,na,a,v,z,m,g,b,q;
printf("Valores de los colores en las resistencias\n");

printf("\n\n\nVALOR \t");
printf("COLOR \t");
printf("3ra BANDA MULTIPLICADORA\n");
r=c*10;
na=c*100;
a=c*1000;
v=c*10000;
z=c*100000;
m=c*1000000;
g=c*10000000;
b=c*100000000;

printf("\n\t-NEGRO \t \t%.0f \n",n);


printf("\t-CAFE \t\t%.0f \n",c);
printf("\t-ROJO \t\t%.0f \n",r);
printf("\t-NARANJA \t%.0f \n",na);
printf("\t-AMARILO \t%.0f \n",a);
printf("\t-VERDE \t\t%.0f \n",v);
printf("\t-AZUL \t\t%.0f \n",z);
printf("\t-MORADO \t%.0f \n",m);
printf("\t-GRIS \t\t%.0f \n",g);
printf("\t-BLANCO \t%.0f \n",b);

for(i=0;i<=9;i++)
{
printf("\n Valor %d \t x10^ %d ",i,i);
getch();
}}

Anlisis de resultados

PROGRAMA PARA REPRESENTAR LO NUMEROS PARES DEL 2 AL 50

PLANTEAMIENTO
Dar a conocer los nmeros pares a partir del 2 hasta el 50
ALGORITMO

1.
2.
3.
4.
5.
6.

Inicio
Declarar variables i
Solicitar valor de i
Iniciar el valor i=2
calcular i+2
Incrementar el valor de i
7. Preguntar si i<=50
8. Si la premisa es falsa regresar al paso 4
9. Si la premisa es verdadera imprimir valor de
10. fin

PRUEBA DE ESCRITORIO

i<=50?

2
4
6
8

2<=50
4<=50
6<=50
8<=50

i=i+2

Imprimir i

2+2=4
4+2=6
6+2=8
8+2=10

4
6
8
10

CODIFICACION
#include<stdio.h>
#include<cstdlib>
int main (void)
{
int i=2;
printf ("\n\ndame los nmeros pares a partir del 2 al
50\n\n");
const int tope=50;
for(i=2; i<=50; i=i+2)
{
printf("%d\n",i);
}
system("pause");
}
DIAGRAMA DE FLUJO

INICIO

i
i=2

i+2

i<=50

FIN

Anlisis de resultados:

Programa para calcular los mltiplos de un nmero


Planteamiento del problem
Se realizara un programa a travs de FOR que le perimir al usuario calcular los
mltiplos de un nmero y determinar el lmite de nmeros mltiplos.

Algoritmo
1. Inicio.
2. Declarar las variables con las que se trabajara.
variable independientes (x, tope) y variable dependiente (i).
3. Se le solicita al usuario el valor de las variables (x, tope).
4. Se inicia el ciclo calculando ii+x
5. Luego se establece la premisa i<=tope?
6. Si la premisa es falsa se regresa al punto 4
7. Si la premisa es verdadera se imprime el valor de i
8. Fin del programa
Diagrama de flujo

Prueba de escritorio
x
i
tope
2
0
8
2
8

i<=tope?
0<=8?
2<=8?

ii+x
i0+2
i2+2

Imprimir
2
4

4
6
8

8
8
8

4<=8?
6<=8?
8<=8?

i4+2
i6+2

6
8
Fin

Codificacin
//Programa para calcular multiplos y determinar un limite
#include <stdio.h>
#include <conio.h>
int main(){
int x,i,tope;
printf("\n\tBienvenido al programa\n\n");
printf("Introduzca el numero del que desee multiplo\n");
scanf("%d",&x);
printf("\nDetermine el limite de los multiplos\n");
scanf("%d",&tope);
printf("\n\n");
printf("Los multiplos son\n\n");
for(i=0;i<=tope;i=i+x){
printf("\t\t%d\t\n",i);
}
getch();
return 0;
}
Analisis de resultados

Programa que muestra un decremento de nmeros de 10 a 0


Planteamiento del problema:
Se requiere la creacin de un programa capaz de mostrarnos un decremento
de nmeros en este caso se asignara un rango de 10 a 0 en donde en pantalla
se podr apreciar este decremento.

Algoritmo:
1._Inicio
2._Declarar las variables con las que se trabajara: i
3._Se asigna el valor inicial a la variable:
i
10
4._Se procede a ordenar que se requiere que la variable 1 decremento de 1 en
1
i
i-1
5._Se plantea la premisa i>=0?
6._Si la premisa es verdadera se regresa al punto 5.
7._Si la premisa es falsa se imprime el valor de i
8._Fin
Diagrama de flujo:

Inicio
i
i

i=10

i-1

Si
i>=0?

No

Fin

Prueba de escritorio:
i

i>=0?

Fin

10
9
8
7
6
5
4
3
2
1

i-1
i
10-1
i
9-1
i
8-1
i
7-1
i
6-1
i
5-1
i
4-1
i
3-1
i
2-1
i
1-1

9>=0?
8>=0?
7>=0?
6>=0?
5>=0?
4>=0?
3>=0?
2>=0?
1>=0?
0>=0?

Fin

Codificacin:
#include<stdio.h>
int main()
{
int i=10;
const int tope=0;
for (i=10; i>=0; i=i-1)
{
printf("%d\n", i);
}
printf("\nHasta pronto\n");}

Anlisis de resultados

NMEROS PRIMOS
Planteamiento del problema: Elaborar un programa que pida un nmero e imprima
todos los nmeros primos menores al nmero ingresado.
Algoritmo:
1. Inicio
2. Establecer las variables que se ocuparn limite, primo
3. Asignar primo0
4. Pedir al usuario el valor lmite
5. Asignar limite
6. Hacer una serie de 1 hasta el valor de limite
7. Hacer una serie desde 2 hasta el nmero a evaluar
8. Si el residuo desde 2 a el nmero a evaluar es diferente de cero
9. Asignar primo
10. Si primo es igual a 1, imprimir el nmero evaluado
11. Fin del programa

Prueba de escritorio:
limite

primo

i<=limite?

ii+1

a<i?

5
5
5

0
0
0

1
2
3

1 <= 5?
2 <=5?
3 <=5?

i1+1
i2+1
i3+1

5
5
5
5

0
0
0
0

4
5
5
5

4 <= 5?
5<=5?

i4+1
i5+1

2
2
2
3
2
2
3
4
5

2<1?
2<2?
2<3?
3<3?
2<4?
2<4?
3<5?
4<5?
5<5?

5<=6?

aa+1

i%a =
0?

primo1

a2+1

3%2=0?

primo1

a2+1
a2+1
a3+1
a4+1

4%2=0?
5%2=0?
5%3=0?
5%4=0?

BREAK
primo1
primo1
primo1

primo
=1?

Imprimir
(i)
2

1=1?

1=1?

Inicio

Diagrama de flujo:

limite, primo=0

limite

i<=limite?

a<i?

primo=0

no

i%a = 0?

primo = 1?

no

primo=0,
ii+1
Fin

si

si

primo=1,
aa+1

Codificacin:

Anlisis de resultados

Cdigo de Cuatro Dgitos, Hasta Tres Intentos


Planteamiento del Problema
Realizar un programa capaz de bloquear el acceso al usuario, a menos que este
ingrese un cdigo de acceso de cuatro dgitos, y as el usuario pueda ingresar a su
informacin. Pero si se llegase a equivocar de clave, tendr dos intentos ms para
volver a ingresarla, es decir, el usuario contar con tres oportunidades para poder
teclear el cdigo.
Algoritmo
1. Inicio
2. Dar a conocer las variables con las que se va a trabajar: password e i
3. Otorgar valor inicial a la variable i: i=2
4. Preguntar lo siguiente: i0?
5. Si la premisa resulta verdadera, entonces:
a) Solicitar al usuario el valor de la variable o cdigo password
b) Preguntar si el cdigo es el correcto: password=1111?
c) Si resulta verdad, entonces imprimir: Acceso a informacin
confirmado y Finalizar el proceso
d) Si resulta falso, entonces imprimir: Acceso a informacin denegado.
Dar nuevo valor a "i: i=i-1. Y volver al punto 4 del algoritmo
6. Si la premisa resulta falsa, entonces imprimir: Intntelo ms tarde y
Finalizar proceso

Diagrama de Flujo
Inicio

password, i

i=2

i0?

password

password=1111?
N

Acceso a
informacin
denegado

i=i-1

Acceso a
informacin
confirmado
Acceso a

Fin

Intntelo
ms tarde

Codificacin
#include<stdio.h>
#include<conio.h>
int main()
{
int password, i;
printf("\t\t\t\tINFORMACION PROTEGIDA\n");
for(i=2; i>=0; i--)
{
printf("Digite la contrasea (codigo de 4 digitos):\n");
scanf("%i", &password);
if(password==1111)
{
printf("Contrasea correcta\n");
printf("Acceso a informacion confirmado\n");
getch();
return 0;
}
else
{
printf("Contrasea incorrecta\n");
printf("Acceso a informacion denegado\n\n");
}
}
printf("Intentelo mas tarde");
getch();
return 0;
}

i0
?

2>0

1>0

password=1111?

1234

12341111

1111

1111=1111

Imprimir:
Acceso a
informacin
confirmado

Falsa
Falsa
Imprimir:
Acceso a
informacin
denegado

i=i-1

Acceso a
informacin
denegado

i=2-1

Acceso a
informacin
confirmado

Anlisis de resultados

Imprimir:
Intntelo
ms
tarde

Fin

Verdadera
Cierta

password

Inicio

Prueba de escritorio

Programa para calcular la media de varias listas de nmeros


Planteamiento del problema
Realizar un programa atreves de la instruccin de control de FOR , que pueda
realizar la media de varias listas de nmeros.
Algoritmo
1. Inicio
2. Declarar la variable a trabajar variables independientes (nlistas ,n
,x ),variables dependientes (cont,contlista,media,suma)
3. Se solicita el valor de la variable contalista.
4. Se inicia a s un ciclo dependiendo del valor de n, donde
contalista=1;contalista<nlista;contalista ++
5. Pedir al usuario de N , que son listan a realizar.
6. Realizar un ciclo que dependan del valor de N. conta=1;cot<=n;++cont.
7. Se solicitan los nmeros a calcular la media.
8. Imprimir el resultado de las medias.
9. Fin
#include<stdio.h>
#include<conio.h>
int main()
{
int n,cont,nlista,contlista;
float x,media,suma;
printf("Programa para calcular la media de varias listas ");
printf(" \n Cuantas listas ? \n");
scanf("%d",&nlistas);
for (contlista=1;contlista<=nlista;contlista++)
{

suma=0
printf("\n Lista numeros %d /n Cuantos numeros ?",contlita);
scanf("%d",&n);
for (cont=1;cont<=n;cont++){
printf ("x=";);

scanf("%f,&x");
}
printf("\n La suma es %f\n",media);
}
getch();
}

PROGRAMA QUE SUM N NMEROS CONSECUTIVOS.

ALGORITMO
1. Inicio
2. Declarar las variables que se van a ocupar
3. N va a ser una variables que se le asignara valor por el usuario
4. suma es una variable determinada que empezara con 0
5. i se va a ocupar para tener un control de repeticin. i=i+1
6. se realizara la suma de N nmeros
7. se preguntara si i=N.
8. Si la premisa es verdadera el resultado se imprime
9. Si la premisa es falsa se regresa al punto numero 5
10.
Fin
DIAGRAMA DE FLUJO
Inicio

N, i, suma

i=1, suma=0

i=i+1

suma = suma + i

i=N?

suma

Fin

CODIFICACION
#include <stdio.h>

#include <conio.h>
main()
{
int N;
int suma=0;
Printf(Ingresa hasta que numero quieres que se sume.\n);
scanf("%i",&N);
for(int i=1; i<=N; i=i+1)
{
suma=suma +i;
}
printf ("El resultado es: %i",suma);
}

Anlisis de resultados

PROGRAMA QUE DA TABLAS DE MULTIPLICAR DE 10 A 15


PLANTEAMIENTO DEL PROBLEMA
A travs de la metodologa para resolver un problema por computadora se
requiere realizar un programa en el que se impriman las tablas de multiplicar del
10 al 15
CODIFICACION
#include <stdio.h>
#include <conio.h>
main (){
int I, r, n;
printf(Dame la tabla de multiplicar que desead del 10 al 20);
scanf(%d,&n);
for(i=10;i<16;i++){
r=i*n;
printf(%dx%d=%d\n,i,n,r);}
getch();
return0;}

i, r, n.

i, n

(i=10;i<11;i
++)

%d x %d=%d, i, n, r.

n
10

res
10

i
1

i<=15?
1<=15

ii+1
i1+1

20

2<=15

i2+1

30

3<=15

i3+1

40

4<=15

i4+1

50

5<=15

i5+1

60

6<=15

i6+1

70

7<=15

i7+1

80

8<=15

i8+1

90

9<=15

i9+1

100

10

10<=15

i10+1

Analisis de resultados

resixn
res1x1
0
res2x1
0
res3x1
0
res4x1
0
res5x1
0
res6x1
0
res7x1
0
res8x1
0
res9x1
0
res10x
10

imprimir
1x10=10
2x10=20
3x10=30
4x10=40
5x10=50
6x10=60
7x10=70
8x10=80
9x10=90
10x10=1
00

Planteamiento del problema.

Desarrollar un programa que de a conocer el cuadrado de n nmeros en sucesin


ascendentes.
Algoritmo
1. Inicio
2. Se dan a conocer las variable a trabajar i,p,n,x
3. Se pide el valor de la variable independiente n
4. Se le indica a la variable i=1
5. Se prengunta si i<=n
6. Si la premisa es falsa x=i*i
7. Se realiza i=i+1
8. Se regresa al punto 5
9. Si la premisa es cierta imprime resultado
10. Fin
Diagrama de flujo
Inicio

n,i,x

n,i=1

i<=n?
no

si
X=i*i

Fin

I=i+1

Prueba de escritorio:
n

i<=n?

x=i*i

i=i+1

x=1*1

Imprimir(
x)
1

X=2*2

X=3*3

//tabla de n numeros elevados al cuadrado


#include<stdio.h>
#include<conio.h>

int main()
{
int i,;
float n,x;
printf("\n\tingrese hasta que numero decea elvar al cuadrado:");
scanf("%f",&n);
for(i=1;i<=n;i++)
{

Fin

fin

x=i*i;
printf("%f\n",x);
}
return 0;
}

Analisis de resultados

PROGRAMA PARA OBTENER LOS MULTIPLOS DE 7 HASTA N VECES


Planteamiento: desarrolla un programa para obtener los mltiplos de 7 hasta n
veces
1. Inicio
2. Determinar las variables con las que se trabajaran
i,n
3. Se solicitan los valores a las variables independientes
n
4. Se dan los valores a las siguientes
variables
i=0
5. Se procede a determinar el valor de
i
i
i+7
6. Se plantea la premisa i n?
7. Si la premisa es verdadera regresar
al punto no.5
8. Si la premisa es falsa se imprime el
valor de i
9. Fin
Diagrama de flujo:

Prueba de escritorio

35

14

21

28

35

i+7

0+7

7+7

14+7

21+7

35+7

Codificacin
#include <stdio.h>

i+7

i n?

Fi
n

7 35?
14 35
?
21 35
?
28 35
?
35 35
?
42 35
?

fin

#include <conio.h>
int main()
{
int i, n;
printf("\t\tPROGRAMA PARA OBTENER LOS MULTIPLOS DE 7 HASTA N\n");
printf("\nDame el valor de hasta donde quieres los multiplos:\n");
scanf("%d",&n);
for(i=0;i<=n;i=i+7)
{
printf("\n%d",i);
}
}

Anlisis de resultados

Programa que muestra una tabla de variaciones de horario en ciudades de


Amrica (For).
Algoritmo:
1.- Inicio.
2.- Se dan a conocer las variables con las que se va a trabajar: i, la, mx, ny, ba, sp.
3.- Se otorga el valor inicial a la variable i, i=1.

4.- Se pregunta si i<=24?


5.- Si la premisa es verdadera se procede a la obtencin de:
la
la+1
mx
la+2
ny
la+3
ba
la+4
sp
la+5
6.- Se imprimen los valores de la, mx, ny, ba, sp.
7.- Se otorga un nuevo valor a i, i=i+1 y regresar al punto 4.
8.- Si la premisa es falsa, se finaliza el proceso.

Diagrama de flujo:
INICIO

i, la, mx, ny,


ba, sp

i=1

SI

la
mx
ny
ba
sp

i<=24?

la+1
la+2
la+3
la+4
la+5

la, mx,
ny, ba, sp

NO

FIN

i=i+1

Prueba de escritorio:
i

la

mx

ny

ba

sp

i=24?

1
2

24

1
2

24

3
4

26

4
5

27

5
6

28

6
7

29

1=24?
2=24?

24=24?

la
la+1
1
2

24

mx
la+2
3
4

26

ny
la+3
4
5

27

ba
la+4
5
6

28

Codificacin:
/*Variaciones de horas*/
#include <stdio.h>
#include <conio.h>
main ()
{
int i;
float la, mx, ny, ba, sp;
printf ("Programa de variaciones de horario en ciudades de America\n\n");
for (i=1; i<=24; i++)
{
la=la+1;
mx=la+2;
ny=la+3;
ba=la+4;
sp=la+5;
printf ("L.A.\t\t");
printf ("MEXICO\t\t");
printf ("N.Y.\t\t");
printf ("B.AIRES\t\t");
printf ("S.PAULO\t\t");
printf ("%f\t", la);
printf ("%f\t", mx);
printf ("%f\t", ny);
printf ("%f\t", ba);
printf ("%f\t", sp);
}

sp
la+5
6
7

29

i=i+1
i=1+1
i=2+1

FIN
FIN

FIN

getch ();
return 0;
}

Anlisis de resultados

Programa con
for desarrolla
una serie de dos nmeros mientras uno va incremento hasta llegar al
nmero que el usuario pida
Planteamiento
Se necesita un programa que desarrolle un incremento de un nmero hasta el
ciento del mismo nmero

Algoritmo
1) Inicio
2) Se declaran las variables que se van a utilizar n, i(variables
independientes), res(variables dependientes)
3) Se pide el valor de i,i2 y n
4) Se asignan valores a i,i2 y n donde i, i2y n
5) Se comienza el for donde for (i<=n;n<=res;i++) donde i es menor o
igual a n, n es menor que el resultado y i va incrementando
6) Se calcula el valor del resultado donde res=i+i2
7) Se imprimen los dos nmeros para ver cmo se suman y el resultado
8) Fin

Diagrama de flujo

Inicio

Codificacin

/*--------Desarrolla una serie de dos numeros mientras uno va incremento hasta


llegar al numero que el usuario pida------------*/
#include <stdio.h> /*Biblioteca para entrada y salida de datos*/
#include <conio.h> /*biblioteca para entrada y salida de datos*/
N, i, res, i2
main() /*Inicio del Metodo principal*/
{ /*Inicio del programa*/
int n,res,i,i2; /*declaracion de variables*/
printf("-------Desarrollar una serie de numeros en el rango del 1 al
200-------"); /*Titulo del programa*/
printf("\n\t\tQue numero
desarrollar?\n"); /*se le pide el numero
I, i2,quieres
n
que quiere el usuario*/
scanf("%d",&i); /*se asigna el valor que se le va a incrementar*/
printf("\t\t\tCual sera el incremento de la serie?\n");
scanf("%d",&i2);
printf("\t\tHasta que numero quieres llegar?\n"); /*Se pide su
incremento en la serie*/ I, i2, n
scanf("%i",&n);
for (i<=n;n<=res;i++) /*se comienza el for y sus condiciones*/
{ /*inicio del for*/
res=i+i2; /*metodo que realizara el for*/
i<=n;n<=res;i++
printf("%d",i); /*se imprime el valor de la variable i*/
printf("+");
printf("%d",i2);
printf("="); /*se imprime el signo igual*/
printf("%d",res); /*se imprime el resultado*/
printf("\n"); /*da un salto de renglon*/
} /*fin del for */
getch(); /*lee u obtiene un solo caracter ingresado por el teclado*/
return 0; /*retorna losResi+i2
valores a 0*/
} /*fin del programa*/

Prueba de escritorio
i

I2

100

200

(i<=n;res<=n;i+
I+i2=res
+)?
2<=100;100<=res
;2++

Fin
3<=200;200<=res
;3++

Resi+i2

Imprimir

Res2+2

2+2=4
3+2=5
.
.
.
99+2=10
1
3+3=6
4+3=7
.
.

Res3+3

Fin

10

10

300

10=<300;300<=re
s;10++

Res10+
10

.
198+3=2
01
10+10=2
0
11+10=2
1
.
.
.
291+10=
300
Fin

Anlisis de resultados

/* Programa que simule el lanzamiento de una moneda las veces que el usuario
desee, posteriormente har un recuento de las veces que ha salido tanto cara
como cruz*/

Algoritmo:
1.- inicio
2.-se da a conocer la variable x,veces,cara=0,cruz=0
3.- se pregunta cuantas veces se lanza la moneda
4.- se le pide al usuario el nmero de valores
5.- i es igual o mayor al nmero de veces y va aumentado
6.- x genera nmeros aleatorios con la formula x=rand()%(2)
7.- si x es igual a 1 es cara y va en aumento
8.- si no es cruz y tambin va en aumento
9.- se imprime el recuento
10.- fin

Diagrama de flujo
inici
x,veces

cara=0,cruz=
0
Cara++

i=1;i<=veces;i
++
si
x=rand()
%(2)

X==1

Cruz++
recuento

Codificacin

fin

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void main(){
int x,veces,cara=0,cruz=0;
srand((unsigned)time(NULL));
printf("Pruebe a lanzar la moneda.\n\n");
printf("Cuantas veces?: ");
scanf("%d",&veces);
for(int i=1;i<=veces;i++){
x=rand()%(2);
if(x==1){
printf("\nCara\n\n");
cara++;
}else{
printf("\nCruz\n\n");
cruz++;
}
}
printf("\n\tRecuento\n\n");
printf("La cara ha salido %d veces.\n",cara);
printf("La cruz ha salido %d veces.\n\n",cruz);
printf("Gracias por utilizar este programa.\n\n");
}
vec I<=vece
I++
X==1
x=rand()
%(2)
es
s
2
i<=2
2++
X=1
cara
X=0

x1

recuento

cruz

1 cara
1cruz

Anlisis de resultados:

Tablas de multiplicar (Cualquier numero con limite indicado)


Planteamiento del problema
Realizar un programa que muestre la tabla de multiplicar de X numero hasta cierto
limite y que el usuario proporcione ambos datos
Algoritmo
1. Inicio
2. Dar a conocer las variables a utilizar: numero,tabla,hasta
3. Solicitar valores de: tabla, hasta.
4. Asignar valor a: numero 0
5. Establecer condicin: numero<=hasta
6. Establecer incremento: numero+1
7. Si no se cumple la condicin ve al paso 10
8. Si se cumple la condicin comienza el ciclo
9. Imprimir: ( tabla x numero = tabla*numero ) regresa al paso 7
10. Fin

Diagrama de flujo
Inicio

numero,hasta,tabla

hasta,tabla

numero=0

numero<=hasta
NO
SI

tabla x numero =
tabla*numero
Fin

Codificacin
#include<stdio.h>
#include<conio.h>
int main()
{
int numero,tabla,hasta;
printf("\t\tTablas de multiplicar\n");
printf("\tEscribe de cual numero se mostrara la tabla\n");
scanf("%d", &tabla);
printf("\tEscribe hasta que numero multiplicar\n");
scanf("%d", &hasta);
for(numero=0;numero<=hasta;numero++)
{
printf("\t %d x %d = %d \n", tabla,numero,tabla*numero);
}
getch();
return 0;
}

Prueba de escritorio
numer Tabla hasta
o
0
2
3
1
2
3
2
2
3
3
2
3
4
2
3

numero<=hasta?

Imp: tabla x numero x tabla*numero

SI
SI
SI
SI
NO

2x0=0
2x1=2
2x2=4
2x3=6

Anlisis de resultados

Planteamiento del problema:


Utilizando la metodologa para resolver problemas por computadora y con el uso
de la instruccin de control for, desarrollar un programa con el cual se pueda
realizar una tabla de bases, partiendo del exponente 1 hasta el 10.
Algoritmo:
1. Inicio
2. Declarar variables i, e, a incio
3. Solicitar valor de e
4. Iniciar valor de i=0
5. Calcular a=ei
i, e, a
6. Incrementar valor de i+1
7. Preguntar si i<=10
8. Si la premisa es falsa regresar al paso 4
9. Si la premisa es verdaderae imprimir valores de a
10. Fin
c) Diagrama de flujo:
a=ei

i+1

i<=10

fin

Si

Prueba de escritorio
e
i
i<=10?
6
0
0<=10?
1
1=10?
2
2=10?

No

i=i+1
i=0+1
i=1+1
i=2+1

Codificacin
//Problema para imprimir la tabla de una base
#include<stdio.h>
#include<conio.h>
#include<math.h>
main()
{
int e, a;
printf("ingresa la base que deseas \n");
scanf("%d",& e);
for(int i=1; i<=10; i++)
{
a=pow (e,i);
printf("%d \n",a);
}
getch();
}
Anlisis de resultado

a=ei
a=60
a=61
a=62

Imprimir a
1
6
36

PROGRAMA PARA CALCULAR EL VOLUMEN DE UNA ESFERA CUANDO SU


RADIO VA DE 1 A 100
1.-INICIO
2.-SE DAN LAS VARIABLES A TRABAJAR radio, volumen
3.-con la sentecia for si el radio<=100 el radio ira aumentando
4.-imprime los valores del volumen hasta que el usuario lo desee
5.-fin
DIAGRAMA DE FLUJO
INICIO

RADIO,
VOLUMEN

RADIO=0;RADIO<
=100;RADIO++

VOLUMEN=(4*3.14*(r
adio*radio*radio))/3

IMRIME EL VALOR
DEL VOLUMEN
FIN

PRUEBA DE ESCRITORIO
RADIO
0
1
2

RADIO<=
100
0<=100
1<=100
2<=100

RADIO+
+
0++
1++
2++

Volumen=(4*3.14*(radio*radio*r
adio))/3
Volumen=(4*3.14*(0*0*0))/3
Volumen=(4*3.14*(1*1*1))/3
Volumen=(4*3.14*(2*2*2))/3

Imp.vol
0
4
33

CODIFICACIN
#include <stdio.h>
#include <conio.h>
main (void)
{
int volumen,radio;
printf("PROGRAMA PARA CALCULAR EL VOLUMEN DE UNA ESFERA CUANDO EL
RADIO VA DE 1 A 100 \n");
for( radio=0;radio<=100;radio++)
{
volumen=(4*3.14*(radio*radio*radio))/3;
printf("%d \t",volumen);
getch();
} }

Analisis de resultados

PROGRAMAS CON WHILE


PROGRAMA PARA REALIZAR UNA SERIE DE DOS EN DOS HASTA N
VECES (while)
Planteamiento: Utilizando la metodologa de resolucin de un problema a travs
de un programa de computadora, se desea realizar un programa para realizar una
serie de dos en dos hasta N veces.
Algoritmo:
1) Inicio
2) Declarar las variables con la que se va a trabajar: n, i.
3) Se solicita el valor de la condicin inicial
i
0
4) Se solicita el valor de la variable
n
5) Se procede a la obtencin de la suma
i
i+2
6) Se plantea la premisa i n?
7) Si es verdadera prepararse para un proceso ms
7.1) regresar al punto no.4
8) Si es falsa se imprime el valor de i
9) Fin del proceso
Diagrama de flujo:

Prueba de escritorio:
i

i n?

imprimir i

i +2

0 9?

0+2

2 9?

2+2

4 9?

4+2

6 9?

6+2

8 9?

8+2

1
0

10 9?

Fin

Codificacin para realizar una serie de dos en dos hasta n veces


#include <stdio.h>
#include <conio.h>
int main()
{
int i=0;
float n;
printf("\t\tPROGRAMA PARA REALIZAR UNA SERIE DE DOS EN DOS HASTA N
VECES\n");
printf("Hasta que numero quieres la serie:\n");
scanf("%f",&n);
while(i<=n)
{

printf("\t%d\n",i);
i=i+2;
}
return 0;
}
Anlisis de resultado:

Planteamiento
Calcula la Potencia de un nmero usando while

Diagrama de flujo
inici
b,exp,i=1,r
esultado=1
I+1

b=2
exp=1

i<=ex
p

resultad
o

fin

Codificacin
#include<conio.h>
#include<iostream.h>
void main ()
{
clrscr();
int b;
int exp;
int i=1;
double resultado=1;
cout<<"Ingrese Base:";
cin>>b;
cout<<"Ingrese Exponente:";
cin>>exp;
while (i<=exp)
{
resultado=resultado*b;
i++;
}
cout<<"El Resultado Es:"<<resultado;
getch();
}

exp

i=1
I=1

resultado
=1
resultado
=2

i<=exp

i++

I<=2

I+1

resultad
o
2

SUMA DE LOS MULTIPLOS DENTRO DEL RANGO DE 100


Planteamiento del Problema
Por medio de este programa se pretende obtener el valor de la suma de los mltiplos de
un numero dado por el usuario, donde los mltiplos no pasen del nmero 100.
Algoritmo
1
2
3
4
5
6

7
8

Inicio
Se declaran las variables con las que se va a trabajar; num, sum, i
Se le pide al usuario el valor de num
Establecemos valores iniciales
sum0
inum
Preguntamos si i<=100?
Si la premisa es verdadera, pedimos que realice la operacin y que se prepare
para otra operacin:
sumsum+i
ii+num
Si la premisa es falsa pedimos que imprima sum
Fin del programa

Diagrama de Flujo
INICIO

num, sum, i

num
inum
sum0

i<=100?

sumsum+i

SI

ii+num

NO

sum

FIN

Codificacin
#include<stdio.h>
#include<conio.h>
int main ()
{
int num,sum,i;
printf("\t Dame el numero para obtener sus multiplos:\t\t");
scanf("%d",&num);
sum=0;
i=num;
while(i<=100)
{
sum=sum+i;
i=i+num;
}
printf("\t El valor de la suma total es:\t\t%d",sum);
getch();
}
Prueba de Escritorio
i
2
4
6
---

10
0
10
2

nu
m
2

sum

sum
0

inu
m

i<=100?

0
2
8
-----------

2<=100
4<=100
---------------------------------------------------------------------

245
0
255
0

100<=100
102<=100

sumsum+
i
0+2
2+4
--------------------------------------------------------------------

2450+100

ii+num

Imprimir sum

2+2
4+2
--------------------------------------------------------------------------------------100+2
2550

Fin del
programa

Anlisis de resultados

Tabla de equivalencia de medidas de presin


Planteamiento del problema

Desarrollar un programa que visualice la equivalencia entre las medidas de


presin: atmosferas, mm de Mercurio, cm de Mercurio y Nm^2
Algoritmo

1.
2.
3.
4.
5.

Inicio
Se declaran las variables a utilizar: atm, Hg, HG, Nm.
Se asigna el valor a atm. atm=1.
Se establece la condicin: atm<=20
Mientras se cumpla condicin se efectan las operaciones:
Hg=760*atm;
HG=76*atm;
Nm=101300*atm;
6. Se imprimen los valores de atm, Hg, HG, Nm.
7. El valor de atm aumenta 1 unidad cada proceso.
8. fin
Diagrama de flujo
Inicio

atm,Hg,HG,Nm

atm=1
atm<=20

Hg=760*atm;
HG=76*atm;
Nm=101300*atm;
fin
atm,Hg,HG,Nm

atm++

Codificacin
/*Programa para realizar una tabla de equivalencias de presion*/
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
main()
{
system("COLOR F0");
int atm=1,Hg,HG,Nm;
printf("\t\tTABLA DE EQUIVALENCIAS DE PRESION\n\n");
printf("\tatm\t\tmm de Hg\tcm de Hg\t Nm^2\n");
while(atm<=20)
{
Hg=760*atm;
HG=76*atm;
Nm=101300*atm;
printf("\t%3d\t\t%5d\t\t%5d\t\t%9d\n",atm,Hg,HG,Nm);
atm++;
}
getch();
return 0;
}
Prueba de escritorio
atm
Hg
HG
Nm
atm<=20
imprimir
atm++
1
760
76
101300
1

760

76

101300

1<=20

1++
2
1520
152
202600
2

1520

152

202600
2++
3

2<=20

2280
228
303900
3

2280

228

303900

3<=20

3++
4
3040
304
405200
4

3040

304

405200

4<=20

4++
5
3800
380
506500
5

3800

380

506500

5<=20

5++
6
4560
456
607800
6

4560

456

607800

6<=20

6++
7
5320
532
709100
7

5320

532

709100

7<=20

7++
8
6080
608
810400
8

6080

608

810400

8<=20

8++
9
6840
684
911700
9

6840

684

911700
9++
10
7600

9<=20

760
1013000
10

7600

760

1013000

10<=20

10++
11
8360
836
1114300
11

8360

836

1114300

11<=20

11++
12
9120
912
1215600
12

9120

912

1215600

12<=20

12++
13
9880
988
1316900
13

9880

988

1316900

13<=20

13++
14
10640
1064
1418200
14

10640

1064

1418200

14<=20

14++
15
11400
1140
1519500
15

11400

1140

1519500

15<=20

15++
16
12160
1216
1620800
16

12160

1216

1620800
16++

16<=20

20
15200
1520
202600
20

15200

1520

202600

20<=20

20++
21

21<=20
fin del proceso

Programas con While Francisco Javier Monroy


Rodrguez
Calcular la Potencia de un nmero
Planteamiento del problema
Se necesita un programa que calcule la potencia de un nmero cualquiera a
una potencia n.

Algoritmo
1) Inicio
2) Se declaran las variables que se van a utilizar b, exp, i=1 (de tipo
entero), resultado= 1(de tipo doubl)
3) Se pide el valor de la base del numero
4) Se asigna el valor a la base b
5) Se pide el valor del exponente del numero
6) Se asigna el valor al exponente exp
7) Mientras i<= exp;
8) El resultado resultado* b, cuando i++
9) Imprimir el valor del resultado
10)
Fin

Diagrama de flujo

Inicio

b, exp, i=1,
resultado=1;

B,exp

i<=exp

Si
resultado=resultado
*b;

I++;

No

Resultado

Fin

Codificacin
#include <conio.h>
#include <stdio.h>
main()
{
int b;
int exp;
int i=1;
double resultado=1;
printf("\t\tIngrese la base del numero\n");
scanf("%d",&b);
printf("\t\tIngrese el exponente del numero\n");
scanf("%d",&exp);
while(exp>=i)
{
resultado=resultado*b;
i++;
}
printf("\t\t\tEl resultado es:%g",resultado);
getch();
}

Prueba de escritorio
b

exp

i=1

resultado
=1

exp>=
1?

Resultadoresultado*
b

Imprim
ir

Fin

2>=1

3>=1

3>=1

2>=1

3>=1

Anlisis de resultados

Resultadoresultado=
1*2
Resultadoresultado=
1*3
Resultadoresultado=
1*3
Resultadoresultado=
1*2
Resultadoresultado=
1*2

Fin

27

Fin

16

Fin

25

Fin

Fin

Programa que calcula la suma de 10 numeros cuales quiera as como su


promedio.
Planteamiento del problema:
Se requiere la creacin de un problema implementado a el lenguaje de
programacin C++ en donde al momento de que el usuario ingrese 10 numeros
cuales quiera este realice los clculos correspondientes a la suma total de estos
nmeros asi como el promedio de estos mismos.
Algoritmo:
1._Inicio.
2._Se da a conocer las variables con las cuales se va a trabajar: Suma, n, num, c.
3._Se asigna el valor de la variable c=0.
4._Se pide al usuario que ingrese los 10 valores correspondientes.
5._Se realiza la siguiente premisa c<=9?
6._Si la premisa es verdadera se procede a realizar la suma correspondiente.
7._Se imprime el resultado de la suma.
8._Se procede a realizar el calculo del promedio y se imprime el resultado.
9._Fin
Diagrama de flujo:

Inicio

Suma, n, num,
c

C=0
No

C<=9?

Si

Promed
io

Promedi
o Total

Suma

Total
de
Suma

Fin

Prueba de escritorio:
C

10
9
8

#
Proporciona
dos por el
usuario
32
34
15

Suma

Promedio

Imprimir
Suma y
Promedio

81

27

81 y 27

Algoritmo:
#include<iostream>
using namespace std;
main ()
{
cout<<"Programa que realiza la suma de 10 numeros cuales quiera y calcula el
promedio";
int n, num,c=0,suma=0;
while(c<=9)
{
cout<<"\n\nIngresar numero:";
cin>>num;
suma+=num;
c=c+1;
}
cout<<"\nLa suma de los numeros es:"<<suma;
cout<<"\nEl promedio es:"<<suma/num;
}
Analisis de resultados:

Programa que imprime una frase motivadora repetitivamente


1.- Inicio
2.- Se dan a conocer las variables con las que se van a trabajar i,a,b
3.- Se estableces los valores a las variables i, i1
4.- Se solicita el valor de la variable a
5.- se solicita una frase inspiradora para la persona
6.- Se imprime esa frase mientras i<=a
7.- Se incrementa el valor de i hasta que sea igual a a
8.- Cuando se cumpla la condicin acaba el proceso
9.- Fin
Codificacion
#include<conio.h>
#include<stdio.h>
main
{
int a, i=1
char b [100]
printf(Escribe una frase que te inspire);
scanf(%s,b);
printf(Cuantas veces quieres ver tu frase?);
scanf(%d,&a);
while(i<=a)
{
printf(\t%s\n,b);
i++;
}
getch();
return 0;
}
Prueba de escritorio
a
5

i
1

i<=a?
1<=5

2<=5

imprimir
Well done
its better
than well
said
Well done
its better
than well
said

I=i+1
I=1+1

I=2+1

3<=5

4<=5

5<=5

6<=5

Well done
its better
than well
said
Well done
its better
than well
said
Well done
its better
than well
said

I=3+1

I=4+1

I=5+1

Diagrama de flujo
inicio

a,i,b

i=1

a,b

i=i+1

i<=a?

Programas de While
Serie en incremento desde 0 hasta N
Planteamiento del Problema
Realizar un programa capaz de imprimir una serie de nmeros ordenados de
forma ascendente, de uno en uno, desde cero hasta N nmeros.
Algoritmo
1.
2.
3.
4.
5.
6.

Inicio
Dar a conocer las variables a utilizar: N e i
Dar valor inicial a la variable i: i=0
Pedir a usuario el valor de la variable N
Preguntar lo siguiente: iN?
Mientras sea verdad, entonces:
a) Imprimir i
b) Reajustar valor de i: i=i+1
c) Volver al punto nmero 5 del algoritmo
7. Si es falso, entonces fin del proceso
Diagrama de Flujo

Inicio

N, i

i=0

iN?
S

i=i+

No

Fin

Codificacin
#include<stdio.h>
#include<conio.h>
int main()
{
int i=0, N;
printf("\t\t\t\tINCREMENTO DESDE 0 HASTA 'N'\n");
printf("Ingresa el limite de la serie: ");
scanf("%i", &N);
while(i<=N)
{
printf("%i\n", i);
i=i+1;
}
getch();
return 0;
}
Prueba de Escritorio
Verdadero
iN
N i
?
Imprimir i i=i+1
Inicio
5
0
0<5
0
i=0+1
1
1<5
1
i=1+1
2
2<5
2
i=2+1
3
3<5
3
i=3+1
4
4<5
4
i=4+1
5
5=5
5
i=5+1
6
6>5

Falso

Fin

Programa que calcula el promedio de 3 calificaciones para 5 alumnos


Algoritmo
1.- Inicio
2.-Se declaran las variables a utilizar calf1, calf2, calf3,pf, c
3.-se le pide al usuario que asigne al valor de c, c=0
4.-mientras c<=4, repetir la operacion
5.-cuando c>=4 se detiene el proceso
6.-Fin
Diagrama de flujo
INICIO

Calf1,calf2,calf3,pf
,c
C=0

C<=4

Resultado, pf
C=c+1

FIN

Prueba de escritorio
C=0
=c+1

Calf1

Calf2

Calf3

Pf=(calf1+calf2+ca
lf3)/3

C<=4

Imprimir
pf

C=0
C=0+1
C=1+1
C=1+2
C=1+3

5
7
8
6
3

5
7
7
9
10

5
7
5
7
8

Pf=(5+5+5)/3
Pf=(7+7+7)/3
Pf=(8+7+5)/3
Pf=(6+9+7)/3
Pf=(3+10+8)/3

Codificacion
#include<iostream>
using namespace std;
int main()
{
int calf1,calf2,calf3,c=0,pf;

while(c<=5)
{
cout<<"\n 1er calificacion:";
cin>>calf1;
cout<<"2da calificacion:";
cin>>calf2;
cout<<"3ra calificacion:";
cin>>calf3;
pf=(calf1+calf2+calf3)/3;
cout<<"el promedio es:"<<pf<<"\n";
c++;
}
}

0<=4
1<=4
2<=4
3<=4
4=4

5
7
6.6=7
7.3=7
7

Programas con do while


PROGRAMA PARA CALCULAR UN NMERO PERFECTO (do- while)
Planteamiento: Utilizando la metodologa de resolucin de un problema a travs
de un programa de computadora, se desea calcular un nmero perfecto.
Algoritmo:
1) Inicio
2) Declarar las variables con la que se va a trabajar: n, i, suma.
3) Se solicita el valor de la condicin inicial
suma
0
i
1
4) Se solicita el valor de la variable
n
5) Se procede a la obtencin de la suma
i
i+1
6) Se hace la relacin si n%i==0
7) Se hace la relacin de suma==n
8) Se hace la relacin de suma+=i
9) Se plantea la premisa i n?
10)
Si es verdadera prepararse para un proceso ms
7.1) regresar al punto no.5
11)
12)

Si es falsa se imprime el valor de i ya sea si es perfecto o no


Fin del proceso

Codificacin para realizar una serie de dos en dos hasta n veces


#include <stdio.h>
#include <conio.h>
int main()
{
int n,i,suma;
{
printf("\t\t PROGRAMA PARA CALCULAR UN NUMERO PERFECTO\n");
do
{
printf("Dame el valor del numero:\n");
scanf("%d",&n);
suma=0;
for(i=1;i<n;i++)
if(n%i==0)
suma+=i;

if(suma==n)
printf("el numero %d es perfecto\n",n);
else
printf("\nEl numero %d no es perfecto\n\n",n);
printf("________________________________________________\n");
}
while(n>0);
return 0;
}
}

Diagrama de flujo:

Prueba de escritorio:
num

inum?

ii+1

i++

n%i==0

suma==n

suma
+=i

Imprimir

16?

i1+1

0+1

6/1=6

3+2+1=6

El nmero es

26?

i2+1

1+1

6/2=3

36?

i3+1

2+1

6/3=2

46?

i4+1

3+1

6/4=//

56?

i5+1

4+1

6/5=//

66?

i6+1

6/6=1

76?

Anlisis de resultado:

Planteamiento:
Programa que suma los diez primeros nmeros enteros
Diagrama de flujo
inici
num=0,su
ma=0

perfecto

Fin

num++

suma=suma
+n

num<
=10

suma

fin

Codificacin
#include <stdio.h>
#include <conio.h>
void main()
{
int num=0;
int suma=0;
do
{
suma = suma + num;
num++;
} while(num<=10);
printf(Suma = %d\n,suma);
system(pause);
}

num=
0
0

sum=
0
1

Suma=suma+
num
Suma=1+0
Suma=1+1
Suma=1+2
Suma=1+3
Suma=1+4
Suma=1+5
Suma=1+6
Suma=1+7

Num++
Num+1

Num<=1
0
Num<=0

resultad
o
1

Num+1

Num<=1

Num+1

Num<=2

Num+1

Num<=3

Num+1

Num<=4

Num+1

Num<=5

Num+1

Num<=6

Num+1

Num<=7

TABULACIN DE LA ECUACIN a=2n+1 DE 2-150


Planteamiento del Problema
Se quiere visualizar la tabulacin de la ecuacin a=2n+1 de los valores 2 hasta 150
Algoritmo
1.
2.
3.
4.
5.
6.
7.
8.
9.

Inicio
Se declaran las variables con las que se va a trabajar; n, a
Se establece el valor inicial n2
Calcula:
a(2*n)+1
Imprimimos n, a
Indicamos que se prepare para otro proceso nn+1
Preguntamos si n<=150?
Si la premisa es verdadera pedimos que regrese al punto 4
Si la premisa es falsa fin del programa

Diagrama de Flujo

INICIO

n, a

n2

a(2*n)+1

SI

n, a

nn+1

n<=150?

NO
Codificacin

FIN

#include<stdio.h>
#include<conio.h>
int main()
{
int a,n;
printf("\tTabulacion de la ecuacion (a=2n+1)\t\n");
n=2;
do
{
printf("\tn");
printf("\t\t a");
a=(2*n)+1;
printf("\n\t %d \t\t %d\n",n,a);
n++;
}
while(n<=150);
getch();
}

Prueba de Escritorio
a

------251

4
125

-------

126

301

150

n2

-----------

a(2*n)+1

imprimir

nn+1

n<=150?

(2*2)+1

2+1

3<=150

(2*3)+1

3+1

4<=150

----------------

------------251

----------

-----------------

125+1

126<=150

-----------

---------

----------------

301

150+1

151<=150

(2*125)+1
----------

------------------(2*150)+1

Fin

Plana de nmeros
Planteamiento del problema

Desarrollar un programa que muestre un nmero las veces que el usuario desee.
Algoritmo

1.
2.
3.
4.
5.
6.

Inicio
Declarar las variables a utilizar: p, c.
Se solicitan los valores de p y c.
Asignamos el valor a c. c=1.
Se manda a imprimir el nmero las veces que el usuario lo solicito.
Hasta que se cumpla la premisa c>0 se resta 1 al nmero que solicito el
usuario.
7. Fin
Diagrama de flujo
Inicio

p, c

p, c

c=1
p

c>0
c++

fin

Codificacin
/*Programa para realizar una plana de numeros*/
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
main()
{
system("COLOR F0");
int p, c=1;
printf("\tPLANA DE NUMEROS \n\n");
printf("De que numero quieres hacer su plana? \t");
scanf("%d", &p);
printf("cuantas veces quieres repetir el numero? \t");
scanf("%d", &c);
printf("\n\n");
do
{
printf("%d\t", p);
c--;
}
while(c>0);
getch();
return 0;
}
Prueba de escritorio
p

imprimir

c--

c>0?

15

5
4

15
15

5-4--

5>0
4>0

3
2

15
15

3-2--

3>0
2>0

1
0

15

1-fin del
proceso

1>0
0>0

Planteamiento del programa


Se necesita un programa en el cual se calcule si un nmero cualquiera es un
numero primo o compuesto.

Algoritmo
1) Inicio
2) Se declaran las variables que se van a utilizar N,C=0 (variables de tipo
entero)
3) Hacer lo siguiente
4) Se pide el valor del numero
5) Se asigna el valor del numero N
6) Mientras 0>=N
7) Si C==1 imprimir el numero es primo
8) Sino imprimir el numero es compuesto
9) Fin

Diagrama de flujo
Inicio

N,C=0;

N;

N<=0

C==1
NO

SI

NO

El nmero
es
compuest
o

SI
El nmero
es primo

Fin

Codificacin
#include <stdio.h>
#include <conio.h>
int main ()
{
int N;
int C=0;
do
{
printf("Ingrese un numero ");
scanf("%d",&N);
}
while(N<=0);
if(C==1)
{
printf("El numero es primo");
}
else
{
printf("El nuemero es compuesto");
}
getch();
}

Prueba de escritorio
N
2

C=0
-

N<=0?
2>0

C==1?
No

3>0

Si

4>0

No

-3
.
.
.
2

.
.
.
-

-3<=0
.
.
.
2>0

No
.
.
.
No

Imprimir
El
numero
es
compues
to
El
numero
es primo
El
numero
es
compues
to
Ingrese
el
numero
.
.
.
El
numero
es
compues

Fin
Fin

Fin

Fin

.
.
.
Fin

5>0

Si

to
El
numero
es primo

Fin

Programa que muestra el abecedario en pantalla


Planteamiento del problema:
Se requiere la realizacin de un programa capaz de mostrar en pantalla el
abecedario arbigo mediante el uso de la instruccin de control Do-while ser
posible implementarlo en el lenguaje de programacin C++.
Algoritmo:
1._Inicio.
2._Se procede a indicar las variables a trabajar: a y z.
3._Se indica que el incremento comenzara a partir de la letra a.
4._Se procede a declarar un incremento tal que avanze una a una la letra del
abecedario.
5._Se imprime en pantalla el abecedario obtenido.
6._Fin
Diagrama de flujo:

Inicio

A,Z

A++

Abecedar
io

Fin

Prueba de escritorio:
A

A++
A
B
C
D

Imprimir

Z
Algoritmo:
#include<iostream>
using namespace std;
main ()
{
char car='a';
do
{ cout<<car<<"";
car++;
}
while (car<='z');
return 0;
}
Analisis de resultados:

Programa de un contador que va de 1 hasta un nmero a seleccionar

1.- Inicio
2.- Se dan a conocer las variables con las que se van a trabajar
3.- Se estableces los valores a las variables i1
4.- Se solicita el valor de la variable a
5.- Se hace la operacin i=i+1
6.- Se pregunta i<=1?
7.- Si resulta falso se regresa al punto 5 y se imprime ese resultado
8.- Si es verdadero se imprime ese resultado
9.- Fin
Codificacion
#include<conio.h>
#include<stdio.h>
main
{
do
}
int a, i=1
printf(HASTA QUE NUMERO QUIERES QUE FINALICE EL CONTADOR);
scanf(%d,&a);
while (i<=a)
{
printf(%d/n,i);
i++
}
getch();
return 0;
}
Prueba de escritorio
a
5

i
1
2
3
4
5
6

i<=a?
1<=5
2<=5
3<=5
4<=5
5<=5
6<=5

Diagrama de flujo

imprimir
1
2
3
4
5

I=i+1
I=1+1
I=2+1
I=3+1
I=4+1
I=5+1

i<=a?
F

inicio
a
i=1
a,i

i
i=i+1

Calcular Mnimo Comn Mltiplo


Planteamiento del Problema

Realizar un programa que calcule el mnimo comn mltiplo de dos nmeros y


repita esta misma operacin para otros dos nmeros hasta cuantas veces el
usuario lo desee.
Algoritmo
1. Inicio
2. Dar a conocer las variables a utilizar: N1, N2, menor, mayor, res,
mcm, opc
3. Hacer lo siguiente mientras [opc2]
a) Pedir a usuario el valor de las variables N1 y N2
b) Preguntar lo siguiente: N1>N2?
c) Si la premisa es verdadera, entonces:
I.
Dar valor a la variable mayor: mayor=N1
II.
Dar valor a la variable menor: menor=N2
d) Si la premisa es falsa, entonces:
I.
Dar valor a la variable mayor: mayor=N2
II.
Dar valor a la variable menor: menor=N1
e) Mientras [menor>0], realizar lo siguiente:
I.
Dar valor a res: res=mayor%menor
II.
Dar nuevo valor a mayor: mayor=menor
III.
Dar nuevo valor a menor: menor=res
f) Calcular el valor de la variable mcm: mcm=(N1*N2)/mayor
g) Imprimir el valor de mcm
h) Pedir al usuario el valor de la variable opc
i) Volver al punto 3 del algoritmo
4. Fin

Diagrama de Flujo

Inicio

N1, N2, menor, mayor, res, mcm, opc

opc2?

No

N1, N2
No

N1>N2?

mayor=N2

mayor=N1

menor=N1

menor=N2

menor>0?

res=mayor
%menor
mayor=menor
menor=res

mcm=(N1*N2)/mayor

mc
m
opc
Fin

No

Codificacin
#include<stdio.h>
#include<conio.h>
int main()
{
int N1, N2, menor, mayor, res, mcm, opc;
printf("\t\t\t\tMINIMO COMUN MULTIPLO\n");
do{
printf("Ingresa el primer numero: ");
scanf("%i", &N1);
printf("Ingresa el segundo numero: ");
scanf("%i", &N2);
if(N1>N2)
{
mayor=N1;
menor=N2;
}
else
{
mayor=N2;
menor=N1;
}
while(menor>0)
{
res=mayor%menor;
mayor=menor;
menor=res;
}
mcm=(N1*N2)/mayor;
printf("El MCM es: %i\n", mcm);
printf("Presiona '1', si quieres calcular otro MCM\n");
printf("o presiona '2' para salir: ");
scanf("%i", &opc);
}while(opc!=2);
getch();
return 0;
}

Prueba de Escritorio
Verdadero
opc2?
Inici
o

opc2
opc=2

Falso

N1

N2

mcm=(N1*N2)/mayor

Imprimir
mcm

opc

mcm=(2*4)/2

2
Fin

Programas con arreglos y funciones


Con arreglos
//Programa para comprar boletos de autobus, este marca los asientos ocupados
con un "1" y los desocupados con "0", si un asiento ya se ha vendido, el programa
lo sealara, tambien respetando limites en los mismos.
Algoritmo
1.-Inicio
2.-Se decalaran las variables a trabajar tipo int asiento[40]={0} ,x,y
3.-se le indic al usuario el estado de los asientos de la forma libre}=0, Vendido=1
4.-se aplica la sentencia do while y dentro de ella se pregunta que asiento quiere
comprar, pidiendo al usuario que asigne un valor a y.
5.- se utiliza una sentecia if donde se indica que si y<=0 o y>=41, aparecer un
mensaje diciendo asiento fuer del rango del autobs, se utiliza else if bajo la
condicin [y-1]=1 aparecera el mensaje de asiento ya vendido
6.-Se utiliza una sentencia for en la que se establece x=0;x<40;x++ y dentro de
ella se utiliza otro if para que imprima el num de asiento, mostrando todos loa
asientos que hay del 1 al 40
7.-se cumple la sentencia while donse si asiento[40]==1 imprimir el mensaje
todos los asientos se han vendido
8.-en caso de que el if sea falso imprimir el mensaje gracias por usar este
programa
9.-fin

Diagrama de flujo
INICIO
Asiento=[40]=0 x , y
xx

Y= num de
asiento que quieres
comprar

Y==0
Si y<=0 y y>41

y<=0 o y>41

Si y==0
Asiento
fuera del
rango del
autobus

X=0:x<40;x++

no

Asiento [y1]==1

si
(x%4)
si

no

Asiento ya
vendido

Asiento[40]==1
si

Nmeros de
asientos
no

Todos los
asientos se
han vendido

asiento

Gracias por su
compra

FIN

prueba de escritorio
Y=numer
o de
asiento
3
0
5

Numero
de
asiento
Asiento
10=1
Asiento
5=1

imprimir

Asiento 1=0 , asiento 2=0 Asiento 3=1,


Asiento 4=0 . Asiento 40=0
Gracias por su compra
Asiento 1=0 , asiento 2=0 Asiento 3=1,
Asiento 4=0 , asiento 5=1. Asiento
40=0

Codificacin
#include <stdio.h>
#include <conio.h>
main()
{
int asiento[40]={0};
int x, y;
printf("Los estados de los asientos son: LIBRE=0, VENDIDO=1.\n" );
do
{
printf("Cual asiento quieres comprar?: " );
scanf("%d",&y);
if(y==0)break;
else if(y<=0 || y>=41)
printf("asiento fuera del rango del autobus." );
else if(asiento[y-1]==1)
printf("asiento ya vendido" );
else
{
asiento[y-1]=1;
{
for(x=0; x<40; x++)

{
if(!(x%4))
printf("num de Asientos %d= %d",x+1,asiento[x] );
else printf("\tAsiento %d= %d",x+1,asiento[x] );
}
}
}
}
while(1);
if(asiento[40]==1)
printf(" Todos los asientos se han vendido." );
else printf("\nGracias por usar este programa." );
getch();
return 0; }
IMP de pantalla

Programa que calcula la suma, resta, divisin y multiplicacin de 10 nmeros


ingresados
Planteamiento del problema:
Se requiere la creacin de un programa capaz de realizar ciertos clculos como
lo es la suma, la resta, la divisin y la multiplicacin de una serie de 10
nmeros cuales quiera ingresados por el usuario, a la vez este tipo de
programas facilitan el clculo de operaciones bsicas, es importante destacar
el uso de un arreglo para llevar a cabo el desarrollo de este programa.
Algoritmo:
1._Inicio.
2._Se dan a conocer las variables con las cuales se va a trabajar: x, sum, res,
mul, div.
3._Solicitar al usuario los valores de la tabla [10]
4._Verificar la siguiente premisa x<10?
5._Si la premisa es verdadera se procede a realizar los clculos
correspondientes como lo es: Suma, resta, multiplicacin y divisin.
6._Se imprime en pantalla los resultados obtenidos.
7._Fin
Diagrama de flujo:

Inicio

x,sum, res, mul,


div, tabla[10]

Tabla

X<10?

Suma

Resta

Multiplicaci
on

Divicion

Resultado
s

Fin

Prueba de escritorio:
Inici
o

Tabla[10]
1
2
3
4
5

Sum
a

Resta

Multiplicaci
on

Division

Imprimir

2.75573x10
-6

45
-43
362880
2.75573x10
-6

45
-43

6
7
8
9
Codificacion:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int x,tabla[10];
int sum,res,mul,div;
for (x=0;x<10;x++)
{
printf("\n\nIntroduzca numero:\n");
scanf("%d",&tabla[x]);
}
sum=tabla[0];
res=tabla[0];
mul=tabla[0];
div=tabla[0];
for (x=1;x<10;x++)
{
sum=sum+tabla[x];
res=res-tabla[x];
mul=mul*tabla[x];
div=div/tabla[x];
}
printf("Suma: %d\n",sum);
printf("Resta: %d\n",res);
printf("Multiplicacin: %d\n",mul);
printf("Divisin: %d\n",div);
system("PAUSE");

362880

return 0;
}

Analisis de resultados:

Ordena los nombres por orden alfabtico (arreglos)


Planteamiento del problema
Se necesita un programa que al ingresar diez nombres se acomoden en orden
alfabtico, realiza el programa mediante arreglos.

Algoritmo
1) Inicio
2) Se declaran las constantes que se utilizaran en el programa N=10,
TC=20
3) Se declaran las variables que se van a utilizar nom[N][TC],auxN[TC] (de
tipo char o carcter) i,j,k,v (de tipo entero).
4) Se pide que ingresen los nombres
5) Para i=0;i<N; i++ se leer una cadena de caracteres con nom[i]
6) Para k=0; k<N-1; k++
7) Se iniciar para j=0; j<N-1-k; j++;
8) Si (strcmp(nom[j],nom[j+1]) > 0)

9) Se les asignan nombres a (auxN, nom[j]), (nom[j],nom[j+1]),


(nom[j+1],auxN);
10)
Para (i=0;i< N;i++)
11)
Se imprime el nombre[i] en orden alfabetico
12)
Fin

Diagrama de flujo
Inicio

N = 10, TC = 20, nom[N][TC],


auxN[TC], i, j, k, v;

, nom[N][TC], auxN[TC], i,
j, k, v
for(i=0;i<
k=0;k<N-1;k++
N;i++)
gets(nom[i]);
1

j=0;j<N-1-k;j++

strcmp(nom[j],nom[j+1
]) > 0
i=0;i< N;i++
Nom[i]
strcpy(auxN,nom[j]);
strcpy(nom[j],nom[j+1;
strcpy(nom[j+1],auxN);

Fin

Codificacin
/*Hacer un programa que permita ordenar alfabeticamente una lista
de nombres de tamao N considerado constante. El tamao maximo de las
cadenas considerela 20. */
#include <conio.h>
// getch()
#include <stdio.h>
// gets()
#include <string.h>
// strcmp() y strcpy()
const int N = 10, TC = 20;
main()
{
char nom[N][TC],auxN[TC];
int i,j,k,v;
printf("Ingrese los nombres:");
for(i=0;i< N;i++)
{

gets(nom[i]);}
for(k=0;k<N-1;k++)
{
for(j=0;j<N-1-k;j++)
{
if (strcmp(nom[j],nom[j+1]) > 0)
{
strcpy(auxN,nom[j]); /* a auxN le asigna nom[j]*/
strcpy(nom[j],nom[j+1]);/* a nom[j] le asigna nom[j+1]*/
strcpy(nom[j+1],auxN);/* a nom[j+1] le asigna auxN*/
}
}
}
printf("\n");
// MUESTRA EL ARRAY EN ORDEN ALFABETICO
for(i=0;i< N;i++)
{
printf("\t(*)%s\n",nom[i]);
}
printf("\n");
getch();
}

Anlisis de resultados

Clculo de la fuerza
Planteamiento del problema
Realizar un programa que permita al usuario calcular la fuerza de un objeto a
partir del valor de su aceleracin proporcionado por l mismo utilizando
funciones.
Algoritmo
1.
2.
3.
4.
5.

inicio
Declaracin de variables a utilizar: i,r,n;
Se solicita el valor de la aceleracin: i;
Establecemos la condicin: i<11?
Mientras la condicin sea verdadera se realiza la operacin r=i*n y se da
un paso ms i++
6. Se mandan a imprimir los valores en cada proceso.
7. Cuando la condicin ya no se cumpla, se finaliza el proceso.
8. Fin
Diagrama de flujo
Inicio

i, r, n

n
i*n=r
r=i*n
fin i++
i=1; i<11;

Codificacin
/*PROGRAMA PARA CALCULAR LA FUERZA DE 1 A 10 KG DE MASA DE UN CUERPO
UTILIZANDO FUNCIONES*/
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
float fuerza(float i,float n);
int main()
{
system("COLOR F0");
float i, r, n;
printf(" PROGRAMA PARA CALCULAR LA FUERZA DE 1 A 10 KG DE MASA DE UN
CUERPO\n\n\n");
printf("Dame el valor de la aceleracion que experimenta el cuerpo en m/s^2\n");
scanf("%f", &n);
for(i=1; i<11; i++)
{
fuerza(i,n);
}
getch();
return 0;
}
//funciones
float fuerza(float i,float n)
{
float r=1;
r=i*n;
printf("\t%.2f Kg x %.2f m/s^2 = %.2f N \n", i, n, r);
}

Prueba de escritorio
n
res
i
i<=10?
2

i=i+1

1<=10

i=1+1

2<=10

i=2+1

3<=10

i=3+1

4<=10

i=4+1

10

5<=10

i=5+1

12

6<=10

i=6+1

14

7<=10

i=7+1

16

8<=10

i=8+1

res=i*
n
res=1*
2
res=2*
2
res=3*
2
res=4*
2
res=5*
2
res=6*
2
res=7*
2
res=8*
2

imprimir
1kg x 2m/s^2 = 2N
2kg x 2m/s^2 = 4N
3kg x 2m/s^2 = 6N
4kg x 2m/s^2 = 8N
5kg x 2m/s^2 = 10N
6kg x 2m/s^2 = 12N
7kg x 2m/s^2 = 14N
8kg x 2m/s^2 = 16N

18

9<=10

i=9+1

20

10

10<=10

i=10+1

22

11

11<=10

res=9*
2
res=10
*2

9kg x 2m/s^2 = 18N


10kg x 2m/s^2 =
20N
FIN DEL PROCESO

Programa que los primeros 10 nmeros sean ordenados de


menor a mayor.
planteamiento del problema: Realizar un programa en el cual pueda
identificar los 10 primeros nmeros y colocarlos de mayor a menor con
arreglos en el programa.
Algoritmo
1. Inicio
2. Establecer nuestras variables a trabajar , aux, nmeros [10] , i .
3. Se piden los primeros 10 numeros .
4. Se inicia un ciclo para dar la comparacin de numeros
introducciones.
5. Dan las condicin para determinar el acomodamiento, de penden
de su valor.
6. Se realiza otro ciclo para imprimir los resultados7. Fin.
#include <stdio.h>
#include <stdlib.h>
int main()
{
float aux, numeros[10];
int i,j,n=10;
for (i=0;i<n;i++){
printf("Escriba un nmero");
scanf("%f",&numeros[i]);
}
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(numeros[i]<numeros[j])

{
aux=numeros[i];
numeros[i]=numeros[j];
numeros[j]=aux;
}
}
}
for (i=n-1;i>=0;i--){
printf("%f\n",numeros[i]);
}
system("PAUSE");
return 0;
}

Programa para saber si un nmero es par o impar


Planteamiento del programa: Realizar un programa que pueda ayudarnos a
saber si es un numero par o impares, atreves de funciones.
/* Programa para saber si es un numero par o impar */
#include<stdio.h>
int par(int); // o int par(int numero);
int main()
{
int numero, resultado;
printf("Introduzca un nmero:\n");
scanf("%i",&numero);
resultado=par(numero);
if (resultado==1)
printf("Es par.\n");
else
printf("Es par.\n");
return(0);
}
/* Funcin par: Devuelve un valor indicando si un
nmero entero es par o no. */

int par(int numero)


{
if((numero%2)==0)
return(1);
else
return(0);
}

ARREGLOS-RESTA Y DIVISION DE CINCO NUMEROS


Planteamiento del Problema
Se quiere obtener la resta total de cinco nmeros y la divisin total de los mismos
nmeros dados por el usuario.
Algoritmo
9
10
11
12

13
14
15
16
17
18

Inicio
Se declaran las variables con las que se va a trabajar; d, r, i, a[5]
Se le pide al usuario el valor de a[0]
Establecemos valores iniciales
ra[0]
da[0]
i1
Preguntamos si i<5?
Si la premisa es verdadera, pedimos los valores para a[i]
Pedimos que realice la operacin:
rr-a[i]
dd/a[i]
Le pedimos que se prepare para otra operacin ii+1
Si la premisa es falsa pedimos que imprima r, d
Fin del programa

Diagrama de Flujo
INICIO

d, r, i, a[5]

a[0]
ra[0]
da[0]

ii+1
i<5?

SI

a[i]

rr-a[i]

NO

r, d
Codificacin
#include<stdio.h>
#include<conio.h>
int main ()
{
float d;
int r,i;
int a[5];
printf("Dame el valor del numero 0:\t");
scanf("%d",&a[0]);
r=a[0];
d=a[0];
for(i=1;i<5;i++)
{
printf("Dame el valor del numero %d:\t",i);
scanf("%d",&a[i]);
r=r-a[i];
d=d/a[i];
}
printf("\nEl resultado de la resta es: %d",r);
printf("\nEl resultado de la division es: %f",d);
getch ();
}

dd/a[i]
FIN

Prueba de Escritorio
i

a[0]

ra[0]
da[0]
i1

21

21

21

16

4.2

2<5

0.6

3<5

0.1

4<5

0.05
0

5<5

Anlisis de Resultados

i<5?

a[1]

1<5

a[2]

a[3]

a[4]

7
6
2

rr-a[i]
dd/a[i]

ii+1

21-5
21/5
16-7
2.5/7
9-6
0.3571/6
3-2
0.0595/2

1+1

Imprimir
r, d

2+1
3+1
4+1
1
0.050
Fin

FUNCIONES-RAIZ Y RESTA ENTRE EL NUMERO Y SU RAIZ


Planteamiento del Problema
Se quiere obtener la raz de ocho nmeros dados por el usuario y calcular su respectiva
resta entre ellos dos.
Algoritmo
1. Inicio
2. Se declaran las variables con las que se va a trabajar; num[8], i, r
3. Establecemos valores iniciales
i0
4. Preguntamos si i<8?
5. Si la premisa es verdadera, se le pide al usuario el valor de num[i]
6. Se enva num[i] a la funcin raizre():
7. Declara sus variables aux, r
auxpow(num,0.5)
rnum-aux
8. Imprime aux, r
9. De regreso al programa principal nos preparamos para otra operacin ii+1
10. Si la premisa es falsa, fin del programa.
Diagrama de Flujo
INICIO

num[8], i, r

i0
ii+1

i<8?

SI
num[i]

raizre()

NO

FIN

Subprograma raizre()
INICIO

aux, r

auxpow(num,0
.5)
rnum-aux

aux, r

FIN

Codificacin
#include<stdio.h>
#include<conio.h>
#include<math.h>
float raizre(int num)
{
float aux,r;

aux=pow(num,0.5);
printf("\nraiz cuadrada= %.2f",aux);
r=num-aux;
printf("\nla resta del numero menos la raiz es=%.2f\n",r);
}
int main ()
{
int num[8],i;
float r;
for(i=0;i<8;i++)
{
printf("\nEscribe el valor numero %d: ",i);
scanf("%d",&num[i]);
raizre(num[i]);
}
getch ();
}
Prueba de Escritorio
num[0]

num[1]

num[2]

num[3]

num[4]

16

25

49

num
[5]
9

num[6]

num[7]

36

22

i
0

i<8?

raizre(num[i])

ii+1

0<8

raizre(4)

0+1

1<8

raizre(2)

1+1

----

---------

-----

-----

---------

-----

7<8

raizre(22)

7+1

8<8

Fin del
programa

Sub-prueba de escritorio
aux

auxpow(num,
0.5)
rnum-aux

Imprimir aux, r

1.41

0.59

---------------4.69

------------------------17.31

pow(4,0.5)
4-2
pow(2)
2-1.41
-------------------pow(22,0.5)
22-4.69

2
2
1.41
0.59
------------------4.69
17.31

Anlisis de Resultados

Fin del
programa

Planteamiento del problema


Programa con funciones que al ingresar dos nmeros enteros reales nos muestre
su suma, resta, multiplicacin, divisin y el mdulo de la divisin
Algoritmo
1.
2.
3.
4.
5.
6.
7.
8.

Algoritmo
Inicio
Declaramos las variables a utilizar
Se establecen las funciones res,sum,mult,div,res
Inicio del programa inicial
Se pide el valor de las dos variables a utilizar a,b
Se imprime el resultado de las funciones
Fin del programa

Diagrama de flujo
Inicio

Int a,int b,int z

a,b

resid(int
sum(int
a,inta,int
b,int
z)
z=
b,int z){ z =
a a%
+ b; b
sum

res(int a,int
b,int z) z = a b
res

mult(int a,int
b,int z)z = a * b

mult

div(int a,int
b,int z){ z = a /
b; return z
div

resid

Fin
#include<stdio.h>
#include<math.h>
int sum(int a,int b,int z){ z = a + b;
return z; }
int res(int a,int b,int z){ z = a - b;
return z; }
int mult(int a,int b,int z){ z = a * b;
return z;
}
int div(int a,int b,int z){ z = a / b; return z; }
int resid(int a,int b,int z){ z = a % b;
return z;
}
int main()
{
int a,b;
int z;
printf("\n Ingrese 2 numeros enteros: \n \n");
scanf("%d %d",&a,&b);
printf("\n La suma de %d y %d es %d \n",a,b,sum(a,b,z));
printf("\n La resta de %d y %d es %d \n",a,b,res(a,b,z));
printf("\n La multiplicacion de %d y %d es %d \n",a,b,mult(a,b,z));
printf("\n La division de %d y %d es %d con",a,b,div(a,b,z));
printf(" el residuo de %d \n",resid(a,b,z));
return 0; }

Prueba de escritorio
a

23

23

Sum(z=
a+b)
43

Res(z=
a-b)
0

Mul(z=a
*b)
529

Div(z=
a/b)
1

Resid(z=
a%b)
0

imprimi
r
z

Fi
n
Fi
n

Arreglos
//Crear un programa llamado paresImpares que cree un array de 100 nmeros
aleatorios del 1 al 1000. Una vez creado, mostrar el contenido y despus
organizarlo de forma que estn juntos los elementos pares y los impares.
Despus, volver a mostrar el array//

TAM=0

rand()%100+1
i=0;i<TAM;i++){

Los impar

No

Si
i/2==

Los par

Codificacin
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
void escribirArray(int a[], int tamanio);
int main(){
int a[TAM];
int par[TAM]={0};
int impar[TAM]={0};
int i,j;
srand(time(NULL));
for(i=0;i<TAM;i++){
a[i]=rand()%100+1;
}
printf("Primer array:\n");
escribirArray(a,TAM);
for(i=0;i<TAM;i++){
if(a[i]%2==0)
par[i]=a[i];
else
impar[i]=a[i];
}
printf("\nPar:\n");
escribirArray(par,TAM);
printf("\nImpar:\n");
escribirArray(impar,TAM);
j=0;
for(i=0;i<TAM;i++){
if(par[i]!=0) {
a[j]=par[i];
j++;
}
}
for(i=0;i<TAM;i++){
if(impar[i]!=0) {
a[j]=impar[i];
j++;
}
}
printf("\resultado final:\n");
escribirArray(a,TAM);
}

void escribirArray(int a[], int tamanio){


int i;
for(i=0;i<tamanio;i++){
printf("%d ",a[i]);
}
printf("\n");
}

Prueba de escritorio

i/2

10

10/2=5

i/2==0

Es Par

3/2=1.5

i/2=0

Es Impar

rand()%100+1

Imprimir

Funciones
Planteamiento
//El siguiente programa lee por teclado un ao y calcula y muestra si es bisiesto//

Diagrama de flujo
inici
anio

Se pide el
valor de anio

a%4==0 and
a%100!=0 or
a%400==0

no

si
Es ao
bisiesto

fin

Codificacin
#include <iostream>
using namespace std;
int bisiesto(int);
int main()

No es ao
bisiesto

{
int anio;
cout<<"Introduce a"<<(char)164<<"o: ";
cin >> anio;
if(bisiesto(anio))
cout << "Bisiesto" << endl;
else
cout << "No es bisiesto" << endl;
system("pause");
}
int bisiesto(int a)
{
if(a%4==0 and a%100!=0 or a%400==0)
return 1;
else
return 0;
}

Prueba de escritorio
anio
If

else

FIN

(a%4==0 and a
%100!=0 or a
%400==0)

2010
2003

Opcional Funciones.

Es ao
bisiesto

**
No es ao
bisiesto

**

Planteamiento del problema: Desarrollar un programa que calcule el precio


final de un producto con descuento, utilizando funciones.
Algoritmo.
1.- Inicio.
2.- Se dan a conocer las variables con las que se va a trabajar: precio,
porcentaje, resultado, final.
3.- Se solicita al usuario proporcionar los valores de las variables: precio y
porcentaje.
4.- Se procede a la obtencin de resultado: resultado
((precio*porcentaje)/
(100)).
5.- Se procede a la obtencin de la variable final: final
precio-resultado.
6.- Se imprime el valor de la variable final.
7.- Fin del proceso.
Diagrama de flujo.

Inicio
precio,
porcentaje,
resultado, final
precio,
porcentaj
e
resultado
final

((precio*porcentaje)/
(100))
precio-resultado
final

FIN

Codificacin

#include <stdio.h>
#include <conio.h>
float preciofinal (float precio, float porcentaje);
int main ()
{
float precio, porcentaje, resultado, final;
printf ("Programa que calcula el precio final de un producto con descuento.");
printf ("\n\nEscribe el precio del producto: ");
scanf ("%f", &precio);
printf ("\nEscribe el descuento del producto: ");
scanf ("%f", &porcentaje);
printf ("\nEl precio del producto es: %.2f", preciofinal (precio, porcentaje));
getch ();
}
float preciofinal (float precio, float porcentaje)
{
float resultado, final;
resultado=((precio*porcentaje)/(100));
final=precio-resultado;
return (final);
}
preci
o
60

porcentaj
e
50

resultad
o
30

Opcional Arreglos.

fina
l
30

resultado=((precio*porcentaje)
/(100))
resultado=((60*50)/(100))

final=precioresultado
final=60-30

Imprimi
r final
30

F
I
N

Planteamiento del problema: Desarrollar un programa que calcule el promedio


general de un grupo de alumnos, utilizando arreglos.
Algoritmo.
1.- Inicio.
2.- Se dan a conocer las variables con las que se va a trabajar:
notas[ALUM_MAX], suma, i, nalumnos.
3.- Se establecen los valores de las variables suma, suma
0; y de la
variable i, i
1.
4.- Se solicita al usuario proporcionar el valor de la variable nalumnos.
5.- Se pregunta: i<=nalumnos?
6.- Si la premisa es verdadera, se solicita al usuario proporcionar el valor de la
variable notas[i-1].
7.- Se procede a la obtencin de la variable suma: suma+
notas[i-1].
8.- Se prepara para un proceso ms i++.
9.- Regresar al paso 5.
10.- Si la premisa es falsa, se imprime el valor de la variable suma dividido
entre la variable nalumnos: suma/nalumnos.
11.- Fin del proceso.
Diagrama de flujo.
Inicio
notas[ALUM_MAX]
, suma, i,
nalumnos
suma=
0
i=1
nalumn
os
SI
NO

i<=nalumnos?
notas[i1]

suma/nalum
nos

Suma+=notas[
i-1]

FIN

i++
Codificacin

#include <stdio.h>
#include <stdlib.h>
#define ALUM_MAX 100
int main ()
{
float notas[ALUM_MAX], suma=0;
int i, nalumnos;
system ("cls");
printf ("Programa que calcula el promedio de un grupo.");
printf ("\n\nEscribe el numero de alumnos: ");
scanf ("%d", &nalumnos);
for (i=1; i<=nalumnos; i++)
{
printf ("\nAlumno numero %d, nota final: ", i);
scanf ("%f", &notas[i-1]);
suma+=notas[i-1];
}
printf ("\n\nNota media del curso: %5.2f\n", suma/nalumnos);
system ("PAUSE");
}
Prueba de escritorio.
nalum
nos

notas[i1]

suma

i<=nalum
nos?

i++

10

0+10

1<=2?

10+8

2<=2?

i=1+
1
i=2+
1

18

3<=2?

Imprimir
suma/nalu
mnos

18/2=9

FIN

Nmero de Vocales en una Frase


Planteamiento del Problema
Desarrollar un programa que, utilizando arreglos, sea capaz de calcular el
nmero de vocales que hay en una frase.
Algoritmo
1. Inicio
2. Dar a conocer las variables a utilizar: sum y x (tipo int), frase[50]
(tipo char)
3. Dar valor inicial a las variables sum y x: sum=0 y x=0
4. Pedir al usuario los caracteres de la variable frase[50]
5. Preguntar lo siguiente: x<50?
6. Si la premisa resulta verdadera, entonces:
a) Analizar cada carcter y si alguno resulta ser igual a: a, e, i,
o, u; reajustar valor de sum: sum=sum+1
b) Reajustar valor de x: x=x+1
c) Volver al punto 5 del algoritmo
7. Si la premisa resulta falsa, entonces imprimir sum y Finalizar proceso

Diagrama de Flujo
Inicio

sum, x, frase[50]

frase

x<50?

No

S
Case
1

Case
2

Case
3

Case
4

i
Case
5

o
u
sum

sum=sum+
1

x=x+
1
Fin

Break

Codificacin
#include<stdio.h>
#include<conio.h>
int main(int argc, char *argv[])
{
int sum=0, x;
char frase[50];
printf("\n\t\t\tCANTIDAD DE VOCALES EN UNA FRASE\n\n");
printf("Introduce una frase: ");
gets(frase);
for(x=0; x<50; x++)
{
switch(frase[x])
{
case 'a':
sum++;
break;
case 'e':
sum++;
break;
case 'i':
sum++;
break;
case 'o':
sum++;
break;
case 'u':
sum++;
break;
case 'A':
sum++;
break;
case 'E':
sum++;
break;
case 'I':
sum++;
break;
case 'O':
sum++;
break;
case 'U':
sum++;
break;
default:
break;}}
printf("En esta frase hay %i vocales\n\n", sum);
getch();
return 0;
}

Prueba de escritorio

sum

Inici
o

frase

Verdad
a,
e,
i,
o,
u

1<50

P no

2<50

L no

3<50

U si

4<50

M no

Plum
a

x<50
?

A si

Falso

sum=sum
+1

x+
+

sum=0+1

0+
1
1+
1
2+
1
3+
1
4+
1

sum=1+1

Impri
mir
sum

Fi
n

Cdigo de Cuatro Dgitos, Hasta Tres Intentos


Planteamiento del Problema
Utilizando funciones, realizar un programa capaz de bloquear el acceso al
usuario, a menos que este ingrese un cdigo de acceso de cuatro dgitos, y as
el usuario pueda ingresar a su informacin. Pero si se llegase a equivocar de
clave, tendr dos intentos ms para volver a ingresarla, es decir, el usuario
contar con tres oportunidades para poder teclear el cdigo.
Algoritmo
1. Inicio
2. Dar a conocer las variables con las que se va a trabajar: password e i
3. Otorgar valor inicial a la variable i: i=2
4. Preguntar lo siguiente: i0?
5. Si la premisa resulta verdadera, entonces:
a) Solicitar al usuario el valor de la variable o cdigo password
b) Preguntar si el cdigo es el correcto: password=1111?
c) Si resulta verdad, entonces imprimir: Acceso a informacin
confirmado y Finalizar el proceso
d) Si resulta falso, entonces imprimir: Acceso a informacin
denegado. Dar nuevo valor a "i: i=i-1. Y volver al punto 4 del
algoritmo
6. Si la premisa resulta falsa, entonces imprimir: Intntelo ms tarde y
Finalizar proceso

Diagrama de Flujo
Inicio

password, i

i=2

i0?

No

password

password=1111?
No

Acceso a
informaci
n
denegado
i=i-1

Acceso a
informaci
n
confirmado
Acceso a
Fin

Intntelo
ms tarde

Codificacin
#include<stdio.h>
#include<conio.h>
int correct();
int incorrect();
int main()
{
int password, i;
printf("\t\t\t\tINFORMACION PROTEGIDA\n");
for(i=2; i>=0; i--)
{
printf("Digite la contrasea (codigo de 4 digitos):\n");
scanf("%i", &password);
if(password==1111)
{
correct();
return 0;
}
else
{
incorrect();
}
}
printf("Intentelo mas tarde");
getch();
return 0;
}
int correct()
{
printf("Contrasea correcta\n");
printf("Acceso a informacion concedido\n");
getch();
}
int incorrect()
{
printf("Contrasea incorrecta\n");
printf("Acceso a informacion denegado\n\n");
}

i0
?

password=11
11?

2>0

123
4

12341111

1>0

111
1

1111=1111

Imprimir:
Acceso a
informacin
confirmado

Acceso a
informacin
confirmado

Falsa
Falsa
Imprimir:
Acceso a
informacin
denegado

i=i-1

Acceso a
informacin
denegado

i=2-1

Imprimir:
Intntel
o ms
tarde

Fin

Verdadera
Cierta

password

Inicio

Prueba de escritorio

PROGRAMA DE SUMATORIO ACUMULATIVA DE UNA


MATRIZ
Planteamiento del problema:
Utilizando la metodoligia de resolucin de un problema a travs de un
programa de computadora, se desea realizar un programa que sume de
manera acumulativa una misma matriz.
1. Algoritmo.
2. Inicio.
3. Declaramos las variables a utilizar:
i,j,N,M,suma,matriz[N][M].
4. Inicilizamos las variables:
ii+1
jj+1
5. Solicitamos al usuario el valor de las variables:
N
M
matriz[i][j]
6. Se realiza la acumulacion en la variable suma :
sumasuma+matriz[i][j]
7. Se imprime la suma
inicio
8. Fin de proceso
*por si se mueve le original aqu una imagen
i,j,N,M,suma,matriz[N][M]
ii+1
jj+1
N,M

No

i<=N?
Si

No
j<=M?
Si
matriz[i][j]
Diagrama de flujo:
sumasuma+matriz[i][j]

suma

Fin de proceso

Prueba de escritorio:

matriz[N][M]
(rango)
matriz[i][j]
(posicin)

matriz[1][1]=4

matriz[1][2]=3

matriz[1][3]=2

Suma

Sumasuma+mat
riz[i][j]
Suma0+4
Suma4+3
Suma7+2

imprimir
suma

i<=N
?

j<=M
?

1<=1
?

1<=3
?
2<=3
?
3<=3
?

Codificacion 1(Funcion Principal):


#include<stdio.h>
#include<conio.h>

for(int i=1; i<=N;i++){

int main(){
int N,M,suma;

printf("dame el numero de filas de


la matriz: ");

for(int j=1;j<=M;j++){
printf("dame el numero
%i de la fila %i: ",j,i);
scanf("%d",&matriz[i][j]);

scanf("%d",&N);
printf("dame el numero de
columnas de la matriz: ");
scanf("%d",&M
);
int matriz[N][M];

suma=suma+matriz[i][j];
}
}
printf("La suma acumulatoria de la
matriz es: %d",suma);
}

Codificacion 2(Con FUNCIONES):


#include<stdio.h>

int matriz[n][m],suma=0;

#include<conio.h>
int ciclo(int n,int m);

for(int i=1; i<=n;i++){

int main(){
int N,M;
printf("dame el numero de filas de la
matriz: ");

for(int j=1;j<=m;j++){
printf("dame el numero
%i de la fila %i: ",j,i);

scanf("%d",&N);

scanf("%d",&matriz[i][j]);

printf("dame el numero de columnas de


la matriz: ");

suma=suma+matriz[i][j];

scanf("%d",&M);
ciclo(N,M);
}
int ciclo(int n,int m){

}
}
printf("La suma acumulatoria de la
matriz es: %d",suma);
return 0;
}

Pantallas:

PROGRAMA QUE LEA 5 NMEROS POR TECLADO, LOS COPIE A OTRO


ARRAY MULTIPLICADOS POR 2 Y MUESTRE EL SEGUNDO ARRAY.
ALGORITMO
1.2.3.4.5.6.7.8.9.-

Inicio
Se dan a conocer las variables con las que se va a trabajar
Se estableces los valores a las variables aux, numeros1[5], nmeros2[5]
Se solicita el valor de la variable numeros1[i]
Se hace la operacin numeros2[i]=numeros1[i]*2
Se pregunta i<5?
Si resulta falso se regresa al punto 5 y se imprime ese resultado
Si es verdadero se imprime ese resultado
Fin

CODIFICACION
#include <stdio.h>
#include <stdlib.h>
int main()
{
int aux, numeros1[5],numeros2[5];
int i,j;
for (i=0;i<5;i++){
printf("Escriba un nmero");
scanf("%d",&numeros1[i]);}
for(i=0;i<5;i++)
{
numeros2[i]=numeros1[i]*2;
}
for (i=0;i<5;i++){
printf("%d\n",numeros2[i]);
}
system("PAUSE");
return 0;
}

PRUEBA DE ESCRITORIO
a

Numeros1[i]

1
2
3
4
5
6

i<=5?
1<=5
2<=5
3<=5
4<=5
5<=5
6<=5
i<=5?

Imprimir
copiar*2
1
2
3
4
5

I=i+1
2
4
6
8
10

DIAGRAMA DE FLUJO
inicio

i
i=i+1

I=1+1
I=2+1
I=3+1
I=4+1
I=5+1

aux,numeros1[5],numeros2[5]; i,j;

i=1

ALGORITMO

1.2.3.4.5.6.7.8.9.-

Inicio
Se dan a conocer las variables con las que se va a trabajar
Se estableces los valores a las variables y la funcin, anio, bisiesto(int)
Se solicita el valor de la variable a
Se realiza la funcin bisiesto(int)
Se pregunta
if(a%4==0 and a%100!=0 or a%400==0)
Si resulta falso se regresa al punto 5 y se imprime ese resultado
Si es verdadero se imprime ese resultado
Fin

CODIFICACION
// Programa que lee un ao y muestra si es o no bisiesto
#include <iostream>
int bisiesto(int); //declaracin o prototipo de la funcin
int main()
{
int anio;
cout<<"Introduce a"<<(char)164<<"o: ";
cin >> anio;
if(bisiesto(anio)) //llamada a la funcin
cout << "Bisiesto" << endl;
else
cout << "No es bisiesto" << endl;
system("pause");
}
int bisiesto(int a) //definicin de la funcin
{
if(a%4==0 and a%100!=0 or a%400==0)
return 1;
else
return 0;
}
DIAGRAMA DE FLUJO
inicio

Anio, int bisiesto(int)

anio

(a4==0 and a100!=0


or a400==0)

No es bisiesto

Es bisiesto