Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка, помогите решить задачу 
:(
    Опции темы
MOLOT
Дата 1.10.2005, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 1.10.2005

Репутация: нет
Всего: нет



Помогите решить:

Создать нетекстовый файл,содержащий информацию о поставках фруктов в магазин(наименование,объём-кол-во килограммов,цена).Переписать в текстовый файл информацию о поставках,упорядоченную в порядке возрастания объёмов.Вывести на экран название самых дешёвых фрукотв.Вывести на экран среднюю стоимость килограмма любых фруктов.

PM MAIL   Вверх
MOLOT
Дата 2.10.2005, 05:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 1.10.2005

Репутация: нет
Всего: нет



вот я попытался создать пример программы сортировки

Код

program SortRec;


const N = 4;
type
  TInfo = record
    Age:  integer; { возраст }
    Name: string [20];
  end;

  List = array [1..N] of TInfo; { массив записей содержит возраст и имя }

{ сравнивать по возрасту }
function Compare (T1,T2: TInfo): integer;
begin
    if T1.Age > T2.Age then Compare := 1
    else if T1.Age = T2.Age then Compare := 0
    else Compare := -1
end;

procedure QuickSort (var A: List; Lo, Hi: Integer);
var
 i,j: integer;
 x, y: TInfo;

procedure Sort (l, r: Integer);
begin
    repeat
          x := A[(l+r) shr 1];
          i := l; j := r;
          repeat
                while Compare( A[i], x ) < 0 do inc(i);
                while Compare( A[j], x ) > 0 do dec(j);
                if i <= j then
                begin
                     y := A[i]; A[i] := A[j]; A[j] := y;
                     inc(i); dec(j);
                end;
          until i > j;

          if l < j then Sort (l, j);
          l := i;
    until l >= r;
end;

begin
     Sort (Lo,Hi);
end; {QuickSort}

var
 Data: List;
 I: Integer;

begin { Main }

     { здесь заполнение массива записей }

     QuickSort (Data, 1, N); { сортировка массива записей от 1-й до N-й записи }

     { здесь вывод на экран массива записей }

end.

Добавлено @ 05:45
хорошо,тогда скажите как хотя бы сортировать и вывести информацию о дешёвых фруктах и среднюю стоимость килограмма

Это сообщение отредактировал(а) Alex - 2.10.2005, 08:02
PM MAIL   Вверх
Zero
Дата 2.10.2005, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: нет
Всего: 24



Цитата(MOLOT @ 2.10.2005, 05:42)
как хотя бы сортировать

Это значит расставить значения, так чтобы самые меньшие были слева, а большие справа
Цитата(MOLOT @ 2.10.2005, 05:42)
вывести информацию о дешёвых фруктах

Поставить условие, в котором будет написано "Если цена меньше либо равна число которое означает дешёвая, тогда вывести информацию о этом фрукте"
Цитата(MOLOT @ 2.10.2005, 05:42)
среднюю стоимость килограмма

Это общая стоимость товара, делённая на общий вес, в кг.
Если по конкретному пункту возникнут вопросу связанные с непонятностью, как конкретно выполнить какую либо из элементарных операций, возникающих при выполнении отдельного пункта то задавай их... smile
PM MAIL ICQ   Вверх
Romtek
Дата 3.10.2005, 02:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 7.12.2004
Где: Холон

Репутация: нет
Всего: 4



Цитата(MOLOT @ 2.10.2005, 05:42)
вот я попытался создать пример программы сортировки
Узнаю свой код... (Как упорядочить данные по возрастанию? Пример для массива записей. - здесь я объяснил боле подробно.
Копирайты хотя бы скопировал! smile

Цитата(MOLOT @ 1.10.2005, 12:44)
Вывести на экран название самых дешёвых фрукотв.
Допустим, есть 20 товаров. Сколько из них считать дешёвыми?
Или дешевее средней цены? Это нужно обговорить.

Цитата(MOLOT @ 2.10.2005, 05:42)
тогда скажите как хотя бы сортировать и вывести информацию о дешёвых фруктах и среднюю стоимость килограмма
Критерий сортировки - поле цены (Price) в записи товара (Product).
Сравнивай оба поля цен у каждого товара, как описано в вышеперечисленной теме и таким образом массив List будет упорядочен по возрастанию цен, т.е. вверху списка будут самые дешёвые продукты. Теперь осталось решить которые из них выводить (относительно средней цены или первые несколько товаров).
Чтобы стало яснее, советую запустить приведённый там пример. Там показывается как выводится список.
Добавлено @ 02:09
Цитата(MOLOT @ 1.10.2005, 12:44)
Вывести на экран среднюю стоимость килограмма любых фруктов.
Это не имеет отношение к сортировке.

Средняя цена килограмма = (Сумма всех фруктов 1 -> N {Вес фрукта * Цена килограмма фрукта [i]} ) / Общий вес всей фрукты.
--------------------
Romiras HomeLab - материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и пр.
PM WWW   Вверх
MOLOT
Дата 3.10.2005, 06:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 1.10.2005

Репутация: нет
Всего: нет




Writeln('Самый дешевый фрукт: ', data[i].Name);
Writeln('Стоимость :', data[i].Price);
Writeln('Средняя стоимость фруктов: ', prsr);
Readln;

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0484 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.