IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Просьба помочь разобраться с ошибкой в программе.
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской

Репутация: -  0  +


Здравствуйте, уважаемые форумчане.

Решаю следующую задачу: составить процедуру выделения из массива Y (4*3) элементов со значением в диапазоне X1..X2. Результат из M элементов помещеатес в массив z.

Вот что я сделал:


program kont_4;
uses crt;

procedure proc(a,b:integer; x:array[1..4,1..3] of integer; var z:array[1..12] of integer);
var i,j,c:integer;
begin
c:=0;
for i:=1 to 4 do begin
for j:=1 to 3 do begin
if (x[i,j]>a) and (x[i,j]<b) then begin
c:=c+1;
z[c]:=x[i,j];
end;
end;
end;
end;

var
y:array[1..4,1..3] of integer;
z1:array[1..12] of integer;
x1,x2,i1,j1:integer;

begin
randomize;
for i1:=1 to 4 do begin
for j1:=1 to 3 do begin
y[i1,j1]:=random(100);
write(y[i1,j1]:3);
end;
writeln;
end;
writeln('Введите x1,x2');readln(x1,x2);
proc(x1,x2,y,z1);
for i1:=1 to 12 do begin
write(z1[i1]:3);
end;
readln;
end;



Но почему то при запуске программы компилятор ругается на то, что не хватает of в следующей строке:

procedure proc(a,b:integer; x:array[1..4,1..3] of integer; var z:array[1..12] of integer);



Подскажите, пожалуйста, что не так ?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Цитата
Подскажите, пожалуйста, что не так ?
Типы должны быть известны перед описанием заголовка процедуры. Нельзя конструировать типы прямо в заголовках.

В данном конкретном случае - единственная конструкция, которая МОЖЕТ присутствовать в заголовке, и начинается словом array - это "открытый массив" - array of {название типа}. Вот именно этого OF от тебя и ждет компилятор.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской

Репутация: -  0  +


Большое спасибо за ответ, под правил в программе:

program kont_4;
uses crt;
type
mas=array[1..12] of integer;
matr=array[1..4,1..3] of integer;
procedure proc(a,b:integer; x:matr; var z:mas);
var i,j,c:integer;
begin
c:=0;
for i:=1 to 4 do begin
for j:=1 to 3 do begin
if (x[i,j]>a) and (x[i,j]<b) then begin
c:=c+1;
z[c]:=x[i,j];
end;
end;
end;
end;

var
y:matr;
z1:mas;
x1,x2,i1,j1:integer;

begin
clrscr;
randomize;
for i1:=1 to 4 do begin
for j1:=1 to 3 do begin
y[i1,j1]:=random(100);
write(y[i1,j1]:3);
end;
writeln;
end;
writeln('Введите x1,x2');readln(x1,x2);
proc(x1,x2,y,z1);
for i1:=1 to 12 do begin
write(z1[i1]:3);
end;
readln;
end.



И еще такой вопрос: как выбранные значения из указанного диапазона поместить в этот же исходный массив ?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Цитата
как выбранные значения из указанного диапазона поместить в этот же исходный массив ?
Это то есть как? Они вообще-то там есть, в исходном массиве (раз были из него выбраны), зачем их опять туда помещать?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


М
Просьба привести название темы в соответствие с Правилами (п.4)



--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 15.05.2024 22:03
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name