Показать сообщение отдельно
  #3  
Старый 19.11.2015, 14:16
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Оффтоп:
Раз прога для новичка, то можно прям нормальным таким махровым G-кодом ответить, особо не стесняясь :-)

Бросьте на форму поле мемо и кнопку, последней присвойте эту процедуру обработки жима по ней
Код:
...
var
 Zapis: string =
  'Привет всем. Помогите написать программу. ' +
  '"Вывести процент чаще всего встречающейся'  +
  ' буквы в записи" Всем спасибо, заранее))';

procedure TForm1.Button1Click(Sender: TObject);
var
 i, j, b: integer;
 s: string;
 chr: array of char;
 cnt: array of integer;
 flg: boolean;
begin
 s:='';

 for i := 1 to Length(Zapis) do
  if Zapis[i] in ['a'..'z', 'A'..'Z', 'а'..'я', 'А'..'Я', 'ё', 'Ё'] then
   s:= s + Zapis[i];

 SetLength(chr, 1);
 SetLength(cnt, 1);
 chr[0]:= s[1];
 cnt[0]:= 1;

 for i := 2 to Length(s) do
  begin
   flg:= true;
   for j := Low(chr) to High(chr) do
    if s[i] = chr[j] then
     begin
      flg:= false;
      Inc(cnt[j]);
     end;

   if flg then
    begin
     SetLength(chr, Length(chr)+1);
     SetLength(cnt, Length(cnt)+1);
     chr[High(chr)]:= s[i];
     cnt[High(cnt)]:= 1;
    end;
  end;

 Memo1.Clear;
 i:= 0;
 for j := Low(cnt) to High(cnt) do
  if cnt[j] > i then i:= cnt[j];

  b:= Length(s);
 for j := Low(chr) to High(chr) do
  begin
   s:= chr[j] + ' - ' + FloatToStr(Round(100 * cnt[j] / b)) +' %';
   if cnt[j] = i then s:= s + ' - чаще всего встречающаяся буквa в записи';
   Memo1.Lines.Add(s);
  end;
end;
В Мемо1 будет развёрнутый ответ на поставленную задачу, если только с расчётом процентов ничего не напутал
Ответить с цитированием