Помогите, пожалуйста, написать программу ** языке Паскаль. Если можно, объясните , что за...

0 голосов

Помогите, пожалуйста, написать программу на языке Паскаль. Если можно, объясните , что за переменные там используются
Дана матрица А[8,8] четных чисел натурального ряда (от 2 до 64).
1)Заполнить и записать матрицу.
2)Определит число элементов меньших 18 и больших 60,заменить их на 0,затем записать получившуюся матрицу.
3)Определить произведение главной диагонали и вывести эти элементы на экран.
4)Реализовать определение суммы элементов любого столбца.
Спасибо.


спросил от (22 баллов) в категории Информатика
оставил комментарий от Начинающий (795 баллов)

матрица 8*8=64 а если только четные то 64/2 = 32 чем заполнять остальные ячейки? В задании так и написано?

оставил комментарий от (22 баллов)

да, это полный текст задания, думаю цифры могут повторяться

оставил комментарий от Начинающий (795 баллов)

ок

1 Ответ
0 голосов
ответил от Начинающий (795 баллов)

Var
a:array[1..8,1..8] of integer;{матрица}
i,i1,b,sum,st:integer;{первые 2 переменные для циклов,b - для заполнения матрицы, sum - для нахождения суммы чисел}
begin
  for i:=1 to 8 do begin
    for i1:=1 to 8 do begin
      b:=b+1;
      if b mod 2 = 0 then a[i,i1]:=b else a[i,i1]:=b+1;
      if a[i,i1] > 60 then write(0:3) else if a[i,i1] < 18 then write(0:3) else write(a[i,i1]:3);
     
    end;
    writeln;
  end;
  writeln('Главная диагональ');
  sum:=1;
  for i:=1 to 8 do begin
    sum:=sum*a[i,i];
    writeln(a[i,i]:i*2);
  end;
  writeln('Сумма - ',sum);
  write('Введите номер столбца - ');
  readln(st);
  sum:=0;
  for i:=1 to 8 do sum:=sum+a[i,st];
  writeln('Сумма чисел этого столбца - ',sum);
end.

оставил комментарий от Начинающий (795 баллов)

что именно она неправильно считает сумму или произведение диагонали

оставил комментарий от (22 баллов)

произведение диагонали

оставил комментарий от Начинающий (795 баллов)

я на самом деле не знаю что присходит, проверил поэтапно, все умножает правильно. Кроме последнего. Похоже просто места в переменной не хватает. Вот с проверкой изменил

оставил комментарий от Начинающий (795 баллов)

var
a:array[1..8,1..8] of integer;{матрица}
i,i1,b,st:integer;{первые 2 переменные для циклов,b - для заполнения матрицы, sum - для нахождения суммы чисел}
sum:longint;
begin
for i:=1 to 8 do begin
for i1:=1 to 8 do begin
b:=b+1;
if b mod 2 = 0 then a[i,i1]:=b else a[i,i1]:=b+1;
if a[i,i1] > 60 then write(0:3) else if a[i,i1] < 18 then write(0:3) else write(a[i,i1]:3);

end;
writeln;
end;
writeln('Главная диагональ');
sum:=1;
for i:=1 to 8 do begin

оставил комментарий от Начинающий (795 баллов)

var
a:array[1..8,1..8] of integer;{матрица}
i,i1,b,st:integer;{первые 2 переменные для циклов,b - для заполнения матрицы, sum - для нахождения суммы чисел}
sum:longint;
begin
for i:=1 to 8 do begin
for i1:=1 to 8 do begin
b:=b+1;
if b mod 2 = 0 then a[i,i1]:=b else a[i,i1]:=b+1;
if a[i,i1] > 60 then write(0:3) else if a[i,i1] < 18 then write(0:3) else write(a[i,i1]:3);

end;
writeln;
end;
end.

оставил комментарий от Начинающий (795 баллов)

все не влезает

оставил комментарий от (22 баллов)

а где что исправить? я просто не пойму

оставил комментарий от Начинающий (795 баллов)

нигде, это походу проблемы паскаля, так и скажите, если я не прав и ваш препод найдет ошибку, я буду долго биться головой о стену и задавать вопрос КАК?

оставил комментарий от (22 баллов)

хорошо, все равно спасибо) может прокатит)

оставил комментарий от Начинающий (795 баллов)

обращайтесь, если что

...