goldservicepro
?>

Что не так с этой программой? паскаль пишет "ошибка времени выполнения: индекс находился вне границ массива." и "параметр цикла for в pascalabc.net должен описываться в заголовке цикла" program massiv; var m: array [1..4, 1..4] of integer; a, b, min, max: integer; begin writeln('исходная матрица: '); for a : = 1 to 4 do begin for b : = 1 to 4 do begin m[a, b] : = random(10); write(m[a, b]: 4) end; writeln end; min : = 10; max : = 0; for a : = 1 to 4 do if m[a, 4+1-a] < m[min, min] then min : = m[a, 4+1-a] else if m[a, 4+1-a] > m[max, max] then max : = m[a, 4+1-a]; writeln('мин. эл-т побоч. диаг. матрицы: m[', min: 2, ', ', min: 2, '] = ', m[min, min]: 3); writeln('макс. эл-т побоч. диаг. матрицы: m[', max: 2, ', ', max: 2, '] = ', m[max, max]: 3); a : = m[min, min]; m[min, min] : = m[max, max]; m[max, max] : = a; writeln('результат: '); for a : = 1 to 4 do begin for b : = 1 to 4 do write(m[a, b]: 4); writeln end; readln end.

Информатика

Ответы

linda3930

if M[a, 4+1-a] < M[min, min]

 then min := M[a, 4+1-a]

- у тебя в матрице рандомные числа максимум до 10, ты назначаешь их в min и max, а потом эти min и max пытаешься использовать как индексы.

Заведи отдельные переменные для сохранения индексов, например imin и imax и пользуйся ими, например как-то так:

for a := 1 to 4 do

if M[a, 4+1-a] < M[imin, imin]

 then begin

                      min := M[a, 4+1-a];

                      imin := a;

                end


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

"Описание параметра цикла for в заголовке цикла соблюдает принцип локальности: переменная описывается в том месте, где она впервые понадобилась


begin

 for i: integer := 1 to 9 do

   write(i,' ');

 // Здесь переменная i не доступна!

 for var i := 9 downto 1 do // описание с автоопределением типа

   write(i,' ');

end."

ooofishai4064
Вирусная программа-червь (Worm-virus) - паразитическая программа, обладающая механизмом саморазмножения. Программа размножать свои копии, но не поражать другие компьютерные программы. Проникает на компьютер из сети (чаще всего как вложение в сообщениях электронной почты или через сеть Интернет) и рассылает свои функциональные копии на другие компьютерные сети.

Скрипт-вирусы (Script virus) - вирусы, написанные на языках Visual Basic, Basic Script, Java Script. На компьютер пользователя такие вирусы, чаще всего, проникают в виде почтовых сообщений, содержащих во вложениях файлы-сценарии. Программы на языках Visual Basic и Java Script могут располагаться как в отдельных файлах, так и встраиваться в HTML-документ и в таком случае интерпретироваться браузером, причем не только с удаленного сервера, но и с локального диска.
Татьяна902
№1Архитектор может строить,чертить и создавать чертежи своих будущих зданий. Врач записывает информацию о больном, расписание,прием и тдУчитель ведет электронный журнал и готовит презентации к уроку. Бизнесмен рассматривает выгодные контракты,сделки,смотрит новые предприятия для покупки.Бухгалтер составляет отчеты,определят с эл. таблиц зарплату и тд.Композитор пишет песни,слушает песни.Секретарь пишет раб. график работников и тд.
Писатель пишет новые книги,статьи,эл. книги и тд.Художник рассматривает места для рисования,рисует. Модельер смотрит и выбирает новые стили и наряды одежды.№2В том что программист составляет и пишет программы а пользователь их использует

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Что не так с этой программой? паскаль пишет "ошибка времени выполнения: индекс находился вне границ массива." и "параметр цикла for в pascalabc.net должен описываться в заголовке цикла" program massiv; var m: array [1..4, 1..4] of integer; a, b, min, max: integer; begin writeln('исходная матрица: '); for a : = 1 to 4 do begin for b : = 1 to 4 do begin m[a, b] : = random(10); write(m[a, b]: 4) end; writeln end; min : = 10; max : = 0; for a : = 1 to 4 do if m[a, 4+1-a] < m[min, min] then min : = m[a, 4+1-a] else if m[a, 4+1-a] > m[max, max] then max : = m[a, 4+1-a]; writeln('мин. эл-т побоч. диаг. матрицы: m[', min: 2, ', ', min: 2, '] = ', m[min, min]: 3); writeln('макс. эл-т побоч. диаг. матрицы: m[', max: 2, ', ', max: 2, '] = ', m[max, max]: 3); a : = m[min, min]; m[min, min] : = m[max, max]; m[max, max] : = a; writeln('результат: '); for a : = 1 to 4 do begin for b : = 1 to 4 do write(m[a, b]: 4); writeln end; readln end.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

lsyrbu
myatadinamo
uvarovig
Ter-Pogosov_Vasilevna
keykov35
NikolayGoncharov
Iselickaya1890
e-s-i-k
Versalmoda
pavelvsk2023
Shcherbinin KOLIChEVA
Vyacheslavovna
randat887040
ooozita5
oniks-plus