61
Arón Herrera Ponte

Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

  • Upload
    vuquynh

  • View
    216

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Arón Herrera PonteC++

Page 2: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

Capítulo 3.Estructuras RepetitivasLa estructura repetitiva o iterativa permite, como su propio nombre indica, repetir una acción (o grupo de acciones); dicha repetición puede llevarse a cabo un número prefijado de veces o depender de la evaluación de una expresión lógica. Existen tres tipos de estructuras repetitivas: desde-hasta, mientras y repetir-hasta.

1) Estructura PARA (FOR).- En esta estructura se repite una acción un número fijo de veces representado normalmente por N.

Esta estructura permite repetir la ejecución de una acción o de un grupo de acciones un número determinado de veces; la sintaxis es la siguiente:

PARA <variable> DESDE <inicio> HASTA <fin> [INCREMENTO/DECREMENTO valor] HACER <código interno>FIN_PARA

El funcionamiento de la estructura es el siguiente:• En primer lugar, se asigna a la <variable> un valor de <inicio>.• El bucle se ejecuta mientras la <variable> no alcance el valor de <fin>.• En cada iteración el valor de la <variable> es incrementado según el paso indicado y se ejecuta el <código interno> del bucle.• En caso de que no se indique ningún paso el que se empleará será +1 (incremento en una unidad).

2) Estructura MIENTRAS (WHILE).- En esta estructura se repite una acción mientras se cumpla la condición que controla el bucle. La característica principal de esta estructura se encuentra en la condición, debido a que la condición es evaluada siempre antes de cada repetición.

Prof. Arón Elías Herrera Ponte Pág. 2

Ni ← X

Si Ni > Nf

Ni ← Ni + 1

A

SI

NO

Page 3: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

El número de repeticiones oscila entre 0 e infinito, dependiendo de la evaluación de la condición, cuyos argumentos en los casos de repetición, al menos una vez, deberán modificarse dentro del bucle, pues de no ser así el número de repeticiones será infinito y nos encontraremos en un bucle sin salida.

Esta estructura repite una acción o grupo de acciones mientras una expresión lógica sea cierta; la sintaxis en la notación algorítmica es la siguiente:

MIENTRAS( <expresión lógica> ) HACER <código interno>FIN_MIENTRAS

Un aspecto muy importante de la presente estructura de control es que si la expresión lógica es inicialmente falsa el bucle no se ejecuta ni una sola vez; es decir, la estructura mientras supone que el bucle iterará 0 ó más veces.

3) Estructura HACER MIENTRAS (DO WHILE). En esta estructura se repite una acción hasta que se cumpla la condición que controla el bucle, la cual se evalúa después de cada ejecución del mismo. El número de repeticiones oscila entre 1 e infinito, dependiendo de la evaluación de la condición, cuyos argumentos en los casos de repetición, al menos dos veces, deberán modificarse dentro del bucle, pues de no ser así el número de repeticiones será infinito y nos encontraremos en un bucle sin salida

Esta estructura repite una acción o grupo de acciones hasta que una expresión lógica sea cierta; la sintaxis en la notación algorítmica es la siguiente:

Prof. Arón Elías Herrera Ponte Pág. 3

SI

condiciónNO

A

SIcondición

NO

A

Page 4: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

HACER <código interno>MIENTRAS( <expresión lógica> )

Un aspecto muy importante de la presente estructura de control es que la expresión lógica no se evalúa hasta el final con lo cual el bucle se ejecuta al menos una vez por contraposición a la estructura anterior que podía no ejecutarse ninguna.

Prof. Arón Elías Herrera Ponte Pág. 4

Page 5: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

Práctica Dirigida N° 3Estructuras Repetitivas

Problema 1:Leer n números, determinar la media de los números positivos y la media de los números negativos.

Pseudocódigo

VARIABLES ENTERO : n, numero, cont1, cont2, i REAL : suma1, suma2, R1, R2 ACCION Hallar_media_numeros ESCRIBIR("La cantidad de números a ingresar es : ") LEER(n)

cont1 0 cont2 0 suma1 0 suma2 0

