С Новым годом! Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 21.01.2015
Сообщений: 79

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

12.06.2015, 12:37. Показов 3018. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
дана квадратная матрица действительных чисел порядка m (m<=10). Преобразовать матрицу так, чтобы на главной диагонали стояли максимальные элементы соответствующего столбца. (сделать с помощью модуля и функции)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.06.2015, 12:37
Ответы с готовыми решениями:

Преобразовать матрицу так, чтобы на главной диагонали стояли максимальные элементы соответствующего столбца
дана квадратная матрица действительных чисел порядка m (m&lt;=10). Преобразовать матрицу так, чтобы на главной диагонали стояли максимальные...

Преобразовать матрицу так, чтобы четные элементы выше диагонали матрицы и сама диагональ стали нулевыми
Дана матрица 10 на 10. Данные введены через randomize в диапазоне от 0 до 100. Преобразовать матрицу так, чтобы четные элементы выше...

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

12
199 / 24 / 12
Регистрация: 07.02.2014
Сообщений: 221
12.06.2015, 18:53
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
35
36
37
38
39
40
41
42
43
44
45
type
  ar=array[1..10,1..10] of integer;
var
  a:ar;
  i,j,m,t,n:integer;
  
function imax(a:ar;j:integer):integer;
var i,max:integer;
begin
  for i:=1 to m do
    if a[i,j]>max then
      begin
        max:=a[i,j];
        result:=i;
      end;
end;
 
begin
writeln('Введи m');
readln(m);
writeln('Исходный массив:');
for i:=1 to m do
  begin
    for j:=1 to m do
      begin
        a[i,j]:=random(10);
        write(a[i,j]:2);
      end;
  writeln;
  end;
writeln('Измененный массив:');
for j:=1 to m do
  begin
    n:=imax(a,j);
    t:=a[j,j];
    a[j,j]:=a[n,j];
    a[n,j]:=t;
  end;
for i:=1 to m do     
  begin
    for j:=1 to m do
      write(a[i,j]:2);
    writeln;
  end;
end.
Написал, а потом заметил, что в условии сказано для действительных чисел. Буду исправлять

Добавлено через 9 минут
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
type
  ar=array[1..10,1..10] of real;
var
  a:ar;
  i,j,m,n:integer;
  t:real;
  
function imax(a:ar;j:integer):integer;
var 
  i:integer;
  max:real;
begin
  for i:=1 to m do
    if a[i,j]>max then
      begin
      max:=a[i,j];
      result:=i;
      end;
end;
 
begin
writeln('Введи m');
readln(m);
writeln('Исходный массив:');
for i:=1 to m do
  begin
    for j:=1 to m do
      begin
        a[i,j]:=random(100)/10;
        write(a[i,j]:5);
      end;
  writeln;
  end;
writeln('Измененный массив:');
for j:=1 to m do
  begin
    n:=imax(a,j);
    t:=a[j,j];
    a[j,j]:=a[n,j];
    a[n,j]:=t;
  end;
for i:=1 to m do     
  begin
    for j:=1 to m do
      write(a[i,j]:5);
    writeln;
  end;
end.
0
0 / 0 / 0
Регистрация: 21.01.2015
Сообщений: 79
13.06.2015, 06:51  [ТС]
а как сделать с помощью модуля?

Добавлено через 1 час 58 минут
нужно сделать так что-бы максимумы в матрице выводились горизонтально
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
13.06.2015, 07:40
Чуть поправил программуDeSex
Модуль
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
unit modul;
interface
type ar=array[1..10,1..10] of real;
function imax(a:ar;m,j:integer):integer;
implementation
function imax(a:ar;m,j:integer):integer;
var i:integer;
begin
result:=1;
for i:=2 to m do
if a[i,j]>a[result,j] then result:=i;
end;
end.
Программа
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
35
uses crt,modul;
var a:ar;
    m,i,j,n:integer;
    t:real;
begin
randomize;
repeat
writeln('Введите размер матрицы от 2 до 10 m=');
readln(m);
until m in [2..10];
writeln('Исходный массив:');
for i:=1 to m do
 begin
  for j:=1 to m do
   begin
    a[i,j]:=10*random;
    write(a[i,j]:5:2);
   end;
  writeln;
 end;
writeln('Измененный массив:');
for j:=1 to m do
 begin
  n:=imax(a,m,j);
  t:=a[j,j];
  a[j,j]:=a[n,j];
  a[n,j]:=t;
 end;
for i:=1 to m do
 begin
  for j:=1 to m do
  write(a[i,j]:5:2);
  writeln;
 end;
end.
Добавлено через 1 минуту
Цитата Сообщение от Marina677 Посмотреть сообщение
нужно сделать так что-бы максимумы в матрице выводились горизонтально
Это как? В задании написано
Цитата Сообщение от Marina677 Посмотреть сообщение
чтобы на главной диагонали стояли максимальные элементы соответствующего столбца.
Это программа и делает, правда только в моем коде.
1
199 / 24 / 12
Регистрация: 07.02.2014
Сообщений: 221
13.06.2015, 08:02
Puporev, спасибо за доработку. Настолько привык работать с целыми числами, что забыл, как получать случайное действительное число!

Цитата Сообщение от Marina677 Посмотреть сообщение
нужно сделать так что-бы максимумы в матрице выводились горизонтально
Не понимаю задания

Добавлено через 11 минут
Цитата Сообщение от Puporev Посмотреть сообщение
правда только в моем коде
Странно, несмотря на неточности, мой код тоже правильно работает в ПаскальАВС.НЕТ!!! Хотя параметр m не передается в функцию, его правильное значение комп откуда-то сам берет!!!
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
13.06.2015, 08:08
Цитата Сообщение от DeSex Посмотреть сообщение
мой код тоже правильно работает в ПаскальАВС.НЕТ!!!
Я запускал в простом АВС, поскольку так раздел называется, так там и максимумы не все правильно расставляет и числа не форматирует, короче вот как
Миниатюры
Преобразовать матрицу, чтобы на главной диагонали стояли максимальные элементы столбца  
0
199 / 24 / 12
Регистрация: 07.02.2014
Сообщений: 221
13.06.2015, 08:11
Сейчас попробовал не передавать значение j. Изменил строки

Pascal
8
function imax(a:ar):integer;
Pascal
37
    n:=imax(a);
и выдается правильный результат! Получается это глобальные переменные и видны всюду? А в ПаскалеАВС тоже так? Ага, уже ответили)

Добавлено через 2 минуты
Цитата Сообщение от Puporev Посмотреть сообщение
Я запускал в простом АВС
Ну да, все правильно, я не в претензии. Просто меня самого это удивило! Не думал, что такая разница между версиями!
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
13.06.2015, 08:13
С глобальными переменными лучше не мудрить без особой необходимости, лучше передавать параметром.

Добавлено через 1 минуту
Цитата Сообщение от DeSex Посмотреть сообщение
Не думал, что такая разница между версиями!
Если все писать по уму, сильной разницы не будет, хотя это конечно практически разные среды.
0
199 / 24 / 12
Регистрация: 07.02.2014
Сообщений: 221
13.06.2015, 08:17
Цитата Сообщение от Puporev Посмотреть сообщение
С глобальными переменными лучше не мудрить без особой необходимости, лучше передавать параметром.
Так меня это и удивляет - получается, что все переменные в ПаскалеАВС.НЕТ по умолчанию глобальные!
Ладно, раз такие различия, а у меня только версия НЕТ, то больше не буду влезать в этот раздел )
0
0 / 0 / 0
Регистрация: 21.01.2015
Сообщений: 79
16.06.2015, 09:53  [ТС]
эта программа не выполняется
0
199 / 24 / 12
Регистрация: 07.02.2014
Сообщений: 221
16.06.2015, 10:04
Цитата Сообщение от Marina677 Посмотреть сообщение
эта программа не выполняется
А какая у тебя версия паскаля?
У меня на PascalABC.NET программа, которую написал Puporev, запускается и работает правильно
0
0 / 0 / 0
Регистрация: 21.01.2015
Сообщений: 79
16.06.2015, 13:14  [ТС]
вроде такой же, только не знаю кто написал
0
22.06.2015, 15:57

Не по теме:

Цитата Сообщение от DeSex Посмотреть сообщение
такая разница между версиями
ABC - учебный паскаль, в нём ампутировано всё, что можно, а что нельзя, на всякий случай гвоздём поковырято. Чего стоит хотя бы то, что ABC - интерпретатор, а не транслятор, то есть, исполняемого файла в принципе не создаёт.

ABC.NET - весьма мощная среда программирования на базе .NET

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.06.2015, 15:57
Помогаю со студенческими работами здесь

Поменять местами максимальные элементы главной и побочной диагонали матрицы
В матрице А(7x7) поменять местами максимальные элементы главной и побочной диогонали. Помогите решить задачу!!!!!!!!!!!!!!!!!!

Сформировать новую матрицу из данной, чтобы неотрицательные элементы каждого столбца располагались в начале столбца
Помогите, пожалуйста, ошибки исправить Дана квадратная матрица порядка n(n=5). Сформировать новую матрицу a из данной матрицы, таким...

Преобразовать матрицу так, чтобы она стала симметричной относительной побочной диагонали
Доброго времени суток. Хотелось бы попросить помощи в решении задачи. Условие: преобразовать двумерный массив так, что бы он был...

Элементы главной диагонали матрицы поставить на место соответствующих элементов первого столбца
В массиве С(1:3, 1:3) элементы главной диагонали поставить на место соответствующих элементов первого столбца и определить сумму угловых...

Разделить элементы главной диагонали на среднее арифметическое положительных элементов заданного столбца
С клавиатуры вводится произвольная квадратная матрица (не более 5х5), после чего делается ее контрольный вывод. Найти среднее...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru