Помощь - Поиск - Пользователи - Календарь
Полная версия: задача на массивы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
bagbir
Задача звучит так:
Создать два массива длиной N, создать третий массив в который поместить все те элементы второго массива которых нет в первом.
попробовал написать сам и вот что из этого вышло((

program lab11;

{$APPTYPE CONSOLE}

uses
  SysUtils;

const n=10;
type ar=array[1..n] of integer;
var i,j,r:integer;
    k,l,m:ar;
    p:boolean;

procedure vvod1(var a:ar;k:integer);
 begin 
   for i:=1 to k do
    begin 
      write('a[',i,']=');
      readln(a[i]) 
    end
 end; 

procedure vvod2(var b:ar;k:integer);
 begin
   for i:=1 to k do
    begin
      write('b[',i,']=');
      readln(b[i])
    end
 end;

procedure obrabotka(var a,b,c:ar;k:integer);
 begin
     r:=1;
     for i:=1 to k do
      begin
      p:=true;
      for j:=1 to k do
       if a[j]=b[i] then p:=false;
       if p=true then
      begin
        c[r]:=b[i];
        r:=r+1;
      end; end;
 end;

procedure vivod(var c:ar);
 begin
   for i:=1 to r-1 do
    write(c[i]:3)
 end;

begin

  vvod1(k,10);
  vvod2(l,10);
  obrabotka(k,l,m,10);
  vivod(m);
  readln;
end.


напишите пожалуста как из двух процедур ввода сделать одну?
Lapp
Цитата(bagbir @ 16.12.2007 15:33) *

напишите пожалуста как из двух процедур ввода сделать одну?

Добавь символьную переменную - название массива
procedure vvod(var a:ar; с:char; k:integer);
 begin
   for i:=1 to k do
    begin
      write(c+'[',i,']=');
      readln(a[i])
    end
 end;

Вызывать так:
  vvod(k,'a',10);
  vvod(l,'b',10);

Мне только непонятно, зачем ты массивы a и b в программе назвал k и l? Чтобы жизнь медом не казалась? smile.gif
andriano
procedure vvod(var b:ar;k:integer; ch : char);
 begin
   for i:=1 to k do
    begin
      write(ch,'[',i,']=');
      readln(b[i])
    end
 end;
...
  vvod(k,10,'a');


Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.