Ir ao conteúdo
  • Cadastre-se

Duvida com programa


igor3m

Posts recomendados

Opa pessoal,

estou fazendo um programa que precisa informar ao usuario atraves de um histograma a quantidade de letras de A até Z presentes no texto que será informado...

preciso saber se existe algum comando semelhante ao Para-faça (for to do) que conte letras de A até Z

tentei usar uma string do alfabeto mas nao consigo contar com isso

function Contas (x,tamanhotexto:integer):integer;

var

alfa:string;

frase:string[255];

i,j:integer;

begin

alfa:=('abcdefghijklmnopqrstuvwxyz');

For i:=1 to tamanhotexto do

begin

For j:=alfa[1] to alfa[26] do begin //isso não é possivel

If (Frase=Alfa[j]) then

x:=x+1;

end;

end;

Onde a variavel X é referente ao grupo de letras que vai ser contado, A, B, D e assim por diante..

Desde já agradeço!

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Opa pessoal,

estou fazendo um programa que precisa informar ao usuario atraves de um histograma a quantidade de letras de A até Z presentes no texto que será informado...

preciso saber se existe algum comando semelhante ao Para-faça (for to do) que conte letras de A até Z

tentei usar uma string do alfabeto mas nao consigo contar com isso

function Contas (x,tamanhotexto:integer):integer;

var

alfa:string;

frase:string[255];

i,j:integer;

begin

alfa:=('abcdefghijklmnopqrstuvwxyz');

For i:=1 to tamanhotexto do

begin

For j:=alfa[1] to alfa[26] do begin //isso não é possivel

If (Frase=Alfa[j]) then

x:=x+1;

end;

end;

Onde a variavel X é referente ao grupo de letras que vai ser contado, A, B, D e assim por diante..

Desde já agradeço!


For j:=alfa[1] to alfa[26] do

Mas isso é:


For j:='a' to 'z' do

Sabendo isso tente resolver seu problema. Qualquer dúvida posta aí.

Olá,

Infelizmente o for não aceita char (caracteres), somente valores numéricos inteiros! (pelo menos no meu compilador)

Mas você pode usar uma estrutura numérica para percorrer os valores de <alfa>, Ex.:

(eu usei <letras> em vez de <alfa>)

