PROGRAMACIÓN ESTRUCTURADA

Documentos relacionados
PROBLEMAS DEL TEMA 7: Subprogramas y Modularidad

Estructuras de Repetición (Repita para)

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO

Estructuras de repetición

ESTRUCTURAS REPETITIVAS

Estructuras de Repetición (Hacer-Mientras)

Funciones. Parámetros por valor

ESTRUCTURAS CONDICIONALES SIMPLES: ESTRUCTURAS CONDICIONALES DOBLES: ESTRUCTURAS CONDICIONALES ANIDADAS:

GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos.

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)

UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO

TEMA 4. ESTRUCTURAS DE CONTROL

Resolución de problemas mediante algoritmos

Tema 4: Estructuras de Control Estructura y Contenidos

Prof. Dr. Paul Bustamante

República Bolivariana de Venezuela Aldea Universitaria Liceo Fray Pedro de Agreda. Lenguaje C++ Contadores y Acumuladores

Tema: FUNCIONES, PROCEDIMIENTOS Y RECURSIVIDAD.

Fundamentos de programación

Estructuras de control

Hoja de ejercicios del Tema 3

Programación de Computadores 4 Iteraciones y Decisiones. Prof. Javier Cañas. Universidad Técnica Federico Santa María Departamento de Informática

la solución a una ecuación cuadrática solicitando al usuario los términos de dicha ecuación.

Funciones como Subprogramas en C++

1. Qué se muestra en pantalla si se ejecutan las siguientes sentencias (suponiendo que el resto del programa que no se presenta es correcto)?

Estructuras de Decisión Simples y Dobles

Estructuras de Control

Estatutos de Control C# Estatutos de Decisión (Selección)

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

Fundamentos de Programación. Flujo de Control I: Estructuras selectivas

Fundamentos de programación

Programación 1. Tema II. Diseño de programas elementales. Lección 7. Diseño modular y descendente de programas

Problema - Sumando Digitos

Taller de Resolución de Problemas Computacionales

Semana de las Matemáticas e Ingeniería. Desarrollo de algoritmos recursivos empleando la aplicación PseInt

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación

[ GUÍA DIDÁCTICA: DESARROLLO DE ALGORITMOS PSEINT] 11 de julio de 2013

= RETURN =3 7-. ELSE K

Estructuras de control

4.- Leer tres números y escribirlos en orden decreciente

Estructuras de repetición hacer-mientras y repita hasta

LENGUAJE DE PROGRAMACION UNO.

Tema 2 Introducción a la Programación en C.

Curso 0 de Informática

ECUACIONES POLINÓMICAS CON UNA INCÓGNITA

Programación 1 Tema 3. Información, datos, operaciones y expresiones

UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.

Inecuaciones lineales y cuadráticas

Examen Principios de Programación Febrero 2012

MANUAL DE PRÁCTICAS DEL TALLER DE PROGRAMACIÒN PRACTICA NO.6

Práctica guiada Decisión Simple

USO DE SUBRUTINAS, TRANSMISIÓN DE PARÁMETROS Y COMPILACIÓN CONDICIONAL EN C++

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática

MANUAL DE REFERENCIA DE C++

Lenguaje C Bucles, Condicionales, operadores y Algoritmos.

Vectores y matrices. Fundamentos de Programación Fundamentos de Programación I

Estructuras de Control 3

Elementos de un programa en C

CI 2125, Computación I

