Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 27.01.2017
Сообщений: 29

Работа с матрицей

15.06.2020, 12:58. Показов 1586. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят, помогите программу написать на паскали.

Требования, предъявляемые к курсовой работе:
в теле программы необходимо обеспечить ввод исходных данных, вызов
процедуры и вывод результатов на терминал;
процедура реализует формирование и обработку массива или матрицы;
функция определяет закон получения чисел, являющихся элементами массива или
матрицы;
кроме вывода на терминал, результаты программы сохранить в виде текстового
файла;

В квадратной матрице размерностью NxN (где N целое число, находящееся в
промежутке [5, 15]) необходимо:
1. Ввести размерность массива через клавиатуру с контролем вводимых значений.
2. Сформировать массив [Аi,i], заполнив его по заданному закону f(x) = y (см.
формулу). Переменная х изменяется в интервале [xн , xк] c шагом dx.
3. Поменять местами указанные области в массиве (см. рисунок) и вывести
преобразованную матрицу на экран.
4. Пройтись по указанной траектории (см. рисунок) и вывести полученные
результаты в виде матрицы строки [Bi] .
5. Полученную матрицу строку сортировать по возрастанию и убыванию,
результаты вывести на экран.
6. В матрице, кроме выделенных областей, найти максимальный и минимальный
элементы
7. Указать номера строк и номера столбцов на пересечении, которых находятся
максимальный и минимальный элементы.
Миниатюры
Работа с матрицей  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.06.2020, 12:58
Ответы с готовыми решениями:

Работа с матрицей
Я начинающий, не xорошо знаю русский, извините за ошыбки! помогите пожалуйста!! a: array of integer; n<=50 Надо сделать...

Работа с матрицей
Помогите решить ошибку в коде, в строке 31 Const n = 5; m = 5; {n-строка, m-столбец} Var A: array of integer; i, j,...

Работа с матрицей!
Здравствуйте! Помогите мне решить следующую задачу, ибо я не имею ни малейшего представления как создать и обработать матрицу в ассемблере....

4
Эксперт Pascal/Delphi
6812 / 4568 / 4820
Регистрация: 05.06.2014
Сообщений: 22,434
15.06.2020, 14:08
5.4.Запрещено создавать темы с бессмысленными названиями вроде "Помогите!", "Вопрос" и т.п.
https://www.cyberforum.ru/announcement.php?a=3
 Комментарий модератора 
Тема переименована.
0
Модератор
10429 / 5717 / 3404
Регистрация: 17.08.2012
Сообщений: 17,384
17.06.2020, 22:42

Не по теме:

dregar11, дублирование тем запрещено. Для повышения актуальности темы достаточно написать в тему новое сообщение, например, из одного слова "Актуально", и тема тут же окажется наверху списка тем раздела.

Дубль этой темы удалён.



Добавлено через 24 минуты
Есть некоторые неясности.

2)

A[i,i]... Индексы обозначаются одной и той же буквой. Это бессмыслица. Может быть, опечатка, и должно быть A[i,j]?

Как указанный закон f(x) соотносится с матрицей? Например, пусть x = 100. Тогда будет f(x) = y = 40000. В какой элемент матрицы и что именно размещать? Или, может быть, в интервале [xн , xк] c шагом dx получатся количество значений, равное количеству элементов матрицы, то есть, N2? Если так, то, ввиду того, что порядок обхода матрицы не декларирован, в каком порядке помещать значения f(x) в матрицу? По столбцам слева направо, по строкам сверху вниз, или ещё как-то?

Откуда берутся xн , xк и dx?

3)

Которые области поменять? Цветные, по маленьким стрелкам? Как отображать области друг на друга: зеркально или с поворотом на 900? И что именно нужно: скопировать одну область на место другой (по стрелке), или обменять две области местами (на рисунке ошибочно указаны односторонние стрелки вместо двусторонних)?

4)

Что за указанная траектория? Большая стрелка? Если да, то что делать, если ранг матрицы чётный?


Детский лепет типа "это всё задание", "не знаю" и тому подобное не принимается. Если не знаете, спросите у преподавателя.
0
0 / 0 / 0
Регистрация: 27.01.2017
Сообщений: 29
21.06.2020, 18:19  [ТС]
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
uses CRT;
type matrix=array[1..15,1..15] of real;
     massiv=array[1..50] of real;
var i,j,m,n:integer;
    a:matrix;
    b:massiv;
    min,max,xn,xk:real;
 
Function Y(x:real):real;
begin
  If (x<=0) then y:=sqrt(-x)
    else if ((x>=0) and (x<5)) then y:=x
      else if (x>=5) then y:=4*x*x;
end;
 
Procedure Generate(n:integer; var a:matrix);
var i,j:integer;
begin
  xk:=(xk-xn)/(N*N-1);
  for i:=1 to n do
    for j:=1 to n do
    begin
      a[i,j]:=y(xn);
      xn:=xn+xk;
    end;
end;
 
procedure minmax(i,j:shortint);
begin
if a[i,j]<min then min:=a[i,j];
if a[i,j]>max then max:=a[i,j];
end;
 
