![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Задачка заключается в следующем:
Дано 2 одномерных массива,каждый из которых не содержит повторяющихся элементов.Построить 3-ий массив,содержащий все элементы,входящие хотя бы в один из массивов.В третьем массиве так же не допускаются повторяющиеся элементы. Я работала над ней,но в итоге-что-то не так-3-ий массив просто зануляет.Как исправить ошибку в коде-не знаю ![]() ![]() Буду очень признательна тому,кто найдет и справит мне ошибку. Код:
program LR_4; {$APPTYPE CONSOLE} uses SysUtils; const n=4; const m=4; type Tmas1=array[1..n] of integer; type Tmas2=array[1..m] of integer; type Tmas3=array[1..n+m] of integer; procedure vvod_ma(var a:array of integer); var i:integer; begin writeln('vvedite 1 massiv'); for i:=1 to n do begin write('a[',i,']= ');readln(a[i]); end; end; procedure vvod_mb(var b:array of integer); var i:integer; begin writeln('vvedite 2 massiv'); for i:=1 to m do begin write('b[',i,']= ');readln(b[i]); end; end; function stroim_c(const a:Tmas1;const b:Tmas2;var c:Tmas3):integer; var i,j,k,naiden:integer; begin for i:=1 to n do c[i]:=a[i]; k:=n; for i:=1 to m do begin naiden:=0; for j:=1 to k do begin if b[i]=c[j] then begin naiden:=1 ; break; end; end; if naiden=0 then begin k:=k+1; c[k]:=b[i]; end; end; result:=k; end; procedure print_m(const a:array of integer;const b:array of integer;const c:array of integer); var i:integer; begin writeln('1 massiv'); for i:=1 to n do writeln(a[i]:4); writeln; writeln('2 massiv'); for i:=1 to m do writeln(b[i]:4); writeln; writeln('3 massiv'); for i:=1 to n+m do writeln(c[i]:4); writeln; end; var a:Tmas1;b:Tmas2;c:Tmas3; k:integer; begin writeln('massiv'); vvod_ma(a); vvod_mb(b); print_m(a,b,c); k:=stroim_c(a,b,c); writeln('k=',k); readln; end. lmikle: Хде теги??? Последний раз редактировалось Makotya, 20.05.2009 в 10:32. |