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

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

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

 
 Ответить  Открыть новую тему 
> массивы и строки открытого типа, прогу написал только в одной строчке не пойму что требуется
chad1s
сообщение 21.12.2010 17:40
Сообщение #1


Новичок
*

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

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


задание: Использовать директиву absolute, отсортировать по убыванию с помощью одной подпрограммы векторы из 10 и 14 вещественных компонент.

текст программы:
Program Lab13;
const
x:array[1..10] of real=(1,2,3,4,5,6,7,8,9,10);
y:array[1..14] of real=(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
procedure sort(var z,n:byte);
var
w:array[1..maxint div size of real]of real absolutez;
i:byte;
k:byte;
t:real;
begin
writeln;
for i:=1 to n do
begin
for k:=i+1 to n do
begin
t:=w[i];
w[i]:=w[k];
w[k]:=t;
end;
end;
end;
procedure vivod(var z,n:byte);
w:array[1..maxint div size of real] of real absolutez;
i:byte;
begin
for i:=1 to n do
write('',w[i]:4);
writeln;
end;
begin
writeln('Сортировка');
sort(x,10);
sort(y,14);
writeln('Вывод:');
vivod(x,10);
vivod(y,14);
end.



ошибка вот в чем, в лекциях на подобном примере написана такая строка
w:array[1..maxint div size of real]of real absolutez;

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


Гость






w:array[1..maxint div sizeof(real)] of real absolute z;
(у тебя в одном месте - лишние пробелы, в другом пробела не хватает)

Ну, и ко всему:
procedure vivod(var z; n:byte); { После Z - точка с запятой, а не запятая }
, иначе получишь ошибку в другом месте, при попытке передать массив, когда процедура ждет byte.

Кстати, причем тут массивы открытого типа? Их тут нет. У тебя вообще бестиповые параметры.
 К началу страницы 
+ Ответить 
chad1s
сообщение 21.12.2010 19:01
Сообщение #3


Новичок
*

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

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


спасибо

ну это просто общая тема на несколько лаб, в моей нету просто)

Добавлено через 9 мин.
блин все ровно ошибку выдает

перед
sizeof
выдает что ожидался идентификатор
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 21.12.2010 19:43
Сообщение #4


Гость






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

Мне что, еще несколько компиляторов проверить, в надежде, что где-то не сработает?
 К началу страницы 
+ Ответить 
chad1s
сообщение 21.12.2010 20:24
Сообщение #5


Новичок
*

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

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


Цитата(volvo @ 21.12.2010 19:43) *

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

Мне что, еще несколько компиляторов проверить, в надежде, что где-то не сработает?

Да все я разобрался, мой косяк спасибо за помощь)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



- Текстовая версия 25.06.2025 15:42
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"