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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2013, 09:11   #1
ччч1
Пользователь
 
Регистрация: 13.03.2013
Сообщений: 35
По умолчанию даны одномерные массивы a,b,c

даны одномерные массивы a,b,c вывести все элементы массива а,которые входят в b,но не входят в массив с
Код:
program ex;
uses crt;
const m=20;
type TArray=array[0..m] of integer;
procedure RandomArray(var a:TArray; var n:integer);
var i:integer;
begin write ('введите кол-во эл-тов в массиве>');
      readln(n);
      randomize;
      for i:=1 to n do
          a[i]:=random(11)
end;  var i,n:integer;
procedure printArray(a:TArray; n:integer);

begin write('массив >');
      for i:=1 to n do
      write(a[i]:3);
      writeln;
end;
procedure necArray(var a,c,b:TArray; n:integer);
var i,j,k,l:integer; found:boolean;
begin
      for i:=1 to n do
           for j:=1 to m do
              for k:=1 to l do
            if a[i]+b[j]
              then found:=true
                for (a[i]+b[j])+a[l]
              if not found
               then writeln(a[i])
               end;
               found:=false

var
  n:integer;
  a:TArray;
begin
RandomArray(a,n);
PrintArray(a,n);
necArray(a,n);
readln;
end.
помогите подправить
ччч1 вне форума Ответить с цитированием
Старый 02.04.2013, 11:18   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ошибок очень много.
но, в связи с тем, что Вы явно пытались решить задачу и даже двигались в нужном направлении, позволю себе дать свой вариант решения вашей задачи:

Код:
program ex;
uses crt;
const m = 20;
type TArray = array[0..m] of integer;

procedure RandomArray(var a: TArray; var n: integer);
var i: integer;
begin
  repeat
    WriteLn;
    write('введите кол-во эл-тов в массиве > ');
    readln(n);
  until (n > 0) and (n <= m);

  for i := 1 to n do
    a[i] := random(11);
end;

procedure printArray(a: TArray; n: integer; Titul: string);
var i: integer;
begin
  write('массив ' + Titul + ' > ');
  for i := 1 to n do
    write(a[i]: 3);
  writeln;
end;

{функция поиска значения в массиве
  если найдено - возвращает True, если не найдено - False}

function isFoundInArray(a: TArray; n: integer; WhatsFind: integer): boolean;
var i: integer;
begin
  i := 1;
  while (i <= n) and (a[i] <> WhatsFind) do inc(i);
  if i > n
    then isFoundInArray := false
  else isFoundInArray := true;
end;

procedure necArray(var a, b, c: TArray; n1, n2, n3: integer);
var i: integer;
begin
  WriteLn;
  Write('Подходящие элементы из массива A: ');
  for i := 1 to n1 do {перебираем элементы массива A}
    if isFoundInArray(b, n2, a[i]) {i-й элемент входит в массив B}
      and not isFoundInArray(c, n3, a[i]) {и i-й элемент НЕ входит в массив С}
      then Write(a[i], ' ');
end;


var
  nA, nB, nC: integer;
  a, b, c: TArray;
begin
  Randomize;

  WriteLn('Заполняем массив A');
  RandomArray(a, nA);
  WriteLn('Заполняем массив B');
  RandomArray(b, nB);
  WriteLn('Заполняем массив С');
  RandomArray(c, nC);


  PrintArray(a, nA, 'A');
  PrintArray(b, nB, 'B');
  PrintArray(c, nC, 'C');

  necArray(a, b, c, nA, nB, nC);

  readln;
end.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерные массивы, двумерные массивы, строки Sand093 C++ Builder 11 20.05.2012 21:48
Даны массивы Angeling Помощь студентам 3 30.06.2011 13:57
1. Даны массивы Waia Помощь студентам 0 20.12.2009 18:09
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12
Даны массивы wahya Помощь студентам 3 01.12.2009 07:47