![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
flashg |
![]()
Сообщение
#1
|
Гость ![]() |
Вот дано
Дан двумерный массив (матрица) А размерностью 180 на 180 элементов типа integer с произвольными значениями. Сформировать из него массив В(180,180), путем замены каждого пятого элемента матрицы суммой четырех предыдущих элементов. Вывести на экран 2 фрагмента размером 10 на 10 исходной и полученной матриц, а также элементы А(5,5) и В(5,5). а вот прога которая не запускается - в чём дело где ошибка :molitva: Прикрепленные файлы ![]() |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Она у тебя не только не запускается, но даже не компилируется... Все дело в том, что вот это:
type a=array[1..180,1..180] of integer;- описание типа, а что ты с ним делаешь? a[b1,i]:=random;, то есть работаешь как с описанием переменной... Чтобы программа прошла компиляцию, делай так: type Кстати, в строке a[b1,i]:=random;у тебя будет несовместимость типов: значение типа Real не может быть помещено в переменную типа Integer, так что сразу делай вот так: a[b1,i]:=random(100); |
Guest |
![]()
Сообщение
#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
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Ошибка 96 - слишком много переменных, общий размер глобальных переменных не может превышать 64k (BP)
ЗЫ FPC компилирует нормально. -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
flashg |
![]()
Сообщение
#5
|
Гость ![]() |
FPC компилирует нормально.
что это - опция в паскале которую надо включить ? |
Malice |
![]()
Сообщение
#6
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата(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)); |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 9:27 |