Ir para conteúdo

POWERED BY:

Arquivado

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

grmachado

[Resolvido] Pascal

Recommended Posts

Estou tentando resolver este problrma:

-Leia um vetor contendo letras de uma frase inclusive os espaços em branco. Retirar os espaços em branco do vetor e depois escrevê-lo e contar os espaços em branco.

 

Cheguei a este código, mas tá errado!

O programa só elimina o 1° espaço em branco e faz a conta errada.

Alguém tem alguma sugestão?

 

Program Exercicio_9;

Var
    frase:string[51];
    i, cont:integer;
Begin
     cont := 0;
     readln (frase);
     for i := 1 to 20 do
     if (frase[i]) = ' ' then
     begin
         frase[i] := frase[i + 1];
        frase[i + 1] := ' ';
        cont := cont + 1;
     end;
     writeln ('Frase modificada: ', frase);
     writeln ('A frase continha ', cont, 'espaços em branco.');           
  
End.

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se eu entendi bem o que você queria o seu código deve ser :

 

Var    
  frase, novaFrase: string;    
  i, cont: integer;
Begin     
  cont := 0;     
  novaFrase := '';
  readln(frase);     
  for i := 1 to lenght(frase) do
  begin
    if (frase[i]) = ' ' then     
    begin
      Inc(count);
    end
    else
    begin
      novaFrase := novaFrase + frase[i];
    end;
  end;
  writeln ('Frase modificada: ', novaFrase);     
  writeln ('A frase continha ', cont, 'espaços em branco.');             
end.

Qualquer dúvida a respeito do código posta ai.

Obs.: Não compilei pra testar, escrevi diretamente aqui no fórum, então qualquer erro de sintaxe me desculpe.

Compartilhar este post


Link para o post
Compartilhar em outros sites

itepi, retornou o seguinte:

 

"Erro semântico na linha 9..."

for i := 1 to lenght(frase) do
"Função inválida na expressão!"

Tem ideia do que pode ser?

 

O programa tem que retirar os espaços em branco da frase (deixartudojunto) e contar quantos espaços em branco há.

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mals grmachado, erro meu, erro de sintaxe

agora eu testei =P

Tente :

 

Var
  frase, novaFrase: string;
  i, count: integer;
Begin
  count := 0;
  novaFrase := '';
  readln(frase);
  for i := 1 to Length(frase) do
  begin
    if (frase[i]) = ' ' then
    begin
      Inc(count);
    end
    else
    begin
      novaFrase := novaFrase + frase[i];
    end;
  end;
  writeln ('Frase modificada: ', novaFrase);
  writeln ('A frase continha ', count, ' espaços em branco.');
end.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Itepi, seu programa rodou bonito, mas eu comecei errado, desculpe. O enunciado diz: "Leia um vetor contendo letras de uma frase inclusive os espaços...", eu declarei uma string. Como faria para substituir?

 

Obrigado e desculpe meu erro.

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.