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 ...


2) Usando funções, criar um programa para calcular e imprimir uma matriz. O programa deverá ter 5 funções (main, preencher, calcular, imprimir1 e imprimir2). A função main deverá criar a matriz 2x1x2. A função preencher deverá preencher a matriz, usando passagem de parâmetros por valor. A função calcular deverá multiplicar todos os elementos da mesma por 2 e usar passagem de parâmetros por referência. A função imprimir1 deverá imprmir a matriz de forma elegante, usando passagem de parâmetros por valor. A função imprimir2 deverá imprmir a matriz de forma elegante, usando passagem de parâmetros por referência.


#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

void imprimir1(int m[2][1][2]);
void imprimir2(int *p);
void preencher(int m[2][1][2]);
void calcular(int *);

void main()
{
    int mat[2][1][2];
    randomize();
    clrscr();
    preencher(mat);
    imprimir1(mat);
    calcular(&mat[0][0][0]);
    imprimir2(&mat[0][0][0]);
    getch();
}

void preencher(int m[2][1][2])
{
   int l,p;
   for(l=0;l<2;l++)
   {
      for(p=0;p<2;p++)
      {
	 m[l][0][p]=rand()%51;
	 }
   }
}

void imprimir1(int m[2][1][2])
{
   int l,p;
   printf("\n***** passagem por valor *****");
   for(p=0;p<2;p++)
   {
	 for(l=0;l<2;l++)
	 {
	 printf("\n %d",m[l][0][p]);
	 }
	 printf("\n\n");
   }
}


void calcular(int *p)
{
   for(int i=0;i<4;i++)
   {
	 *p=*p*2;
	 p++;
   }
}

void imprimir2(int *p)
{
   int i,j;
   printf("\n\n***** passagem por referencia ****");
   for(i=0;i<2;i++)
   {
	 for(j=0;j<2;j++)
	 {
	    printf("\n %d",*p);
	    p+=2;
	 }
	 printf("\n\n");
	 p-=3;
   }
}