Ir para conteúdo

POWERED BY:

Arquivado

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

difos

algoritmo Pascal Maior Menor palavra

Recommended Posts

olá meus amigos, estou com um pequeno problema com um algoritmo estou usando tpw 1.5 o problema e o seguinte, este algoritmo serve para que quando você digite palavras ele lhe informe qual é a palvra que tem o maior numero de caracteres e a palavra que tiver o menor numero de caracteres, fui testando aos poucos e cheguei em uma parte em que, se eu digito uma palavra de 6 caracteres e depois digito uma palavra de 4 por exemplo ele rodará beleza, informará que a maior palavra e a de 6 e a menor e a de 4, mas se eu informar a palavra de 4 caracteres primeiro que a palavra de 6 caracteres, ele diz que a menor palavra e a de 6 caracteres, se alguém me dar uma força eu agradeço muito. Ou seja,

 

exemplo:

 

se eu digito

 

arvore

casas

casa

rua

pe

 

o algoritmo funcionará, dizendo que a palavra arvore e a maior e a palavra pé e a menor, mais se eu digitar

 

pe

rua

casa

casas

arvore

 

ele não informara a palavra maior, e dara o valor de menor palavra para a palavra arvore, ou seja a palavra maior, agradesço a atenção.

 

 

program Palavra;


uses wincrt;

const

n=2;


var

s:array[1..n] of string;
i, maior, menor : integer;


begin


for i:= 1 to n do
readln (s[i]);
maior:= length(s[i]);
menor:= length(s[i]);


for i:= 1 to n do

if length(s[i]) > maior then
begin
maior := length(s[i]);
writeln(' A maior palavra é:',s[i]);
end;

for i:= 1 to n do
if length(s[i]) < menor then
menor := length(s[i]);
writeln (' A menor palavra é :', s[i]);
end.

Compartilhar este post


Link para o post
Compartilhar em outros sites

faça a primeira leitura, e já atribua o tamanho dela para as variáveis 'maior' e 'menor', depois sim faça um loop para ler as restantes, + já tendo como base os valores definidos.

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode me dar um exemplo? por q no começo eu ja defini os valores de maior e menor com o valor delas como length, mas você fala tipo, maior := 0 e menor:= 99999 ?

 

como se a primeira variavel recebese o valor maior e o menor, e apartir dela os valores seriam comparados com os de for i:= 2 to n do.

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz essa alteração melhorou mas não fikou 100%, quando eu execulto a 1° palavra se ela for maior que todas, o algoritmo funciona beleza, mas se coloko uma palavra pequena de uma letra no inicio, o programa diz que a maior palavra e a 1° depois diz que a maior palavra e a segunda, e diz que a menor palavra e a ultima, isto sendo que a 1° palavra digita era pra ser a menor

 

program exercicio_1;

 

 

uses wincrt;

 

const

 

n=5;

 

 

var

 

s:array[1..n] of string;

i, maior, menor : integer;

 

 

begin

 

 

for i:= 1 to n do

readln (s);

maior:= 0;

menor:= 9999;

 

 

for i:= 2 to n do

 

if length(s) > maior then

begin

maior := length(s);

writeln(' A maior palavra é:',s);

end;

 

for i:= 1 to n do

if length(s) < menor then

menor := length(s);

writeln (' A menor palavra é :', s);

end.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo assim:

readln (s[1]);
maior:= length(s[1]);
menor:= length(s[1]);

for i:= 2 to n do
readln (s[i]);
if length(s[i]) > maior then
begin
maior := length(s[i]);
end;
writeln(' A maior palavra é:',s[i]);

 

mano eu n manjo muito a sintaxe pascal, a idéia é mais ou menos essa q te passei..

de uma analisada ae

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.