[color=#0000ff]const[/color]
letras [color=#000000]=[/color][color=#a31515]'ABCDEFGHILMNOPQRSTUVWXYZ'[/color][color=#000000];[/color]
[color=#000000]...[/color]
[color=#2b91af]for[/color] j[color=#000000]:=[/color][color=#000000]1[/color] [color=#2b91af]to[/color] [color=#000000]Length[/color][color=#000000]([/color]letras[color=#000000])[/color] [color=#2b91af]do[/color]
[color=#2b91af]if[/color] [color=#000000]([/color][color=#000000]UpCase[/color][color=#000000]([/color]texto[color=#000000][[/color]i[color=#000000]]))=([/color][color=#000000]UpCase[/color][color=#000000]([/color]letras[color=#000000][[/color]j[color=#000000]]))[/color] [color=#2b91af]then[/color]
cont[color=#000000]:=[/color]cont[color=#000000]+[/color][color=#000000]1[/color][color=#000000];[/color]

Abaixo um exemplo mais completo

[color=#0000ff]PROGRAM[/color] testeContador[color=#000000];[/color]
[color=#0000ff]uses[/color]
CRT[color=#000000];[/color]
[color=#0000ff]function[/color] [color=#000000]Contas[/color] [color=#000000]([/color]texto [color=#000000]:[/color][color=#0000ff]string[/color][color=#000000]):[/color][color=#0000ff]byte[/color][color=#000000];[/color]
[color=#0000ff]const[/color]
letras [color=#000000]=[/color][color=#a31515]'ABCDEFGHILMNOPQRSTUVWXYZ'[/color][color=#000000];[/color]
[color=#0000ff]var[/color]
i[color=#000000],[/color]
j [color=#000000]:[/color][color=#0000ff]byte[/color][color=#000000];[/color]
cont [color=#000000]:[/color][color=#0000ff]byte[/color][color=#000000];[/color]
[color=#0000ff]begin[/color]
cont[color=#000000]:=[/color][color=#000000]0[/color][color=#000000];[/color] [color=#008000]//zera o contador de letras[/color]
[color=#2b91af]for[/color] i[color=#000000]:=[/color][color=#000000]1[/color] [color=#2b91af]to[/color] [color=#000000]Length[/color][color=#000000]([/color]texto[color=#000000])[/color] [color=#2b91af]do[/color]
[color=#0000ff]begin[/color]
[color=#2b91af]for[/color] j[color=#000000]:=[/color][color=#000000]1[/color] [color=#2b91af]to[/color] [color=#000000]Length[/color][color=#000000]([/color]letras[color=#000000])[/color] [color=#2b91af]do[/color]
[color=#2b91af]if[/color] [color=#000000]([/color][color=#000000]UpCase[/color][color=#000000]([/color]texto[color=#000000][[/color]i[color=#000000]]))=([/color][color=#000000]UpCase[/color][color=#000000]([/color]letras[color=#000000][[/color]j[color=#000000]]))[/color] [color=#2b91af]then[/color]
cont[color=#000000]:=[/color]cont[color=#000000]+[/color][color=#000000]1[/color][color=#000000];[/color]
[color=#0000ff]end[/color][color=#000000];[/color]
Contas[color=#000000]:=[/color]cont[color=#000000];[/color]
[color=#0000ff]end[/color][color=#000000];[/color]

[color=#0000ff]var[/color]
frase [color=#000000]:[/color][color=#0000ff]string[/color][color=#000000];[/color]
[color=#0000ff]BEGIN[/color]
[color=#000000]writeln[/color][color=#000000]([/color][color=#a31515]'Programa que informa a quantidade de letras de A ate Z'[/color][color=#000000]);[/color]
frase[color=#000000]:=[/color][color=#a31515]'Forum do Clube do Hardware - Pascal/Delphi'[/color][color=#000000];[/color]
[color=#000000]writeln[/color][color=#000000]([/color][color=#a31515]'FRASE : '[/color][color=#000000],[/color]frase[color=#000000]);[/color]
[color=#000000]writeln[/color][color=#000000]([/color][color=#a31515]'Quantidade de letras : '[/color][color=#000000],[/color][color=#000000]Contas[/color][color=#000000]([/color]frase[color=#000000]));[/color]
ReadKey[color=#000000];[/color] [color=#008000]//pause antes de fechar[/color]
[color=#0000ff]END[/color][color=#000000].[/color]

Existem outra formas, por exemplo:

Usando o recurso "in", veja:

[color=#0000ff]function[/color] [color=#000000]Contas[/color] [color=#000000]([/color]texto [color=#000000]:[/color][color=#0000ff]string[/color][color=#000000]):[/color][color=#0000ff]byte[/color][color=#000000];[/color]
[color=#0000ff]var[/color]
i[color=#000000],[/color]
j [color=#000000]:[/color][color=#0000ff]byte[/color][color=#000000];[/color]
cont [color=#000000]:[/color][color=#0000ff]byte[/color][color=#000000];[/color]
[color=#0000ff]begin[/color]
cont[color=#000000]:=[/color][color=#000000]0[/color][color=#000000];[/color] [color=#008000]//zera o contador de letras[/color]
[color=#2b91af]for[/color] i[color=#000000]:=[/color][color=#000000]1[/color] [color=#2b91af]to[/color] [color=#000000]Length[/color][color=#000000]([/color]texto[color=#000000])[/color] [color=#2b91af]do[/color]
[color=#0000ff]begin[/color]
[color=#2b91af]if[/color] [color=#000000]([/color][color=#000000]UpCase[/color][color=#000000]([/color]texto[color=#000000][[/color]i[color=#000000]]))[/color] [color=#0000ff]in[/color] [color=#000000][[/color][color=#a31515]'A'[/color][color=#000000],[/color][color=#a31515]'B'[/color][color=#000000],[/color][color=#a31515]'C'[/color][color=#000000],[/color][color=#a31515]'D'[/color][color=#000000],[/color][color=#a31515]'E'[/color][color=#000000],[/color][color=#a31515]'F'[/color][color=#000000],[/color][color=#a31515]'G'[/color][color=#000000],[/color][color=#a31515]'H'[/color][color=#000000],[/color][color=#a31515]'I'[/color][color=#000000],[/color][color=#a31515]'L'[/color][color=#000000],[/color][color=#a31515]'M'[/color][color=#000000],[/color][color=#a31515]'N'[/color][color=#000000],[/color][color=#a31515]'O'[/color][color=#000000],[/color][color=#a31515]'P'[/color][color=#000000],[/color][color=#a31515]'Q'[/color][color=#000000],[/color][color=#a31515]'R'[/color][color=#000000],[/color][color=#a31515]'S'[/color][color=#000000],[/color][color=#a31515]'T'[/color][color=#000000],[/color][color=#a31515]'U'[/color][color=#000000],[/color][color=#a31515]'V'[/color][color=#000000],[/color][color=#a31515]'W'[/color][color=#000000],[/color][color=#a31515]'X'[/color][color=#000000],[/color][color=#a31515]'Y'[/color][color=#000000],[/color][color=#a31515]'Z'[/color][color=#000000]][/color] [color=#2b91af]then[/color]
cont[color=#000000]:=[/color]cont[color=#000000]+[/color][color=#000000]1[/color][color=#000000];[/color]
[color=#0000ff]end[/color][color=#000000];[/color]
Contas[color=#000000]:=[/color]cont[color=#000000];[/color]
[color=#0000ff]end[/color][color=#000000];[/color]

ou reduzido

[color=#0000ff]function[/color] [color=#000000]Contas[/color] [color=#000000]([/color]texto [color=#000000]:[/color][color=#0000ff]string[/color][color=#000000]):[/color][color=#0000ff]byte[/color][color=#000000];[/color]
[color=#0000ff]var[/color]
i[color=#000000],[/color]
j [color=#000000]:[/color][color=#0000ff]byte[/color][color=#000000];[/color]
cont [color=#000000]:[/color][color=#0000ff]byte[/color][color=#000000];[/color]
[color=#0000ff]begin[/color]
cont[color=#000000]:=[/color][color=#000000]0[/color][color=#000000];[/color] [color=#008000]//zera o contador de letras[/color]
[color=#2b91af]for[/color] i[color=#000000]:=[/color][color=#000000]1[/color] [color=#2b91af]to[/color] [color=#000000]Length[/color][color=#000000]([/color]texto[color=#000000])[/color] [color=#2b91af]do[/color]
[color=#0000ff]begin[/color]
[color=#2b91af]if[/color] [color=#000000]([/color][color=#000000]UpCase[/color][color=#000000]([/color]texto[color=#000000][[/color]i[color=#000000]]))[/color] [color=#0000ff]in[/color] [color=#000000][[/color][color=#a31515]'A'[/color][color=#000000]..[/color][color=#a31515]'Z'[/color][color=#000000]][/color] [color=#2b91af]then[/color]
cont[color=#000000]:=[/color]cont[color=#000000]+[/color][color=#000000]1[/color][color=#000000];[/color]
[color=#0000ff]end[/color][color=#000000];[/color]
Contas[color=#000000]:=[/color]cont[color=#000000];[/color]
[color=#0000ff]end[/color][color=#000000];[/color]

Daria também para fazer usando a tabela ASCII

Por ai vai

No aguardo

Abraços

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
Aqui o FPC 2.4.0 aceitou! De acordo com o livro Programando com Pascal (pág. 53), o for aceita integer, char e boolean.

Olá,

Tem toda razão, :rolleyes:. Eu que viajei na maionese total!!!!!!!!!!!!!

Funciona sim, basta declarar a variável de controle com o tipo correspondente. Ai no caso já existe pelo menos mais uma possibilidade.

[color=#0000ff]PROGRAM[/color] testeContador[color=#000000];[/color]
[color=#0000ff]uses[/color]
CRT[color=#000000];[/color]
[color=#0000ff]function[/color] [color=#000000]Contas[/color] [color=#000000]([/color]texto [color=#000000]:[/color][color=#0000ff]string[/color][color=#000000]):[/color][color=#0000ff]byte[/color][color=#000000];[/color]
[color=#0000ff]var[/color]
i [color=#000000]:[/color][color=#0000ff]byte[/color][color=#000000];[/color]
j [color=#000000]:[/color][color=#0000ff]char[/color][color=#000000];[/color]
cont [color=#000000]:[/color][color=#0000ff]byte[/color][color=#000000];[/color]
[color=#0000ff]begin[/color]
cont[color=#000000]:=[/color][color=#000000]0[/color][color=#000000];[/color] [color=#008000]//zera o contador de letras[/color]
[color=#2b91af]for[/color] i[color=#000000]:=[/color][color=#000000]1[/color] [color=#2b91af]to[/color] [color=#000000]Length[/color][color=#000000]([/color]texto[color=#000000])[/color] [color=#2b91af]do[/color]
[color=#0000ff]begin[/color]
[color=#2b91af]for[/color] j[color=#000000]:=[/color][color=#a31515]'A'[/color] [color=#2b91af]to[/color] [color=#a31515]'Z'[/color] [color=#2b91af]do[/color]
[color=#2b91af]if[/color] [color=#000000]UpCase[/color][color=#000000]([/color]texto[color=#000000][[/color]i[color=#000000]]) =[/color] j [color=#2b91af]then[/color]
cont[color=#000000]:=[/color]cont[color=#000000]+[/color][color=#000000]1[/color][color=#000000];[/color]
[color=#0000ff]end[/color][color=#000000];[/color]
Contas[color=#000000]:=[/color]cont[color=#000000];[/color]
[color=#0000ff]end[/color][color=#000000];[/color]

[color=#0000ff]var[/color]
frase [color=#000000]:[/color][color=#0000ff]string[/color][color=#000000];[/color]

[color=#0000ff]BEGIN[/color]
[color=#000000]writeln[/color][color=#000000]([/color][color=#a31515]'Programa que informa a quantidade de letras de A ate Z'[/color][color=#000000]);[/color]
frase[color=#000000]:=[/color][color=#a31515]'Forum do Clube do Hardware - Pascal/Delphi'[/color][color=#000000];[/color]
[color=#000000]writeln[/color][color=#000000]([/color][color=#a31515]'FRASE : '[/color][color=#000000],[/color]frase[color=#000000]);[/color]
[color=#000000]writeln[/color][color=#000000]([/color][color=#a31515]'Quantidade de letras : '[/color][color=#000000],[/color][color=#000000]Contas[/color][color=#000000]([/color]frase[color=#000000]));[/color]
ReadKey[color=#000000];[/color] [color=#008000]//pause antes de fechar[/color]
[color=#0000ff]END[/color][color=#000000].[/color]

PS: Valeu pela dica viniciusbmatos, eu até lembrava que tinha usado char, mas como fiz o teste (errado) eu acabei me passando.

PS2: igor3m e geloh, no caso o que falta é justamente declarar a variável de controle do for com o tipo (type) correspondente.

Abaixo mais um exemplo:

[color=#0000ff]function[/color] [color=#000000]Contas[/color] [color=#000000]([/color]texto [color=#000000]:[/color][color=#0000ff]string[/color][color=#000000]):[/color][color=#0000ff]byte[/color][color=#000000];[/color]
[color=#0000ff]var[/color]
i [color=#000000]:[/color][color=#0000ff]byte[/color][color=#000000];[/color]
j [color=#000000]:[/color][color=#a31515]'A'[/color][color=#000000]..[/color][color=#a31515]'Z'[/color][color=#000000];[/color] [color=#008000]//declaração de um tipo "criado" pelo programador[/color]
cont [color=#000000]:[/color][color=#0000ff]byte[/color][color=#000000];[/color]
[color=#0000ff]begin[/color]
cont[color=#000000]:=[/color][color=#000000]0[/color][color=#000000];[/color] [color=#008000]//zera o contador de letras[/color]
[color=#2b91af]for[/color] i[color=#000000]:=[/color][color=#000000]1[/color] [color=#2b91af]to[/color] [color=#000000]Length[/color][color=#000000]([/color]texto[color=#000000])[/color] [color=#2b91af]do[/color]
[color=#0000ff]begin[/color]
[color=#2b91af]for[/color] j[color=#000000]:=[/color][color=#a31515]'A'[/color] [color=#2b91af]to[/color] [color=#a31515]'Z'[/color] [color=#2b91af]do[/color]
[color=#2b91af]if[/color] [color=#000000]UpCase[/color][color=#000000]([/color]texto[color=#000000][[/color]i[color=#000000]]) =[/color] j [color=#2b91af]then[/color]
cont[color=#000000]:=[/color]cont[color=#000000]+[/color][color=#000000]1[/color][color=#000000];[/color]
[color=#0000ff]end[/color][color=#000000];[/color]
Contas[color=#000000]:=[/color]cont[color=#000000];[/color]
[color=#0000ff]end[/color][color=#000000];[/color]

Abraços

Link para o comentário
Compartilhar em outros sites

Olá!

É possível também contar o número de ocorrências de cada letra. O enunciado não deixou claro se isso é necessário.

[COLOR=#000000][B]program[/B][/COLOR] testando[COLOR=#a52a2a][B];[/B][/COLOR]
[COLOR=#000000][B]uses[/B][/COLOR]
crt[COLOR=#a52a2a][B];[/B][/COLOR]
[COLOR=#000000][B]type[/B][/COLOR]
t_vetor [COLOR=#a52a2a][B]=[/B][/COLOR] [COLOR=#000000][B]array[/B][/COLOR][COLOR=#a52a2a][B][[/B][/COLOR][COLOR=#ff4500]'a'[/COLOR][COLOR=#a52a2a][B]..[/B][/COLOR][COLOR=#ff4500]'z'[/COLOR][COLOR=#a52a2a][B]][/B][/COLOR] [COLOR=#000000][B]of[/B][/COLOR] [COLOR=#0000cd][B]integer[/B][/COLOR][COLOR=#a52a2a][B];[/B][/COLOR]
[COLOR=#000000][B]var[/B][/COLOR]
texto[COLOR=#a52a2a][B]:[/B][/COLOR] [COLOR=#000000][B]string[/B][/COLOR][COLOR=#a52a2a][B];[/B][/COLOR]
qtd[COLOR=#a52a2a][B]:[/B][/COLOR] t_vetor[COLOR=#a52a2a][B];[/B][/COLOR]
k[COLOR=#a52a2a][B]:[/B][/COLOR] [COLOR=#0000cd][B]char[/B][/COLOR][COLOR=#a52a2a][B];[/B][/COLOR]
total[COLOR=#a52a2a][B]:[/B][/COLOR] [COLOR=#0000cd][B]integer[/B][/COLOR][COLOR=#a52a2a][B];[/B][/COLOR]
[COLOR=#4682b4][I]{ função para contar }[/I][/COLOR]
[COLOR=#000000][B]function[/B][/COLOR] [COLOR=#228b22]contar[/COLOR][COLOR=#a52a2a][B]([/B][/COLOR]entr_texto[COLOR=#a52a2a][B]:[/B][/COLOR] [COLOR=#000000][B]string[/B][/COLOR][COLOR=#a52a2a][B]):[/B][/COLOR] t_vetor[COLOR=#a52a2a][B];[/B][/COLOR]
[COLOR=#000000][B]var[/B][/COLOR]
cont[COLOR=#a52a2a][B]:[/B][/COLOR] [COLOR=#0000cd][B]integer[/B][/COLOR][COLOR=#a52a2a][B];[/B][/COLOR]
let[COLOR=#a52a2a][B]:[/B][/COLOR] [COLOR=#0000cd][B]char[/B][/COLOR][COLOR=#a52a2a][B];[/B][/COLOR]
[COLOR=#000000][B]begin[/B][/COLOR]
[COLOR=#4682b4][I]{ zerar }[/I][/COLOR]
[COLOR=#228b22]for[/COLOR] let [COLOR=#a52a2a][B]:=[/B][/COLOR] [COLOR=#ff4500]'a'[/COLOR] [COLOR=#228b22]to[/COLOR] [COLOR=#ff4500]'z'[/COLOR] [COLOR=#228b22]do[/COLOR]
contar[COLOR=#a52a2a][B][[/B][/COLOR]let[COLOR=#a52a2a][B]] :=[/B][/COLOR] [COLOR=#000000]0[/COLOR][COLOR=#a52a2a][B];[/B][/COLOR]
[COLOR=#4682b4][I]{ contar }[/I][/COLOR]
[COLOR=#228b22]for[/COLOR] cont [COLOR=#a52a2a][B]:=[/B][/COLOR] [COLOR=#000000]1[/COLOR] [COLOR=#228b22]to[/COLOR] [COLOR=#228b22]length[/COLOR][COLOR=#a52a2a][B]([/B][/COLOR]entr_texto[COLOR=#a52a2a][B])[/B][/COLOR] [COLOR=#228b22]do[/COLOR]
[COLOR=#000000][B]case[/B][/COLOR] entr_texto[COLOR=#a52a2a][B][[/B][/COLOR]cont[COLOR=#a52a2a][B]][/B][/COLOR] [COLOR=#000000][B]of[/B][/COLOR]
[COLOR=#ff4500]'a'[/COLOR][COLOR=#a52a2a][B]..[/B][/COLOR][COLOR=#ff4500]'z'[/COLOR][COLOR=#a52a2a][B]:[/B][/COLOR]
[COLOR=#228b22]inc[/COLOR][COLOR=#a52a2a][B]([/B][/COLOR]contar[COLOR=#a52a2a][B][[/B][/COLOR]entr_texto[COLOR=#a52a2a][B][[/B][/COLOR]cont[COLOR=#a52a2a][B]]]);[/B][/COLOR]
[COLOR=#ff4500]'A'[/COLOR][COLOR=#a52a2a][B]..[/B][/COLOR][COLOR=#ff4500]'Z'[/COLOR][COLOR=#a52a2a][B]:[/B][/COLOR]
[COLOR=#228b22]inc[/COLOR][COLOR=#a52a2a][B]([/B][/COLOR]contar[COLOR=#a52a2a][B][[/B][/COLOR][COLOR=#228b22]chr[/COLOR][COLOR=#a52a2a][B]([/B][/COLOR][COLOR=#228b22]ord[/COLOR][COLOR=#a52a2a][B]([/B][/COLOR]entr_texto[COLOR=#a52a2a][B][[/B][/COLOR]cont[COLOR=#a52a2a][B]])+[/B][/COLOR][COLOR=#000000]32[/COLOR][COLOR=#a52a2a][B])]);[/B][/COLOR]
[COLOR=#000000][B]end[/B][/COLOR][COLOR=#a52a2a][B];[/B][/COLOR]
[COLOR=#000000][B]end[/B][/COLOR][COLOR=#a52a2a][B];[/B][/COLOR]
[COLOR=#4682b4][I]{ programa }[/I][/COLOR]
[COLOR=#000000][B]begin[/B][/COLOR]
[COLOR=#228b22]writeln[/COLOR][COLOR=#a52a2a][B]([/B][/COLOR][COLOR=#ff4500]'Texto:'[/COLOR][COLOR=#a52a2a][B]);[/B][/COLOR]
[COLOR=#228b22]readln[/COLOR][COLOR=#a52a2a][B]([/B][/COLOR]texto[COLOR=#a52a2a][B]);[/B][/COLOR]
qtd [COLOR=#a52a2a][B]:=[/B][/COLOR] [COLOR=#228b22]contar[/COLOR][COLOR=#a52a2a][B]([/B][/COLOR]texto[COLOR=#a52a2a][B]);[/B][/COLOR]
clrscr[COLOR=#a52a2a][B];[/B][/COLOR]
total [COLOR=#a52a2a][B]:=[/B][/COLOR] [COLOR=#000000]0[/COLOR][COLOR=#a52a2a][B];[/B][/COLOR]
[COLOR=#228b22]for[/COLOR] k [COLOR=#a52a2a][B]:=[/B][/COLOR] [COLOR=#ff4500]'a'[/COLOR] [COLOR=#228b22]to[/COLOR] [COLOR=#ff4500]'z'[/COLOR] [COLOR=#228b22]do[/COLOR]
[COLOR=#000000][B]begin[/B][/COLOR]
[COLOR=#228b22]if[/COLOR] qtd[COLOR=#a52a2a][B][[/B][/COLOR]k[COLOR=#a52a2a][B]] <>[/B][/COLOR] [COLOR=#000000]0[/COLOR] [COLOR=#228b22]then[/COLOR]
[COLOR=#228b22]writeln[/COLOR][COLOR=#a52a2a][B]([/B][/COLOR]k[COLOR=#a52a2a][B],[/B][/COLOR] [COLOR=#ff4500]': '[/COLOR][COLOR=#a52a2a][B],[/B][/COLOR]qtd[COLOR=#a52a2a][B][[/B][/COLOR]k[COLOR=#a52a2a][B]]:[/B][/COLOR][COLOR=#000000]0[/COLOR][COLOR=#a52a2a][B]);[/B][/COLOR]
[COLOR=#228b22]inc[/COLOR][COLOR=#a52a2a][B]([/B][/COLOR]total[COLOR=#a52a2a][B],[/B][/COLOR] qtd[COLOR=#a52a2a][B][[/B][/COLOR]k[COLOR=#a52a2a][B]]);[/B][/COLOR]
[COLOR=#000000][B]end[/B][/COLOR][COLOR=#a52a2a][B];[/B][/COLOR]
[COLOR=#228b22]writeln[/COLOR][COLOR=#a52a2a][B]([/B][/COLOR][COLOR=#ff4500]'Total: '[/COLOR][COLOR=#a52a2a][B],[/B][/COLOR]total[COLOR=#a52a2a][B]:[/B][/COLOR][COLOR=#000000]0[/COLOR][COLOR=#a52a2a][B]);[/B][/COLOR]
readkey[COLOR=#a52a2a][B];[/B][/COLOR]
[COLOR=#000000][B]end[/B][/COLOR][COLOR=#a52a2a][B].[/B][/COLOR]

Link para o comentário
Compartilhar em outros sites

Opa, então pessoal...

a parte da contagem da palavra esta tranquilo

O que eu nao consegui rodar foi a parte de apresentar a ocorrencia de cada letra no texto.

O erro está no 'case' que está dentro da função.

tem como voce olhar isso ai pra mim viniciusbmatos?

porque a duvida maior é essa mesmo...

Como vou mostrar a ocorrencia (quantidade) de cada letra no meu texto.

P.S: EstilingueAtomico brigadao pela ajuda da parte da contagem dos caracteres do texto

Link para o comentário
Compartilhar em outros sites

Opa cara ta resolvido aqui consegui!

so que tenho outro brema aqui

eu preciso fazer um histograma da porcentagem das letras...

por exemplo

A (15%) ******************************

Z (1%) **

cada letra no texto corresponde a 1% e equivale a dois *.

Preciso que o programa escreva pra mim

da uma olhada e ve o q q posso usar pra isso


function ContaLetras (texto:string;caractere:char):integer;
var
cgeral,i:integer;
frasecont:integer;
begin
cgeral:=0;
frasecont:=length(texto);
For i:=1 to frasecont do
begin
If UpCase(texto[i])=Caractere then
cgeral:= cgeral+1;
end;
ContaLetras:=cgeral;
end;

function Porcentagem (textoT:integer;pGeral:integer):real;
begin
Porcentagem:= (pGeral*100);
Porcentagem:= (Porcentagem/textoT);
end;

[COLOR="Navy"]function Histograma (pGeral:real):string;
var
ast:array[1..100]of string;
cont,i:integer;
aux:real;
Begin

Aux:= (pGeral/0.5);
For cont:=1 to 100 do
ast[cont]:='**';
For i:=1 to Round(aux) do
Histograma:=ast[cont];
end;[/COLOR]
begin
readln (frase);
frase_cont:= Contas(frase); //Função para contar o total (100%) de caracteres sem espaços no texto
cA:= ContaLetras (frase,chr(65)); //conta o total de letras no texto
pA:= Porcentagem(frase_cont,cA); //recebe a porcentagem da letra em relaçao ao total do texto
xA:= Histograma(pA); //recebe a quantidade de asteriscos

ve se você entende ai...qualquer duvida me pergunte

desde já agradeço demais!!!

Link para o comentário
Compartilhar em outros sites

nao nao,

por exemplo...

a porcentagem de letras A é 12,5%

então

a quantidade de asteriscos que deve aparecer é

12,5/0,5 = 25

quero saber como eu posso escrever isso

de forma que eu nao precise usar um case com 100 opções do tipo

Case Porcentagem da Letra of
1:histograma:='**';
2:histograma:='****';
3:histograma:='******';

.
.
.
20:histograma:='****************************************'

ate chegar em 100

a funçao Histograma seria para fazer isso

function Histograma (pGeral:real):string;
var
ast:array[1..100]of string;
cont,i:integer;
aux:real;
Begin

Aux:= (pGeral/0.5);
For cont:=1 to 100 do
ast[cont]:='**';
For i:=1 to Round(aux) do
Histograma:=ast[cont];
end;

estou considerando a variavel ast como um vetor de strings, onde cada posiçao tem dois asteriscos...

so queria mesmo encontrar uma solução pra nao precisar escrever o case de 100 opções.

Link para o comentário
Compartilhar em outros sites

Olá!

Não vi como você está fazendo (olhei rapidamente), mas se "x" for a porcentagem, você pode fazer:


[color=#228b22]for[/color] i [color=#a52a2a][b]:=[/b][/color] [color=#000000]1[/color] [color=#228b22]to[/color] [color=#228b22]round[/color][color=#a52a2a][b]([/b][/color]x[color=#a52a2a][b])[/b][/color] [color=#228b22]do[/color]
[color=#228b22]write[/color][color=#a52a2a][b]([/b][/color][color=#ff4500]'**'[/color][color=#a52a2a][b]);[/b][/color]
writeln[color=#a52a2a][b];[/b][/color]

Link para o comentário
Compartilhar em outros sites

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!