PARA i DESDE 0 HASTA n-1 HACER ESCRIBIR("ingrese el numero : ") LEER(numero)

SI numero > 0 ENTONCES suma1 suma1 + numero cont1 cont1 + 1 SINO suma2 suma2 + numero cont2 cont2 + 1 FIN_SI

FIN_PARA

R1 suma1/cont1 R2 suma2/cont2 ESCRIBIR("La media de los números positivos es : ", R1 ) ESCRIBIR("La media de los números negativos es : ", R2 )

FIN_ACCION

C++

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

void main(){ int n, numero, cont1 = 0, cont2 = 0; float suma1 = 0, suma2 = 0, R1, R2;

cout<<"La cantidad de números a ingresar es : "; cin>>n;

for(int i=0; i<n; i++){ cout<<"ingrese el numero : "; cin>>numero;

Prof. Arón Elías Herrera Ponte Pág. 5

Page 6: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

if(numero>0){ suma1 = suma1 + numero; cont1++; }else{ suma2 = suma2 + numero; cont2++; } }

R1 = suma1 / cont1; R2 = suma2 / cont2;

cout<<"La media de los números positivos es : "<<R1; cout<<"\nLa media de los números negativos es : "<<R2;

getch(); clrscr();}

Diagrama de Flujo

Diagrama de Flujo (Continuación)

Prof. Arón Elías Herrera Ponte Pág. 6

INICIO

ENTERO : n, numero, cont1, cont2, i REAL : suma1, suma2, R1, R2

"La cantidad de números a ingresar es: "

n

cont1 0 cont2 0suma1 0suma2 0i 0

A

Page 7: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

Problema 2:

Prof. Arón Elías Herrera Ponte Pág. 7

i < n

"Ingrese el numero: "

numero

numero > 0

suma1 suma1 + numero cont1 cont1 + 1

suma2 suma2 + numero cont2 cont2 + 1

A

R1 suma1/cont1 R2 suma2/cont2

"La media de los números positivos es: ", R1

"La media de los números negativos es: ", R2

FIN

i i + 1

NO

SI

NO

SI

Page 8: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

Hacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado.

Pseudocódigo

VARIABLES ENTERO : n, i REAL : RACCION Hallar_factorial_numero ESCRIBIR("Ingrese el numero: ") LEER(n)

R 1 PARA i DESDE 0 HASTA n-1 HACER R R*( i + 1 ) FIN_PARA ESCRIBIR("El factorial del numero ", n," es: ", R ) FIN_ACCION

C++

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

void main(){ int n, i; double R = 1;

cout<<"Ingrese el numero: "; cin>>n;

for(int i=0; i<n; i++){ R = R * (i+1); }

cout<<"El factorial del numero "<<n<<" es: "<<R;

getch(); clrscr();}

Prof. Arón Elías Herrera Ponte Pág. 8

Page 9: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

Diagrama de Flujo

Problema 3:

Prof. Arón Elías Herrera Ponte Pág. 9

INICIO

ENTERO : n, i REAL : R"Ingrese el numero: "

n

R 1i 0

i < n

R R*( i + 1 )

"El factorial del numero ", n," es: ", R

NO

SI

i i + 1

FIN

Page 10: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

Hacer un algoritmo que obtenga la potencia n-ava de un número ingresado por teclado.

Pseudocódigo

VARIABLES Entero : i, pot REAL : num, RACCION Hallar_potencia_numero ESCRIBIR("Ingrese el numero : ") LEER(num) ESCRIBIR("Ingrese la potencia : ") LEER(pot) R 1

PARA i DESDE 0 HASTA pot-1 HACER R R*num FIN_PARA ESCRIBIR("La potencia de ", num ," al ", pot ," es : ", R )

FIN_ACCION

C++

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

void main(){ int i, pot; double num, R = 1;

cout<<"Ingrese el numero : "; cin>>num; cout<<"Ingrese la potencia : "; cin>>pot;

for(int i=0; i<pot; i++){ R = R * num; }

cout<<"La potencia de "<<num<<" al "<<pot<<" es : "<<R;

getch(); clrscr();}

Prof. Arón Elías Herrera Ponte Pág. 10

