АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Пример сортировки целых чисел

Читайте также:
  1. Cитуация-пример.
  2. II. Примеры, подтверждающие милость, явленную в Пророке, да благословит его Аллах и да приветствует.
  3. MS Excel.Текстовые функции, примеры использования текстовых функций.
  4. N-декомпозируемые отношения. Пример декомпозиции. Зависимость проекции/соединения.
  5. N-мерное векторное пространство действительных чисел. Задачи
  6. N-мерное векторное пространство действительных чисел. Компьютерная часть
  7. N-мерное векторное пространство действительных чисел. Математическая часть
  8. SCADA. Назначение. Возможности. Примеры применения в АСУТП. Основные пакеты.
  9. Tough Enough в качестве примера
  10. XXIV. ПРИМЕР ЗАКХЕЯ
  11. А вот когда мы, к примеру, говорим: «не могу себе позволить пренебрегать своим здоровьем» — это, как говорят дети, «не счетово».
  12. А) Додавання комплексних чисел.

На дисковом файле записана последовательность целых чисел. Необходимо определить количество этих чисел и вывести их на экран в порядке возрастания. Для сортировки удобно использовать метод вставки. Из первого прочитанного элемента файла создается список из одного элемента. Очевидно, что этот список является упорядоченным. Затем следует повторение операций:

- чтение из файла одного очередного элемента;

- просмотр упорядоченного списка и сравнение элементов списка с очередным прочитанным элементом;

- включение прочитанного элемента в список перед первым же элементом списка, оказавшимся больше прочитанного.

Текст программы

procedure TForm1.Button1Click(Sender: TObject);

type pn=^dp;

dp=record

i:integer;

p:pn

end;

var t,r,q,s:pn; f:TextFile;

begin

AssignFile(f,'data.txt'); Reset(f);

new(r); read(f,r^.i); r^.p:=nil;

new(t); t^.p:=r; t^.i:=1;

repeat r:=t;

q:=r;

new(s); read(f,s^.i);

t^.i:=t^.i+1;

repeat

if r^.p^.i<s^.i then q:=q^.p;

r:=r^.p

until r^.p=nil;

s^.p:=q^.p; q^.p:=s

until eof(f);

CloseFile(f);

Memo1.Lines.Add('n='+IntToStr(t^.i));r:=t;

repeat r:=r^.p;

Memo1.Lines.Add(IntToStr(r^.i));

until r^.p=nil;

end;

Результат

Для файла, содержащего в любом порядке 4 целых числа – 16, 12, 14 и 6, на экран выводятся:

n=4

16.

В программе использовались:

s – указатель, ссылающийся на переменные, содержащие очередные прочитанные целые числа из файла;

t – указатель для так называемой заглавной переменной, содержащей количество элементов списка;

r – указатель построенного упорядоченного списка, ссылающийся на первый элемент списка;

q – рабочий указатель, дающий ссылку на элемент списка, после которого следует включить элемент, прочитанный из файла.

Рабочее задание

Составить программу, предусматривающую контрольный вывод исходных данных и результатов в окна.

Составить отчет, содержащий:

− задание;

− принятые обозначения;

− текст программы;

− результаты.

Варианты заданий к лабораторной работе № 5

1. В динамической памяти разместить массив записей следующей структуры: наименование товара, количество на складе, цена единицы продукции, дата поступления. Найти товар, количество которого максимально.

2. В динамической памяти разместить массив записей следующей структуры: наименование товара, количество на складе, цена единицы продукции, дата поступления. Переписать часть массива в другое место динамической памяти, оставив только те товары, количество которых на складе меньше 100 единиц.

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

4. Разместить в динамической памяти массив целых чисел. Определить наибольшее из чисел.

5. Разместить в динамической памяти массив вещественных чисел. Найти наименьшее из чисел.

6. Дан массив ссылок на вещественные числа. Проверить, есть ли в массиве хотя бы два элемента, ссылающиеся на одинаковые числа.

7. Составить программу, которая помещает 25 случайных целых чисел в диапазоне от 0 до 100 в упорядоченный список. Вычислить среднее арифметическое этого списка.

8. Составить программу, в результате работы которой заданный во входном файле текст будет распечатан в обратном порядке. Для решения задачи использовать список.

9. Составить программу, которая по исходному списку строит два новых списка: один из положительных элементов, а другой из остальных элементов списка.

10. Составить программу проверки равенства двух заданных списков.

11. Составить программу вхождения одного заданного списка в другой.

12. Составить список сведений о семьях: фамилия, количество членов семьи, количество детей. Добавить элемент в конец списка.

13. Составить список сведений о семьях: фамилия, количество членов семьи, количество детей. Выдать информацию о семьях, имеющих 3 и более детей.

14. Составить список сведений о семьях: фамилия, количество членов семьи, количество детей. Выдать информацию о семьях, состоящих из 5 и более членов.

15. Составить список сведений о семьях: фамилия, количество членов семьи, количество детей. Выдать информацию о семье, имеющей наибольшее количество детей.

16. Составить список сведений о семьях: фамилия, количество членов семьи, количество детей. Выдать информацию о семье, состоящей из наибольшего количества членов семьи.

 


1 | 2 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)