domingo, 19 de mayo de 2013

Practica 6


Ejercicio 1
Código

#include <iostream>
#include <conio.h>
using namespace std;
string check(int num[5][4])
{int x,y;
for(x=0;x<5;x++)
{for(y=0;y<4;y++)
if(num[x][y]!=0)
return "no es Nula.*";}
return "es Nula.*";}
int main()
{int i, j, mat[5][4];
do{system("CLS");
cout<<"\tIngrese los valores de la matriz por fila:"<<endl;
for(i=0;i<5;i++)
{cout<<"Fila "<<i+1<<":"<<endl;
for(j=0;j<4;j++)
cin>>mat[i][j];}
cout<<"-----------------------------";
for(i=0;i<5;i++)
{cout<<endl;for(j=0;j<4;j++)cout<<mat[i][j]<<"\t";}
cout<<"*La Matriz "<<check(mat)<<endl;
cout<<"-----------------------------"<<endl;
do{cout<<"Desea Salir del Programa?\t1)Si\t2)no"<<endl;
cin>>i;}while(i!=1 && i!=2);}while(i==2);
return 0;}


Solución


Ejercicio 2
Código

#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#define TIPO int
#define MOD i

#define _STRING(x) #x
#define STRING(x) _STRING(x)
#define AT __FILE__ ":" STRING(__LINE__)
#define TOSTRING(x) "x"

int r = 0, c = 0;

TIPO *leer_matriz(void) {
    TIPO *arr = malloc(sizeof(TIPO)*r*c);
    for (int i = 0; i < r; i++) {
        for (int j = 0; j < c; j++) {
            printf("(%i, %i): ", i, j);
            scanf("%"STRING(MOD), (arr + i*c +j));
        }
    }
    printf("\n");

    return arr;
}

void desplegar_matriz(char *nombre, TIPO *arr) {
    printf("Desplegando la matriz: %s\n", nombre);
    printf("-------------------------\n");

    for (int i = 0; i < r; i++) {
        for (int j = 0; j < c; j++)
            printf("%3"STRING(MOD)" ", *(arr + i*c + j));
        printf("\n\n");
    }}

typedef enum {
    false = 0,
    true = 1
} bool;

bool mayor_que(TIPO *a, TIPO *b) {
    bool mayor = false;
    for (int i = 0; i < r; i++)
        for (int j = 0; j < c; j++)
            if ( *(a + i*c + j) < *(b + i*c + j) )
                return false;
            else if ( *(a + i*c + j) > *(b + i*c + j) )
                mayor = true;

    return mayor? true: false;
}

int main(void) {
    printf("Cuantas columnas?: ");
    scanf("%i", &c);

    printf("Cuantas filas?: ");
    scanf("%i", &r);

    printf("Dar los datos de la matriz A\n");
    TIPO *a = leer_matriz();

    printf("Dar los datos de la matriz B\n");
    TIPO *b = leer_matriz();

    desplegar_matriz("A", a);
    desplegar_matriz("B", b);

    printf("%s%s%s",
        "la matriz A ",
        (mayor_que(a,b)? "": "no "),
        "es mayor a la matriz B\n\n");

    return 0;
}



Solución


Ejercicio 3
Código

#include <iostream.h>
#include <conio.h>

void write(int num[5][6], int mul)
    {
      int x,y;

      cout<<"------------------------------------------------";
      for(x=0;x<5;x++)
      {
          cout<<endl;
          for(y=0;y<6;y++)
              cout<<(mul)*(num[x][y])<<"\t";
      }
      cout<<"\n----------------------------------------------"<<endl;
    }

int main()
    {
        int i, j, m, mat[5][6];
        do
        {
            cout<<"\tIngrese los valores de la matriz por fila:"<<endl;
            for(i=0;i<5;i++)
            {
               cout<<"Fila "<<i+1<<":"<<endl;
               for(j=0;j<6;j++)
                  cin>>mat[i][j];
            }
           
            cout<<"Por que numero desea multiplicar la matriz?: ";
            cin>>m;

            cout<<"\tLa matriz original:"<<endl;
            write(mat,1);
            cout<<"\tLa matriz multiplicada por "<<m<<" es:"<<endl;
            write(mat,m);
            do
            {
               cout<<"Desea Salir del Programa?\t1)Si\t2)no"<<endl;
               cin>>i;
            }while(i!=1 && i!=2);
        }while(i==2);
        return 0;
    }

Solución


Ejercicio 4
Código