Page 11: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

Diagrama de Flujo

Prof. Arón Elías Herrera Ponte Pág. 11

INICIO

ENTERO : i, pot REAL : num, R

"Ingrese el numero: "

num

R 1i 0

i < pot

R R * num

"Potencia de ", num ," al ", pot ," es : ", R

NO

SI

i i + 1

FIN

"Ingrese la potencia: "

pot

Page 12: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

Problema 4:Verificar si un número ingresado por teclado es primo.

Pseudocódigo

VARIABLES ENTERO : num, cont, iACCION Verificar_numero_primo ESCRIBIR("Ingrese el numero : ") LEER(num) SI num < > 0 ENTONCES

cont 0

PARA i DESDE 1 HAST num HACER SI num MOD i = 0 ENTONCES cont cont + 1 FIN_SI

SI cont > 2 ENTONCES i num FIN_SI FIN_PARA SI cont = 2 ENTONCES ESCRIBIR("El numero ingresado es primo") SINO ESCRIBIR("El numero ingresado no es primo") FIN_SI SINO ESCRIBIR("El numero ingresado no es primo") FIN_SI

FIN_ACCION

C++

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

void main(){ int num, cont = 0, i;

cout<<"Ingrese el numero : "; cin>>num;

if(num != 1){ for(i=1; i<=num; i++){ if(num % i == 0){ cont++; } if(cont > 2){

Prof. Arón Elías Herrera Ponte Pág. 12

Page 13: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

i = num; } }

if(cont == 2){ cout<<"El numero ingresado es primo"; }else{ cout<<"El numero ingresado no es primo"; } }else{ cout<<"El numero ingresado no es primo"; }

getch(); clrscr();}

Prof. Arón Elías Herrera Ponte Pág. 13

Page 14: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

Diagrama de Flujo

Prof. Arón Elías Herrera Ponte Pág. 14

NO

SI

SI

NO

INICIO

ENTERO : num, cont, i

"Ingrese el numero: "

num

cont 0i 1

i <= num

cont cont + 1

NO

SI

i i + 1

num <> 0

num MOD i = 0

SI

NO

i num

cont > 2

A B

Page 15: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

Diagrama de Flujo (Continuación)

Problema 5:Hacer un algoritmo que permita realizar las operaciones ( + - * / ); implementar un menú de opciones.

Pseudocódigo

VARIABLES ENTERO : opcion ENTERO : x, y REAL : num1, num2, R ACCION Menu_cuatro_operaciones HACER HACER ESCRIBIR("+---------------------------+") ESCRIBIR("¦ MENU ¦") ESCRIBIR("¦ ¦") ESCRIBIR("¦ SUMA..................[1] ¦") ESCRIBIR("¦ RESTA.................[2] ¦") ESCRIBIR("¦ MUTIPLICACION………….....[3] ¦") ESCRIBIR("¦ DIVISION..............[4] ¦") ESCRIBIR("¦ SALIR.................[5] ¦") ESCRIBIR("¦ ¦") ESCRIBIR("¦---------------------------¦") ESCRIBIR("¦ OPCION................[ ] ¦") ESCRIBIR("+---------------------------+")

Prof. Arón Elías Herrera Ponte Pág. 15

A B

cont = 2

NO

SI

"El numero ingresado es PRIMO"

"El numero ingresado no es PRIMO"

"El numero ingresado no es PRIMO"

FIN

Page 16: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

LEER(opcion) MIENTRAS(opcion<0 v opcion>5) SI opcion < > 5 ENTONCES ESCRIBIR("Ingrese el primer numero : " ) LEER(num1) ESCRIBIR("Ingrese el segundo numero : ") LEER(num2) FIN_SI SEGUN_SEA( opcion ) HACER CASO 1: R num1 + num2 ESCRIBIR("El resultado de ", num1 ," + ", num2 ," es : ", R ) CASO 2: R num1 - num2 ESCRIBIR("El resultado de ", num1 ," - ", num2 ," es : ", R ) CASO 3: R num1 * num2 ESCRIBIR("El resultado de ", num1 ," x ", num2 ," es : ", R ) CASO 4: R num1 / num2 ESCRIBIR("El resultado de ", num1 ," / ", num2 ," es : ", R ) FIN_SEGUN_SEA MIENTRAS( opcion < > 5 )

FIN_ACCION

C++

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

void main(){ int opcion; int x = 30, y = 7; double num1, num2, R;

do{ do{ clrscr(); gotoxy(x,y); cout<<"*************************"; gotoxy(x,y+1); cout<<"* MENU *"; gotoxy(x,y+2); cout<<"* *"; gotoxy(x,y+3); cout<<"* SUMA..............[1] *"; gotoxy(x,y+4); cout<<"* RESTA.............[2] *"; gotoxy(x,y+5); cout<<"* MUTIPLICACION.....[3] *"; gotoxy(x,y+6); cout<<"* DIVISION..........[4] *"; gotoxy(x,y+7); cout<<"* SALIR.............[5] *"; gotoxy(x,y+8); cout<<"* *"; gotoxy(x,y+9); cout<<"*************************";

Prof. Arón Elías Herrera Ponte Pág. 16

Page 17: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

gotoxy(x,y+10); cout<<"* OPCION............[ ] *"; gotoxy(x,y+11); cout<<"*************************"; gotoxy(x+21,y+10); cin>>opcion; }while(opcion<0||opcion>5);

clrscr();

if(opcion!=5){ gotoxy(x,7);cout<<"Ingrese el primer numero : "; cin>>num1; gotoxy(x,8);cout<<"Ingrese el segundo numero : "; cin>>num2; }

gotoxy(x,10);

switch(opcion){ case 1: R = num1 + num2;

cout<<"El resultado de "<<num1<<" + "<<num2<<" es : "<<R; getch();

break; case 2: R = num1 - num2;

cout<<"El resultado de "<<num1<<" - "<<num2<<" es : "<<R; getch();

break; case 3: R = num1 * num2;

cout<<"El resultado de "<<num1<<" x "<<num2<<" es : "<<R; getch();

break; case 4: R = num1 / num2;

cout<<"El resultado de "<<num1<<" / "<<num2<<" es : "<<R; getch();

break; }

}while(opcion!=5);

}

Prof. Arón Elías Herrera Ponte Pág. 17

Page 18: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

Diagrama de Flujo

Prof. Arón Elías Herrera Ponte Pág. 18

"+---------------------------+""¦ MENU ¦""¦ ¦""¦ SUMA..................[1] ¦""¦ RESTA.................[2] ¦""¦ MUTIPLICACION.........[3] ¦""¦ DIVISION..............[4] ¦""¦ SALIR.................[5] ¦""¦ ¦""¦---------------------------¦""¦ OPCION................[ ] ¦""+---------------------------+"

INICIO

ENTERO : opcion REAL : num1, num2, R

opcion

opcion < 0 v opcion > 5

opcion <> 5

NO

SI

AB C

NO

SI

Page 19: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

Diagrama de Flujo (Continuación)

Prof. Arón Elías Herrera Ponte Pág. 19

"Ingrese el segundo numero: "

opcion = 1

R num1 + num2

"El resultado de ", num1, " + ", num2," es: ", R

NO

SI

num2

AB C

"Ingrese el primer numero: "

num1

opcion = 2

R num1 - num2

"El resultado de ", num1, " - ", num2," es: ", R

NO

SI

opcion = 3

R num1 * num2

"El resultado de ", num1, " x ", num2," es: ", R

NO

SI

opcion = 4

R num1 / num2

"El resultado de ", num1, " / ", num2," es: ", R

NO

SI

DE

Page 20: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

Diagrama de Flujo (Continuación)

Problema 6:Escriba un algoritmo que, para un n menor que 10 facilitado por teclado, escriba en la pantalla un triángulo como el siguiente (suponiendo para n = 4)

1*122*22

333*3334444*4444

Pseudocódigo

