trabajo de metodologia de programaciondd 2
TRANSCRIPT
UNIVERSIDAD NACIONAL DEL ALTIPLANO
UNIVERSIDAD NACIONAL DEL ALTIPLANO
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS
CURSO:
METODOLOGIA DE PROGRAMACION
TRABAJO ENCARGADO
EJERCICIOS DE PROGRAMACION
EN C++
ESTUDIANTE:
ALVARO PACOMPIA LERMA
CODIGO: 151783
SEMESTRE: 2
DOCENTE: Ing. EDELFRE FLORES VELASQUEZ
METODOLOGIA DE PROGRAMACION Página 1
UNIVERSIDAD NACIONAL DEL ALTIPLANO
IV. Resuelva los siguientes ejercicios
1) Se desea realizar un programa para el cálculo de operaciones con números racionales. Elprograma deberá presentar un menú con las siguientes operaciones:MENU=============================A. Sumar 2 Fracciones.B. Restar 2 Fracciones.C. Multiplicar 2 Fracciones.D. Dividir 2 Fracciones.E. Simplificar 1 Fracción.X. Salir del ProgramaDescripción de Opciones:A. Sumar 2 Fracciones. Se solicita al usuario que introduzca el numerador y el denominador decadafracción y se muestra por pantalla el resultado simplificado.Ejemplo:Fracción 1Numerador: 1Denominador: 3Fracción 2Numerador: 1Denominador:22/3) + (1/2) = (7/6)Presione una tecla para continuar . . .B. Restar 2 Fracciones. Se solicita al usuario que introduzca el numerador y el denominador decadafracción y se muestra por pantalla el resultado simplificado.Ejemplo:Fracción 1Numerador: 1Denominador: 3Fracción 2Numerador: 1Denominador: 2(2/3) - (1/2) = (1/6)Presione una tecla para continuar . . .C. Multiplicar 2 Fracciones. Se solicita al usuario que introduzca el numerador y el denominadorde cada fracción y se muestra por pantalla el resultado simplificado.Ejemplo:Fracción 1Numerador: 1Denominador: 3Fracción 2Numerador: 1Denominador: 2(2/3) * (1/2) = (1/3)
METODOLOGIA DE PROGRAMACION Página 2
UNIVERSIDAD NACIONAL DEL ALTIPLANO CODIGO EN C++#include <iostream>#include <cstdlib>using namespace std;int multiplicador(int x, int y, int a, int b){int h=x*a;int m=y*b;int cont;for (int i=h;i>=1;i--) {if (m%i==0 && h%i==0){ cont=i;break; } }cout<<"("<<x<<"/"<<y<<") * ("<<a<<"/"<<b<<") = ("<<h/cont<<"/"<<m/cont<<")";}int divisor(int x, int y, int a, int b){int h=x*b;int m=y*a;int cont;for (int i=h;i>=1;i--) {if (m%i==0 && h%i==0){ cont=i;break; } }cout<<"("<<x<<"/"<<y<<") / ("<<a<<"/"<<b<<") = ("<<h/cont<<"/"<<m/cont<<")";}int sumador1(int x, int y,int a, int b){int h;int j;int m;
for (int i=b;i>=1;i--) {if (y%i==0 && b%i==0){ m=i;break; } }cout<<m<<endl;cout<<"("<<x<<"/"<<y<<") + ("<<a<<"/"<<b<<") ="<<(x*b+y*a)/m<<"/"<<(y*b)/m;}int restador1(int x, int y,int a, int b){int h;int j;int m;for (int i=b;i>=1;i--) {if (y%i==0 && b%i==0){ m=i;break; } }cout<<m<<endl;cout<<"("<<x<<"/"<<y<<") - ("<<a<<"/"<<b<<") ="<<(x*b-y*a)/m<<"/"<<(y*b)/m;}int simplificar(int x,int y){int m;for (int i=y;i>=1;i--) {if (y%i==0 && x%i==0){ m=i;
METODOLOGIA DE PROGRAMACION Página 3
UNIVERSIDAD NACIONAL DEL ALTIPLANO break; } }cout<<"("<<x<<"/"<<y<<") = ("<<x/m<<"/"<<y/m<<")";}int main(){cout<<"Sumar dos fracciones...(a)\nRestar dos fracciones...(b)\nMultiplicar dos fracciones...(c)\nDividir dos fracciones...(d)\nSimolificar una fraccion...(e)\nSalir del programa...(x)\n";int a,b;char c;int h;int cont=0;int arreglo[4];cin>>c;while(c!='x'){if(c=='e')h=2;elseh=4;for(int a=0;a<h;a++){cont++;if(cont<2){if(a<2)cout<<"Fraccion 1"<<endl;else {cout<<"Fraccion 2"<<endl;}}if(a==1)cont=0;if((a+2)%2==0){cout<<"ingrese numerador: ";cin>>arreglo[a];}else {cout<<"ingrese denominador: ";cin>>arreglo[a];}} switch(c){case 'a':sumador1(arreglo[0],arreglo[1],arreglo[2],arreglo[3]);break;case 'b':using namespace std;int multiplicador(int x, int y, int a, int b);{int h=x*a;int m=y*b;int cont;for (int i=h;i>=1;i--) {if (m%i==0 && h%i==0){ cont=i;break; } }cout<<"("<<x<<"/"<<y<<") * ("<<a<<"/"<<b<<") = ("<<h/cont<<"/"<<m/cont<<")";}int divisor(int x, int y, int a, int b){int h=x*b;
METODOLOGIA DE PROGRAMACION Página 4
UNIVERSIDAD NACIONAL DEL ALTIPLANO int m=y*a;int cont;for (int i=h;i>=1;i--) {if (m%i==0 && h%i==0){ cont=i;break; } }cout<<"("<<x<<"/"<<y<<") / ("<<a<<"/"<<b<<") = ("<<h/cont<<"/"<<m/cont<<")";}int sumador1(int x, int y,int a, int b){int h;int j;int m;for (int i=b;i>=1;i--) {if (y%i==0 && b%i==0){ m=i;break; } }cout<<m<<endl;cout<<"("<<x<<"/"<<y<<") + ("<<a<<"/"<<b<<") ="<<(x*b+y*a)/m<<"/"<<(y*b)/m;}int restador1(int x, int y,int a, int b){int h;int j;int m;for (int i=b;i>=1;i--) {if (y%i==0 && b%i==0){ m=i;break; } }cout<<m<<endl;cout<<"("<<x<<"/"<<y<<") - ("<<a<<"/"<<b<<") ="<<(x*b-y*a)/m<<"/"<<(y*b)/m;}int simplificar(int x,int y){int m;for (int i=y;i>=1;i--) {if (y%i==0 && x%i==0){ m=i;break; } }cout<<"("<<x<<"/"<<y<<") = ("<<x/m<<"/"<<y/m<<")";}int main(){cout<<"Sumar dos fracciones...(a)\nRestar dos fracciones...(b)\nMultiplicar dos fracciones...(c)\nDividir dos fracciones...(d)\nSimolificar una fraccion...(e)\nSalir del programa...(x)\n";int a,b;char c;int h;int cont=0;int arreglo[4];cin>>c;while(c!='x'){if(c=='e')h=2; elseh=4;for(int a=0;a<h;a++){
METODOLOGIA DE PROGRAMACION Página 5
UNIVERSIDAD NACIONAL DEL ALTIPLANO cont++;if(cont<2){if(a<2)cout<<"Fraccion 1"<<endl;else {cout<<"Fraccion 2"<<endl;}}if(a==1)cont=0;if((a+2)%2==0){cout<<"ingrese numerador: ";cin>>arreglo[a];}else {cout<<"ingrese denominador: ";cin>>arreglo[a];}} switch(c){case 'a':sumador1(arreglo[0],arreglo[1],arreglo[2],arreglo[3]);break;case 'b':restador1(arreglo[0],arreglo[1],arreglo[2],arreglo[3]);break;case 'c':multiplicador( arreglo[0],arreglo[1],arreglo[2],arreglo[3] );break;case 'd':divisor( arreglo[0],arreglo[1],arreglo[2],arreglo[3] );break;case 'e':simplificar(arreglo[0],arreglo[1]);break;} cout<<endl<<"Ingrese la operacion a realizar: \nSalir del programa (x) ";cin>>c;}return 0;}restador1(arreglo[0],arreglo[1],arreglo[2],arreglo[3]);break;case 'c':multiplicador( arreglo[0],arreglo[1],arreglo[2],arreglo[3] );break;case 'd':divisor( arreglo[0],arreglo[1],arreglo[2],arreglo[3] );break;case 'e':simplificar(arreglo[0],arreglo[1]);break;} cout<<endl<<"Ingrese la operacion a realizar: \nSalir del programa (x) ";cin>>c;}return 0;}2) Diseñar un algoritmo que dado una matriz de enteros de 3 x 4a. Calcule el elemento máximo y mínimo de la matriz, informando de la
METODOLOGIA DE PROGRAMACION Página 6
UNIVERSIDAD NACIONAL DEL ALTIPLANO b. posición (fila, columna) en la que se encuentra.c. Calcule la media aritmética de todos los elementos pares.d. Calcule el máximo elemento de cada fila y el mínimo de cada columna.Utilice funciones para resolver el problemaCODIGO#include <iostream>#include <cstdlib>#include <time.h>using namespace std;int main(){int temp;int cont=0;int suma=0;int ar1[3][4];int ar2[3][4];srand(time(NULL));for(int i=0;i< 3;i++){for(int j=0;j<4;j++){ar1[i][j]=rand()%50+1;ar2[i][j]=ar1[i][j];}}cout<<endl<<"Matriz 3x4:\n";for(int i=0;i< 3;i++){for(int j=0;j<4;j++){cout<<ar1[i][j]<<" ";}cout<<endl;}
for(int i=0; i< 3; i++){for(int j=0; j<4; j++){for(int k=0; k<4; k++){if(ar2[i][j]>ar2[i][k]){temp=ar2[i][j];ar2[i][j]=ar2[i][k];ar2[i][k]=temp;}}}}cout<<"Numeros maximo por fila\n";for(int a=0;a< 3;a++)cout<<ar2[a][0]<<" ";
METODOLOGIA DE PROGRAMACION Página 7
UNIVERSIDAD NACIONAL DEL ALTIPLANO cout<<endl;cout<<"Numeros minimos por columna\n";for(int a=0;a<4;a++){if(ar1[0][a]<=ar1[1][a]&& ar1[0][a]<=ar1[2][a])cout<<ar1[0][a]<<" ";if(ar1[1][a]<=ar1[0][a]&& ar1[1][a]<=ar1[2][a])cout<<ar1[1][a]<<" ";if(ar1[2][a]<=ar1[1][a]&& ar1[2][a]<=ar1[0][a])cout<<ar1[2][a]<<" ";}for(int a=0;a< 3;a++){for(int b=0; b< 3; b++){if(ar2[a][0]>ar2[b][0]){temp=ar2[a][0];ar2[a][0]=ar2[b][0];ar2[b][0]=temp;}if(ar2[a][3]<ar2[b][3]){temp=ar2[a][3];ar2[a][3]=ar2[b][3];ar2[b][3]=temp;}}}cout<<endl;for(int i=0;i< 3;i++){for(int j=0;j<4;j++){if(ar1[i][j]==ar2[0][0]){cout<<"numero mayor:"<<ar1[i][j]<<", La posicion:"<<i<<" ; "<<j<<endl;}if(ar1[i][j]==ar2[0][3]){cout<<"numero menor:"<<ar1[i][j]<<", La posicion:"<<i<<" ; "<<j<<endl;}if(ar1[i][j]%2==0){cont++;suma=suma + ar1[i][j];}}}cout<<"La media aritmetica de los numeros pares es: "<<suma/cont<<endl;return 0;}
METODOLOGIA DE PROGRAMACION Página 8
UNIVERSIDAD NACIONAL DEL ALTIPLANO 3) Escribir una función a la que se le pase una cantidad N de números a leer y devuelva¿Cuántos son positivos, y cuántos son negativos?
CODIGO#include <iostream>
using namespace std;
int main(){ int num,positivo,negativo,cero,cant,i; positivo=0; negativo=0; cero=0; cout<<"Introduzca Cantidad de Numeros a Evaluar:"; cin>>cant; for(i=1; i<=cant;i++) { cout<<"Introduzca un Numero Entero:"; cin>>num; if (num>0) { positivo+=+1; } else if(num<0) { negativo+=+1; } else cero+=+1; }
cout<<"\nLa Cantidad de Positivos Son:"<<positivo<<endl; cout<<"\nLa Cantidad de Negativos Son:"<<negativo<<endl; cout<<"\nLa Cantidad de Ceros Son:"<<cero<<endl; return 0;}
METODOLOGIA DE PROGRAMACION Página 9
UNIVERSIDAD NACIONAL DEL ALTIPLANO 4) Para cada uno de los puntos siguientes escribir un función a la que se le pasen losparámetros necesarios y devuelva el área y el perímetro de la figura indicada:a. Un cuadradob. Un rectánguloc. Un círculo
CODIGO#include <iostream>using namespace std;
main () {int Opc; // Aquí guardo la opción a escogerint Salir = 0; // Esto indica el momento para salir del programafloat area; // El área a guardarfloat lado, base, alt; // Los datos a pedir se guardarán en estas variables
do {
cout << "FIGURAS GEOMÉTRICAS" << endl << endl;cout << "1) Cuadrado" << endl;cout << "2) circulo" << endl;cout << "3) Rectángulo" << endl;cout << "4) Salir" << endl;cout << "Dame una opción (Rango 1 ~ 4): ";cin >> Opc; // Aquí leo el valor y lo guardocout << endl << endl;
switch (Opc) { // Aquí reviso el valor de Opc
case 1: // Opción 1cout << "CUADRADO" << endl << endl;cout << "Dame el valor del lado: " << endl;cin >> lado; // Guardo el lado del cuadrado leídoarea = lado * lado; // Se calcula y guarda el áreacout << "El área del cuadrado dado es de " << area;cout << endl << endl;break;
case 2: // Opción 2cout << “CIRCULO” << endl << endl;cout << "Dame el valor del radio: " << endl;cin >>radio; // Guardo el alor del radioarea = (radio*radio*3,1416) ; // Se calcula y guarda el áreacout << "El área del circulo " << area;
METODOLOGIA DE PROGRAMACION Página 10
UNIVERSIDAD NACIONAL DEL ALTIPLANO cout << endl << endl;break;
case 3: // Opción 3cout << "RECTÁNGULO" << endl << endl;cout << "Dame el valor de la base: " << endl;cin >> base; // Guardo la base del rectángulocout << "Dame el valor de la altura: " << endl;cin >> alt; // Guardo la altura del rectánguloarea = base * alt; // Se calcula y guarda el áreacout << "El área del rectángulo dado es de " << area;cout << endl << endl;break;
case 4: // Opción 4Salir = 1; // Esto indica que se pretende salirbreak;
default: // Otra letracout << "Esa opción no existe" << endl << endl;break;}
} while (Salir == 0);
/*Cuando se acciona la opción 4, a Salir se le asigna el valor 1, para que al llegar a la condición, ésta no se cumpla, se rompa el ciclo y se acabe el programa.*/}
METODOLOGIA DE PROGRAMACION Página 11