IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Задача на Строки, подсчет гласных и согласных+сортировка букв в порядке их употребления.
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 1
Пол: Мужской

Репутация: -  0  +


суть:пересчитать гласные и согласные во введённой строке, а потом вывести побуквенно в порядке убывания количества раз употреблённости во введённой строке

первую часть (подсчет букв) написал...а вот с сортировкой торможу..решение нужно очень срочно.желательно-до завтрашнего утра...Реализация на процедурах или функциях.

То что написанно:
Program GlasnSogl;
uses crt;
Type
Letters = set of 'a'..'z';
Var
Glasn, Sogl : Letters;
Text : String;
i, G, S : byte;
procedure Podscet;

Begin

Glasn := ['a', 'e', 'i', 'o', 'u', 'y'];
Sogl := ['b'..'d', 'f', 'g', 'h','j'..'n', 'p'..'t', 'v'..'x', 'z'];

G := 0;
S := 0;
For i := 1 to Length(Text) do
Begin
If Text[i] in Glasn
Then
G := G+1;
If Text[i] in Sogl
Then
S := S+1;
End;
Writeln('v texte " ', Text, ' " ', G, ' glasnih and ', S, ' soflasnih bykv');
end;


begin

Writeln('inputting');
Readln(Text);
podscet;

readln;


End.
end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Для вывода в порядке количества вхождений буквы это количество нужно подсчитать и желательно сохранить. Вот, посмотри, в этой программе я использую для этого массив n. В первом цикле я подсчитываю количество вхождений, а во втором вывожу на печать (без предварительного упорядочивания).
const
s:string='Hello World';

var
i:integer;
n: array['A'..'Z']of integer;
c,d: char;

begin
for i:=1 to Length(s) do begin
c:=UpCase(s[i]);
if c in ['A'..'Z'] then Inc(n[c])
end;
repeat
d:='A';
for c:='A' to 'Z' do if n[c]>n[d] then d:=c;
if n[d]>0 then Write(d) else Break;
n[d]:=0
until false;
ReadLn
end.


Добавлено через 2 мин.
Помимо прочего, обрати внимание на использование функции UpCase для перевода в верхний регистр. Без этого теряется общность..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 2:54
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name