Você está na página 1de 37

ESCUELA SUPERIOR POLITECNICA DECHIMBORAZO

FACULTAD DE INFORMATICA Y ELECTRONICA


ESCUELA DE SOFTWARE

1. Imprimir todos los números del 1 al 100 que sean múltiplos de N y M a la vez utilizando
la estructura REPETIR – HASTA
DATOS DE ENTRADA
nym
DATOS DE SALIDA
nym
DIAGRAMA DE FLUJO

CODIFICACION
1. #include<iostream>
2. using namespace std;
3. int main()
4. {
5. int n , m , i=1 , j=1;
6. cout<<"ingrese el valor de n"<<endl;
7. cin>>n;
8. cout<<"ingrese el valor de m"<<endl;
9. cin>>m;
10. cout<<" los multiplos de "<<n<<endl;
11. do{
12. if (i%n==0)
13. cout<<i<<" ";
14. i++;
15. }while (i<101);
16. cout<<endl<<" los multiplos de "<<m<<endl;
17. do{
18. if (j%m==0)
19. cout<<j<<" ";
20. j++;
21. }while (j<101);
22. return 0;

2.Realizar un diagrama de flujo que lea un número positivo y determine sus divisores y la
suma de éstos. Use la estructura REPETIR – HASTA Ejemplo: Si N = 12 Los divisores de 12
son: 1, 2, 3, 4, 6, 12 La suma de los divisores es: 28 Si N = 8 Los divisores de 8 son: 1, 2, 4, 8
La suma de los divisores es: 15
DATOS DE ENTRADA
Un numero positivo
DATOS DE SALIDA
La suma de los divisores
DIAGRAMA DE FLUJO

CODIFICACION
1. #include<iostream>
2. using namespace std;
3. int main()
4. {
5. int n, i=1 , dr=0;
6. cout<<"ingrese un numero positivo "<<endl;
7. do{
8. cin>>n;
9. if(n>0){
10. cout<<"numero valido"<<endl;
11. }
12. else
13. {
14. cout<<"numero no valido vuelva a introducir otro numero"<<endl;
15. }
16. } while (n<1);
17. do{
18. if (n%i==0)
19. dr=dr+i;
20. i++;
21. }while(i<=n);
22. cout<<"la suma de los divisores es"<<endl<<dr;
23. return 0;
24. }

3. Realizar un diagrama de flujo que permita escribir los N primeros términos de la


serie de Fibonacci. La sucesión de Fibonacci se define de la siguiente forma. Use la
estructura MIENTRAS – HACER. f(1) = 0 f(2) = 1 f(n) = f(n-1)+f(n-2) es decir: 0, 1, 1, 2, 3,
5, 8, 13, 21………

DATOS DE ENTRADA
n

DATOS DE SALIDA

Serie de finonacci hasta n

DIAGRAMA DE FLUJO
CODIFICACION
1. #include <iostream>
2. using namespace std;
3. int main ()
4. {
5. int n , a , b,c , i=3;
6. cout<<" ingrese un numero "<<endl;
7. cin>>n;
8. if (n>2){
9. a=0;
10. b=1;
11. cout<<a<<" "<<b<<" ";
12. while( i<=n ){
13. c=a+b;
14. cout<<c<<" ";
15. a=b;
16. b=c;
17. i++;
18. }
19. }
20. else
21. {
22. cout<<"1 2 " ;
23. }
24. return 0;
25. }

4. Diseñar un diagrama de flujo que calcule el factorial de N números positivos


ingresados desde el teclado, utilizando las estructuras MIENTRAS – HACER, REPETIR –
HASTA Y PARA - DESDE.
REPETIR HASTA

DATOS DE ENTRADA
n
DATOS DE SALIDA
Factorial de n

DIAGRAMA DE FLUJO
CODIFICACION

1. #include<iostream>
2. using namespace std;
3. int main()
4. {
5. int n, i=1 , f=1, l, j=1;
6. cout<<"ingrese el limite de numeros para el factorial "<<endl;
7. cin>>l;
8. do{
9. cout<<"ingrese un numero "<<endl;
10. cin>>n;
11. if(n>0){
12. do{
13. f=f*j;
14. j++;
15. }while(j<=n);
16. cout<<f<<endl;
17. f=1;
18. i++;
19. j=1;
20. }
21. else
22. {
23. cout<<"numero no valido vuelva a introducir otro numero"<<endl;
24. i--;
25. }
26. } while (i<=l);
27. return 0;
28. }

MIENTRAS – HACER

DATOS DE ENTRADA
n
DATOS DE SALIDA

Factorial de n

DIAGRAMA DE FLUJO
CODIFICACION

1. #include<iostream>
2. using namespace std;
3. int main()
4. {
5. int n, i=1 , f=1, l, j=1;
6. cout<<"ingrese el limite de numeros para el factorial "<<endl;
7. cin>>l;
8. while (i<=l){
9. cout<<"ingrese un numero "<<endl;
10. cin>>n;
11. if(n>0){
12. while(j<=n){
13. f=f*j;
14. j++;
15. }
16. cout<<f<<endl;
17. f=1;
18. i++;
19. j=1;
20. }
21. else
22. {
23. cout<<"numero no valido vuelva a introducir otro numero"<<endl;
24. i--;
25. }
26. }

27. return 0;
28. }

PARA – DESDE

DATOS DE ENTRADA

DATOS DE SALIDA

Factorial de n

DIAGRAMA DE FLUJO
CODIFICACION

1. #include<iostream>
2. using namespace std;
3. int main()
4. {
5. int n, i=1 , f=1, l, j=1;
6. cout<<"ingrese el limite de numeros para el factorial "<<endl;
7. cin>>l;
8. for(i=1; i<=l; i++){
9. cout<<"ingrese un numero "<<endl;
10. cin>>n;
11. if(n>0){
12. for(j=1;j<=n;j++){
13. f=f*j;
14. }
15. cout<<f<<endl;
16. f=1;
17. j=1;
18. }
19. else
20. {
21. cout<<"numero no valido vuelva a introducir otro numero"<<endl;
22. i--;
23. }
24. }
25. return 0;
26. }

Para valores de x comprendidos entre -15 y 10 con incrementos de 0.5. Utilice la


estructura MIENTRAS – HACER

6. Realizar un algoritmo que presente el siguiente menú:


a. TRANSFORMAR GRADOS FAHRENHEIT A GRADOS CELSIUS
b. TRANSFORMAR GRADOS CELSIUS A GRADOS FAHRENHEIT
c. TRANSFORMAR GRADOS CENTIGRADOS A GRADOS KELVIN
d. TRANSFORMAR GRADOS KELVIN A GRADOS CENTIGRADOS
e. TRANSFORMAR GRADOS KELVIN A GRADOS FAHRENHEIT
f. SALIR
Si se ingresa una opción diferente debe aparecer un mensaje de error y volver a solicitar
una opción correcta.
DATOS DE ENTRADA
grados
DATOS DE SALIDA
FAHRENHEIT A GRADOS CELSIUS
CELSIUS A GRADOS FAHRENHEIT
GRADOS CENTIGRADOS A GRADOS KELVIN
GRADOS KELVIN A GRADOS CENTIGRADOS
GRADOS KELVIN A GRADOS FAHRENHEIT

DIAGRAMA DE FLUJO
CODIFICACION
1. #include <iostream>
2. using namespace std;
3. int main ()
4. {
5. int op;
6. float c,gc,f,k;
7. cout<<"Opcion 1: TRANSFORMAR GRADOS FAHRENHEIT A GRADOS
CELSIUS"<<endl;
8. cout<<"Opcion 2: TRANSFORMAR GRADOS CELSIUS A GRADOS
FAHRENHEIT"<<endl;
9. cout<<"Opcion 3: TRANSFORMAR GRADOS CENTIGRADOS A GRADOS
KELVIN"<<endl;
10. cout<<"Opcion 4: TRANSFORMAR GRADOS KELVIN A GRADOS
CENTIGRADOS"<<endl;
11. cout<<"Opcion 5: TRANSFORMAR GRADOS KELVIN A GRADOS
FAHRENHEIT"<<endl;
12. cout<<"Opcion 6: SALIR "<<endl;
13. cout<<"Ingrese la opcion que desee: ";
14. cin>>op;
15. while (op<1||op>6){
16. cout<<"Ingrese una opcion valida: ";
17. cin>>op;
18. }
19. cout<<endl;
20. switch (op){
21. case 1:
22. cout<<"GRADOS FAHRENHEIT A GRADOS CELSIUS"<<endl;
23. cout<<endl;
24. cout<<"Ingrese los grados Fahrenheit: ";
25. cin>> f;
26. c=(f-32)*5/9;
27. cout<<endl;
28. cout<<"Transformado a grados Celsius es: "<<c<<"C";
29. break;
30. case 2:
31. cout<<"TRANSFORMAR GRADOS CELSIUS A GRADOS FAHRENHEIT"<<endl;
32. cout<<endl;
33. cout<<"Ingrese los grados Celsius: ";
34. cin>> c;
35. f=(c*9/5)+32;
36. cout<<endl;
37. cout<<"Transformado a grados Fahrenheit es: "<<f<<"F";
38. break;
39. case 3:
40. cout<<"TRANSFORMAR GRADOS CENTIGRADOS A GRADOS KELVIN"<<endl;
41. cout<<endl;
42. cout<<"Ingrese los grados Centigrados ";
43. cin>> gc;
44. k=gc+273.15;
45. cout<<endl;
46. cout<<"Transformado a grados Kelvin es: "<<k<<"K";
47. break;
48. case 4:
49. cout<<"TRANSFORMAR GRADOS KELVIN A GRADOS CENTIGRADOS"<<endl;
50. cout<<endl;
51. cout<<"Ingrese los grados Kelvin: ";
52. cin>> k;
53. gc=k-273.15;
54. cout<<endl;
55. cout<<"Transformado a grados Centigrados es: "<<gc<<"C";
56. break;
57. case 5:
58. cout<<"TRANSFORMAR GRADOS KELVIN A GRADOS FAHRENHEIT"<<endl;
59. cout<<"Ingrese los grados Kelvin: ";
60. cin>> k;
61. f=(k-273.15)*9/5+32;
62. cout<<"Transformado a grados Fahrenheit es: "<<f<<"F";
63. }
64. cout<<endl;
65. return 0;
66. }

7. Diseñar un diagrama de flujo que permita generar la sumatoria de la serie: a( a – 1) -


2a(a - 2) + 3a(a - 3) -.......

DATOS DE ENTRADA
a
DATOS DE SALIDA
suma

DIAGRMA DE FLUJO
CODIFICACION

1. #include <iostream>
2. #include <math.h>
3. using namespace std;
4. int main ()
5. {
6. int a,n,i,signo;
7. float e,s;
8. cout<<"Ingrese el valor de a: ";
9. cin>>a;
10. cout<<endl;
11. cout<<"Ingrese en numero de elementos que contendra la serie: ";
12. cin>>n;
13. signo=1;
14. s=0;
15. cout<<endl;
16. for (i=1;i<=n;i++)
17. {
18. e = signo*(i*pow(a,a-i));
19. s=s+e;
20. signo=signo*-1;
21. }
22. cout<<"La suma de la serie es: "<<s;
23. cout<<endl;
24. return 0;
25. }

DATOS DE ENTRADA
n
DATOS DE SALIDA

Numerador, denominador,suma

DIAGRAMA DE FLUJO
CODIFICACION

1. #include <iostream>
2. #include <math.h>
3. using namespace std;
4. int main ()
5. {
6. int i,e,n,s1;
7. float f,s,serie;
8. cout<<"Ingrese el numero de elementos: ";
9. cin>>n;
10. cout<<endl;
11. f=1;
12. s=0;
13. s1=0;
14. serie=0;
15. for (i=1;i<=n;i++)
16. {
17. f=f*i;
18. s=s+f;
19. e=pow(2,i);
20. s1=s1+e;
21. serie=serie+(s/s1);
22. }
23. cout<<"La suma del numerador es: "<<s<<endl;
24. cout<<"La suma del denominador es: "<<s1<<endl;
25. cout<<"La suma de la serie es: "<<serie<<endl;
26. return 0;
27. }

9. Generar las tablas de multiplicar del 2 a N. Use la estructura para - desde Ejemplo: Si N=
4 La salida debe ser:

DATOS DE ENTRADA
N
DATOS DE SALIDA
TABLAS DE MULTIPLICAR HASTA N

DIAGRAMA DE FLUJO

CODIFICACION

1. #include <iostream>
2. using namespace std;
3. int main ()
4. {
5. int n;
6. cout<<"Ingrese el valor de n: ";
7. cin>>n;
8. for (int j=0;j<=n;j++){
9. if (j>0){
10. cout<<j<<" ";
11. }
12. for (int i=1;i<=10;i++){
13. if (i==1&&j==0){
14. cout<<"X ";
15. }
16. else {
17. if (j==0&&i<10){
18. cout<<" "<<i<<" ";
19. }
20. else {
21. if (j==0&&i>9){
22. cout<<i;
23. }
24. else {
25. if (j>0&&i>1&&i*j<10){
26. cout<<" "<<i*j<<" ";
27. }
28. else{
29. if (j>0&&i>1&&i*j>9){
30. cout<<i*j<<" ";
31. }
32. }
33. }
34. }
35. }
36. }
37. cout<<endl;
38. }
39. }
10. Calcular todos los números de cuatro cifras que sean cuadrados perfectos. Un número
cuadrado perfecto, es un número entero que es el cuadrado de algún otro; dicho de otro
modo, un número cuya raíz cuadrada es un número entero.
Ejemplo,
• 9 es un número cuadrado perfecto ya que puede ser escrito como 3 × 3.
• 1600 es un número cuadrado perfecto ya que puede ser escrito como 40 x 40.
• 1000 no es un número perfecto, porque su raíz cuadrada no es un número entero
DATOS DE ENTRADA
N
DATOS DE SALIDA
i,j

DIAGRAMA DE FLUJO

CODIFICACION
1. #include <iostream>
2. using namespace std;
3. int main()
4. {
5. float i,r;
6. for (i=1000;i<10000;i++){
7. for(int j=1;j<=i;j++){
8. if(j*j==i){
9. cout<<i<<" Es un cuadrado perfecto ya que puede ser escrito como: "<<j<<" *
"<<j<< endl ;
10. }
11. }
12. }
13. return 0;
14. }
11.Realizar un diagrama de flujo que indique cuales son los números primos existentes en
un intervalo determinado ingresado como dato. Use cualquier estructura de repetición
Por ejemplo:
Los números primos existentes ente 20 y 40 son:
23, 29, 31, 37
Consideraciones
Se debe leer desde el teclado dos valores que forman parte del intervalo, m y n:
m>n , caso contrario el proceso no se realiza.
m y n deben ser números positivos

DATOS DE ENTRADA
myn

DATOS DE SALIDA
i

DIAGRAMA DE FLJO
CODIFICACION

1. #include <iostream>
2. using namespace std;
3. int main ()
4. {
5. int b,m,n,i,j;
6. bool p;
7. cout<<"Ingrese el valor de m: ";
8. cin>>m;
9. cout<<endl;
10. cout<<"Ingrese el valor de n: ";
11. cin>>n;
12. cout<<endl;
13. while (n>m||n<2||m<2){
14. cout<<" m y n deben ser positivos y mayores a 1"<<endl;
15. cout<<"M debe ser mayor a n: ";
16. cin>>m;
17. cout<<endl;
18. cout<<"Ingrese el valor de n: ";
19. cin>>n;
20. cout<<endl;
21. }
22. b=0;
23. cout<<"Los numeros primos entre "<<n<<" y "<<m<<" son: "<<endl;
24. cout<<endl;
25. for ( i=n;i<=m;i++)
26. {
27. j=2;
28. p=true;
29. while (j<i&&p==true)
30. {
31. if (i%j==0){
32. p=false;
33. }
34. j++;
35. }
36. if (p==true){
37. cout<<i<<" ";
38. }
39. }
40. cout<<endl;
41. return 0;
42. }

12. Realice un diagrama de flujo que lea UN NUMERO en base 10 y lo transforme en un


número de base 8.
Ejemplo 1: Se lee: 79 100 en base 8 es igual a 117
Ejemplo 2: Se lee: 3581 358 en base 8 es igual a 6775
DATOS DE ENTRADA NUM DATOS DE SALIDA SUMA

DIAGRMA DE FLUJO
CODIFICACION
1. #include<iostream>
2. using namespace std;
3. int main(){
4. int base, suma, num, res ,b10;
5. base = 1;
6. suma = 0;

7. cout<<"ingrese un numero "<<endl;


8. cin>>num;
9. b10=num/10;
10. cout<<b10<<endl;
11. do{
12. res = num % 8;
13. num = num / 8;
14. suma = suma + res * base;
15. base = base * 10;
16. }while(num>0 );
17. cout<<suma;
18. return 0;
19. }

13.Dados el primer término y la razón de una progresión geométrica, calcular la suma y el


producto de los N primeros términos. Use la estructura mientras hacer.
DATOS DE ENTRADA
i, n, t
DATOS DE SALIDA

Suma , producto
DIAGRAMA DE FLUJO
CODIFICACION

1. #include <iostream>
2. using namespace std;
3. int main ()
4. {
5. int i,t,n;
6. float p,r,suma,producto;
7. cout<<"Ingrese el primer termino: ";
8. cin>>t;
9. cout<<endl;
10. cout<<"Ingrese la razon: ";
11. cin>>r;
12. cout<<endl;
13. cout<<"Ingrese el numero de terminos deseados: ";
14. cin>>n;
15. i=1;
16. p=t;
17. cout<<endl;
18. cout<<"Progresion geometrica: ";
19. while (i<=n){
20. if (i==n){
21. cout<<p<<" ";
22. }else{
23. cout<<p<<", ";}
24. p=p*r;
25. i++;
26. }
27. i=1;
28. p=t;
29. suma=0;
30. cout<<endl;
31. cout<<"SUMA: ";
32. while (i<=n){
33. suma=suma+p;
34. if (i==n){
35. cout<<p<<" = ";
36. }else{
37. cout<<p<<" + ";}
38. p=p*r;
39. i++;
40. }
41. cout<<suma;
42. i=1;
43. p=t;
44. producto=1;
45. cout<<endl;
46. cout<<"PRODUCTO: ";
47. while (i<=n){
48. producto=producto*p;
49. if (i==n){
50. cout<<p<<" = ";
51. }else{
52. cout<<p<<" * ";}
53. p=p*r;
54. i++;
55. }
56. cout<<producto<<endl;
57. return 0;
58. }

14.Dado un ángulo expresado en grados. Determinar el valor del seno del mismo
utilizando el desarrollo de la serie de Mac Laurin. El ángulo debe pasarse a radianes. El
número de términos es dado de entrada.
Nota: 360° = 2π radianes

DATOS DE ENTRADA
g,e,f,n,i,j,signo
DATOS DE SALIDA
sum
DIAGRAMA DE FLUJO

CODIFICACION

1. #include <iostream>
2. #include <math.h>
3. using namespace std;
4. int main ()
5. {
6. int g,e,f,n,i,j,signo;
7. float sum,t,r;
8. cout<<"Ingrese los grados: ";
9. cin>>g;
10. cout<<"Ingrese el numero de terminos: ";
11. cin>>n;
12. r=g*3.1415/180;
13. signo=1;
14. sum=0;
15. for (i=1;i<=n;i++){
16. f=1;
17. e=(2*i)-1;
18. for (j=1;j<=e;j++){
19. f=f*j;
20. }
21. t=signo*((pow(r,e))/f);
22. signo=signo*-1;
23. sum=sum+t;
24. }
25. cout<< " el seno de "<<g<<" grados es: "<<r<<endl;
26. cout<< " La suma en radianes es: "<<sum;
27. }
28. return 0;
29. }

