Дана действительная квадратная матрица порядка n

Дана действительная квадратная матрица порядка n

Создание программ на языках Pascal, Delphi и Lazarus.

[администратор рассылки: Зенченко Константин Николаевич (Старший модератор)]

Лучшие эксперты в этом разделе

Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 112
Асмик Гаряка
Статус: Советник
Рейтинг: 82
Лысков Игорь Витальевич
Статус: Старший модератор
Рейтинг:
Перейти к консультации №:

Дана действительная квадратная матрица порядка 2n.
Получить новую матрицу, переставляя ее блоки размера n×n в соответствии с рисунком:

Состояние: Консультация закрыта

Здравствуйте, Иванов Виктор Олегович!
Решение с пояснениями в приложении.

Консультировал: puporev (Профессор)
Дата отправки: 23.12.2008, 09:29

0

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

var i,j,n:integer;
c:array[1..100,1..100] of integer;

begin
readln(n);
For i:=1 to n do
for j:=1 to n do
c[i,j]:=random(99)+1;
for i:=1 to n do
begin

for j:=1 to n do
write(c[i,j]:5);
writeln;
end;
if (i>=j) and ((i+j) =n+1) then
begin
if max writeln(max);
end;

Не могу понять почему максимум становится всегда последний элемент матрицы хотя в матрице ( в выделеной области) есть значения больше . Помогите найти ошибку или если ошибок оченьь много напишите готовый код к заданию. Заранее спасибо

  • Попроси больше объяснений
  • Следить
  • Отметить нарушение

Alsaher1503 15.12.2015

var i,j,n:integer;
c:array[1..100,1..100] of integer;

begin
readln(n);
for i:=1 to n do
begin
for j:=1 to n do
begin
c[i,j]:=random(99)+1;
write(c[i,j]:5);
if (i>=j) and ((i+j) =n+1) then
if (max

Ответ

По поводу вашей программы:

1. Строка if max writeln(max); написана с нарушениями синтаксиса, приведённый вами код не будет компилироваться. Исходя из этого, я не особенно вчитывался и в предшествующие ей проверки, т.к. не совсем понятно, что именно вы хотели сделать в конце.

2. Все проверки максимума (я про if (i>=j) and.. и т.д.) вы делали после выхода из цикла. Могу предположить, что из-за этого у вас и возникали проблемы с нахождением максимума, ведь после прохождения цикла i и j хранят последнюю строку и последний столбец.

Предлагаю внести следующие изменения:

1. Индексацию массивов начинаем с нуля, тогда введённое n уменьшаем на единицу перед началом работы.

Читайте также:  Мфу с пзк для дома рейтинг

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

3. Максимум ищем по следующим условиям: если
(слева) индекс столбца меньше или равен индексу строки, но не меньше, чем n/2, округлённое в большую сторону
(справа) индекс столбца больше или равен индексу строки , но не превышает n/2, округлённое в большую сторону
(и для обоих сторон) если элемент на пересечении индексов больше максимума.

Прилагается исходник и скрин нескольких результатов работы. "правую" и "левую" часть из своего объяснения обвёл разными цветами. Эти части соответствуют "заштрихованной" области из вашего задания.

1. Дана действительная квадратная матрица порядка n.

а) Найти сумму элементов первого столбца.

б) Найти сумму элементов главной и побочной диагоналей.

2. Даны действительные числа s, t, и действительный массив a[12]. Получить:

p(1)-p(t)+(p(s-t)) 2 -(p(1)) 3 , где

p(x)=a[12]*x 12 +a[11]*x 11 +. + a[0].

3. Даны целое n, действительные массивы а[n], b[m]. В массиве а и в массиве b все элементы, следующие за элементом с наибольшим значением, заменить на 0.5.

4. Даны массивы целых чисел а[n], b[m], и целое k. Если в массиве а нет ни одного элемента со значением k, то первый по порядку элемент этого массива, не меньший всех остальных элементов, заменить на значение k. По такому же правилу преобразовать массив b применительно к значению 10.

5. Даны действительные числа s, t. Получить:

6. Даны действительные числа s, t. Получить:

7. Даны действительные числа x, y, z. Получить:

8. Даны действительные числа a, b. Получить:

u=min(a,b), v=min(a*b,a+b), min(u+v 2 ,(u+v)+3.14).

9. Даны действительные числа n, m, целые массивы а[n], b[m], c[30]. Получить:

min(b(0). b(m))+min(c(0). c(30))

T = при abs(min(a(0). a(n))) > 10,

1+(max(c(0). c(30))) в противном случае.

10. Даны натуральные числа k, l, m, действительные массивы х[k], y[l], z[m]. Получить:

(max(y(0) . y(l))+max(z(0). z(m)))/2

t= при max(x(0). x(k)) >=0,

(max(x(0). x(k))) 2 в противном случае.

11. Дано натуральное число n. Среди чисел 1,2. n найти все те, которые можно представить в виде суммы квадратов двух натуральных чисел. (Определить метод, позволяющий распознать полные квадраты).

Читайте также:  Операции с символами в с

12. Даны действительные числа x(0), y(0), x(1), y(1). x(10), y(10). Найти периметр многоугольника, вершины которого имеют соответственно координаты (x(0), y(0)), (x(1), y(1)). (x(10), y(10)). (Определить метод вычисления расстояния между двумя точками, заданными своими координатами.)

13. Даны натуральное число n, действительные числа x(0), y(0), x(1), y(1). x(n), y(n). Найти площадь многоугольника, вершины которого при некотором последовательном обходе имеют координаты (x(0), y(0)), (x(1), y(1)). (x(n), y(n)). (Определить метод вычисления площади треугольника по координатам его вершин.)

