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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2009, 20:02   #1
cold-hands
 
Аватар для cold-hands
 
Регистрация: 05.04.2009
Сообщений: 5
По умолчанию массивы. паскаль

сравнить элементы массива B с элементами массива С и записать в массив А значения элеметов массива В, которых нет в массиве С

Код:
program lab_12;
uses crt;
const n=5;
type mas=array[1..n] of integer;
procedure P(B,C:mas; var A:mas; var k:integer);
var i,j:integer;
begin
   i:=1;
   j:=1;
   k:=1;
   for i:=1 to n do
   for j:=1 to n do
   if B[i]=C[j] then j:=j+1;
   if B[i]<>C[j] then A[k]:=B[i];
   repeat i:=1 until j>n;
end;
begin
     clrscr;
     writeln ('vvedite massiv B');
     for i:=1 to n do
     begin
     write ('b[',i,']=');
     readln (b[i]);
end;
begin
     writeln ('vvedite massiv C');
     fot j:=1 to n do
     begin
     write ('c[',j,']=');
     readln (c[j]);
end;
writeln (P(A,k);
readln;
end.

Последний раз редактировалось Stilet; 06.04.2009 в 10:27.
cold-hands вне форума Ответить с цитированием
Старый 05.04.2009, 20:13   #2
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

Код:
program lab_12;
uses crt;
const n=5;
type mas=array[1..n] of integer;
var 
	A,B,C:mas;
	i,k:integer;

procedure P(B,C:mas; var A:mas);
var i,j:integer;
	cond:boolean;
begin
i:=1;
j:=1;
k:=0;
for i:=1 to n do begin
   for j:=1 to n do 
      if B[i]<>C[j] then 
         cond:=true
	  else begin cond:=false; break; end;
	if (cond=true) then begin
	   inc(k);
		A[k]:=B[i];
	end;
   end;
end;

begin
   clrscr;
   writeln ('vvedite massiv B');
   for i:=1 to n do begin
      write ('b[',i,']=');
      readln (b[i]);
   end;
   writeln ('vvedite massiv C');
   for i:=1 to n do begin
      write ('c[',i,']=');
      readln (c[i]);
   end;
   P(B,C,A);
   for i:=1 to k do 
	  writeln(A[i]);
   readln;
end.
Uguu~

Последний раз редактировалось __STDC__; 05.04.2009 в 20:39.
__STDC__ вне форума Ответить с цитированием
Старый 05.04.2009, 20:15   #3
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Это что? Где вопрос?
Для кода используйте не QUOTE, а CODE.

По задаче:
Кошмар!
Код:
for j:=1 to n do
if B[i]=C[j] then j:=j+1;
Нельзя изменять переменную-счетчик в цикле for!
Переменные i,j и все массивы не объявлены в программе!
А эта вообще убийственная строчка:
Код:
writeln (P(A,k);
------------------------------------
Ошибок куча. Вы это вообще запускали?

Код:
program lab_12;
uses crt;
const n=5;
type mas=array[1..n] of integer;

procedure P(B,C:mas; var A:mas; var k:integer);
var i,j:integer;
fl : boolean;
begin
k := 0;
for i:=1 to n do
 begin
 fl := false;
 for j:=1 to n do
  if B[i]=C[j] then fl := true;
 if not fl then
  begin
  inc(k);
  A[k] := B[i];
  end;
 end;

end;

var i,k : integer;
A,B,C : mas;

begin
clrscr;
writeln ('vvedite massiv B');
for i:=1 to n do
 begin
 write ('b[',i,']=');
 readln(b[i]);
 end;

writeln ('vvedite massiv C');
for i:=1 to n do
 begin
 write ('c[',i,']=');
 readln (c[i]);
 end;

P(B,C,A,k);
writeln ('massiv A:');
for i:=1 to k do
 write(A[i]:4);

readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 05.04.2009, 20:51   #4
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

Вот вариант получше в части процедуры (как мне кажется):
Код:
uses crt;
const 
        n=5;
type 
	mas=array[1..n] of integer;
	mas_set=set of byte;

procedure P(var A:mas; B:mas; C:mas_set; var k:integer);
var
	i:integer;
begin
i:=1; 
for i:=1 to n do 
	if not(B[i] in C) then begin 
		inc(k);
		A[k]:=B[i];
	end;
end;

var 
	A,B:mas;
	C:mas_set;
	i,k,num:integer;

begin
   clrscr;
   C:=[]; k:=0;
   writeln ('Input B and C arrays:');
   for i:=1 to n do begin
      write('b[',i,']=');
      readln(b[i]);
      writeln('-------------');
      write('c[',i,']=');
      readln(num);
      C:=C+[num];
      writeln('-------------');
   end;
   P(A,B,C,k);
   for i:=1 to k do 
	  writeln(A[i]);
   readln;
end.
еще нижние циклы объединил...
Uguu~

Последний раз редактировалось __STDC__; 05.04.2009 в 20:57.
__STDC__ вне форума Ответить с цитированием
Старый 05.04.2009, 21:39   #5
cold-hands
 
Аватар для cold-hands
 
Регистрация: 05.04.2009
Сообщений: 5
По умолчанию

спасибо огромное)
да, кошмар) я только учусь))
cold-hands вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль. Массивы deceiver Помощь студентам 3 08.03.2009 15:12
массивы Паскаль Натуськ@25 Помощь студентам 1 13.02.2009 19:33
Массивы Паскаль Рітка-кулеметчиця Помощь студентам 1 02.02.2009 08:48
Паскаль и массивы RamireZ Паскаль, Turbo Pascal, PascalABC.NET 7 24.10.2008 17:20
Паскаль, массивы. SZero Помощь студентам 5 22.03.2008 16:06