VARIABLES ENTERO : n, i, jACCION Mostrar_piramide_numeros HACER ESCRIBIR("Ingrese el numero : ") LEER(n) MIENTRAS ( n<1 v n>9 ) PARA i DESDE 0 HASTA n-1 HACER PARA j DESDE 0 HASTA i HACER UBICAR( 39-j , 5+i ) ESCRIBIR(i+1) FIN_PARA UBICAR( 40 , 5+i ) ESCRIBIR("*") PARA j DESDE 0 HASTA i HACER UBICAR ( 41+j , 5+i ) ESCRIBIR(i+1) FIN_PARA

Prof. Arón Elías Herrera Ponte Pág. 20

DE

opcion <> 5

FIN

NO

SI

Page 21: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

FIN_PARA

FIN_ACCION

C++

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

void main(){ int n, i, j;

do{ cout<<"Ingrese el numero : "; cin>>n; clrscr(); }while(n<1 || n>9);

for(i=0; i<n; i++){ for(j=0; j<i+1; j++){ gotoxy(39-j, 5+i); cout<<i+1; }

gotoxy(40, 5+i); cout<<"*";

for(j=0; j<i+1; j++){ gotoxy(41+j, 5+i); cout<<i+1; } }

getch(); clrscr();}

Prof. Arón Elías Herrera Ponte Pág. 21

Page 22: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

Diagrama de Flujo

Prof. Arón Elías Herrera Ponte Pág. 22

NO

SI

SI

NO

INICIO

ENTERO : n, i, j

"Ingrese el numero: "

n

i 0

i < n

UBICAR( 39-j , 5+i )

NO

SI

n<1 v n>9

j 0

j <= i

i + 1

j j + 1

AB C

Page 23: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

Diagrama de Flujo (Continuación)

Problema 7:La secuencia de los números Fibonacci empieza con los enteros: 1, 1, 2, 3, 5, 8, 13, 21, ... donde cada número después de los dos primeros es la suma de los dos números anteriores. Escribir un algoritmo que pida el ingreso de un número natural y determine si es un número Fibonacci. Si lo es imprima la terna del Fibonacci anterior al número, el número y el siguiente número Fibonacci.

Prof. Arón Elías Herrera Ponte Pág. 23

AB C

SI

NO

UBICAR( 41+j , 5+i )

j 0

j <= i

i + 1

j j + 1

FIN

SI

i i + 1

num2

Page 24: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

Pseudocódigo

VARIABLES ENTERO : n, fibo, fibo1, fibo2ACCION Verificar_numero_fibonacci ESCRIBIR("Ingrese el numero : ") LEER(n)

fibo1 0 fibo2 1 HACER fibo fibo1 + fibo2 fibo1 fibo2 fibo2 fibo MIENTRAS( fibo < n ) SI fibo = n ENTONCES ESCRIBIR("La terna de números fibonacci es : ") ESCRIBIR( fibo1 ," ", fibo2 ," ", fibo1+fibo2 ) SINO ESCRIBIR("El número ingresado no pertenece a la serie fibonacci") FIN_SI

FIN_ACCION

C++

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

void main(){ int n, fibo, fibo1 = 0, fibo2 = 1;

cout<<"Ingrese el numero : "; cin>>n;

do{ fibo = fibo1 + fibo2; fibo1 = fibo2; fibo2 = fibo; }while(fibo < n);

if(fibo == n){ cout<<"La terna de números fibonacci es : "; cout<<fibo1<<" "<<fibo2<<" "<<fibo1+fibo2; }else{ cout<<"El número ingresado no pertenece a la serie fibonacci"; }

getch(); clrscr();}

Prof. Arón Elías Herrera Ponte Pág. 24

Page 25: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

Diagrama de Flujo

Problema 8:

Prof. Arón Elías Herrera Ponte Pág. 25

SI

NO

INICIO

ENTERO : n, fibo, fibo1, fibo2

"Ingrese el numero: "

n

fibo fibo1 + fibo2 fibo1 fibo2 fibo2 fibo

fibo < n

NO

SI

fibo = n

"La terna de números fibonacci es : ", fibo1 ," ", fibo2 ," ", fibo1+fibo2

"El número ingresado no pertenece a la serie fibonacci"

FIN

fibo1 0fibo2 1

Page 26: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

