Ir ao conteúdo

Duvida com programa


igor3m

Posts recomendados

Postado

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!

Postado


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

  • Membro VIP
Postado

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

  • Membro VIP
Postado
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

Postado

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]

Postado

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

Postado

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

Postado

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.

Postado

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]

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!