Pseudolenguaje. (1 byte) (valores códigos ASCII) [CHAR_MIN.. CHAR_MAX] (Definida en <limits.h>) No hay. Dominio n 1 [MIN(C)..

Estructuras de control y DFDs

INSTITUTO POLITECNICO NACIONAL CENTRO DE ESTUDIOS CIENTIFICOS Y TECNOLOGICOS " GONZALO VAZQUEZ VELA "

Introducción a C++ y Code::Blocks

Ejercicio ejemplo resuelto: verificar el algoritmo de resolución de una ecuación de segundo grado. (CU00237A)

fundamentos de programación (unidad 4) programación estructurada en Java

ESTRUCTURAS REPETITIVAS EN PHP

TEMA 7: Ficheros. TEMA 7: Ficheros Concepto de fichero

LENGUAJE DE PROGRAMACION I. Ing. JAVIER ECHEGARAY ROJO Ing. WILDER ROMAN MUNIVE. Ing. Javier Echegaray Rojo / Ing. Wilder Román Munive Pag 1

Tema ADQUISICIÓN Y TRATAMIENTO DE DATOS. Departamento de Ciencias de la Computación e IA. Subprogramas en C

Exterior del algoritmo. Entorno. Usuario. Procesador. Escribir. v1 v2 v3. Leer. <acción> {; <acción>}

ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF

AMBITO DE VARIABLES EN C. GLOBALES Y LOCALES. UNDECLARED (FIRST USE IN THIS FUNCTION). EJEMPLOS (CU00548F)

Programcaión Básica. Secuencias de Control y Repetición. Arturo Vega González.

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

ALMACENAMIENTO PERSISTENTE DE DATOS

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática

UNIDAD 10: ECUACIONES DE SEGUNDO GRADO.

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Capítulo. 4-1 Ecuaciones lineales simultáneas 4-2 Ecuaciones de grado más alto 4-3 Cálculos de resolución 4-4 Qué hacer cuando se produce un error

Tema 2. Algoritmos y programas Ejemplos para introducir las funciones. Informática Grado en Física Universitat de València

Tema 2. Memoria Dinámica. 2.1 Datos estáticos y dinámicos

Tema: Arreglos de Objetos en C++.

LABORATORIO 3 ESTRUCTURAS REPETITIVAS WHILE / DO WHILE

Java para programadores

Resolución de Problemas y Algoritmos Clase 6: Repetición (continuación)

Algoritmos. Intro. Prof. Raquel Torres Peralta / Gerardo Sanchez S. Unison

Tema: Introducción al IDE de Microsoft Visual C#.

FACULTAD DE INGENIERÍA

Estructura If Esta sentencia, es considerada de alternativa doble (si se cumple condición entonces..., sino... / If... then... else... ).

Examen escrito de Programación 1

Ecuaciones cuadráticas. Guía de trabajo Tema: Ecuaciones cuadráticas Curso: 3 B, 3 D, 3 F (todos)

Prof. Dr. Paul Bustamante

2x 1. compatible determinado, luego tiene una única solución. Para resolverlo aplicaremos reducción, 23y = 0

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante

Programación I. Contenido. Relación de Ejercicios Sonido e Imagen

Preparación para Álgebra 1 de Escuela Superior

LENGUAJE. Tema 2 Elementos de un programa

Transcripción:

Universidad Nacional de Jujuy FACULTAD DE INGENIERÍA PROGRAMACIÓN ESTRUCTURADA Trabajo Práctico Nº 6 Tema: Modularidad. Procedimientos y Funciones. Pasaje de Parámetros Apellido y Nombre: Fecha: / / Procedimientos. Ejemplos Ejemplo 1: Dada la siguiente expresión: total k=1 m k + n k k! Diseñe el procedimiento/función que realice el cálculo teniendo en cuenta las siguientes consideraciones: a) Los productos se calculan utilizando la función producto (mediante sumas sucesivas) cuyo bucle de cálculo esté controlado por BANDERA. b) Las potencias se calculan utilizando la función potencia (mediante productos sucesivos) cuyo bucle de cálculo esté controlado por CONTADOR. c) Los cálculos de factorial se resuelven utilizando la función factorial, implementada con estructuras MIENTRAS. d) Diseñe un procedimiento de carga de datos que controle que los valores ingresados sean positivos. Indique en cada caso el paso de parámetros utilizado. #include<iostream> #include<stdlib.h> using namespace std; // Declaracion de funciones y procedimientos void ingreso(int&num1,int &num2, int&num3); int producto (int nro1, int nro2); int potencia (int nro1, int nro2); int factorial (int nro1); float productoria(int m, int n, int total); // Programa Principal main() int m,n,total; // Variables del programa principal ingreso(m, n, total);//invocación del procedimiento cout<<"resultado productoria "<<productoria(m,n,total)<<endl; //Invocación delafunciónproductoria system("pause"); //Definición del procedimiento que permite el ingreso de datos void ingreso(int&num1,int &num2, int&num3) do cout<< Ingrese primer numero para m: <<endl; cin>> num1; cout<< Ingrese segundo numero para n: <<endl; cin>> num2; cout<< Ingrese tercer numero para total: <<endl; cin>> num3; while((num1<0) (num2<0) (num3<0)); Año 2016 Pág. 1 de 6

//Definición de la función que calcula el producto por sumas sucesivas int producto (int nro1, int nro2) int p=0; bool band=true; do p=p+nro1; nro2--; if (nro2==0) band=false; while(band==true); return p; //Definición de la función que calcula la potencia por productos sucesivos int potencia (int nro1, int nro2) intpot=1; do pot=pot*nro1; nro2--; while(nro2!=0); returnpot; //Definición de la función que calcula el factorial por productos sucesivos int factorial (int nro1) int f=1; while (nro1>=1) f=f*nro1; nro1--; return f; //Definición de la función que calcula la productoria invocando las funciones definidas previamente float productoria(int m, int n, int total) int i; floatprod=1; for(i=1;i<=total;i++) prod=prod*((potencia(m,i)+producto(n,i))/factorial(i)); returnprod; En el programa se utilizan un procedimiento que permite el ingreso de los tres valores necesarios para resolver la productoria m, n y total, en este módulo usamos el pasaje de parámetros por REFERENCIA. Además, la función productoria utiliza tres funciones más una es la función Producto que calcula el producto por sumas sucesivas, la función Potencia que se realiza por productos sucesivos al igual que Factorial. Observe que las funciones siempre toman los parámetros POR VALOR, ya que el valor que devuelven es siempre uno y está relacionado a su nombre y tipo definidos inicialmente. En la función Productoria se realizan las invocaciones a las funciones producto, potencia y factorial, las que devuelven los resultados necesarios en cada repetición de k para obtener el resultado final, valor que se muestra al finalizar la ejecución. Año 2016 Pág. 2 de 6

