Programação Orientada à Procedimentos II Programação Orientada à Procedimentos I Processamento Paralelo Lógica de Programação Introdução à Computação Informática Básica

 

 

Informática Básica
Introdução à Computação
Lógica de Programação
Programação Orientada à Procedimentos I
Programação Orientada à Procedimentos II

Processamento Paralelo


Uma Possível Solução ...




1) Usando função, fazer um programa para calcular a soma de 2 matrizes de mesmo tamanho.

// *** supondo tamanho maximo 5x5 ***
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"

// prototipando funcao
void preencher(int [5][5], int, int, char);
void impressao(int [5][5], int, int, char);
void somar(int [5][5],int [5][5], int, int);

//********************* funcao main **********************
void main()
{
   int lin,col;
   int matA[5][5],matB[5][5];

   randomize();
   clrscr();
   do
   {
      printf("matriz de quantas linhas? (1 a 5) : ");
      scanf("%d",&lin);
   }
   while(lin<1||lin>5);

   do
   {
      printf("matriz de quantas colunas? (1 a 5) : ");
      scanf("%d",&col);
   }
   while(col<1||col>5);
	 
   clrscr();
   char m='A';
   preencher(matA,lin,col,m);     //chamando a funcao preencher
   m='B';
   preencher(matB,lin,col,m);     //chamando a funcao preencher
   somar(matA,matB,lin,col);      //chamando a funcao somar
   getch();
}

//******************* funcao preencher ********************
void preencher(int mat[5][5],int lin,int col,char m)
{
   for(int l=0;l<lin;l++)
   {
     for(int c=0;c<col;c++)
     {
	    mat[l][c]=rand()%6;  // sorteia numeros de 0 a 5
     }
   }

   impressao(mat,lin,col,m);           //chamando a funcao impressao
}

//******************* funcao impressao ********************
void impressao(int mat[5][5],int lin, int col, char m)
{
   printf("**********  Imprimindo matriz %c **********\n",m);
   for(int l=0;l<lin;l++)
   {
	 for(int c=0;c<col;c++)
	 {
	    printf("%d  ",mat[l][c]);
	 }
	 printf("\n");
   }
   printf("\n");
}


//******************* funcao somar ********************
void somar(int matA[5][5],int matB[5][5], int lin, int col)
{
   int matC[5][5];
   char m='C';

   for(int l=0;l<lin;l++)
   {
     for(int c=0;c<col;c++)
     {
	 matC[l][c]=matA[l][c]+matB[l][c];
     }
   }

   impressao(matC, lin, col, m);           //chamando a funcao impressao
}