Hacer un algoritmo que genere la los 30 primeros términos de la serie:

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

Pseudocódigo

VARIABLES ENTERO : i ACCION Mostrar_serie

PARA i DESDE 1 HASTA 15 HACER ESCRIBIR( i ," ", i+2 ," ") FIN_PARA

FIN_ACCION

C++

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

void main(){ int i;

for(i=1; i<=15; i++){ cout<<i<<" "<<i+2<<" "; }

getch(); clrscr();}

Prof. Arón Elías Herrera Ponte Pág. 26

Page 27: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

Diagrama de Flujo

Problema 9:Hacer un algoritmo que genere la los 20 primeros términos de la serie:

1 , 2 , 4 , 7 , 11 , 16 , 22 , 29 , ....

Pseudocódigo

VARIABLES ENTERO : i, valorACCION Mostrar_serie valor 1 PARA i DESDE 0 HASTA 19 HACER valor valor + i ESCRIBIR( valor ," " ) FIN_PARA FIN_ACCION

Prof. Arón Elías Herrera Ponte Pág. 27

INICIO

ENTERO : i

i <= 15

i ," ", i+2 ," "

FIN

i 0

i i + 1

NO

SI

Page 28: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

C++

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

void main(){ int i, valor = 1;

for(i=0; i<20; i++){ valor = valor + i; cout<<valor<<" "; }

getch(); clrscr();}

Diagrama de Flujo

Prof. Arón Elías Herrera Ponte Pág. 28

INICIO

ENTERO : i, valor

i <= 19

valor ," "

FIN

i 0valor 1

i i + 1

valor valor + i

NO

SI

Page 29: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

Problema 10:La media armónica de n números enteros está definida por:

Y la media geométrica por:

Hacer un algoritmo para calcular la diferencia entre la media armónica y la media geométrica de M números enteros positivos.

Pseudocódigo

VARIABLES ENTERO : i REAL : n, numero, MH, MG, suma, productoACCION Hallar_diferencia_medias ESCRIBIR("Ingrese la cantidad de números : ") LEER(n)

suma 0 producto 1 PARA i DESDE 0 HASTA n-1 HACER ESCRIBIR("Ingrese el numero : ") LEER(numero) suma suma + 1/numero producto producto*numero FIN_PARA

MH n/suma MG RAIZN(producto,1/n) ESCRIBIR("La Media Armónica es : ", MH ) ESCRIBIR("La Media Geométrica es : ", MG) ESCRIBIR("La diferencia entre la Media Armónica y Media Geométrica es : ") ESCRIBIR( MH – MG )

FIN_ACCION

C++

Prof. Arón Elías Herrera Ponte Pág. 29

Page 30: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

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

void main(){ int i; double n, numero, MH, MG, suma = 0, producto = 1;

cout<<"Ingrese la cantidad de numeros : "; cin>>n;

for(i=0; i<n; i++){ cout<<"Ingrese el numero : "; cin>>numero;

suma = suma + 1/numero; producto = producto * numero;

}

MH = n/suma; MG = pow(producto,1/n);

cout<<"La Media Armónica es : "<<MH; cout<<"\nLa Media Geométrica es : "<<MG; cout<<"\nLa diferencia entre la Media Armónica y la Media Geométrica es: "; cout<<MH-MG;

getch(); clrscr();}

Prof. Arón Elías Herrera Ponte Pág. 30

Page 31: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

Diagrama de Flujo

Prof. Arón Elías Herrera Ponte Pág. 31

MH n/suma MG RAIZN(producto,1/n)

INICIO

ENTERO : iREAL : n, numero, MH, MG, suma, producto

i < n

"La Media Armónica es: ", MH"La Media Geométrica es: ", MG"La diferencia entre la Media Armónica y Media Geométrica es: ", MH – MG

FIN

suma 0producto 1i 0

i i + 1

suma suma + 1/numero producto producto * numero

NO

SI

"Ingrese la cantidad de números: "

n

"Ingrese el número: "

numero

Page 32: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

Problema 11:Calcular:

E(x)= 1 + x + x 2 + ... + x n 2! N!

Tal que xn/n! < E ( E = 0.0001 )