Ejemplo 2: Escriba un programa modular que presente un menú con las siguientes opciones: 1) Determinar el factorial de un número ingresado por el usuario, 2) Calcular el cuadrado de un número ingresado por el usuario, 3) Salir del Programa. Considere que cada opción se implementa mediante procedimientos y/o funciones. #include<iostream> #include<stdlib.h> using namespace std; // Declaracion de funciones y procedimientos int calculo_factorial(int x); int calculo_cuadrado (int x); bool es_primo (int x); void procedimiento_menu(int &opcion); // Programa Principal main() int num; int opc; // Variables del programa principal do system("cls"); cout<< "Ingrese numero:"; cin>>num; procedimiento_menu(opc); switch(opc) case 1:cout<< "RESULTADO del FACTORIAL de: "<<num<<"es "<<calculo_factorial(num) <<endl;break;// Invocacion del modulo de calculo del factorial case 2:cout<< "RESULTADO del CUADRADO de: "<<num<<"es "<<calculo_cuadrado(num) <<endl;break;// Invocacion del modulo de calculo del cuadrado case 3: if (es_primo (num)==true)// Invocacion del modulo que determina si un numero es primo cout<< "EL NUMERO: "<<num<<"es PRIMO "<<endl;break; else cout<< "EL NUMERO: "<<num<<" NO es PRIMO "<<endl;break; case 4:cout<< "Este programa fue realizado por APU 2008" <<endl; break; default: cout<< "Lo sentimos...la opcion es invalida "<<endl;break; system("pause"); while(opc!=4); system("pause"); // Definicion de FUNCION para calcular el factorial int calculo_factorial(int x) int factorial,i; // Variables de la funci?n (locales a la funci?n) factorial=1; for(i=1;i<=x;i=i+1) factorial=factorial*i; return factorial; // Definicion de FUNCION para calcular el cuadrado int calculo_cuadrado (int x) return x*x; Año 2016 Pág. 3 de 6

// Definicion de FUNCION para determinar si un número es Primo o No es Primo bool es_primo (int x) int i=2; bool primo=false; if ((x!=1)&&(x>=2)&&(x%2!=0)) primo=true; while((primo==true)&&(i<=x/i)) if(x%i==0) primo=false; i++; return primo; // Definicion del procedimiento MENU void procedimiento_menu(int &opcion) cout<< "1: Calcular factorial"<<endl; cout<< "2: Calcular cuadrado"<<endl; cout<< "3: Determinar primo"<<endl; cout<< "4: Salir"<<endl; cin>>opcion; En el programa se utilizan un procedimiento que permite el ingreso de una de las opciones a ejecutar según lo establece el enunciado, recibe por REFERENCIA la variable opcion, la que permite guardar uno de los tres valores necesarios para seleccionar en el programa principal y ejecutar según lo decida el usuario. En el programa principal se realiza un bucle REPETIR que permite ejecutar el procedimiento menú hasta que la opción elegida sea SALIR. En las opciones se invocan a las funciones a través de sentencias de escritura, donde se muestra el resultado obtenido según sea la selección el Cuadrado o el Factorial del número ingresado previamente por el usuario. En el caso de colocar una opción no contemplada por el menú se emite un mensaje al usuario, informando del error. Ejercicios a Resolver 1. Diseñe un algoritmo modular que calcule el cociente y resto de la división entera de 2 números ingresados por el usuario. En su diseño utilice, únicamente, procedimientos. Indique el paso de parámetros utilizado. 2. Modifique el algoritmo anterior de modo que incluya un parámetro que indique si el cociente pudo calcularse o no (división por cero). 3. Escriba un algoritmo modular CUADRATICA, que presente un menú con las siguientes opciones: 1) Ingresar los coeficientes de una ecuación cuadrática, 2) Determinar las raíces de la ecuación cuadrática, 3) Ordenar (ascendente) los coeficientes por intercambio y 4) Salir del Programa. Considere que cada opción se implementa mediante módulos. Indique cómo se pasan los parámetros. 4. Diseñe un algoritmo modular PIRAMIDE, que permita: a) ingresar altura, apotema lateral y arista de la base de una pirámide, b) calcular la superficie y volumen de la pirámide y c) mostrar los resultados obtenidos. Indique el paso de parámetros utilizado. Año 2016 Pág. 4 de 6

