Частота встречаемости символа в строке

Задача: 

Определить, как часто встречается определенный символ в строке.

Описание переменных: 

s – строка;
c – символ;
n – количество найденных символов в строке;
len – длина строки;
freq – частота встречаемости, определяемая по формуле (n / len) * 100.

Алгоритм решения задачи: 
  1. Получить строку и символ.
  2. Определить длину строки.
  3. Перебрать каждый символ в строке:
    1. если очередной символ совпадает с заданным символом, то увеличить счетчик символов (n) на единицу.
  4. Вычислить значение частоты встречаемости и вывести ее на экран.
Программа на языке Паскаль: 

var
    s: string;
    c: char;
    n,len,i: byte;
    freq: real;
begin
    write('String: ');
    readln(s);
    write('Char: ');
    readln(c);
    n := 0;
    len := length(s);
    for i:=1 to len do
        if s[i] = c then
            n := n + 1;
    freq := (n / len) * 100;
    writeln('Frequency: ',freq:5:2,'%');
readln
end.

Комментарии

дана строка символов s

дана строка символов s выяснить имеются ли в данной строке такие символы si? si+1,что si это запятая si+1 это тире

Помогите

Пусть дано формулу, содержащую только арифметические операции +, -, *, / и не содержит скобок и функций. Определить общее количество арифметических действий, предусмотренных в этой формуле, и количество чисел, над которыми они выполняются.

Как решить задачу?

Требуется написать программу, которая выводит все маленькие латинские буквы, которые не встречались в исходной последовательности и подсчитывает их количество. Например для строки AB defg hijk lmno pqrstu vwxyz defg. результатом будет abc3.

Сколько раз встречается каждый символ в строке

program c1;
var s: string;
n,j,i,k,l: byte;
begin
readln(s);
k:=1;
n:=length(s);
i:=1;
while i<= n do
begin
j:=i;
while j<=n do
begin
if (s[i]= s[j]) and (i<>j) then
begin
    k:=k+1;
    l:=j;
   delete(s,j,1);
   j:=l-1;
     end;
   j:=j+1;
        end;
        writeln(s[i],k);
          n:=n-k+1;
i:=i+1;
 k:=1;
end;
end.

Дана строка

Дана строка символов.Выяснить,как часто встречаются в строке запятая и тире,которые встречаются последовательно.

По сравнению с программой

По сравнению с программой выше цикл будет выглядеть вот так.

for i:=1 to len-1 do
        if (s[i] = ',') and (s[i+1] = '-') then
            n := n + 1;

И переменная с не нужна.

Как эту задачу можно сделать,

Как эту задачу можно сделать, чтобы программа не содержала вложенных циклов?

Рахим

 
// The program of quantity of this or that letter in a word
 
var
    s: string;
    n,len,i,q: byte;
begin
    write('Enter a word : ');
    readln(s);
    n := 0;
    len := length(s);
 
 
      for i:=1 to len do
      begin
        for q:=1 to len do
      if s[i]=s[q] then n:=n+1;
     end;
      for i:=1 to len do
      writeln(s[i],n);
 
readln
end.

как теперь сделать чтобы в любом слове писалось количество букв содержащемся в этом же слове тобиш например
васяра
в-1
а-2
с-1
я-1
р-1

program c1;var s:

program c1;
var s: string;
n,j,i,k,l: byte;
begin
readln(s);
k:=1;
n:=length(s);
i:=1;
while i<= n do
begin
j:=i;
while j<=n do
begin
if (s[i]= s[j]) and (i<>j) then
begin
    k:=k+1;
    l:=j;
   delete(s,j,1);
   j:=l-1;
     end;
   j:=j+1;
        end;
        writeln(s[i],k);
          n:=n-k+1;
i:=i+1;
 k:=1;
end;
writeln(s);
end.

вот

var
stat: array[1..100] of byte;
s,s1:string;
a,b,i,len,kol,z,int:byte;
bool:boolean;
begin
readln(s);
len:=length(s);
kol:=0;
 
for a:=1 to len do begin
kol:=0;
 
for b:=1 to len do
begin
     if s[a]=s[b] then
     begin
          kol:=kol+1;
     end;
end;
for z:= 1 to len do
begin
     if (s[a]=s[z]) and (stat[z]=0) then begin
     writeln(s[a],kol);
     for int:= 1 to len do
     if s[a]=s[int] then stat[int]:=1;
     end;
end;
 
end;
readln;
end.

так рационально используется память ПК

program c1;
var s: string;
n,j,i,k,l: byte;
begin
readln(s);
k:=1;
n:=length(s);
i:=1;
while i<= n do
begin
j:=i;
while j<=n do
begin
if (s[i]= s[j]) and (i<>j) then
begin
    k:=k+1;
    l:=j;
   delete(s,j,1);
   j:=l-1;
     end;
   j:=j+1;
        end;
        writeln(s[i],k);
          n:=n-k+1;
i:=i+1;
 k:=1;
end;
end.