![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Анька |
![]()
Сообщение
#1
|
Гость ![]() |
Помогите, :p2: пожалуйста, решить 3 задачки, я уже целый день над ними сижу, но ничего не получается!!!
1. Матрица, симметричная относительно главной диагонали, задана верхним треугольником в виде одномерного массива по строкам. Восстановить исходную квадратную матрицу и напечатать по строкам. 2. Заданную квадратную матрицу преобразовать, используя умножение строки на число и сложение строк, таким образом, чтобы все элементы первого столбца обратились в нуль, кроме элемента, расположенного на главной диагонали. 3. Дана вещественная матрица размером N х N, все элементы которой различны. Найти скалярное произведение строки, в которой находится наибольший элемент матрицы, на столбец с наименьшим элементом. |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
3.
Код const n = 4; maxElem = 50; var st: set of 1 .. maxElem; var a: array[1 .. n, 1 .. n] of integer; max, min, min_col, max_row: integer; i, j, k, p: integer; begin (* randomize; st := []; *) for i := 1 to n do for j := 1 to n do begin write('a[', i:2, ',', j:2, '] = '); readln(a[i, j]); (* repeat k := random(maxElem) + 1; until not (k in st); a[i, j] := k; st := st + [k] *) end; max := -maxInt; min := maxInt; for i := 1 to n do for j := 1 to n do begin if a[i, j] < min then begin min := a[i, j]; min_col := j end; if a[i, j] > max then begin max := a[i, j]; max_row := i end; end; p := 0; for i := 1 to n do p := p + a[max_row, i]*a[i, min_col]; writeln( 'p = ', p ) end. Приведенная выше программа запрашивает ввод матрицы у пользователя. Если нужно сгенерировать такую матрицу размером N х N, все элементы которой различны, можно просто убрать все символы (* *) и строки: Код write('a[', i:2, ',', j:2, '] = '); readln(a[i, j]); |
![]() ![]() |
![]() |
Текстовая версия | 19.06.2025 8:45 |