Considere que el programa sólo debe estar formado por procedimientos. 5. Diseñe un algoritmo modular que calcule el MCD (Máximo Común Divisor) entre dos valores enteros. Considere que el ingreso debe validar que los valores introducidos sean mayores que CERO y quedebe utilizarseun módulo DIVISIONque devuelva el cociente y resto de la división. Indique el paso de parámetros usado. 6. Codifique un programa modular que resuelva la expresión: El algoritmo debe presentar un menú con las siguientes opciones: 1) Ingresar los coeficientes (a, b, z) y cantidad de términos (N) de la sumatoria, 2) Calcular el valor de la expresión utilizando las funciones PRODUCTO, COCIENTE, POTENCIA y FACTORIAL y N k=0 a z! b k 3) Salir, que muestre el mensaje FIN DE PROGRAMA. Impleméntelas opciones utilizando procedimientos/funciones e indique en cada caso el paso de parámetros utilizados 7. Diseñe un algoritmo modular que presente un menú con las siguientes opciones: 1) Ingresar números positivos (valor1 y valor2), 2) Calcular la potencia, mediante productos sucesivos, de valor1 elevado a valor2, 3) Determinar si el resultado obtenido en la opción 2 es un número primo y 4) desarrollar cada opción utilizando procedimientos y/o funciones, con indicación del pasaje de parámetros empleado. Además controle las siguientes restricciones: a) Menú: la presentación y elección de opciones se realiza mediante un módulo. b) Opción 1: los valores ingresados deben ser positivos (el usuario no puede dejar el ingreso hasta introducir valores correctos). c) Opción 2: Sólo está disponible si se ejecutó la opción 1. d) Opción 3: Sólo está disponible si se ejecutó la opción 2. 8. Diseñe un algoritmo modular que presente un menú con las siguientes opciones: a) ingresar cateto b y cateto c de un triángulo rectángulo, b) calcular hipotenusa del triángulo, c) calcular área del triángulo y d) Salir. Indique el paso de parámetros utilizado. 9. Diseñe un algoritmo modular que presente un menú con la siguientes opciones: 1) Determinar el mínimoimpar de una serie de valores, 2) Calcular el factorial delmínimoimparobtenido en la opción 1, 3) Determinar si el mínimoimpar(obtenido en la opción 1) es primo, y 4) Salir. Implemente cada opción utilizando procedimientos y/o funciones. Indique el paso de parámetros utilizado. 10. Escriba un programa modular presente un menú con las siguientes opciones: 1) Ingresar 3 valores (num1, num2 y num3), 2) Ordenar por intercambio los valores almacenados en num1, num2 y num3, 3) Calcular el cociente (mediante restas sucesivas) entre num1 y num3, 4) Calcular el factorial de num2, 5) Salir. Controle que los valores num1, num2 y num3 sean positivos, caso contrario, presente un mensaje de advertencia al usuario. 11. Dado el siguiente algoritmo: Año 2016 Pág. 5 de 6

Funcion incognita(e n:entero):?? Variable res,i: Entero Inicio res<-0 i<-1 Mientras i<= n*2 Hacer res<-res+i i<-i+2 FinMientras incognita<-res Fin a) Realice la prueba de escritorio para los valores: num=4 y num=5 b) Determine el objetivo del algoritmo. //Programa principal inicio Variables num: Entero Escribir "Ingrese numero:" Leer num Escribir "Resultado: ",incognita(num) Fin 12. Dada la siguiente función: Función misterio(e a:entero):?? Variables t: Entero bandera: lógico inicio bandera<-verdadero t<-1 Mientras bandera=verdadero Hacer Si a=0 o a=1 Entonces t<-1 bandera<-falso Sino t<-t*a a<-a-1 Si a < 2 Entonces bandera<-falso FinSi FinSi FinMientras misterio <-t Fin a) Realice la prueba de escritorio para los valores: a=4 y a=5 b) Determine el objetivo del algoritmo. 13. Dado el siguiente algoritmo: Funcion mifuncion(x:entero): ENTERO VARIABLES ENTERO x,t,s,i,j INICIO i<-1 t<-1 MIENTRAS (i<=x) HACER s<-0 PARA j DESDE 1 HASTA t HACER CON PASO 1 s<-s+i FINPARA t<-s i<-i+1 FINMIENTRAS mifuncion<-t FIN a) Realice la prueba de escritorio para los valores: x=3 y x=5. b) Determine el objetivo del algoritmo. Año 2016 Pág. 6 de 6