Консультация № 45186
04.06.2006, 19:11
0.00 руб.
0 6 2
Здравствуйте!У меня 2 элементарных вопроса:
1)сортировка чисел по убыванию из Edit1 в Label1,при нажатии на Button1.
2)Найти наиболее часто встречающуюся букву из Edit1 и поместить её в Label1,при нажатии на Button1.
Заранее спасибо.

Обсуждение

Неизвестный
04.06.2006, 19:23
общий
это ответ
Здравствуйте, Hercules!
код приводить не буду, а вот натолкнуть на мысль могу.
1. попробуйте поискать алгоритмы сортировки по таким ключевым словам:
сортировка Шелла, пузырек, Быстрая сортировка....
2.следует вначале упорядочить массив значений. например, по убыванию (замечу, что буквы упорядочить тоже можно, т.к. их коды ord(char) расположены последовательно. например, код латинской А = 65, а B = 66...)
далее нужно всего лишь просматривать массив на повторяющиеся символы и запоминать максимальное количество
Неизвестный
04.06.2006, 19:54
общий
в 2. сортировать не обязательно.
Неизвестный
04.06.2006, 20:57
общий
в 1. зачем тут сортировка-то? просто идти по строке Edit1.text, найти максимальный элемент, вставить его в Label1.Caption, а из Edit.text вырезать это число. Или так будет сложнее?
давно
Мастер-Эксперт
425
4118
05.06.2006, 05:12
общий
To Евгения:В задании не сказано, что Edit должен освободиться от исходного значения. Вдобавок, обычно сравнивают результат работы сортировки с исходным значением, чтобы удостоверится, что сортировка прошла правильно. Делается это для любого учебного примера, а здесь пример явно учебный, т.к. присутствует только промежуточный этап - собсивенно сортировка.
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
Неизвестный
05.06.2006, 07:13
общий
То sir henry:можно скопировать Эдит в другую переменную...не в этом суть... пусть тренирует сортировки :)
Неизвестный
07.06.2006, 11:48
общий
это ответ
Здравствуйте, Hercules!
Надоело делать за кого-то лабы....
Только напишу подсказки, а полный код пиши сам. Иначе никогда не научишься программерству.


Приложение:
1. Сортировка массива чисел по убыванию (метод "пузырька"):var A: array[1..N] of integer; i, t: integer; b: boolean;begin repeat b:=true; for i:=1 to N-1 do if A[i]<A[i+1] then begin t:=A[i]; A[i]:=A[i+1]; A[i+1]:=t; b:=false; end; until b;end;2. Поиск наиболее часто встречающейся буквы в строке:var S: string; A: array[char] of integer; //количество встречающихся //символов c, g: char; i, m: integer;begin S:=Edit1.Text; //исходная строка for c:=#0 to #255 do A[c]:=0; //сброс счётчиков for i:=1 to Length(S) do inc(A[S[i]]); //ищем максимальный счётчик m:=0; for c:=#0 to #255 do if A[c]>m then begin m:=A[c]; //новый максимум g:=c; //символ, который встречается (пока) чаще всех end; //g содержит наиболее часто встречающийся символ //если таких несколько, то с наименьшим кодом ASCIIend;Остальное руцямиУдачи в сдаче сессии.
Форма ответа