14. Дано натуральное число n. Выяснить, имеются ли среди чисел:

n, n+1, . 2*n — близнецы, т.е. простые числа, разность между которыми равна двум. (Определить метод, позволяющий распознавать простые числа.)

15. Определить полусумму длин двух векторов А[3], В[5]. Длина вектора определяется как корень квадратный из суммы квадратов его проекций. (Использовать метод определения длины вектора).

16. Найти среднее геометрическое положительных элементов каждого столбца матрицы А[10,15].

17. Даны две матрицы А[5,5] и В[6,6]. Определить полусумму следов матриц.

18. Определить метод нахождения корней нелинейных уравнений вида f(x)=0 методом половинного деления, a*x 4 +b*x 2 +c*x+d=0, где a,b,c — массивы из трех чисел, d-const.

19. Определить метод вычисления чисел Мaрсена из интервала (1, n), n— задано. (Простое число называется числом Мaрсена, если оно может быть представлено в виде 2 p -1, где р— тоже простое число.)

20. Заданы вещественные массивы А[10], В[8]. Определить метод, заменяющий в заданном массиве все отрицательные элементы на нули.

21. Даны действительные числа s,t. Получить:

22. Даны действительные числа s,t. Получить:

23. Дано действительное число y. Получить:

24. Даны действительные числа a, b, c. Определить метод, вычисляющий

25. Даны действительные числа a, b. Получить:

u=min(a,b), v=min(a*b,a+b)*min(u+a 2 , 3.14).

26. Даны две квадратные матрицы порядка 5. Найти последовательность из нулей и единиц b такую, что b[i]=1, когда все элементы i-й строки первой матрицы содержатся в i-й строке второй матрицы.

27. Дана действительная квадратная матрица порядка n. Найти наибольшее из значений элементов первой и последней строк.

28. Даны действительные числа s,t. Получить:

29. Дан действительный массив a[6]. Получить для x=1,3,4 значения p(x+1)-p(x), где

p(y)=a[6]*y 6 + a[5]*y 5 + . + a[0].

30. Даны действительные числа s, t и действительный массив a[8]. Получить:

Читайте также:  Войти на личную страницу сбербанка

p(x)=a[8]*x 8 + a[7]*x 7 + . + a[0].

31. Даны действительные массивы a[n], b[m]. В массиве a и в массиве b все элементы, следующие за элементом с наибольшим значением (за первым по порядку, если их несколько), заменить на 0.5.

32. Даны целые массивы a[n], b[m] и целое k. Если в массиве a нет ни одного элемента со значением k, то первый по порядку элемент этой последовательности, не меньший всех остальных элементов, заменить на значение k. По такому же правилу преобразовать массив b применительно к значению 11.

33. Даны целые числа a, b и массивы целых чисел n[7], d[7].

Вычислить по схеме Горнера

n[7] * a 7 + n[6] * a 6 + . + n[0]

d[7] * b 7 + d[6] * b 6 + . + d[0]

определив метод полного сокращения рационального числа, заданного числителем и знаменателем, а также методы сложения и умножения рациональных чисел.

Схема Горнера (для n=3):

a[3]*x 3 + a[2]*x 2 + a[1]*x + a[0] = (a[3]*x 2 + a[2]*x + a[1])*x + a[0] =

34. Даны натуральное число n, действительные числа x, y и массивы действительных чисел a[n], b[n]. Вычислить по схеме Горнера (см. задание 33) значение многочлена с комплексными коэффициентами:

(Определить методы выполнения арифметических операций над комплексными числами).

35. Даны натуральное число n, массив целых чисел a[n]. Рассмотреть отрезки последовательности a[n] (подпоследовательности идущих подряд членов), состоящие из:

а) полных квадратов;

б) степеней пятерки.

В каждом случае получить наибольшую из длин рассматриваемых отрезков. (Определить методы, позволяющие распознавать полные квадраты, степени пятерки, простые числа).

36. Даны натуральное число n, массив целых чисел a[n]. Рассмотреть отрезки последовательности a[n] (подпоследовательности идущих подряд членов), состоящие из простых чисел. Получить наибольшую из длин рассматриваемых отрезков. (Определить метод, позволяющий распознавать простые числа).

37. Даны натуральное число n, массив целых чисел a[n]. Рассмотреть все отрезки последовательности a[n] (см. задачу 35), состоящие из совершенных чисел. (Определить метод, позволяющий распознавать совершенные числа).

38. Дана действительная квадратная матрица порядка n. Найти наименьшее из значений элементов побочной диагонали и двух соседних с ней линий.

39. Дана действительная квадратная матрица порядка n. Для данного натурального m (m 2 ,3.56)+f(2.4,t,abs(s-t)),

50. Даны действительные числа s,t. Получить g(7,s-t)+g(7,s+t)-g(s-1,s*t),

51. Даны действительные числа a, b, c. Получить функцию, вычисляющую:

Математическая функция sign(x) даёт (-1) при x 0.

52. Дано действительное число y.

Ссылка на основную публикацию
Где отображается список доступных команд
Сейчас на рабочем столе доступно всего три объекта. А если мы хотим больше? Нужно для всех них создавать формы и...
Выбрать часть строки 1с
Описание: Значения данного типа содержат строку в формате Unicode произвольной длины. Обратите внимание. Для строки в 1С НЕ доступен обход...
Выбор лазерного принтера с дешевыми расходниками
Среднестатистический пользователь не может углубляться в тонкости выбора конкретного устройства в разрезе удачности его конструкционного решения и других факторов. Однако...
Где отремонтировать внешний жесткий диск
Замена частей внешнего жесткого диска ничем не отличается от восстановления обычного жесткого диска. Смысл в том, что внутри пластиковых боксов...
Adblock detector