|
Познающий
Регистрация: 20.05.2008
Сообщений: 81
Провел на форуме: 224517
Репутация:
32
|
|
ЗАДАНИЕ:
По предлагаемому алгоритму, написать программу:
На Вход подаются: Два УпорядоченныХ множества A и B (МассивЫ).
Нужно проверить, принадлежит A к B или нет. Если да, то 1, нет, то 0.
Выход: да или нет (1 или 0, true или false).
ОПИСАНИЕ АЛГОРИТМА (по нему программу составит нужно):
i:=1; j:=1; // указатели на начало множеств
пока i№ |A|+1 и j№ |B|+1 цикл
если A[i] < B[j] то вернуть 0 и выход // элемент A отсутствует в B
иначе если A[i] > B[j] то j:=j+1 // переход к след. элементу B
иначе // элементы совпали – перейти к следующим
i:=i+1; j:=j+1;
конец если
конец цикла
если i=|A|+1 то вернуть 1 иначе вернуть 0.<
ЧТО Я ДЕЛАЮ:
uses crt;
const n=5;
var a: array [1..n] of integer;
var b: array [1..n] of integer;
var i,j,x,y: integer;
begin
clrscr;
writeln('a[i]');
for i:=1 to n do // солздаем массиив a (множество)
begin // упорядоченное
write('Eneter ',i,' Element : ');
readln(x); a[i]:=x;
end;
writeln; writeln('b[i]');
for i:=1 to n do // солздаем массиив b (множество)
begin // упорядоченное
write('Eneter ',i,' Element : ');
readln(y); b[i]:=y;
end;
i:=1; j:=1; // код, написанный на основе
while (a[i]+1) and (b[i]+1) do //представленнго алгоритма
begin
if a[i] < a[i]+1 then return 0;
else
begin
if a[i] > b[i] then j:=j+1;
else i:=i+1; j:=j+1;
end;
end;
if i:=a[i]+1 then return 1; else return 0;
readkey;
end.
программма не запускается. пишет ошибку 40 в условии цикла while.
естественно, как заработает (если заработает :-( .. ), сделаю, так чтобы после ввода любого массива, он сортировался автоматом. Это чтобы препод, совсем расслабился, просто вбил много цифр, а они на ему отсортировались в упорядоченное множество))))
ПРОШУ ПОМОГИТЕ МНЕ. ПРОГРАММ НЕ РАБОТАЕТ.
ТНКНИТЕ МНЕ НОСОМ, ПОЖАЛУЙСТА. ДВА ДНЯ МУЧАЮСЬ (((
Все таки раздел помощи (я свои наработки даю).
Помогите, ПОЖАЛУЙСТА.
Последний раз редактировалось hoty; 09.06.2008 в 00:58..
|