Pseudocódigo

VARIABLES ENTERO : i, n REAL : E, suma, numero, pot, fact ACCION Hallar_valor_numerico ESCRIBIR("Ingrese el numero : ") LEER(numero) n 1 E 0.0001 suma 1 HACER pot 1 fact 1

PARA i DESDE 0 HASTA n-1 HACER pot pot * numero FIN_PARA

PARA i DESDE 1 HASTA n HACER fact fact * i FIN_PARA

suma suma + pot/fact n n +1 MIENTRAS( pot/fact > E ) ESCRIBIR("El valor de E (", numero ,") es : ", suma )

FIN_ACCION

Prof. Arón Elías Herrera Ponte Pág. 32

Page 33: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

C++

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

void main(){ int i, n = 1; double E = 0.0001, suma = 1, numero, pot, fact;

cout<<"Ingrese el numero : "; cin>>numero;

do{ pot = 1; fact = 1;

for(i=0; i<n; i++){ pot=pot*numero; }

for(i=1; i<=n; i++){ fact = fact * i; }

suma = suma + pot/fact; n++; }while(pot/fact > E);

cout<<"El valor de E("<<numero<<") es : "<<suma; getch(); clrscr();}

Prof. Arón Elías Herrera Ponte Pág. 33

Page 34: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

Diagrama de Flujo

Prof. Arón Elías Herrera Ponte Pág. 34

INICIO

ENTERO : i, nREAL : E, suma, numero, pot, fact

i < n

n 1E 0.0001suma 1

i i + 1

NO

SI

"Ingrese el número: "

numero

pot pot * numero

pot 1fact 1i 0

AB

Page 35: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

Diagrama de Flujo (Continuación)

Problema 12:Escribir un algoritmo para calcular el seno de un ángulo dado en grados sexagesimales, usando la siguiente serie de Taylor:

Sen(x)=x - x 3 + x 5 - x 7 + … 3! 5! 7!Donde x esta dado en radianes. Hallar el valor para N términos.Pseudocódigo

CONSTANTES

Prof. Arón Elías Herrera Ponte Pág. 35

"El valor de E (", numero,") es: ", suma

FIN

AB

i 1

i <= n

i i + 1

NO

SI

fact fact * i

suma suma + pot/fact n n +1

pot/fact > E

NO

SI

Page 36: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

REAL : PI 3.14159VARIABLES ENTERO : i, j, cantidad REAL : suma, num, numero, pot, factACCION Hallar_Seno_angulo ESCRIBIR("Ingrese el Angulo en grados sexagesimales: ") LEER(num) ESCRIBIR("Ingrese la cantidad de términos de la serie: ") LEER(cantidad) numero num*PI/180 suma 0 PARA i DESDE 0 HASTA cantidad-1 HACER pot 1 fact 1 PARA j DESDE 1 HASTA 2*(i+1)-1 HACER pot pot*numero FIN_PARA PARA j DESDE 1 HASTA 2*(i+1)-1 HACER fact fact*j FIN_PARA

SI ( i MOD 2 = 0 ) ENTONCES suma suma + pot/fact SINO suma suma - pot/fact FIN_SI FIN_PARA

ESCRIBIR("El valor de Sen(", num ,") es : ", suma ) FIN_ACCION

C++

#include <iostream.h>#include <conio.h>#define PI 3.14159

void main(){ int i, j, cantidad; double suma = 0, num, numero, pot, fact;

cout<<"Ingrese el Angulo en grados sexagesimales: "; cin>>num; cout<<"Ingrese la cantidad de términos de la serie: "; cin>>cantidad;

numero = num * PI/180;

for(i=0; i<cantidad; i++){ pot = 1; fact = 1; for(j=1; j<=2*(i+1)-1; j++){ pot = pot * numero;

Prof. Arón Elías Herrera Ponte Pág. 36

Page 37: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

} for(j=1; j<=2*(i+1)-1; j++){ fact = fact * j; }

if(i%2 == 0){ suma=suma+pot/fact; }else{ suma=suma-pot/fact; } }

cout<<"El valor de Seno("<<num<<") es : "<<suma; getch(); clrscr();}

