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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2011, 10:11   #1
Viwwna
Пользователь
 
Аватар для Viwwna
 
Регистрация: 18.11.2011
Сообщений: 33
Злость Задача на сортировку простым выбором

Вот такая задача
Дана целочисленная матрица размером MхN. Пусть для каж-дой строки матрицы определена функция f(a), равная сумме составных чисел, являющихся элементами строки a. Упоря-дочить (переставить) строки матрицы по неубыванию в со-ответствии со следующим критерием: строка a считается «больше» строки b, если f(a) > f(b). Используйте алгоритм простого выбора.

ВНИМАНИЕ: в задаче необходимо составить программу, реализующую алгоритм сортировки. На экран выводятся исходный и результирующий массивы. Алгоритм сортировки оформить в виде процедуры.

Может у кого-нибудь есть наметки на подобную задачу? ЗАРАНЕЕ СПАСИБО
Составила вот что:


Код:
const n=3; m=4;
type
    index=1..n;
    element = array[1..m] of real;
    mas = array[index] of element;
 
function f(s:element):real;
var
    i:integer;
    y:real;
begin
    y:=0;
    for i:=1 to m do   y:=y+s[i];
    f:=y
end;
 
procedure sort(var a:mas);
var i,j,k:index;
      x:element;
begin
    for i:=1 to n-1 do
         begin
         k:=i;
         x:=a[i];
         for j:=i+1 to n do
              if f(a[j])< f(x) then begin k:=j; x:=a[j] end;
         a[k]:=a[i];
         a[i]:=x
         end;
end;


Как вывести матрицу начальную и упорядоченную на экран???
Тех, кто презирает программистов, программисты презирают сильнее, чем те, кто презирает программистов, презирающих программистов, которые презирают тех, кто их презирает.

Последний раз редактировалось Viwwna; 27.11.2011 в 10:31.
Viwwna вне форума Ответить с цитированием
Старый 27.11.2011, 10:40   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,304
По умолчанию

Есть такое предложение:
1. Написать функцию, которая определяет, что данное число составное, а не простое.
2. Написать процедуру, которая генерирует матрицу.
3. Написать процедуру/функцию, которая подсчитывает значение для каждой строки и возвращает одномерный массив: значение функции.
4. Написать сортировку, в которой параметром сортировки является значение функции. В начале формируется массив индексов строк, который в процессе сортировки так же тасуется, как и массив функций.
5. Вывести набор строк в соответствии с отсортированными индексами.
Пример, подобной задачи (это не решение Вашей задачи) см. во вложении:
Вложения
Тип файла: rar laba.rar (1.0 Кб, 19 просмотров)
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка простым выбором vit9i Помощь студентам 1 31.05.2011 20:41
Сортировка простым выбором в Delphi Vlad111 Помощь студентам 0 13.11.2009 10:03
Сортировка простым выбором (метод пузырька)) Sparky Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 22.09.2009 18:06
Задача на сортировку... Sota Помощь студентам 4 25.05.2008 19:26
не могу осуществить сортировку выбором в матрице.помогитъ:) benzus Помощь студентам 3 24.04.2008 22:28