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

Матрицы массивы не могу понять

17.04.2011, 11:45. Показов 1284. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Входной массив: А4
Формируемый массив: В4*4 где i+j, если i=j
Вij=
i-j, иначе
i=1..4, j=1..4
Условие: найти max элемент в матрице В если max B>Q, то выделить в отдельный массив 2-ю строку матрицы В и поменять в нём местами крайние элементы( массив В1), иначе поменять местами крайние элементы в массиве А(массив А1).
Вывести: В, maxB, B1(или А1)
Подпроцесс 1(процедура): перестановка крайних элементов в массиве
Подпроцесс 2(функция): поиск max элемента в матрице

Не могу понять с чего даже начать. Подскажите пожалуста как решить эту задачу
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.04.2011, 11:45
Ответы с готовыми решениями:

Не могу понять. Двумерные Массивы.
Дана целочисленная матрица размера M х N. Найти номер первого из ее столбцов, содержащих максимальное количество одинаковых элементов. ...

Не могу понять условия задачи на массивы
Доброго времени суток. У меня возникла проблема с написанием лабораторной работы. Дело в том, что я не могу понять условия задачи. Как я...

Массивы и таблицы на формах. Не могу понять ошибок.
Доброго времени суток! Помогите пожалуйста найти причины ошибок в задачках: 1. В матрице NxM отсортировать рядки по неубывантю первых...

7
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
17.04.2011, 11:50
Цитата Сообщение от Devil62 Посмотреть сообщение
Не могу понять с чего даже начать
Начни так.
1.Напиши грамотно условие задачи, а то так ты и сам нихрена не понимаешь.
2.Почитать темы
Описание, объявление и заполнение массивов (матриц)
Стандартные операции с массивами (матрицами)
3.Разбираться и писать программу.
1
0 / 0 / 0
Регистрация: 17.04.2011
Сообщений: 5
17.04.2011, 12:13  [ТС]
нужно задать матрцу В и ввести число Q затем найти max B если это максимальное значение больше введённого числа Q то выделить в отдельный массив 2-ю строку матрицы В и поменять в нём местами крайние элементы(массив В1), если В меньше Q, то поменять местами крайние элементы в массиве А(массив А1). На экран вывести матрицу В , максимальное В, В1(или А1)

Вот немного поправил условие задачи.
0
0 / 0 / 0
Регистрация: 17.04.2011
Сообщений: 5
19.04.2011, 13:44  [ТС]
напишите пожалуста алгоритм решения задачи
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
19.04.2011, 13:57
иначе поменять местами крайние элементы в массиве А(массив А1).
Откуда этот массив берется?

Добавлено через 1 минуту
Если больше, то В, если меньше, то А, а если равны????

Добавлено через 1 минуту
Алгоритм

1.Задать матрицу В любым способом, какой понравится.
2.Ввести число Q.
3.Найти макс. в матрице В.
if max>q then
begin
for j:=1 to kstb do//по количеству столбцов
b1[j]:=b[2,j];//создаем массив В1
x:=b1[1]; b1[1]:=b1[kstb];b1[kstb]:=x;//обмениваем
выводим массив на экран
end
else if max<q //точно тоже с массивом А
else writeln('Максимум равен числу Q');
0
0 / 0 / 0
Регистрация: 17.04.2011
Сообщений: 5
06.05.2011, 15:26  [ТС]
нужно найти максимальный эллемент в матрице. не получается связать между собой процедуры. первые две процедуры работают а третья никак не хочет в чём ошибка? подскажите
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
const
    NN = 10;
    MM = 10;
type
    T = integer; 
    Matrix = array[1..NN, 1..MM] of T; 
    
 
Procedure ReadMatr(var A:Matrix; var n,m:word );
var i, j: word;
begin
    repeat
        write('Введите количество строк: '); readln(N)
    until (N>0) and (N<=NN); 
    repeat
        write('Введите количество столбцов: '); readln(m)
    until (M>0) and (M<=MM);
    For i:=1 to n do begin
        For j:=1 to m do begin
            write('A[',i,j,']= '); readln(A[i,j])
        end 
    end
