Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.11.2015, 19:50
Андрюшка Андрюшка вне форума
Прохожий
 
Регистрация: 18.11.2015
Сообщения: 2
Версия Delphi: 3.4.1
Репутация: 10
Радость Программа для новичка

Привет всем. Помогите написать программу. "Вывести процент чаще всего встречающейся буквы в записи" Всем спасибо, заранее))
Ответить с цитированием
  #2  
Старый 18.11.2015, 20:01
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Легко:
Код:
begin
 WriteLn('Вывести процент чаще всего встречающейся буквы в записи').
end.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #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 будет развёрнутый ответ на поставленную задачу, если только с расчётом процентов ничего не напутал
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:46.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter