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

0 голосов
19 просмотров

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


Информатика (22 баллов) | 19 просмотров
0

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

0

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

0

ок

Дан 1 ответ
0 голосов

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 баллов)
0

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

0

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

0

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

0

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

0

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.

0

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

0

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

0

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

0

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

0

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