ALGORITMOS Y PROGRAMACION EN C++ EDGAR NORABUENA MEZA LIMA -. PERU 2020 1 ALGORITMO Un algoritmo es un procedimiento simple, preciso y sin ambigüedades para la solución de un problema. Este especifica la secuencia de las operaciones que proporcionan la solución en un numero finito de pasos. DIAGRAMAS DE FLUJO: Una técnica ampliamente usada para representar algoritmos en la solución de problemas es el diagrama de flujo. El diagrama de flujo es un diagrama que ilustra con figuras simbólicas la lógica de la solución del problema. Principales Símbolos Función Terminal: usado para indicar el inicio o el final de un algoritmo. Entrada / Salida: Ingreso de datos en la memoria desde los periféricos, “entrada”, o salida de información, “salida”. Proceso: usado para representar cálculos, procesos o cualquier función no descrita por un símbolo mas especifico. Decisión: utilizada donde es posible una bifurcación para trayectorias alternativas, basado en una decisión. Proceso predefinido: un grupo de operaciones no detallados sobre el diagrama de flujo, pero a menudo en otro, ejemplo, un subprograma. 2 Conector: usado para representar una unión en una línea de flujo, para conectar trayectorias cortadas en la línea de flujo y para conectar varias páginas del mismo diagrama de flujo. SEUDOCODIGO: El seudocódigo es un lenguaje de especificación de algoritmos, nació como un lenguaje similar al inglés y es un medio de representar básicamente las estructuras de control de programación estructurada. Se considera un primer borrador. Ejemplos 1. Escriba un programa en C++ que muestre un mensaje. Programa // PRIMER PROGRAMA #include<iostream> using namespace std; int main() { cout <<"\t _______________________________\n" << endl; cout <<"\t"<< "HOLA, ESTE ES MI PRIMER PROGRAMA" << endl; cout << "\t ________________________________\n"; cout << "\n\n\n\t"; system("pause"); return 0; } Resultado de la compilación y ejecución 3 2. Escribir un algoritmo que halle el AREA de un triángulo conociendo sus tres lados Solución: Se dispone de la siguiente formula Diagrama de Flujo AREA = (S A)( S B)( S C)S S = (A + B + C)/2 INICIO LEER Seudocodigo A, B, C Inicio LEER (A,B,C) S = (A+B+C)/2 AREA = ((S-A)(S-B)(S-C)S)^0.5 ESCRIBIR(AREA) Fin S = (A+B+C)/2 AREA=((S-A)*(S-B)*(S-C)*S)^0.5 ESCRIBIR AREA Programa /* El presente programa calcula el área de un triangulo conociendo sus tres lados */ #include<iostream> using namespace std; int main() { float A, B, C, S, area; cout << "\n Ingrese el primer lado del triangulo: "; cin >> A; cout << "Ingrese el segundo lado: "; cin >> B; cout << "Ingrese el tercer lado: "; cin >> C; S = (A + B + C) / 2; area = sqrt(S*(S - A)*(S - B)*(S - C)); cout.precision(2); cout << "El area del triangulo es: " << area<<endl<<"\n\n"; system("pause"); return 0; } 4 Resultado de la compilación y ejecución 3. Escribir un programa que encuentre el tiempo de permanencia en horas y minutos de un profesor en el aula, conociendo la hora de entrada y hora de salida. SOLUCION Diagrama de Flujo Seudocodigo INICIO Inicio Entero HE,ME,HS,MS,MP,HP LEER (HE,ME) LEER (HS,MS) MP =(HS*60 + MS) – (HE*60 + ME) HP = MP / 60 MP = MP % 60 ESCRIBIR(HP,MP) Fin LEER HE.ME,HS,MS MP = (HS*60 + MS) – (HE*60 + ME) HP = MP / 60 MP = MP % 60 Donde: HE: hora de entrada ME: minuto de entrada HS: hora de salida MS: minuto de salida MP: minutos de permanencia HP. horas de permanencia MOSTRAR HP,MP FI N 5 Prueba de escritorio: Un profesor entra al aula a las 8: 10 am, sale a las 9: 50 am Datos 8 10 5 50 HE 8 ME 10 HS 9 MS 50 MP 100 40 HP 1 Resultados: 1 40 Nota: - El operador de división / da como resultado un entero, si los operandos son enteros - % es el operador residuo de una división entera Programa /* programa que encuentra el tiempo de permanencia en horas y minutos de un profesor en el aula, conociendo la hora de entrada y hora de salida */ #include<iostream> using namespace std; void main() { int HE,ME,HS,MS,HP,MP; cout << "\n\t Ingrese la hora y minuto (hh mm) de entrada del profesor al aula: "; cin >>HE>>ME; cout << "\n\t Ingrese la hora y minuto (hh mm) de salida del profesor: "; cin >> HS >> MS; MP = (60 * HS + MS) - (60 * HE + ME); HP = MP / 60; MP = MP % 60; cout << "\n\n\t El profesor estuvo en el aula " << HP << " horas y " << MP << " minutos\n\n"; system("pause"); } Resultado de la compilación y ejecución 6