Buscar

Estrutura de repetição

Faça um programa que leva cinco grupos de quatro valores (A,B,C,D) e mostre-os na ordem lida. Em seguida, organiza-os em ordem crescente e decrescente. 

💡 4 Respostas

User badge image

Andre Smaira

Estrutura de repetição

Faça um programa que leva cinco grupos de quatro valores (A,B,C,D) e mostre-os na ordem lida. Em seguida, organiza-os em ordem crescente e decrescente.


Para cada grupo usamos um vetor, e para cada valor um inteiro, podemos criar sub-rotinas para reaproveitarmos para cada grupo (vetor), então criamos uma rotina para ordenar crescendo, outra para ordenar decrescendo, outra pra imprimir os valores de um dado grupo e um para inserirmos os valores no grupo. Também podemos criar uma rotina para inserir os valores num dado grupo automaticamente.

Para ordenar os valores dos grupos usamos o algoritmo de bubble sort (ordenação em bolha) onde consiste em verificar cada elemento de um array, trocando de posição posterior os elementos de maior valor. Para ordenar de maneira decrescente, basta inverter a essa lógica, movendo para posição posterior o elemento de menor valor.

Feito isso só chamamos nossas rotinas criadas passado a referência de cada grupo criado.


#include<stdio.h>

//Constante para o tamanho dos vetores

const int TAM = 4;

//Ordena crescentemente

void ordena_crescente(int *vetor[]) {

int k, j, aux;

for (k = 0; k < TAM - 1; k++) {

for (j = 0; j < TAM - k - 1; j++) {

if (vetor[j] > vetor[j + 1]) {

aux = vetor[j];

vetor[j] = vetor[j + 1];

vetor[j + 1] = aux;

}

}

}

return;

}

//Ordena decrescentemente

void ordena_decrescente(int *vetor[]) {

int k, j, aux;

for (k = 0; k < TAM - 1; k++) {

for (j = 0; j < TAM - k - 1; j++) {

if (vetor[j] < vetor[j + 1]) {

aux = vetor[j];

vetor[j] = vetor[j + 1];

vetor[j + 1] = aux;

}

}

}

return;

}

//Inicializa com valores randômicos

void inicializa_vetor(int *vetor[]) {

for(int i = 0; i < TAM; i++){

vetor[i] = (rand() / 1000) + 1;

}

return;

}

//Inicializa manualmente

void inicializa_vetor_manual(int *vetor[], int n) {

for(int i = 0; i < TAM; i++){

printf("Informe um valor para a posicao %d do vetor %d: ", i+1, n);

scanf("%d", &vetor[i]);

}

return;

}

//Imprime um vetor

void imprime_vetor(int *vetor[], int n) {

printf("-----VETOR-%d----\n", n);

for(int i = 0; i < TAM; i++){

printf(" %d ", vetor[i]);

}

printf("\n----------------\n\n");

return;

}

int main(){

int Va[TAM], Vb[TAM], Vc[TAM], Vd[TAM], Ve[TAM];

/*//Inicialização automática

inicializa_vetor(&Va);

inicializa_vetor(&Vb);

inicializa_vetor(&Vc);

inicializa_vetor(&Vd);

inicializa_vetor(&Ve);

*/

inicializa_vetor_manual(&Va, 1);

inicializa_vetor_manual(&Vb, 2);

inicializa_vetor_manual(&Vc, 3);

inicializa_vetor_manual(&Vd, 4);

inicializa_vetor_manual(&Ve, 5);

printf("Vetores\n\n");

imprime_vetor(&Va, 1);

imprime_vetor(&Vb, 2);

imprime_vetor(&Vc, 3);

imprime_vetor(&Vd, 4);

imprime_vetor(&Ve, 5);

ordena_decrescente(&Va);

ordena_decrescente(&Vb);

ordena_decrescente(&Vc);

ordena_decrescente(&Vd);

ordena_decrescente(&Ve);

printf("\n\n\nOrdem Decrescente\n\n");

imprime_vetor(&Va, 1);

imprime_vetor(&Vb, 2);

imprime_vetor(&Vc, 3);

imprime_vetor(&Vd, 4);

imprime_vetor(&Ve, 5);

ordena_crescente(&Va);

ordena_crescente(&Vb);

ordena_crescente(&Vc);

ordena_crescente(&Vd);

ordena_crescente(&Ve);

printf("\n\n\nOrdem Crescente\n\n");

imprime_vetor(&Va, 1);

imprime_vetor(&Vb, 2);

imprime_vetor(&Vc, 3);

imprime_vetor(&Vd, 4);

imprime_vetor(&Ve, 5);

return 0;

}

0
Dislike0
User badge image

Andre Smaira

Para cada grupo usamos um vetor, e para cada valor um inteiro, podemos criar sub-rotinas para reaproveitarmos para cada grupo (vetor), então criamos uma rotina para ordenar crescendo, outra para ordenar decrescendo, outra pra imprimir os valores de um dado grupo e um para inserirmos os valores no grupo. Também podemos criar uma rotina para inserir os valores num dado grupo automaticamente.

Para ordenar os valores dos grupos usamos o algoritmo de bubble sort (ordenação em bolha) onde consiste em verificar cada elemento de um array, trocando de posição posterior os elementos de maior valor. Para ordenar de maneira decrescente, basta inverter a essa lógica, movendo para posição posterior o elemento de menor valor.

Feito isso só chamamos nossas rotinas criadas passado a referência de cada grupo criado.


#include<stdio.h>

//Constante para o tamanho dos vetores

const int TAM = 4;

//Ordena crescentemente

void ordena_crescente(int *vetor[]) {

int k, j, aux;

for (k = 0; k < TAM - 1; k++) {

for (j = 0; j < TAM - k - 1; j++) {

if (vetor[j] > vetor[j + 1]) {

aux = vetor[j];

vetor[j] = vetor[j + 1];

vetor[j + 1] = aux;

}

}

}

return;

}

//Ordena decrescentemente

void ordena_decrescente(int *vetor[]) {

int k, j, aux;

for (k = 0; k < TAM - 1; k++) {

for (j = 0; j < TAM - k - 1; j++) {

if (vetor[j] < vetor[j + 1]) {

aux = vetor[j];

vetor[j] = vetor[j + 1];

vetor[j + 1] = aux;

}

}

}

return;

}

//Inicializa com valores randômicos

void inicializa_vetor(int *vetor[]) {

for(int i = 0; i < TAM; i++){

vetor[i] = (rand() / 1000) + 1;

}

return;

}

//Inicializa manualmente

void inicializa_vetor_manual(int *vetor[], int n) {

for(int i = 0; i < TAM; i++){

printf("Informe um valor para a posicao %d do vetor %d: ", i+1, n);

scanf("%d", &vetor[i]);

}

return;

}

//Imprime um vetor

void imprime_vetor(int *vetor[], int n) {

printf("-----VETOR-%d----\n", n);

for(int i = 0; i < TAM; i++){

printf(" %d ", vetor[i]);

}

printf("\n----------------\n\n");

return;

}

int main(){

int Va[TAM], Vb[TAM], Vc[TAM], Vd[TAM], Ve[TAM];

/*//Inicialização automática

inicializa_vetor(&Va);

inicializa_vetor(&Vb);

inicializa_vetor(&Vc);

inicializa_vetor(&Vd);

inicializa_vetor(&Ve);

*/

inicializa_vetor_manual(&Va, 1);

inicializa_vetor_manual(&Vb, 2);

inicializa_vetor_manual(&Vc, 3);

inicializa_vetor_manual(&Vd, 4);

inicializa_vetor_manual(&Ve, 5);

printf("Vetores\n\n");

imprime_vetor(&Va, 1);

imprime_vetor(&Vb, 2);

imprime_vetor(&Vc, 3);

imprime_vetor(&Vd, 4);

imprime_vetor(&Ve, 5);

ordena_decrescente(&Va);

ordena_decrescente(&Vb);

ordena_decrescente(&Vc);

ordena_decrescente(&Vd);

ordena_decrescente(&Ve);

printf("\n\n\nOrdem Decrescente\n\n");

imprime_vetor(&Va, 1);

imprime_vetor(&Vb, 2);

imprime_vetor(&Vc, 3);

imprime_vetor(&Vd, 4);

imprime_vetor(&Ve, 5);

ordena_crescente(&Va);

ordena_crescente(&Vb);

ordena_crescente(&Vc);

ordena_crescente(&Vd);

ordena_crescente(&Ve);

printf("\n\n\nOrdem Crescente\n\n");

imprime_vetor(&Va, 1);

imprime_vetor(&Vb, 2);

imprime_vetor(&Vc, 3);

imprime_vetor(&Vd, 4);

imprime_vetor(&Ve, 5);

return 0;

}

0
Dislike0

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais