0 / 0 / 0
Регистрация: 27.01.2017
Сообщений: 20
1

На главной диагонали матрицы разместить суммы элементов, которые лежат на той же строке и том же столбце

27.01.2017, 22:44. Показов 1579. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
(Тема перемещена из раздела "Pascal")

Заполнить матрицу случайными числами.На главной диагонали разместить суммы элементов,которые лежат на той же строке и том же столбце.Заранее спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.01.2017, 22:44
Ответы с готовыми решениями:

На главной диагонали матрицы разместить суммы элементов, которые лежат на той же строке и том же столбце
Доброго времени суток, уважаемые программеры. При написании лабы по паскалю столкнулся с...

На главной диагонали матрицы разместить суммы элементов, которые лежат на той же строке и том же столбце
Заполнить матрицу случайными числами. На главной диагонали разместить суммы элементов, которые...

заполнить маирцу случайными числами.На главной диагонали разместить суммы элементов которые лежат на той же строке и том же столбце...
..

Заполнить матрицу случайными числами. На главной диагонали разместить суммы элементов, которые лежат на той же строке и том же столбце
Заполнить матрицу случайными числами. На главной диагонали разместить суммы элементов, которые...

8
Почетный модератор
64303 / 47598 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
28.01.2017, 10:00 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
uses crt;
var a:array[1..10,1..10] of integer;
    n,i,j,s:integer;
begin
repeat
write('Размер матрицы лт 2 до 10 n=');
readln(n);
until n in [2..10];
randomize;
writeln('Исходная матрица');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=random(20);
    write(a[i,j]:4);
   end;
  writeln;
 end;
for i:=1 to n do
 begin
  s:=0;
  for j:=1 to n do
  s:=s+a[i,j]+a[j,i];
  a[i,i]:=s-a[i,i];
 end;
writeln('Суммы на главную дагональ');
for i:=1 to n do
 begin
  for j:=1 to n do
  write(a[i,j]:4);
  writeln;
 end;
end.
1
0 / 0 / 0
Регистрация: 27.01.2017
Сообщений: 20
28.01.2017, 10:18  [ТС] 3
Забыл укачать что это Lazarus.Извините
0
Модератор
9919 / 5275 / 3321
Регистрация: 17.08.2012
Сообщений: 16,135
28.01.2017, 10:25 4
Krittx, внимательнее подходите к выбору раздела при создании темы.

Программа вполне подойдёт для Lazarus. Возможно Вы забыли указать, что Вам требуется оконное приложение?
1
Почетный модератор
64303 / 47598 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
28.01.2017, 10:27 5
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
Возможно Вы забыли указать, что Вам требуется оконное приложение.
Да просто у автора в голове по нолям и ничего кроме халявы ему и нафиг не нужно.
1
Модератор
9919 / 5275 / 3321
Регистрация: 17.08.2012
Сообщений: 16,135
28.01.2017, 10:33 6
Согласен. Если бы нужны были знания, а не халява, то ТС сюда бы и не писал, а давным-давно эту элементарнейшую задачку решил бы сам.
1
0 / 0 / 0
Регистрация: 27.01.2017
Сообщений: 20
28.01.2017, 10:49  [ТС] 7
Я и не отрицаю что,не могу написать данную программу.Именно поэтому и обратился к вам.Всё равно спасибо,вы несказанно помогли
0
Модератор
9919 / 5275 / 3321
Регистрация: 17.08.2012
Сообщений: 16,135
28.01.2017, 12:05 8
Лучший ответ Сообщение было отмечено Krittx как решение

Решение

Расположите на форме две кнопки (TButton со вкладки Standard) и таблицу (TStringGrid со вкладки Additional).

Щёлкните мышью на свободном месте Form1. В инспекторе объектов найдите (для Form1, естественно) событие OnActivate, дважды щёлкните на пустое поле рядом с надписью OnActivate. В редакторе исходного кода появится заготовка процедуры TForm1.FormActivate. Приведите её в вид, мною написанный.

Для каждой кнопки:

Дважды щёлкните на кнопку в дизайнере форм. В редакторе исходного кода появится заготовка процедуры TForm1.Button1Click (или TForm1.Button2Click соответственно). Каждую заготовку процедуры приведите в вид, написанный мною.

Процедуры:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
procedure TForm1.FormActivate(Sender: TObject);
const n = 8;
begin
  StringGrid1.FixedCols := 0; {нет закрашенных строк и столбцов}
  StringGrid1.FixedRows := 0;
  StringGrid1.ColCount := n; {размер StringGrid1 равен n*n}
  StringGrid1.RowCount := n;
  randomize {Инициализируем генератор псевдослучайных чисел}
end;
 
procedure TForm1.Button1Click(Sender: TObject); {заполнение StringGrid1}
var i, j: integer;
begin
  for i := 0 to StringGrid1.RowCount - 1 do
    for j := 0 to StringGrid1.ColCount - 1 do
      StringGrid1.Cells[i, j] := IntToStr(random(199) - 99)
end;
 
procedure TForm1.Button2Click(Sender: TObject); {суммирование элементов строк и столбцов}
var i, j: integer;
    t: int64;
begin
  for i := 0 to StringGrid1.RowCount - 1 do
    begin
      t := 0;
      for j := 0 to StringGrid1.ColCount - 1 do
        t := t + StrToInt(StringGrid1.Cells[i, j]) + StrToInt(StringGrid1.Cells[j, i]);
      StringGrid1.Cells[i, i] := IntToStr(t)
    end
end;
Ну и, смените Caption у кнопок, название Form1, добавьте Label для красоты... Короче, с мелким дизайном формы уж как-нибудь сами...

Добавлено через 12 минут
Да, пояснение... Можно, конечно, было бы и не использовать процедуру TForm1.FormActivate, и выставить нужные свойства для StringGrid1 в инспекторе объектов, но останется проблема с инициализацией генератора псевдослучайных чисел (процедура randomize). Её нужно вызвать только один раз за время всей работы программы, главное, до вызова функции random, и в процедуре события TForm1.FormActivate этому randomize как раз самое место.
2
0 / 0 / 0
Регистрация: 27.01.2017
Сообщений: 20
28.01.2017, 12:37  [ТС] 9
Спасибо огромное,и извините за изначальное непонимание!
0
28.01.2017, 12:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.01.2017, 12:37
Помогаю со студенческими работами здесь

На побочной диагонали матрицы разместить суммы элементов, которые лежат той же строке и столбце
Заполнить матрицу случайными числами. На побочной диагонали разместить суммы элементов, которые...

На побочной диагонали матрицы разместить суммы элементов, которые лежат на той же строке и столбце
2)Заполнить матрицу случайными числами. На побочной диагонали разместить суммы элементов, которые...

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

На побочной диагонали разместить суммы элементов, которые лежат на той же строке и столбце.
Помогите пожалуйста решить!СПАСИБО! На побочной диагонали разместить суммы элементов, которые...

Заполнить матрицу случайными числами.На побочной диогонали разместить суммы элементов,которые лежат на той же строке и столбце
Заполнить матрицу случайными числами.На побочной диогонали разместить суммы элементов,которые лежат...

Заполнить матрицу случайными числами. На побочной диагонали разместить суммы элементов, которые лежат на той же строке и
Заполнить матрицу случайными числами. На побочной диагонали разместить суммы элементов, которые...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru