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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2014, 13:13   #1
Ilai
Пользователь
 
Регистрация: 10.09.2014
Сообщений: 90
По умолчанию Подмножества

Добрый день!
Подскажите пожалуйста, набрал программу для определения является ли массив A подмножеством массива B.

Код:
program Project1;
 
var a, b: array of byte;
    z: real;
    j, i, n, m: byte;
    Result: boolean;
begin
     Writeln('Введите элементы массива A');
     n:=0;
     SetLength(a, n+1);
      while not eoln do
       begin
       Read(a[n]);
       inc(n);
       setlength(a,n+1);
      end;
 
      begin
     Writeln('Введите элементы массива B');
     m:=0;
     SetLength(b, m+1);
     while not eoln do 
       begin
       Read(b[m]);
       inc(m);
       setlength(b,m+1);
      end;
      end;
 
   for i:=0 to n-1 do begin
    Result:=false;
     for j:=0 to m-1 do begin
         if a[i]=b[j] then begin
           Result:=true; break; end;
     end;
    if Result=false then break;
    end;
 if Result=true then
 Writeln('Массив А входит в B')
 else
 writeln('Массив А не входит в B');
 read(z);
end.


Программа доходит до строки выделенной красным цветом и перескакивает на строку, выделенную зеленым. Как быть? Где я допустил ошибку?

Последний раз редактировалось Stilet; 16.11.2014 в 13:20.
Ilai вне форума Ответить с цитированием
Старый 16.11.2014, 13:22   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Замени while на repeat.
Или по другому разбирай введенную строку используя функции копирования-удаления.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.11.2014, 13:37   #3
Ilai
Пользователь
 
Регистрация: 10.09.2014
Сообщений: 90
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Замени while на repeat.
Неа, не получается. Теперь после ввода последовательности программа просто вылетает
Ilai вне форума Ответить с цитированием
Старый 16.11.2014, 14:35   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну не знаю...
Код:
      repeat
       Read(a[n]);
       inc(n);
       setlength(a,n+1);
      until eoln;
И все работает на ура. Массив вводится через пробел, а по нажатию энтера начинает работать цикл, который получает элементы массива. Специально проверил на твоем же коде.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.11.2014, 16:53   #5
Ilai
Пользователь
 
Регистрация: 10.09.2014
Сообщений: 90
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну не знаю...
Код:
      repeat
       Read(a[n]);
       inc(n);
       setlength(a,n+1);
      until eoln;
И все работает на ура. Массив вводится через пробел, а по нажатию энтера начинает работать цикл, который получает элементы массива. Специально проверил на твоем же коде.
Всё, нашёл где я не так писал. Большое спасибо за помощь!!
Ilai вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Компилятор с подмножества языка ruby xz2raza Фриланс 0 08.05.2011 13:54
Сгенерировать все подмножества (Delphi) psy_shit Помощь студентам 5 09.03.2011 21:49
Поиск подмножества Lodyr Общие вопросы C/C++ 15 27.11.2010 21:38
Нахождение максимального подмножества Lodyr Общие вопросы C/C++ 0 10.11.2010 23:09
Помогите! Множества, подмножества в Bisual C++ 6 VBlond Помощь студентам 1 28.11.2007 20:00