Матрицы, min и max. |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Матрицы, min и max. |
nadia |
Сообщение
#1
|
Группа: Пользователи Сообщений: 7 Пол: Женский Реальное имя: Надежда Репутация: 0 |
Очень нужно решить контрольную в универ по турбо паскалю. Я его учила 2 года назад, но почти ничего не помню. Помоги пожалуйста. Буду очень презнательна.
Вот задачка: Задана матрица А[M/M] действительных чисел. Поменять местами максимальный и минимальный элементы главной диагонали. Вывести преобразованную матрицу. |
мисс_граффити |
Сообщение
#2
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
1. найти минимум и максимум, запомнить их индексы. точнее, запомнить одно число, т.к. элементы на главной диагонали имеют индексы вида [1,1] [2,2] и т.д.
2. поменять местами. на каком этапе проблемы? -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
nadia |
Сообщение
#3
|
Группа: Пользователи Сообщений: 7 Пол: Женский Реальное имя: Надежда Репутация: 0 |
Минимум и максимум вроде нашла, а вот как поменять их местами возникла проблемка! Подскажи пожалуйста что делать?? [quote name='мисс_граффити' date='29.11.2006 20:30' post='81201']
Буду очень благодарна! |
мисс_граффити |
Сообщение
#4
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
DopPerem:=a[mini,mini]; -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
nadia |
Сообщение
#5
|
Группа: Пользователи Сообщений: 7 Пол: Женский Реальное имя: Надежда Репутация: 0 |
Пыталась найти минимальный и максимальный, вроде написала, но ничего не получается. Не могу собрать все в кучу. Матрица не вводиться. Пишет введите 'n' а дальше данные вводятся в столбик. И все.
Что мне делать??? |
YnickYM |
Сообщение
#6
|
Новичок Группа: Пользователи Сообщений: 18 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
или можно без ввода доп. переменной:
a[max;max]:=a[max+min;max+min] a[min;min]:=a[max-min;max-min] a[max;max]:=a[max-min;max-min] Пыталась найти минимальный и максимальный, вроде написала, но ничего не получается. Не могу собрать все в кучу. Матрица не вводиться. Пишет введите 'n' а дальше данные вводятся в столбик. И все. Что мне делать??? for i:=1 to M do for j:=1 to M do readln(a[i,j]); Сообщение отредактировано: YnickYM - -------------------- Ignoscito saepe alteri, nunquam tibi.
|
nadia |
Сообщение
#7
|
Группа: Пользователи Сообщений: 7 Пол: Женский Реальное имя: Надежда Репутация: 0 |
Написала вот такую программу:
Program xxx; А вот как сделать так чтоб она правильно работала не могу понять??? Подскажите пожалуйста в чем ошибка и как правильно вывести НОВУЮ ПРЕОБРАЗОВАННУЮ МАТРИЦУ! И как сделать чтоб матрица имела вид матрицы а не одного длинного столбца. Помогите очень прошу!!!! Заранее большое спасибо! Теги !!! Сообщение отредактировано: volvo - |
nadia |
Сообщение
#8
|
Группа: Пользователи Сообщений: 7 Пол: Женский Реальное имя: Надежда Репутация: 0 |
[quote name='мисс_граффити' date='29.11.2006 20:30' post='81201']
Теперь коечто изменила и получилось, что минимальный и максимальный элементы находятся правильно, а вот как поменять их местами - с этим большущая проблемка. Помогите пожалуйста, скажите где проблемка. Program xxx; Теги !!! Сообщение отредактировано: volvo - |
nadia |
Сообщение
#9
|
|||
Группа: Пользователи Сообщений: 7 Пол: Женский Реальное имя: Надежда Репутация: 0 |
Program xxx; Написала вот что. Максимальный и минимальный элементы находятся, а вот чтоб поменять их местами - с этим оказалась проблемка. Помогите кто нибудь пожалуйста!!!
|
|||
мисс_граффити |
Сообщение
#10
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
nadia, во-первых, правила форума к тебе тоже относятся.
Зачем создавать новую тему? И при размещении программ пользуйся тэгами - невозможно же читать! как менять местами элементы - я, по-моему, вполне четко написала. что непонятно? Цитата a[max;max]:=a[max+min;max+min] допустим, максимальный элемент на позиции 1,1 минимальный на 3,3 a[3,3]:=a[4,4]; a[1,1]:=a[-2,-2] a[3,3]:=a[-2,-2] YnickYM, что ты этим хотел сказать? или max - это не индекс максимального, а он сам? тогда еще интереснее... Сообщение отредактировано: мисс_граффити - -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Lapp |
Сообщение
#11
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Я причесал твою прогу, чтоб читалась нормально.
Убрал несколько begin/end'ов. При нахождении минимума ты запоминала индексы, а при нахождении максимума - нет . Я добавил. В конце два очевидных оператора решают твою проблему.. Все добавления снабжены комментариями. Uses PS В названии темы, пожалуйста, не пиши просьбы помочь - здесь 99.9% просьбы о помощи. Пиши краткое описание задачи. Успехов! -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
мисс_граффити |
Сообщение
#12
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
lapp, а ничего, что в соседней теме мы решаем ЭТУ же задачу, выложенную nadia?
2 мисс_граффити: извини, не заметил. Спасибо за наводку. Объединяю темы. 2 nadia: предупреждение!! Сообщение отредактировано: lapp - -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
volvo |
Сообщение
#13
|
Гость |
|
nadia |
Сообщение
#14
|
Группа: Пользователи Сообщений: 7 Пол: Женский Реальное имя: Надежда Репутация: 0 |
Огромное Вам человеческое спасибо!!! Благодаря Вам я сделала свою контрольную в универ. Классно когда есть умные люди, которые разбираются в программировании. И что я нашла ваш сайт!!! Я от всей души вам благодарна. Еще раз БОЛЬШОЕ СПАСИБО!!!!!!!!!
|
YnickYM |
Сообщение
#15
|
Новичок Группа: Пользователи Сообщений: 18 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
Извиняюсь, чушь написал.
Вот мой вариант программы Цитата Uses crt; Var a:array[1..10,1..10] of integer; i,j,min,max,n: integer; BEGIN ClrScr; Write ('n='); ReadLn (n); for i:=1 to n do for j:=1 to n do begin Read(a[i,j]); if j=n then writeln; end; max:=1; for i:=1 to n do for j:=1 to n do if a[i,i]>a[max,max] then max:=i; min:=1; for i:=1 to n do for j:=1 to n do if a[i,i]<a[min,min] then min:=i; i:=a[min,min]; a[min,min]:=a[max,max]; a[max,max]:=i; for i:=1 to n do //вывод преобразованной матрицы for j:=1 to n do begin write(a[i,j],' '); if j=n then writeln; end; readln; End. Сообщение отредактировано: YnickYM - -------------------- Ignoscito saepe alteri, nunquam tibi.
|
мисс_граффити |
Сообщение
#16
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
замечательная программка.
скажи мне честно, ты ее ПОТЕСТИРОВАТЬ не пробовал? как думаешь, имеет ли смысл строчка: if a[i,i]<a[max,max] then min:=i; понимаешь, что меньше максимального элемента не только минимальный, но и многие другие? a[max,max]:=a[min;min]; пишем сценарий для мультфильма про Телепузиков? Это они все по два раза повторяют... for i:=1 to n do for j:=1 to n do Read(a[i,j]); Сразу при вводе выводить нельзя? Или тоже принципиально отделяешь ввод от вывода -чтобы не запутаться? i:=a[min,min]; и зачем ты это делаешь? потом же все равно затираешь значение, хранящееся в i продолжить или хватит? -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
YnickYM |
Сообщение
#17
|
Новичок Группа: Пользователи Сообщений: 18 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
замечательная программка. скажи мне честно, ты ее ПОТЕСТИРОВАТЬ не пробовал? Честно говоря, нет. Цитата как думаешь, имеет ли смысл строчка: if a[i,i]<a[max,max] then min:=i; понимаешь, что меньше максимального элемента не только минимальный, но и многие другие? Исправлено Цитата a[max,max]:=a[min;min]; пишем сценарий для мультфильма про Телепузиков? Это они все по два раза повторяют... Пардон, опечатка. Имелось ввиду: i:=a[min,min]; a[min,min]:=a[max,max]; a[max,max]:=i; Цитата for i:=1 to n do for j:=1 to n do Read(a[i,j]); Сразу при вводе выводить нельзя? Или тоже принципиально отделяешь ввод от вывода -чтобы не запутаться? Цитата продолжить? Если вас не затруднит -------------------- Ignoscito saepe alteri, nunquam tibi.
|
мисс_граффити |
Сообщение
#18
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
так... вывод массива ты вообще убрал - ну правильно, пусть пользователь тренирует память. подумаешь, 100 чисел запомнить.
зачем 4 цикла: max:=1; , когда достаточно 1? и зачем начинать с 1, если можно с 2? в общем, Правила: Цитата 7. Проверяйте программы перед тем, как разместить их на форуме!!! З.Ы. На будущее - делай человеческие отступы. Невозможно ж читать код! Сообщение отредактировано: мисс_граффити - -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
YnickYM |
Сообщение
#19
|
Новичок Группа: Пользователи Сообщений: 18 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
Цитата так... вывод массива ты вообще убрал - ну правильно, пусть пользователь тренирует память. подумаешь, 100 чисел запомнить. for i:=1 to n do for j:=1 to n do begin Read(a[i,j]); if j=n then writeln; end; какой вывод? del Сообщение отредактировано: YnickYM - -------------------- Ignoscito saepe alteri, nunquam tibi.
|
Текстовая версия | 21.12.2024 23:40 |