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

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

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

> ан двумерный массив (матрица) А размерностью..., не запускается программка - где ошибка
flashg
сообщение 3.08.2005 22:25
Сообщение #1


Гость






Вот дано
Дан двумерный массив (матрица) А размерностью 180 на 180 элементов типа integer с произвольными значениями. Сформировать из него массив В(180,180), путем замены каждого пятого элемента матрицы суммой четырех предыдущих элементов. Вывести на экран 2 фрагмента размером 10 на 10 исходной и полученной матриц, а также элементы А(5,5) и В(5,5).

а вот прога которая не запускается - в чём дело где ошибка :molitva:


Прикрепленные файлы
Прикрепленный файл  R15.PAS ( 1.12 килобайт ) Кол-во скачиваний: 174
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 5)
volvo
сообщение 3.08.2005 22:35
Сообщение #2


Гость






Она у тебя не только не запускается, но даже не компилируется... Все дело в том, что вот это:
type a=array[1..180,1..180] of integer;
- описание типа, а что ты с ним делаешь?
a[b1,i]:=random;
, то есть работаешь как с описанием переменной...
Чтобы программа прошла компиляцию, делай так:

type
{ это - описание типов }
type_a=array[1..180,1..180] of integer;
type_b=array[1..180,1..180] of integer;
var
i,b1,p:byte;
z:integer;
a: type_a; { а вот это - описание переменных }
b: type_b;

Кстати, в строке
a[b1,i]:=random;
у тебя будет несовместимость типов: значение типа Real не может быть помещено в переменную типа Integer, так что сразу делай вот так:
a[b1,i]:=random(100);
 К началу страницы 
+ Ответить 
Guest
сообщение 4.08.2005 7:29
Сообщение #3


Гость






всё равно выдаёт ошибку но уже другую
==============
Код
uses crt;
type
 { это - описание типов }
 type_a=array[1..180,1..180] of integer;
 type_b=array[1..180,1..180] of integer;
var
 i,b1,p:byte;
 z:integer;
 a: type_a; { а вот это - описание переменных }
 b: type_b;  { <--- ERROR 96 }

begin
randomize;
for i:=1 to 180 do
 for b1:=1 to 180 do
  begin
   a[b1,i]:=random({maxint}100);
   b[b1,i]:=0;
  end;

b1:=0;
repeat
 inc(b1);
 z:=1;
 for i:=1 to 180 do
  if (i mod 5 <> 0) then b[b1,i]:=a[b1,i]
  else
   begin
    for p:=z to z+3 do
     b[b1,i]:=b[b1,i]+a[b1,p];
    z:=z+5;
   end;
until b1=180;

writeln('A[5,5] = ',a[5,5],'        B[5,5]=',b[5,5]);
writeln;
writeln('A:                      B:');
for i:=10 to 19 do
 begin
  for b1:=21 to 30 do
   write(a[i,b1],' ');
  write('                 ');
  for b1:=21 to 30 do
   write(b[i,b1],' ');
  writeln;
 end;
end.


Тегами CОDE пользуйся !!!

Сообщение отредактировано: volvo - 4.08.2005 13:31
 К началу страницы 
+ Ответить 
klem4
сообщение 4.08.2005 8:58
Сообщение #4


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Ошибка 96 - слишком много переменных, общий размер глобальных переменных не может превышать 64k (BP)

ЗЫ FPC компилирует нормально.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
flashg
сообщение 4.08.2005 10:20
Сообщение #5


Гость






FPC компилирует нормально.

что это - опция в паскале которую надо включить ?
 К началу страницы 
+ Ответить 
Malice
сообщение 4.08.2005 11:35
Сообщение #6


Профи
****

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

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


Цитата(flashg @ 4.08.05 10:20)
FPC компилирует нормально.
что это - опция в паскале которую надо включить ?

FPC - это другой паскаль, не 7.0
В твоем случае сразу 2 таких массива разместить нельзя, слишком большие. По-этому надо так:
Код
type
type_a=array[1..180,1..180] of integer;
ptype_a=^type_a;
var a,b:ptype_a;

потом:
Код
GetMem(a,Sizeof(type_a));GetMem(b,Sizeof(type_a));

вместо a[i,j] используешь a^[i,j],
в конце:
Код
FreeMem(a,Sizeof(type_a));FreeMem(b,Sizeof(type_a));
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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