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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2009, 17:55   #1
Lyf4ever
 
Регистрация: 12.05.2009
Сообщений: 3
По умолчанию Паскаль--Подпрограмма

Здравствуйте!
У меня есть такая задача пп, там мне нужно из 2 двумер. массив составить одномер. массив, но я не знаю как выводить одномерный массив. Я там как то сделал но не получается! Он мне пишет что массив H[c] имеет другое кол-во размерностей, я вообще не понял
посмотрите что у меня тут не так!

Усл. задач
Для массивов А(3,3) и В(4,4) создать одномерный массив Н, в который входят элементы массива В, но не входят те элементы В, которые содержатся в А.

Код:
Program L7;
uses crt;
type mtx=array [1..10,1..10] of integer;
Var A,B,H:mtx; N:byte; i,j,e,k,c:integer;

Procedure vvod(Var A,B,H:mtx; var N:byte; d:char);
Begin
write('N='); readln(N);
for i:=1 to N do
for j:=1 to N do
begin
write (d,'[',i,',',j,']='); readln(A[i,j]);
end;
for e:=1 to N do
for k:=1 to N do
begin
write (d,'[',e,',',k,']='); readln(B[e,k]);
end;

end;



Function sozdat_odnom_massiv_H(A,B,H:mtx; N:byte):integer;
begin
for i:=1 to N do
for j:=1 to N do
begin
A[i,j]:=B[e,k];
for e:=1 to N do
for k:=1 to N do
if A[i,j]<>B[e,k] then
begin
B[e,k]:=H[c];
end;
end;
sozdat_odnom_massiv_H:=H[c];
end;

Procedure vivod_odnom_massiv_H(Var A,B,H:mtx; var N:byte; d:char);
begin
For c:=1 to N do
begin
write(H[c]:2);
end;
end;

Begin
vvod(A,B,H,N,'A','B','H');
sozdat_odnom_massiv_H:=H[c](H,N);
vivod_odnom_massiv_H(A,B,H,N,'A','B','H');
End.

Последний раз редактировалось Lyf4ever; 12.05.2009 в 18:03.
Lyf4ever вне форума Ответить с цитированием
Старый 12.05.2009, 18:22   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Код:
uses crt;
type matrix = array[1..10,1..10] of integer;
vector = array[1..100] of integer;

var
A,B : matrix;
H : vector;
Am,An,Bm,Bn,Hn : integer;


procedure vvod(var A : matrix; var M,N : integer);
var i,j : integer;
begin
write('Vvedite kolichestvo strok: ');
readln(M);
write('Vvedite kolichestvo stolbcov: ');
readln(N);
for i:=1 to M do
 begin
 for j:=1 to N do
  A[i,j] := random(50);
 end;
end;

procedure getVect(A : matrix; Am,An : integer; B : matrix; Bm,Bn : integer; var H : vector; var M : integer);
var i,j,k,l : integer;
fl : boolean;
begin
M := 0;
 for i:=1 to Bm do
  for j:=1 to Bn do
   begin
   fl := true;
   for k:=1 to Am do
    begin
    for l:=1 to An do
     if B[i,j] = A[k,l] then
      begin
      fl := false;
      break;
      end;
    if not fl then break;
    end;
   if fl then
    begin
    inc(M);
    H[M] := B[i,j];
    end;
   end;
end;

procedure print(A : matrix; M,N : integer);
var i,j : integer;
begin
for i:=1 to M do
 begin
 for j:=1 to N do
  write(A[i,j]:4);
 writeln;
 end;
writeln('---------------');
end;

procedure printVector(H : vector; N : integer);
var i : integer;
begin
for i:=1 to N do
 write(H[i]:4);
writeln;
end;

begin
clrscr;
writeln('Matrix A: ');
vvod(A,Am,An);
writeln('Matrix B: ');
vvod(B,Bm,Bn);
print(A,Am,An);
print(B,Bm,Bn);
getVect(A,Am,An,B,Bm,Bn,H,Hn);
printVector(H,Hn);

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

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 12.05.2009, 23:05   #3
Lyf4ever
 
Регистрация: 12.05.2009
Сообщений: 3
По умолчанию

Спасибо большое! Еще 1 такой вопрос. А как сделать чтобы можно напечатать в программу элемента массива, не "random" !!!
Lyf4ever вне форума Ответить с цитированием
Старый 12.05.2009, 23:28   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
А как сделать чтобы можно напечатать в программу элемента массива, не "random" !!!
Ну так просто замените ручным вводом. Мне просто неохота было вручную вбивать 25 элементов.
Какая разница-то, откуда брать числа..
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 12.05.2009, 23:32   #5
Arkuz
Форумчанин
 
Аватар для Arkuz
 
Регистрация: 22.09.2007
Сообщений: 540
По умолчанию

Цитата:
Сообщение от Lyf4ever Посмотреть сообщение
Спасибо большое! Еще 1 такой вопрос. А как сделать чтобы можно напечатать в программу элемента массива, не "random" !!!
Код:
procedure vvod(var A : matrix; var M,N : integer);
var i,j,num : integer;
begin
write('Vvedite kolichestvo strok: ');
readln(M);
write('Vvedite kolichestvo stolbcov: ');
readln(N);
for i:=1 to M do
 begin
 for j:=1 to N do
  write("A[i,j] = ");
  readln(num);
  A[i,j] := num;
 end;
end;
Arkuz вне форума Ответить с цитированием
Старый 13.05.2009, 14:09   #6
Lyf4ever
 
Регистрация: 12.05.2009
Сообщений: 3
По умолчанию

большое спасибо за помощь. вы очень помогли
Цитата:
Сообщение от Sazary Посмотреть сообщение
Ну так просто замените ручным вводом. Мне просто неохота было вручную вбивать 25 элементов.
Какая разница-то, откуда брать числа..
Если не требовали, я бы тоже поставил random!!
Lyf4ever вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подпрограмма с массивом NSvirus Паскаль, Turbo Pascal, PascalABC.NET 2 03.05.2009 17:38
подпрограмма alex1313 Паскаль, Turbo Pascal, PascalABC.NET 2 02.04.2009 21:13
Подпрограмма и массивы.. phantom4eg Помощь студентам 2 04.03.2009 10:55
С++.Массив и подпрограмма функции SkyDreamer Помощь студентам 0 23.11.2007 20:45
подпрограмма в Борланд Паскаль Jasper Паскаль, Turbo Pascal, PascalABC.NET 1 05.12.2006 20:40