Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2011, 23:08   #1
Tagimasad
Пользователь
 
Аватар для Tagimasad
 
Регистрация: 26.10.2011
Сообщений: 17
Восклицание Лабораторка. Массивы. T. Pascal.

Задан массив A(N,N), заполненный целыми случайными числами из диапазона [-24; 28]. Найти минимальный элемент, лежащий выше побочной диагонали и максимальный элемент, лежащий ниже побочной диагонали. Поменять местами строки, в которых находятся минимальный и максимальный элементы.
Tagimasad вне форума Ответить с цитированием
Старый 27.10.2011, 00:03   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Все индексы от 1?
"Элемент a[i][j] (строго) выше побочной диагонали" = "i<(N-j+1)"
"Элемент a[i][j] (строго) ниже побочной диагонали" = "i>(N-j+1)"
"Кандидат на максимум/минимум" = "(число, номер строки)"
Перебирая все элементы и держа в уме "кандидата на максимум" (изначально a[N][N]) и "кандидата на минимум" (изначально a[1][1]), если элемент выше побочной диагонали, сравнить с минимумом и при необходимости обновить минимум, если ниже - то же самое с максимумом.
Когда элементы кончатся, у нас есть окончательные кандидаты. Далее по всем столбцам, поменять местами значения элементов из строк кандидатов в этом столбце (можно предварительно проверить, что кандидаты оказались не в одной строке).

На Паскаль сами.
Abstraction вне форума Ответить с цитированием
Старый 29.10.2011, 17:56   #3
Tagimasad
Пользователь
 
Аватар для Tagimasad
 
Регистрация: 26.10.2011
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
Все индексы от 1?
"Элемент a[i][j] (строго) выше побочной диагонали" = "i<(N-j+1)"
"Элемент a[i][j] (строго) ниже побочной диагонали" = "i>(N-j+1)"
"Кандидат на максимум/минимум" = "(число, номер строки)"
Перебирая все элементы и держа в уме "кандидата на максимум" (изначально a[N][N]) и "кандидата на минимум" (изначально a[1][1]), если элемент выше побочной диагонали, сравнить с минимумом и при необходимости обновить минимум, если ниже - то же самое с максимумом.
Когда элементы кончатся, у нас есть окончательные кандидаты. Далее по всем столбцам, поменять местами значения элементов из строк кандидатов в этом столбце (можно предварительно проверить, что кандидаты оказались не в одной строке).

На Паскаль сами.
Мне на Паскале нужно записать

там большая программа получаеться?

Последний раз редактировалось Stilet; 29.10.2011 в 19:59.
Tagimasad вне форума Ответить с цитированием
Старый 29.10.2011, 18:32   #4
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию

Попробую написать пока не занят.
Люблю на ты.Я человек простой
Leshii вне форума Ответить с цитированием
Старый 30.10.2011, 01:02   #5
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Сообщение от Tagimasad Посмотреть сообщение
Мне на Паскале нужно записать

там большая программа получаеться?
На Си, "на глазок", описанные действия займут даже меньше, чем мой текст. Паскаль помногословнее.
Abstraction вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Лабораторка по массивам. Pascal Tagimasad Помощь студентам 8 26.10.2011 22:17
Лабораторка Бибик Помощь студентам 0 12.12.2009 19:46
Програмка на Паскале и С++ (лабораторка, первый курс) psihadelic Помощь студентам 7 17.11.2009 16:31
лабораторка по паскалю werus Помощь студентам 4 21.06.2009 20:54