Procedure Print(n:integer; var a:matrix);
var i,j:integer;
begin
     for i:=1 to n   do begin
         for j:=1 to n do begin
         if (i=1) and (j>=i) or (j=1) and (i>=j) or (j=n) and (i<=j)
         then textcolor(14) else textcolor(7);
         minmax(i,j);
         write(a[i,j]:8:2,' ');
         end;
         textcolor(7);
         writeln(' ');
         end;
end;
 
procedure Diagonal(n:integer; var a:matrix); //замена диагоналей
var i,j:integer;
    tmp:real;
begin
  for i:=1 to n do
    for j:=1 to n do
    if i=j then
    begin
      tmp:=a[i,j];
      a[i,j]:=a[i,n-i+1];
      a[i,n-i+1]:=tmp;
    end;
end;
 
Procedure Swap(var a,b:real);
var temp:real;
begin
  temp:=a;
  a:=b;
  b:=temp;
end;
 
Procedure Move(di,dj:shortint);
begin
i:=i+di;
j:=j+dj;
m:=m+1;
b[m]:=a[i,j];
end;
 
Procedure AtoB;
begin
i:=n+1;
j:=1;
while i>1 do move(-1,0);
i:=1;
j:=1;
while j<n do move(0,1);
i:=1;
j:=n;
while i<n do move(1,0);
end;
 
Procedure PrintB;
var i:shortint;
begin
for i:=1 to m do
  begin
  textcolor(14);
  write(b[i]:8:2);
  end;
writeln('');
end;
 
Procedure Sortup;
var i,j:shortint;
begin
for j:=1 to m-1 do
 for i:=1 to m-j do
 if b[i]>b[i+1] then swap(b[i], b[i+1]);
end;
 
Procedure Sortdown;
var i,j:shortint;
begin
for j:=1 to m-1 do
 for i:=1 to m-j do
 if b[i]<b[i+1] then swap(b[i], b[i+1]);
end;
 
Procedure Rotation;
var i,j:integer;
begin
  for i:=1 to n do 
    for j:=1 to n do 
    if (i<=j) and (i<=n-j+1) then swap(a[i,j],a[n-i+1,j]);
end;
        
 
begin
clrscr;
min:=a[1,1];
max:=a[1,1];
write('Введите начальное значение Xn= ');
readln(xn);
repeat
  write('Введите конечное значение Xk= ');
  readln(xk);
  if (Xk<=Xn) then
  writeln('Xk меньше или равен Xn, повторите ввод!');
until (Xk>Xn);
repeat 
  write('Введите размерность матрицы А (От 5 до 15):');
  readln(n);
  if not ((n>=5) and (n<=15)) then
  writeln('Неверно задана размерность массива!(от 5 до 15)');
until (n>=5) and (n<=15);
writeln('Исходная матрица А, где A[i,j]=f(x) согласно условия');
writeln('y=sqrt(-x) при x<=0, y=x при 0<=x<5, y=4*x^2 при x>=5');
writeln('-------------------------------------------');
Generate(n,a);
Print(n,a);
writeln('-------------------------------------------');
textcolor(11);
writeln('Минимальное значение массива min=', min:0:2);
writeln('Максимальное значение массива max=', max:0:2);
writeln('-------------------------------------------');
textcolor(11);
writeln('-------------------------------------------');
writeln('Вывод массива B[i] после прохода по траектории');
writeln('-------------------------------------------');
AtoB;
PrintB;
textcolor(11);
writeln('-------------------------------------------');
writeln('Сортируем массив B[i] по возрастанию');
writeln('-------------------------------------------');
Sortup;
PrintB;
textcolor(11);
writeln('-------------------------------------------');
writeln('Сортируем массив B[i] по убыванию');
writeln('-------------------------------------------');
Sortdown;
PrintB;
textcolor(11);
writeln('-------------------------------------------');
writeln('Меняем значения массива в направлении,согласно задания');
writeln('-------------------------------------------');
Rotation;
Print(n,a);
readln;
end.
не могу допереть с заданием
1) Указать номера строк и номера столбцов на пересечении, которых находятся
максимальный и минимальный элементы.
2) поменять векторы по рисунку
0
0 / 0 / 0
Регистрация: 27.01.2017
Сообщений: 29
21.06.2020, 18:24  [ТС]
рисунок
Изображения
 
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.06.2020, 18:24
Помогаю со студенческими работами здесь

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

Работа с матрицей
Дана действительная матрица размера m х n. Определить числа b1, …, bm, равные соответственно: a) наименьшим значениям элементов строк; ...

Работа с матрицей
Определите структуру для хранения матрицы. Измените ее: 1. Напишите код, который поменяет первую и последнюю строку матрицы местами. 2....

Работа с маТрицей
помогите разобраться проблемой-хочу чтоб в уравнение mathcad брал последующий член матрицы си прибавлял либо вычитал с текущим -проблема в...

Работа с матрицей
Подскажите как решить задачку (опыта работы в матлабе считай нет) (( Считал файл (1.gsc) сформировал матрицу, размер получился...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru