Estou com uma dúvida sobre como achar a maior sequencia de um array...tenho o seguinte exercício:
Faça um programa em pascal que gere um vetor com dimensão 20 e tenha elementos variando entre 22 e 45, usando funções ramdomize e random. O programa deve escrever o vetor gerado. E identifique sua maior sequencia de valores adjacentes não decrescentes e escreva na tela, havendo empate escreva uma delas.
Consegui fazer parte da questão, mas na hora de montar a maior sequencia não estou conseguindo, alguém pode me ajudar ? Segue o código:
program questao6 (input{teclado},output{vídeo});
uses crt;
const
min =0;
max =19;
type
t_dominio = 22..45;
t_vetor = array[min..max] of t_dominio;
var
vetor:t_vetor;
i:integer;
procedure gera_vetor(var vetor:t_vetor);
begin
randomize;
for i:= min to max do
vetor [i]:= random(23)+ 22;
end;
procedure escreva_vetor(var vetor:t_vetor);
begin
write('A sequencia : ');
for i:= min to max do
write(vetor [i]:3);
writeln(output);
end;
procedure verifica_maior_sequencia(var vetor{e/s}:t_vetor);
begin
writeln('A maior sequencia e : ');
for i:= min to max do
if vetor[i] < vetor[i-1] then
write(vetor[i]:3);
end;
begin
gera_vetor(vetor);
escreva_vetor(vetor);
verifica_maior_sequencia(vetor);
readkey;
end.
Pergunta
Kingflare
Olá pessoal, boa tarde!
Estou com uma dúvida sobre como achar a maior sequencia de um array...tenho o seguinte exercício:
Faça um programa em pascal que gere um vetor com dimensão 20 e tenha elementos variando entre 22 e 45, usando funções ramdomize e random. O programa deve escrever o vetor gerado. E identifique sua maior sequencia de valores adjacentes não decrescentes e escreva na tela, havendo empate escreva uma delas.
Consegui fazer parte da questão, mas na hora de montar a maior sequencia não estou conseguindo, alguém pode me ajudar ? Segue o código:
program questao6 (input{teclado},output{vídeo}); uses crt; const min =0; max =19; type t_dominio = 22..45; t_vetor = array[min..max] of t_dominio; var vetor:t_vetor; i:integer; procedure gera_vetor(var vetor:t_vetor); begin randomize; for i:= min to max do vetor [i]:= random(23)+ 22; end; procedure escreva_vetor(var vetor:t_vetor); begin write('A sequencia : '); for i:= min to max do write(vetor [i]:3); writeln(output); end; procedure verifica_maior_sequencia(var vetor{e/s}:t_vetor); begin writeln('A maior sequencia e : '); for i:= min to max do if vetor[i] < vetor[i-1] then write(vetor[i]:3); end; begin gera_vetor(vetor); escreva_vetor(vetor); verifica_maior_sequencia(vetor); readkey; end.Editado por KingflareLink para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.