end; 
 
 
Procedure PrintMatr(A:Matrix; n,m:word);
Var i, j: word;
begin
    For i:=1 to n do begin
        For j:=1 to m do write(A[i,j],' ');
        writeln
    end;
end;
Procedure maxB(A:Matrix; n,m:word);
var max,mm,nn,i,j: word;
begin
    Readmatr(a,n,m);
    PrintMatr(a,n,m);
begin
max:=a[1,1];
for i:=1 to nn do
for j:=1 to mm do
    if a[i,j]>max then max:=a[i,j];
writeln('max=',max);
end;
и как выделить строку матрицы в отдельный массив и поменять местами крайние элементы этого выделенного массива
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
06.05.2011, 15:58
Вот что ты наворотил? Прочитай еще раз условие и посмотри на свой код. Если найдешь что-то похожее, значит у тебя плохое зрение.

Добавлено через 17 минут
Вот что нужно было сделать по условию. Полчаса работы.

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
uses crt;
const n=4;
type mas=array[1..n] of integer;
     matr=array[1..n] of mas;
procedure Obmen(var m:mas);
var i:byte;
    x:integer;
begin
x:=m[1];m[1]:=m[n];m[n]:=x;
end;
function Max(m:matr):integer;
var i,j:byte;
    mx:integer;
begin
mx:=m[1,1];
for i:=1 to n do
for j:=1 to n do
if m[i,j]>mx then mx:=m[i,j];
Max:=mx;
end;
var a,b1:mas;
    b:matr;
    q:integer;
    i,j:byte;
begin
clrscr;
writeln('Введите элементы массива А:');
for i:=1 to n do
 begin
  write('a[',i,']=');
  readln(a[i]);
 end;
clrscr;
writeln('Массив А:');
for i:=1 to n do
write(a[i],' ');
writeln;
writeln;
writeln('Матрица В:');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    if i=j then b[i,j]:=i+j
    else b[i,j]:=i-j;
    write(b[i,j]:4);
   end;
  writeln;
 end;
writeln;
writeln('Максимальный элемент матрицы=',Max(b));
write('Введите число для сравнения с макимумом q=');
readln(q);
if Max(b)>q then
 begin
  writeln('Макимальный элемент больше ',q);
  b1:=b[2];
  Obmen(b1);
 end
else
 begin
  writeln('Макимальный элемент не больше ',q);
  b1:=a;
  Obmen(b1);
 end;
writeln('Массив B1:');
for i:=1 to n do
write(b1[i],' ');
readln
end.
1
0 / 0 / 0
Регистрация: 17.04.2011
Сообщений: 5
06.05.2011, 16:17  [ТС]
Я только начал интересоваться паскалем поэтому допускаю такие глупые ошибки. Спасибо большое
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.05.2011, 16:17
Помогаю со студенческими работами здесь

Динамические массивы. не могу понять в чем ошибка
из целочисленного массива x все элементы превышающие заданное число a записать в массив y, затем удалить эти элементы из массива х. найти...

Массивы. Не могу понять как работает программа
Здравствуйте. Я как и многие в этом разделе новичок. У меня возникли трудности в понимании данной программы #include &lt;iostream&gt;...

Не могу понять массивы. Ошибка с массивами. Неправильно работаю в условиях JS?
Здравствуйте граждане киборги. Сегодня я продолжаю играться со змейкой :- &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; ...

Найти сумму элементов квадратной матрицы (не могу понять в чём ошибка)
Доброго времени суток уважаемые форумчане. Пожалуйста подскажите в чем проблема, почему не работает? #include &lt;iostream&gt; ...

Не могу понять как найти определитель матрицы и вывести его в dataGridView
namespace Calcul { public partial class Form2 : Form { int q = 0; int p = 0; ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
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 с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru