1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Люди, помогите, пожалуйста, написать программу! Очень надо!
Даны две действительные матрицы разной размерности. Используя процедуры реорганизовать массивы следующим образом: каждый столбец массива упорядочить по невозрастанию, если его предпоследний элемент отличается более чем на 15% от среднего арифметического элементов столбца, находящихся в нечетных строках, в противном случае столбец упорядочить по неубыванию. Использование вспомогательных рабочих массивов допускается.
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует. На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
Пробовал. Как я понял процедура должна считать среднее арифметическое элементов нечетных строк каждого столбца, а затем нужно в другой процедуре сравнивать 0.15 от среднего с последним элементом столбца. Но я не шарю в Паскале, и как это в нем организовать не понимаю.
Процедур на самом деле лучше сделать 3, а не одну: первая будет печатать матрицу (потому как тебе придется ее печатать как минимум 2 раза, ДО и ПОСЛЕ преобразования), вторая - считать среднее арифметическое и определять направление сортировки, а третья - собственно сортировать данные...
Подумай, для начала, как ты представляешь себе передачу матрицы любого размера в процедуру... Если ты сделаешь это правильно - вся остальная задача решается элементарно...
, и просто так ты их в процедуру не передашь... Надо придумать, как ДА можно передать 2 разноразмерные матрицы...
(для информации - программа давно готова, но вот тут я бы предпочел не выкладывать готовое решение, а подождать, пока ты хоть немного продвинешься дальше самостоятельно...)
Type matr = Array[1..4,1..5] of integer; Var A,B: matr;
Procedure VVOD(Var X: matr;k,r: integer; e: char);
Var I,J: integer;
Begin
Writeln('Matrica',e);
For I:= 1to k doBeginFor J:= 1to r doBegin
Write('X[',I,J,']='); Readln(X[I,J]);
End;
End;
End;
Хорошо... А теперь покажи, как в ЭТУ ЖЕ процедуру передать И матрицу 4*5, И матрицу 6*7, например... У тебя же матрицы РАЗНОГО размера, прочти условие внимательно!!!
Type matr = Array[1..4,1..5] of integer; Var A,B: matr;
Procedure VVOD(Var X,Y: matr;k,r,m,n: integer; e,l: char);
Var I,J,D,C: integer;
Begin
Writeln('Matrica',e);
For I:= 1to k doBeginFor J:= 1to r doBegin
Write('X[',I,J,']='); Readln(X[I,J]);
Begin
Writeln('Matrica',l);
For D:= 1to m doBeginFor C:= 1to n doBegin
Write('Y[',D,C,']='); Readln(Y[D,C]);
End;
End;
End;
End;
End;
End;
Type matr1 = Array[1..4,1..5]; matr2 = Array[1..6,1..7]of integer; Var m1: matr1; m2:matr2;
Procedure VVOD(Var m1,m2: matr;k,r,m,n: integer; e,l: char);
Var I,J,D,C: integer;
Begin
Writeln('Matrica',e);
For I:= 1to k doBeginFor J:= 1to r doBegin
Write('m1[',I,J,']='); Readln(m1[I,J]);
Begin
Writeln('Matrica',l);
For D:= 1to m doBeginFor C:= 1to n doBegin
Write('m2[',D,C,']='); Readln(m2[D,C]);
End;
End;
End;
End;
End;
End;
Во-первых, не стоит забывать про форматирование текста программ. Во-вторых... Нет, это не решение. А если нам нужно 3 матрицы? А если 10?
Я бы вот в какую сторону посмотрела: у нас нигде нет работы с матрицей целиком. Все задания идут по отдельному столбцу... Это первый вариант. Второй... Работу с динамической памятью вы еще не проходили?
--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует. На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
Насчет форматирования - согласен, но для меня щас это не главное. Это не решение - это начальная часть программы, где описываются матрицы.У меня есть конкретная задача с двумя матрицами. Если бы я самостоятельно, без помощи мог все сделать я бы здесь не сидел. У нас было 4 лекции по Паскалю и понять мне особо ничего не удалось. Информатика последний семестр и не профильный предмет. На последний вопрос я думаю отвечать не надо.
С печатью матрицы понятно. Мне нужно составить программу для двух конкретных матриц, каких я хочу сам, например 2*3 и 3*4, данные тоже выбираю я, т.е. мне нужна конкретно эта задача с моими данными. Задача мне понятна, просто я слабо представляю как реализовать ее в Паскале. Например как считать среднее значение элементов нечетных строк и затем упорядочивать столбцы. Моему преподу нужно будет лишь объяснить где какие переменные и какие операторы и процедуры что делают.
VOLVO! Cпасибо огромное!!! Вчера добавил еще одну матрицу, все работает. Но не все понятно. С процедурой принт все ясно, а вот дальше Что обозначено за in_col? Что такое by: boolean? Нам такое не давали. rows - ряды, cols-столбцы,count-счетчик - так? И напишите, пожалуйста где что считается