Diagrama de Flujo

Prof. Arón Elías Herrera Ponte Pág. 37

INICIO

REAL : PI 3.14159ENTERO : i, j, cantidadREAL : suma, num, numero, pot, fact

"Ingrese el Angulo en grados sexagesimales: "

num

"Ingrese la cantidad de términos de la serie: "

cantidad

numero num * PI / 180

A

Page 38: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

Diagrama de Flujo (Continuación)

Prof. Arón Elías Herrera Ponte Pág. 38

i < cantidad

suma 0i 0

j 1

NO

SI

A

j <= 2*(i+1)-1

pot pot * numero

j j + 1

NO

SI

pot 1fact 1

j 1

j <= 2*(i+1)-1

fact fact * j

j j + 1

NO

SI

BC D

Page 39: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

Diagrama de Flujo (Continuación)

Problema 13:Escriba un algoritmo que calcule la raíz de un número usando el método de Newton de aproximación por intervalos.

Ejemplo: Para el cálculo de la raíz cuadrada de 25 el algoritmo toma como intervalo inicial = [ 0 , 25 ]

* Calcula el punto medio del intervalo [ 0 , 25 ] = 12.5 Como (12.5)2>25, toma como nuevo intervalo = [ 0 , 12.5 ]* Calcula el punto medio del intervalo [ 0 , 12.5 ] = 6.25 Como (6.25)2>25, toma como nuevo intervalo = [ 0 , 6.25 ]* Calcula el punto medio del intervalo [ 0 , 6.25 ] = 3.125 Como (3.125)2<25, toma como nuevo intervalo = [ 3.125 , 6.25 ]Y así sucesivamente...

Finalmente, el bucle termina cuando el valor absoluto de la diferencia entre el número y el punto medio al cuadrado es menor que un cierto E ( E=0.00000001) y escribe 4.99999 como solución.

Prof. Arón Elías Herrera Ponte Pág. 39

BC D

i MOD 2 = 0

suma suma + pot/fact

NO

SI

suma suma - pot/fact

"El valor de Sen(", num, ") es: ", suma

FIN

i i + 1

Page 40: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

Pseudocódigo

CONSTANTES REAL : E 0.00000001VARIABLES REAL : num, A, B, M, cuadACCION Hallar_Raiz_cuadrada ESCRIBIR("Ingrese el numero : ") LEER(num) A 0 B num HACER M ( A + B ) / 2 cuad CUADRADO(M,2) SI ( cuad > num ) ENTONCES B M SINO A M FIN_SI

MIENTRAS( VALOR_ABSOLUTO( num – cuad ) > E ) ESCRIBIR("La raíz cuadrada del numero ", num ," es : ", M )

FIN_ACCION

C++

Prof. Arón Elías Herrera Ponte Pág. 40

Page 41: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

#include <iostream.h>#include <conio.h>#include <math.h>#define E 0.00000001

void main(){ double A = 0, B, M, cuad, num;

cout<<"Ingrese el numero : "; cin>>num;

B = num;

do{ M = (A+B)/2; cuad = pow(M,2);

if(cuad > num){ B = M; }else{ A = M; } }while(abs(num - cuad) > E);

cout<<"La raiz cuadrada del numero "<<num<<" es : "<<M;

getch(); clrscr();}

Prof. Arón Elías Herrera Ponte Pág. 41

Page 42: Estructuras Secuenciales · Web viewHacer un algoritmo que obtenga el valor del factorial de un número ingresado por teclado. Pseudocódigo VARIABLES ENTERO : n, i REAL : R ACCION

Algorítmica I Estructuras Repetitivas

Diagrama de Flujo

Prof. Arón Elías Herrera Ponte Pág. 42

INICIO

REAL : E 0.00000001REAL : num, A, B, M, cuad

"Ingrese el numero: "

num

A 0B num

M ( A + B ) / 2 cuad CUADRADO(M,2)

cuad > num

NO

SI

B M A M

VALOR_ABSOLUTO( num – cuad

) > E

"La raíz cuadrada del numero ", num," es: ", M

FIN

NO

SI