trabajo de metodologia de programaciondd 2

16
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

Upload: fredyotazufsfim

Post on 08-Dec-2015

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Trabajo de Metodologia de Programaciondd 2

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

Page 2: Trabajo de Metodologia de Programaciondd 2

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

Page 3: Trabajo de Metodologia de Programaciondd 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

Page 4: Trabajo de Metodologia de Programaciondd 2

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

Page 5: Trabajo de Metodologia de Programaciondd 2

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

Page 6: Trabajo de Metodologia de Programaciondd 2

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

Page 7: Trabajo de Metodologia de Programaciondd 2

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

Page 8: Trabajo de Metodologia de Programaciondd 2

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

Page 9: Trabajo de Metodologia de Programaciondd 2

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

Page 10: Trabajo de Metodologia de Programaciondd 2

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

Page 11: Trabajo de Metodologia de Programaciondd 2

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