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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2015, 21:35   #1
Nika_
 
Регистрация: 27.10.2015
Сообщений: 8
По умолчанию Множества. Паскаль

Даны слова (через запятую) из строчных латинских букв, за последним словом – точка.
Напечатать в алфавитном порядке все гласные буквы, которые входят в каждое слово.

Вот что получилось:
Код:
uses crt;
const glas=['a','e','i','o','u','y'];
type mn=set of char;
function Slovo(const s: string; var i: byte):string;
Var w: string;
Begin
w:='';
While (i<=length(s)) and (s[i] <> ',') do
 begin
 w:=w+s[i];
 i:=i+1;
 end;
slovo:=w;
end;
var s,s1:string;
    sl:array[1..100] of string;
    mres:mn;
    m:array[1..100] of mn;
    i,j,k:byte;
begin
clrscr;
writeln('Введите слова через запятую в конце точка');
readln(s);
i:=1;
k:=0;
while i<=length(s) do
 begin
  If (s[i]=',') or (s[i]='.') then
  begin
   k:=k+1;
   s1:='';
   s1:=slovo(s,i);
   i:=i+1;
   sl[k]:=s1;
  end;
 end;
 
for i:=1 to k do
 begin
  m[i]:=[];
  for j:=1 to length(sl[i]) do
  if sl[i][j] in glas then 
  include(m[i],sl[i][j]);
 end;
mres:=glas;
for i:=1 to k do
mres:=mres*m[i];
if mres=[] then
write('Гласных букв, входящих во все слова, нет')
else 
 for i:=65 to 241 do
 if chr(i) in mres then write(chr(i),' ');
readln;
end.
Помогите найти ошибку!
Nika_ вне форума Ответить с цитированием
Старый 19.11.2015, 22:38   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А чем сей код не угодил?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.11.2015, 22:52   #3
Nika_
 
Регистрация: 27.10.2015
Сообщений: 8
По умолчанию

где-то зацикливается
Nika_ вне форума Ответить с цитированием
Старый 19.11.2015, 23:04   #4
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Код:
Program HelloWorld(output);
const glas=['a','e','i','o','u','y'];
var s,sl:string;i,j,k:integer;c:char;
begin
  s := 'Hello,worlda.';
  writeln(s);
  sl :='';s1:='';
  for i:=1 to Length(s) do 
   begin
    if not (s[i] in ['.',',']) then 
            sl := sl + s[i];
    else
        begin
          for j := length(sl) downto 1 do
            if not(sl[j] in glas) then delete(sl,j,1)
          
          for j := 1 to length(sl) do
          for k := j to length(sl) do
            if sl[j]>sl[k] then
              begin
                c := sl[j];
                sl[j]:=sl[k];
                sl[k]:=c
              end;
                   
          write(sl,' ') ;
          sl:=''; 
        end;
    end;
end.
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Множества(Паскаль) fisher94 Помощь студентам 7 10.03.2012 13:58
Множества. Паскаль. Heming Фриланс 1 24.12.2011 09:22
Множества(Паскаль) Lord123 Помощь студентам 6 03.05.2010 16:43
Множества,паскаль edmynt Помощь студентам 5 23.06.2009 23:11
Паскаль Множества vacia78 Помощь студентам 3 09.04.2009 22:10