#include <iostream>
#include <conio.h>
using namespace std;
int main()
{int j, i, MP=0, e, DP, dp, prod[6][5];
string nomb[6], mp;
do{system("CLS");
//lee
cout<<"--------------REPORTE SEMANAL DE PRODUCCION--------------'\n\t**Nombres de planta: 15 caracteres max.**"<<endl;
for(j=0;j<6;j++)
{cout<<"Ingrese el nombre  de la planta #"<<j+1<<":"<<endl;
cin>>nomb[j];
for(i=0;i<5;i++)
{cout<<"Produccion en el Dia "<<i+1<<": ";
cin>>prod[j][i];}
system("CLS");}
//desplega
cout<<"----------------------------------------------------------------"<<endl;
cout<<"|Planta|\tDia 1\tDia 2\tDia 3\tDia 4\tDia 5\tProd. Sem."<<endl;
for(j=0;j<6;j++)
{int r=0;DP=0;
cout<<nomb[j]<<"\t";
for(i=0;i<5;i++)
{cout<<"\t"<<prod[j][i];
r=r+prod[j][i];}
if(r>MP)
{MP=r;mp=nomb[j];e=j;}
cout<<"\t"<<r<<endl;}
for(i=0;i<5;i++)
{if(prod[e][i]>DP)
{DP=prod[e][i];dp=i;}}
cout<<"----------------------------------------------------------------"<<endl;
cout<<"\tTotales:\nPlanta mas productiva fue '"<<mp<<"' con "<<MP<<" Unidades."<<endl;
cout<<"El Dia "<<dp+1<<" la planta tuvo mayor produccion con "<<DP<<" Unidades. \n"<<endl;
do{cout<<"Desea Salir del Programa?\t1)Si\t2)no"<<endl;
cin>>i;}while(i!=1 && i!=2);}while(i==2);
return 0;}

Solución


Ejercicio 5a
Código

#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
template <class T>
void limpiarmatriz(T a[10] [10]);
template <class T>
void desplegarDatos(T a[10] [10]);
template <class T>
void generarelementos(T a[10] [10]);
template <class T>
void generarelementos(T a[10] [10])
{int r,c;
srand(time(NULL));
for (r=0; r<10; r++)
{for (c=0; c<10;c++)
 {a[r][c]=rand()%2;}}}
template <class T>
void desplegarDatos(T a[10] [10])
{int r,c;
for (r=0;r<10;r++)
 {for (c=0; c<10;c++)
 {if (r==c){cout<< (a[r][c]=1);}else{cout<<(a[r][c]=0);}}
 cout<<endl;}}
template <class T>
void limpiarmatriz(T a[10] [10])
{int r, c;
for (r=0;r<10;r++)
 {for (c=0; c<10;c++)
 {a[r][c]=0;}}}
void main()
{
int a[10] [10];
limpiarmatriz(a);
generarelementos(a);
desplegarDatos(a);
getch();}

Solución


Ejercicio 5b
Código

#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
template <class T>
void limpiarmatriz(T a[10] [10]);
template <class T>
void desplegarDatos(T a[10] [10]);
template <class T>
void generarelementos(T a[10] [10]);
template <class T>
void generarelementos(T a[10] [10])
{int r,c;
srand(time(NULL));
for (r=0; r<10; r++)
{for (c=0; c<10;c++)
 {a[r][c]=rand()%2;}}}
template <class T>
void desplegarDatos(T a[10] [10])
{int r,c;
for (r=0;r<10;r++)
 {for (c=0; c<10;c++)
 {if (r==c || r>c){cout<< (a[r][c]=1);}
 else {cout<<(a[r][c]=0);}}
 cout<<endl;}}
template <class T>
void limpiarmatriz(T a[10] [10])
{int r, c;
for (r=0;r<10;r++)
 {for (c=0; c<10;c++)
 {a[r][c]=0;}}}
void main()
{
int a[10] [10];
limpiarmatriz(a);
generarelementos(a);
desplegarDatos(a);
getch();}

Solución


Ejercicio 5c
Código

#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
template <class T>
void limpiarmatriz(T a[10] [10]);
template <class T>
void desplegarDatos(T a[10] [10]);
template <class T>
void generarelementos(T a[10] [10]);
template <class T>
void generarelementos(T a[10] [10])
{int r,c;
srand(time(NULL));
for (r=0; r<10; r++)
{for (c=0; c<10;c++)
 {a[r][c]=rand()%2;}}}
template <class T>
void desplegarDatos(T a[10] [10])
{int r,c;
for (r=0;r<10;r++)
 {for (c=0; c<10;c++)
 {if (r==c || r<c){cout<< (a[r][c]=1);}
 else {cout<<(a[r][c]=0);}}
 cout<<endl;}}
template <class T>
void limpiarmatriz(T a[10] [10])
{int r, c;
for (r=0;r<10;r++)
 {for (c=0; c<10;c++)
 {a[r][c]=0;}}}
void main()
{
int a[10] [10];
limpiarmatriz(a);
generarelementos(a);
desplegarDatos(a);
getch();}

Solución



No hay comentarios:

Publicar un comentario