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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2011, 13:03   #1
Mr0max
Пользователь
 
Регистрация: 24.01.2010
Сообщений: 24
Лампочка Двумерный масив (ПРАКТИКА)

Задание. Двумерный масив.
Дана квадратная матрица порядка N. Числа генерировать в диапазоне от 1 до 64 по закону равномерного распределения. Найти наибольшее из значений элементов, расположенных в заштрихованной части матрицы:

нарисован квадрат,поделян пополам. одна часть заштрихована.
сори просто фото не могу выложить.

Error 22: Structure too large
Ошибку пишет,не запускается. В чём проблема?

Код:
uses crt;
type
mas = array[1..200,1..200] of integer;
var
A:mas;
i,j,n,m,max:integer;
begin clrscr;
m:=1;
write('Введите N: '); readln(n);
For i:=1 to n do begin
  for j:=1 to n do begin
   A[i,j]:=m; inc(m);
   write(A[i,j]:4);
   end;
   writeln;
   end;
   max:=a[1,1];
writeln;
for i:=1 to n do
for j:=i to n do
if a[i,j]>max then max:=a[i,j];
      writeln('Максимальный элемент: ',max);
end.
Mr0max вне форума Ответить с цитированием
Старый 17.04.2011, 13:17   #2
VKorablev
Форумчанин
 
Аватар для VKorablev
 
Регистрация: 14.04.2011
Сообщений: 126
По умолчанию

простите, а какую IDE и компилятор вы используете? я ввел ваш код в Pascal.Abc.net, программа запустилась, не знаю правильно ли вы реализовали задачу, но прога компилилась без ошибок
Нам больше не нужно смотреть на мир сквозь замочную скважину 64Кб сегмента (с) ВалИк
VKorablev вне форума Ответить с цитированием
Старый 17.04.2011, 13:29   #3
Mr0max
Пользователь
 
Регистрация: 24.01.2010
Сообщений: 24
По умолчанию

А как его перевести на turbo pascal?
Mr0max вне форума Ответить с цитированием
Старый 17.04.2011, 13:32   #4
Indian
Форумчанин
 
Регистрация: 23.02.2010
Сообщений: 107
По умолчанию

Цитата:
array[1..200,1..200] of integer;
Error 22: Structure too large
Похоже, это DOS. Сегмент данных - 64КБ. Массив на 200*200*2 = 80КБ.
Тут два варианта:
1. Уменьшить массив, чтобы он уместился в 64КБ.
2. Использовать динамическую память.
Indian вне форума Ответить с цитированием
Старый 17.04.2011, 13:33   #5
Mr0max
Пользователь
 
Регистрация: 24.01.2010
Сообщений: 24
По умолчанию

А как использовать динамическую память?
Mr0max вне форума Ответить с цитированием
Старый 17.04.2011, 13:47   #6
Mr0max
Пользователь
 
Регистрация: 24.01.2010
Сообщений: 24
По умолчанию

Уменьшил матрицу 64*64 тогда просто я ввожу N и всё программа выключается. в чём проблема? подскажите пожалуйст
Mr0max вне форума Ответить с цитированием
Старый 17.04.2011, 13:51   #7
VKorablev
Форумчанин
 
Аватар для VKorablev
 
Регистрация: 14.04.2011
Сообщений: 126
По умолчанию

Вот так
Нам больше не нужно смотреть на мир сквозь замочную скважину 64Кб сегмента (с) ВалИк
VKorablev вне форума Ответить с цитированием
Старый 17.04.2011, 14:06   #8
Indian
Форумчанин
 
Регистрация: 23.02.2010
Сообщений: 107
По умолчанию

Цитата:
ввожу N и всё программа выключается
Чтобы посмотреть вывод - Alt-F5.

Последний раз редактировалось Indian; 17.04.2011 в 14:11.
Indian вне форума Ответить с цитированием
Старый 17.04.2011, 14:10   #9
VKorablev
Форумчанин
 
Аватар для VKorablev
 
Регистрация: 14.04.2011
Сообщений: 126
По умолчанию

или предпоследней строчкой в программе написать
Код:
readkey;
и запускать по Ctrl+F9 и прога будет жать любую нажатую клавишу
Нам больше не нужно смотреть на мир сквозь замочную скважину 64Кб сегмента (с) ВалИк
VKorablev вне форума Ответить с цитированием
Старый 17.04.2011, 14:11   #10
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

Код:
uses crt;
type
mas = ^array[1..200,1..200] of integer;
var
A:mas;
i,j,n,m,max:integer;
begin clrscr;
m:=1;
write('Введите N: '); readln(n);
new(A);
For i:=1 to n do begin
  for j:=1 to n do begin
   A^[i,j]:=m; inc(m);
   write(A^[i,j]:4);
   end;
   writeln;
   end;
   max:=a^[1,1];
writeln;
for i:=1 to n do
for j:=i to n do
if a^[i,j]>max then max:=a^[i,j];
      writeln('Максимальный элемент: ',max);
dispose(a);
end.
a.k.a. Angelicos Phosphoros
Мой сайт

Последний раз редактировалось New man; 17.04.2011 в 14:27.
New man вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный масив (ПРАКТИКА) Mr0max Паскаль, Turbo Pascal, PascalABC.NET 3 17.04.2011 16:46
Одномерный масив (ПРАКТИКА) Mr0max Помощь студентам 9 16.04.2011 23:57
Двумерный масив Katmai Общие вопросы Delphi 2 27.07.2010 20:46
Assembler. Двумерный масив 3 на 3! Doc1k Помощь студентам 0 15.06.2010 00:07
Двумерный масив 3 на 3!! Doc1k Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 15.06.2010 00:06