Ir ao conteúdo

Ajuda


Flame Knight

Posts recomendados

Postado

Estou precisando de ajuda nesse código.

Primeiro vou postar o enunciado da questao e depois o que eu consegui fazer:

Suponha um vetor de comprimento N que possui valores que representam as cores Vermelha, Branca, Azul e Verde. Escreva um programa que ponha as cores neste vetor na seguinte ordem: Cores Vermelhas no extremo esquerdo do vetor, cores Azuis no extremo direito, cores Brancas após o conjunto de cores Vermelhas, e cores Verde após as cores Brancas e antes das cores Azuis.

Qual a menor quantidade de passagens sobre o vetor necessárias para a ordenação? Soluções triviais, do tipo contar as quantidades de cada cor e depois gerar o novo vetor, estão proibidas.

Os valores iniciais do vetor devem ser tomados da entrada padrão. O programa deve imprimir o estado inicial e final do vetor, bem como os estados intermediários durante os passos de ordenação.

Esse é o que eu fiz, um trecho de código que serve apenas para tres cores, sendo que nao consegui implementa-lo para mais cores:

begin
le:=0;
ld:=1;
ult:=n+1;
repeat
if band[ld]='azul' then
begin
ult:=ult-1;
aux:=band[ld];
band[ld]:=band[le];
band[le]:=aux;
end;
if band[ld]='branco' then
ld:=ld+1;
if band[ld]='vermelho' then
begin
le=le+1;
aux:=band[ld];
band[ld]:=band[le];
band[le]:=aux;
ld:=ld+1;
end;
until ld=ult;
end;

Alem do problema de modelar o codigo para quatro cores, ainda há o problema de que eu não consigo fazer aquelas comparações de strings...

Esse exercicio serve como base para um maior...

Aguardo retorno...

  • Membro VIP
Postado

Estou precisando de ajuda nesse código.

Primeiro vou postar o enunciado da questao e depois o que eu consegui fazer:

Suponha um vetor de comprimento N que possui valores que representam as cores Vermelha, Branca, Azul e Verde. Escreva um programa que ponha as cores neste vetor na seguinte ordem: Cores Vermelhas no extremo esquerdo do vetor, cores Azuis no extremo direito, cores Brancas após o conjunto de cores Vermelhas, e cores Verde após as cores Brancas e antes das cores Azuis.

Qual a menor quantidade de passagens sobre o vetor necessárias para a ordenação? Soluções triviais, do tipo contar as quantidades de cada cor e depois gerar o novo vetor, estão proibidas.

Os valores iniciais do vetor devem ser tomados da entrada padrão. O programa deve imprimir o estado inicial e final do vetor, bem como os estados intermediários durante os passos de ordenação.

Esse é o que eu fiz, um trecho de código que serve apenas para tres cores, sendo que nao consegui implementa-lo para mais cores:


le:=0;
ld:=1;
ult:=n+1;
repeat
if band[ld]='azul' then
begin
ult:=ult-1;
aux:=band[ld];
band[ld]:=band[le];
band[le]:=aux;
end;
if band[ld]='branco' then
ld:=ld+1;
if band[ld]='vermelho' then
begin
le=le+1;
aux:=band[ld];
band[ld]:=band[le];
band[le]:=aux;
ld:=ld+1;
end;
until ld=ult;
end;
begin

Alem do problema de modelar o codigo para quatro cores, ainda há o problema de que eu não consigo fazer aquelas comparações de strings...

Esse exercicio serve como base para um maior...

Aguardo retorno...

Olá,

1) Em:

Suponha um vetor de comprimento N que possui valores que representam as cores Vermelha, Branca, Azul e Verde. Escreva um programa que ponha as cores neste vetor na seguinte ordem: Cores Vermelhas no extremo esquerdo do vetor, cores Azuis no extremo direito, cores Brancas após o conjunto de cores Vermelhas, e cores Verde após as cores Brancas e antes das cores Azuis.

Traduzindo: Colocar na ordem: Cores Vermelhas, Brancas, Verde e Azul !;

2) NEM PENSE EM INVENTAR UMA FÓRMULA DE ORDENAÇÃO: Não se implementa um 'Algoritmo de ordenação', mas sim "Utiliza-se" um já existente!. (reinventar a roda é coisa de português, rs);

3) A pergunta:

Qual a menor quantidade de passagens sobre o vetor necessárias para a ordenação?
tem várias respostas!!!

Ex.: E se eu por os elementos já em ordem? Neste caso não seria necessário nenhuma passagem!!!

Como essa hipótese está descartada (ou desconsiderada), vai depender da estrutura de ordenação escolhida, vide uma lista com métodos de ordenação!!!

Cada uma delas vai ter uma ou mais respostas:

Daí você tem duas opções: ou estuda TODAS AS OPÇÕES de ordenação e descobre qual é mais rápida (veja que também vai depender do grau de desorganização!!!) ou escolhe uma, por exemplo o Bubble Sort, que é uma das mais comum e fácil de implementar!!!

Abraços

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!