15.El valor de PI se puede calcular mediante la siguiente serie:

Realice un diagrama de flujo que calcule una aproximación al número Pi usando un


número de términos suministrado por el usuario.

DATOS DE ENTRADA
n,i,signo

DATOS DE SALIDA
suma

DIAGRAMA DE FLUJO

CODIFICACION

1. #include <iostream>
2. using namespace std;
3. int main ()
4. {
5. int n,i,signo;
6. float s,suma,f,nu,d;
7. cout<<"Ingrese el numero de terminos: ";
8. cin>>n;
9. cout<<endl;
10. signo=1;
11. suma=0;
12. nu=1;
13. for (i=1;i<=n;i++){
14. d=(2*i)-1;
15. s=signo*(nu/d);
16. suma=suma+s;
17. signo=signo*-1;
18. }
19. suma=suma*4;
20. cout<<"El valor de PI aproximado es: "<<suma<<endl;
21. }

16.Realice un diagrama de flujo que dibuje un árbol sencillo en la pantalla. Se debe


ingresar por el teclado el número de filas que contendrá el árbol a graficar, las mismas que
deben ser superiores a 5

DATOS DE ENTRADA
filas

DATOS DE SALIDA

filas
DIAGRAMA DE FLUJO

CODIFICACION

1. #include <iostream>
2. using namespace std;
3. int main ()
4. {
5. int i,j,n;
6. cout<<"Ingrese el numero de filas: ";
7. cin>>n;
8. if (n<6){
9. while (n<6){
10. cout<<"El numero de filas debe de ser mayor a cinco ";
11. cin>>n;
12. }
13. }
14. cout<<endl;
15. for (i=1;i<=n;i++)
16. {
17. for(j=1;j<=n-i;j++){
18. cout<<" ";
19. }
20. for(int k=1;k<=2*i-1;k++){
21. cout<<"*";
22. }
23. cout<<endl;
24. }
25. return 0;
26. }

Você também pode gostar