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


3) Elaborar um programa o qual ordene um vetor com 5 elementos inteiros. O programa deverá ter pelo menos 3 funções (main, preencher e ordenar). A função main deverá declarar a matriz. A função preencher deverá solicitar ao usuário o preenchimento da matriz, usando passagem de parâmetros por valor. A função ordenar deverá ordenar o vetor a cada entrada do usuário, usando passagem de parâmetros por referência.


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

void preencher(int *,int *);
void imprimir(int *);
void ordenar(int *,int *, int *);

//------------------- PRINCIPAL ----------------------
void main()
{
   int v[5];
   clrscr();
   for (int i=0;i<=4;i++)
   {
      preencher(&v[i],&i); //envio posicao a ser preenchida e indice
      if (i>0)
	 ordenar(&i,&v[0],&v[i]); //envio indice, posicao de v[o] e
   }                              // posicao do atual
   imprimir (&v[0]);
   getch();
}

//----------------- PREENCHER ----------------
void preencher(int *pv, int *pi)
{
    printf("digite o elemento %d : ",*pi);
    scanf("%d",&*pv);
}

//--------------- IMPRIMIR -------------------
void imprimir(int *pv)
{
   for (int i=0;i<5;i++)
   {
       printf("\t%d",*pv);
       pv++;
   }
}

//---------------- ORDENAR -------------------
void ordenar(int *pi,int *pv0, int *pvi)
{
    int aux;
    for(int j=1; j<=*pi;j++)
    {
       if(*pv0>*pvi)
       {
	  aux=*pv0;
	  *pv0=*pvi;
	  *pvi=aux;
       }
       pv0++;
    }

}