Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.06.2011, 09:55   #1
zzz6
Пользователь
 
Регистрация: 10.06.2011
Сообщений: 60
По умолчанию из заданной строки текста вывести в алфавитном порядке все содержащиеся гласные буквы (Паскаль)

Дана строка текста, заканчивающая точкой. Вывести в алфовитном прорядке все содержащиеся в тексте гласные буквы.

как то начал. но не до конца
Код:
var a:array['A'..'Z'] of integer;
    c, cmax: char;
    f:text;
begin
  assign(f,'text.txt');
  reset(f);
  for c:='A' to 'Z' do a[c]:=0;
  repeat

поскажите что нибуть

___________
ПОДСКАЗЫВАЮ!

1) Название темы должно адекватно отражать суть решаемой задачи/проблемы.
Не экономьте буквы, раскрывайте тему полнее!

2) Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 30.06.2011 в 10:01.
zzz6 вне форума Ответить с цитированием
Старый 30.06.2011, 10:14   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1) вы не конкретизировали, гласные буквы какого языка? Русские? Английские?

2) откуда взялся файл?! Если речь идёт о тексте (строке), то обычной переменной типа String вполне достаточно...

3) как Вы правильно начали решать, задача действительно на использование множеств (множественного типа данных).
решается примерно так:
Код:
var s : string;
  i : integer;
  ch : char;
  RezultSet  : set of char;
begin
   Readln(s);
   i := 1;
   RezultSet := []; 
   while (i<=Length(s)) and (s[i]<>'.') do begin
     if s[i] in ['a','A','e','E','y','Y','u','U','i' ,'I','o','O']
       then Include(RezultSet, s[i]);
     inc(i)
   end;

   WriteLn;
   for ch:='A' to 'z' do
     if ch in RezultSet 
       then Write(ch);
   Writeln;
   readln
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.06.2011, 10:34   #3
zzz6
Пользователь
 
Регистрация: 10.06.2011
Сообщений: 60
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
1) вы не конкретизировали, гласные буквы какого языка? Русские? Английские?

2) откуда взялся файл?! Если речь идёт о тексте (строке), то обычной переменной типа String вполне достаточно...

3) как Вы правильно начали решать, задача действительно на использование множеств (множественного типа данных).
решается примерно так:
Код:
var s : string;
  i : integer;
  ch : char;
  RezultSet  : set of char;
begin
   Readln(s);
   i := 1;
   RezultSet := []; 
   while (i<=Length(s)) and (s[i]<>'.') do begin
     if s[i] in ['a','A','e','E','y','Y','u','U','i' ,'I','o','O']
       then Include(RezultSet, s[i]);
     inc(i)
   end;

   WriteLn;
   for ch:='A' to 'z' do
     if ch in RezultSet 
       then Write(ch);
   Writeln;
   readln
end.


Русские....

if s[i] in ['à','À','î','Î','ó','Ó','û','Û', 'ý' ,'Ý','ÿ','ß','å','Å','¸','¨','þ','Þ ','è','È']
перепечатал все гласные.. что надо еще изменить?
чтоб работала?
zzz6 вне форума Ответить с цитированием
Старый 30.06.2011, 11:00   #4
zzz6
Пользователь
 
Регистрация: 10.06.2011
Сообщений: 60
По умолчанию

Цитата:
Сообщение от zzz6 Посмотреть сообщение
Русские....

if s[i] in ['à','À','î','Î','ó','Ó','û','Û', 'ý' ,'Ý','ÿ','ß','å','Å','¸','¨','þ','Þ ','è','È']
перепечатал все гласные.. что надо еще изменить?
чтоб работала?


А все разобрался сам.... спасибо за помощь.
zzz6 вне форума Ответить с цитированием
Старый 30.06.2011, 13:46   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

не за что...
вообще, для вывода элементов из множества вполне можно (а иногда и ОБЯЗАТЕЛЬНО НУЖНО) писать цикл перебора ВСЕХ возможных значений множества, а не отдельных, определённых, как в моём примере...

в общем случае (для вывода ЛЮБОГО множества типа set of char, конечно) подойдёт такой код
Код:
var ch : char;
   RezultSet  : set of char;
....
begin
    .... тут заполнение RezultSet как нужно...

   { вывод содержимого множества RezultSet }
   for ch:=#0 to #255 do
     if ch in RezultSet then WriteLn('Символ: ',ch,' код символа: ', ord(ch));
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Множества. Вывести в алфавитном порядке все буква текста, входящие в него более двух раз ilyas22 Паскаль, Turbo Pascal, PascalABC.NET 5 23.05.2010 12:50
Напечатать в алфавитном порядке все гласные буквы, которые не входят более чем в одно слово. GHOST_DOG Помощь студентам 5 30.03.2009 15:24
Распечатать все буквы входящие в текст не мене двух раз в алфавитном порядке. Паскаль. DIzza Помощь студентам 5 13.03.2009 09:08
Вывести в алфавитном порядке все латинские буквы Jereme Паскаль, Turbo Pascal, PascalABC.NET 6 26.12.2008 13:15