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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2013, 22:42   #1
ТипичныйСтудент
Форумчанин
 
Аватар для ТипичныйСтудент
 
Регистрация: 09.04.2013
Сообщений: 110
По умолчанию задача с матрицами на pascal abc

Дана матрица N*M, где N<M. Привести ее к квадратному виду (N*N) оставив только максимальные элементы. Столбцы можно менять местами.
Пример:
2 8 9 5 6
7 6 3 8 4
9 1 3 2 5
ответ
9 8 6
8 7 6
9 5 3
________________________________
Прошу помощи, задача с олимпиады. Как я понимаю, мы либо находим минимальный элемент по строке и удаляем его, либо выбираем максимальный и копируем в новую матрицу. Но я не представлю, как прописать это циклом, ведь размер произвольный.
Есть задача - реши ее!
ТипичныйСтудент вне форума Ответить с цитированием
Старый 26.04.2013, 22:51   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,431
По умолчанию

Судя по ответу, в матрице сортируются элементы по строкам, а затем отбрасывается нужное количество в конце строки (выводятся только первые N элементов).
Обычно в задачах указываются ограничения на M и N.

Цитата:
Сообщение от ТипичныйСтудент Посмотреть сообщение
сказала же в теме, что pascal abc
Это моя стандартная подпись (как у Вас "Есть задача - реши ее!").

Цитата:
Сообщение от ТипичныйСтудент Посмотреть сообщение
в условии прописано, что N и M произвольные, ну скорее всего не больше 10, но конкретно это не оговаривается
Если задание, и правда, с олимпиады, то 10 слишком мало 100 или 1000 уже более реальны.
Не пишу на Pascal ABC, так что практических советов дать не могу (только теоретические).
Нужен накопитель для N элементов (чтобы вставлять текущий элемент строки матрицы в него, а потом все элементы накопителя ввести) или накопитель на M элементов (считываем M элементов, сортируем, выводим первые N).
Все это происходит в цикле, который последовательно обрабатывает таким образом всю матрицу.
Если в Pascal ABC есть динамический массив, то им будет удобно воспользоваться.
Задать ему размер M, считывать в него матрицу построчно, сортировать (быструю сортировку придется реализовать, скорее всего, самому) и выводить первые N элементов.
Собственно, весь код:
Код:
uses
  Containers;
var
  a: intArray;
  m, n, i, j, k: integer;
begin
  readln(n, m);
  a := intArray.create(m);
  for i := 1 to n do
  begin
    for j := 1 to m do
    begin
      read(k);
      a.put(j, k);
    end;
    a.sort;
    for j := m downto m - n + 1 do
      write(a.get(j), ' ');
    writeln;
  end;
  a.destroy;
end.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 26.04.2013 в 23:21.
BDA на форуме Ответить с цитированием
Старый 26.04.2013, 22:53   #3
ТипичныйСтудент
Форумчанин
 
Аватар для ТипичныйСтудент
 
Регистрация: 09.04.2013
Сообщений: 110
По умолчанию

ууупс =)
в условии прописано, что N и M произвольные, ну скорее всего не больше 10, но конкретно это не оговаривается,
не могли бы пример кода показать??
________________
мда) спасибо, пробовать буду

и еще задача, оттуда же)
Вводим строку символов (для примера: абс), найти факториал числа количества введенных символов (с этим проблем нет) и вывести это количество различных комбинаций символов без повторений. (пример: 3!=6, авс, асв, вас, вса, сав, сва). Вот этот вот вывод как сделать?
Есть задача - реши ее!

Последний раз редактировалось Stilet; 27.04.2013 в 09:03.
ТипичныйСтудент вне форума Ответить с цитированием
Старый 26.04.2013, 23:24   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,431
По умолчанию

http://programmersforum.ru/showpost....10&postcount=5
ПС Код первой задачи выше
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 26.04.2013, 23:39   #5
ТипичныйСтудент
Форумчанин
 
Аватар для ТипичныйСтудент
 
Регистрация: 09.04.2013
Сообщений: 110
По умолчанию

спасибо большое
Есть задача - реши ее!
ТипичныйСтудент вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача по подсчёту статистики использования букв. Другая задача - по длинной арифметике Pascal ABC kimberly Паскаль, Turbo Pascal, PascalABC.NET 3 24.12.2012 17:03
Pascal abc работа с матрицами DevilSkyS Помощь студентам 0 20.11.2012 21:13
Задача в Pascal ABC Лиза_ Паскаль, Turbo Pascal, PascalABC.NET 4 23.05.2012 10:00
Задача в Pascal ABC Лиза_ Паскаль, Turbo Pascal, PascalABC.NET 5 27.04.2012 19:26
Pascal задача с матрицами. Impario Помощь студентам 6 05.01.2009 16:20