Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MONOGRFIA DE ALGORITMOS
CURSO : ALGORITMOS
CICLO-SECCIÓN : I-B
2017
SPEUDOCODIGO
Fin Mientras
FinSubProceso
// Sub Menu Volúmenes
SubProceso SubMenu02
OpcSM,a,b,c Es Entero
OpcSM=0
Mientras (OpcSM<>4) Hacer
Borrar Pantalla
Imprimir "[ 2 ] Volúmenes"
Imprimir " [1] Cono"
Imprimir " [2] Cilindro"
Imprimir " [3] Esfera"
Imprimir " [4] Salir"
Imprimir " "
Imprimir Sin Saltar "Ingrese Opcion [2] Volúmenes -";Leer OpcSM
Segun OpcSM Hacer
1: //BorrarPantalla
Repetir
Imprimir Sin Saltar "Ingrese el lado medida en cms. del
lado a: "; Leer Sin Saltar a
Hasta Que (a>0)
Repetir
Imprimir Sin Saltar "Ingrese el lado medida en cms. del
lado b: "; Leer Sin Saltar b
Hasta Que (b>0)
Repetir
Imprimir Sin Saltar "Ingrese el lado medida en cms. del
lado c: "; Leer Sin Saltar c
Hasta Que (c>0)
Imprimir "El Area del Triangulo es : ",AreaTrianguloABC(a,b,c)
Imprimir " "
2: Borrar Pantalla
Imprimir "para habilitar"
3: Borrar Pantalla
Imprimir "para habilitar"
Fin Segun
Fin Mientras
FinSubProceso
Algoritmo Menu
opc Es Caracter
Num,a,b,c Es Entero
opc='S'
Mientras (opc <> 'N') o (opc <> 'n') Hacer
BorrarPantalla
Imprimir "[ 1 ] Áreas"
Imprimir " [1] Triángulo de lados a, b y c"
Imprimir " [2] Hexágono regular de radio R"
Imprimir " [3] Esfera de radio R"
Imprimir " [4] Salir"
Imprimir "[ 2 ] Volúmenes"
Imprimir " [1] Cono"
Imprimir " [2] Cilindro"
Imprimir " [3] Esfera"
Imprimir " [4] Salir"
Imprimir "[ 3 ] Matrices"
Imprimir " [1] Transpuesta de una matriz de orden M x N"
Imprimir " [2] Multiplicación de 2 matrices de M x N"
Imprimir " [3] Suma de las Diagonales de una matriz cuadrada"
Imprimir " [4] Salir"
Imprimir ""
Imprimir Sin Saltar " Ingrese una opción [#] -";Leer Sin Saltar Num
Segun Num Hacer
1: SubMenu01
2:
Imprimir "Llamar Procedimiento Volumenes"
leer opc
3:
Imprimir "Llamar Procedimiento Matrices"
leer opc
Fin Segun
Imprimir ""
Imprimir ""
Imprimir Sin Saltar" Desea continuar [S/N]? -";Leer Opc
Fin Mientras
Imprimir "Ud. Decidio Salir Presionando ", opc
FinAlgoritmo
CODIGO C++
#include<iostream>
#include <sstream>
#include <cmath>
#include <string.h>
using namespace std;
/***********************************************/
/* FUNCIONES DE AREAS Y VOLUMENES */
/***********************************************/
float fAreaTriangulo(float ladoA, float ladoB, float ladoC)
{
float semiPerimetro, res;
semiPerimetro=(ladoA+ladoB+ladoC)/2;
res=pow(semiPerimetro*(semiPerimetro-ladoA)*(semiPerimetro-ladoB)*(semiPerimetro-
ladoC),0.5);
res=(perimetro*apotema)/2;
cout<<" "<<endl;
cout << "=============* FORMULA *==============" <<endl;
cout << "# (perimetro*apotema)/2 #" << endl;
cout << "======================================" <<endl <<endl;
return res;
}
/***********************************************/
/* PROCEDIMIENTOS DEL MENU PRINCIPAL */
/***********************************************/
//Declaracion de procedimientos para ser invocados desde el programa principal
void menu();
void opcion_1(int);
void opcion_2(int);
void opcion_3(int);
void opcion_1_1();
void opcion_1_2();
void opcion_1_3();
void opcion_2_1();
void opcion_2_2();
void opcion_2_3();
void opcion_3_1();
void opcion_3_2();
void opcion_3_3();
cout << " 1.1 Calcular Area del triangulo de lados a, b y c" <<endl;
area=fAreaHexagono(radio);
area=fAreaEsfera(radio);
volumen=fVolumenCono(radio,hipotenusa);
area=fVolumenCilindro(radio,hipotenusa);
volumen=fVolumenEsfera(radio);
//Iteracion para validar que se ingrese un numero menor o igual al maximo de la matriz
do
{
cout << " Ingrese el numero de filas: ";
cin >> fila;
if (fila<1)
{
cout << " La fila no puede ser negativa " << longitudMaxima << endl;
}
//Iteracion para validar que se ingrese un numero menor o igual al maximo de la matriz
do
{
cout << " Ingrese el numero de columnas: ";
cin >> columna;
if (columna<1)
{
cout << " La columna no puede ser negativa " << longitudMaxima <<
endl;
}
//Matriz
cout<<endl;
for(i=0;i<fila;i++)
{
for(j=0;j<columna;j++)
{
cout<<" Ingrese el numero de la fila "<<i+1<<", columna "<<j+1<<": ";
cin>>arr[i][j];
}
}
cout<<endl;
columna=fila;
//Matriz M
cout<<endl;
cout << " Ingrese datos de la matriz M :" << endl;
for(i=0;i<fila;i++)
{
for(j=0;j<columna;j++)
{
cout<<" Ingrese el numero de la fila "<<i+1<<", columna "<<j+1<<": ";
cin>>arrM[i][j];
}
}
//Matriz N
cout<<endl;
cout << " Ingrese datos de la matriz N :" << endl;
for(i=0;i<fila;i++)
{
for(j=0;j<columna;j++)
{
cout<<" Ingrese el numero de la fila "<<i+1<<", columna "<<j+1<<": ";
cin>>arrN[i][j];
}
}
cout<<endl;
cout<<" Matriz M: "<<endl;
for(i=0;i<fila;i++)
{
cout<<" ";
for(j=0;j<columna;j++)
{
cout<<arrM[i][j]<<" ";
}
cout<<endl;
}
cout<<endl;
do
{
cout << " Ingrese el numero de filas y columnas: ";
cin >> fila;
if (fila<1)
{
cout << " El valor no puede ser negativo " << longitudMaxima << endl;
}
columna=fila;
//Matriz
cout<<endl;
cout << " Ingrese datos de la matriz" << endl;
for(i=0;i<fila;i++)
{
for(j=0;j<columna;j++)
{
cout<<" Ingrese el numero de la fila "<<i+1<<", columna "<<j+1<<": ";
cin>>arr[i][j];
}
}
cout<<endl;
cout<<" La matriz ingresada es:"<<endl;
for(i=0;i<fila;i++)
{
cout<<" ";
for(j=0;j<columna;j++)
{
cout<<arr[i][j]<<" ";
}
cout<<endl;
}
cout<<endl;
/***********************************************/
/* MAIN DEL MENU */
/***********************************************/
int main()
{
int opcionMenu, opcionSubMenu;
string continuar;
string nombreMenu[4]={"","Areas","Volumenes","Matrices"};
continuar="S";
do
{
//Mostramos Menu
menu();
//Solicitamos opcion del menu
cout << " Ingrese una opcion del menu (1-3) [#] -> ";
cin >> opcionMenu;
return 0;