Пирамидальная сортировка и перевод числовой формы числа в словесную
Вычисление числа знаков в числе. Программное обеспечение, упорядочивающее по возрастанию массив данных, вводимых с клавиатуры, методом пирамидальной сортировки. Нахождение нужного места в пирамиде для нового элемента. Проведение сортирования списка.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 01.10.2013 |
Размер файла | 117,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Министерство образования и науки Российской Федерации
Государственное образовательное учреждение
Высшего профессионального образования
«ОРЕНБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
Факультет экономики и управления
Кафедра математических методов и моделей в экономике
ОТЧЕТ
По расчётно-графическому заданию
По курсу «Современные технологии программирования»
Руководитель
Нелюбова Т.Н.
Исполнитель
Студент гр. 09ММЭ
Евдокимов Д. А.
Оренбург 2011г.
Содержание
Глава 1. Программа «перевод цифровой формы числа в словесную» 3
1) Постановка задачи
2) Код программы
3) Скриншот программы
Глава 2. Пирамидальная сортировка
1) Постановка задачи
2) Код программы
3) Скриншот программы
Глава 1. Программа «перевод цифровой формы числа в словесную»
1) Постановка задачи
Реализовать программное обеспечение, выводящее словесную форму числа n (n<1 000 000 000), заданного в цифровой форме.
2) Код программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, XPMan;
type
TForm1 = class(TForm)
edt1: TEdit;
btn1: TButton;
ud1: TUpDown;
xpmnfst1: TXPManifest;
mmo1: TMemo;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var n,i:Byte;
a:array [1..100] of byte;
az,t,t1:LongInt; //t - вспомогательная переменная, используемая при вычислении числа знаков в числе.
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btn1Click(Sender: TObject);
begin
az:=StrToInt(edt1.Text);
t:=1;
n:=0;
while (az div t)>0 do begin
t:=t*10;
n:=n+1;
end;
t:=1;
for i:=1 to n do begin
t1:=az div t;
a[i]:=t1 mod 10;
t:=t*10;
end;
//Пошёл перевод
for i:=1 to n do begin
if i=1 then begin
case a[i] of
1:mmo1.Text:='Один '+mmo1.Text;
2:mmo1.Text:='Два '+mmo1.Text;
3:mmo1.Text:='Три '+mmo1.Text;
4:mmo1.Text:='Четыре '+mmo1.Text;
5:mmo1.Text:='Пять '+mmo1.Text;
6:mmo1.Text:='Шесть '+mmo1.Text;
7:mmo1.Text:='Семь '+mmo1.Text;
8:mmo1.Text:='Восемь '+mmo1.Text;
9:mmo1.Text:='Девять '+mmo1.Text;
end;
end;
if (i mod 3)=2 then begin
case a[i] of
1:mmo1.Text:='Десять '+mmo1.Text;
2:mmo1.Text:='Двадцать '+mmo1.Text;
3:mmo1.Text:='Тридцать '+mmo1.Text;
4:mmo1.Text:='Сорок '+mmo1.Text;
5:mmo1.Text:='Пятьдесят '+mmo1.Text;
6:mmo1.Text:='Шестьдесят '+mmo1.Text;
7:mmo1.Text:='Семьдесят '+mmo1.Text;
8:mmo1.Text:='Восемьдесят '+mmo1.Text;
9:mmo1.Text:='Девятьносто '+mmo1.Text;
end;
end;
if (i mod 3)=0 then begin
case a[i] of
1:mmo1.Text:='Сто '+mmo1.Text;
2:mmo1.Text:='Двести '+mmo1.Text;
3:mmo1.Text:='Триста '+mmo1.Text;
4:mmo1.Text:='Четыреста '+mmo1.Text;
5:mmo1.Text:='Пятьсот '+mmo1.Text;
6:mmo1.Text:='Шестьсот '+mmo1.Text;
7:mmo1.Text:='Семьсот '+mmo1.Text;
8:mmo1.Text:='Восемьсот '+mmo1.Text;
9:mmo1.Text:='Девятьсот '+mmo1.Text;
end;
end;
if i=4 then begin
case a[i] of
1:mmo1.Text:='Одна тысяча '+mmo1.Text;
2:mmo1.Text:='Две тысячи '+mmo1.Text;
3:mmo1.Text:='Три тысячи '+mmo1.Text;
4:mmo1.Text:='Четыре тысячи '+mmo1.Text;
5:mmo1.Text:='Пять тысяч '+mmo1.Text;
6:mmo1.Text:='Шесть тысяч '+mmo1.Text;
7:mmo1.Text:='Семь тысяч '+mmo1.Text;
8:mmo1.Text:='Восемь тысяч '+mmo1.Text;
9:mmo1.Text:='Девять тысяч '+mmo1.Text;
0:if (a[i+1]<>0) and (a[i+2]<>0) then mmo1.Text:='тысяч '+mmo1.Text;
end;
end;
if i=7 then begin
case a[i] of
1:mmo1.Text:='Один миллион '+mmo1.Text;
2:mmo1.Text:='Два миллиона '+mmo1.Text;
3:mmo1.Text:='Три миллиона '+mmo1.Text;
4:mmo1.Text:='Четыре миллиона '+mmo1.Text;
5:mmo1.Text:='Пять миллионов '+mmo1.Text;
6:mmo1.Text:='Шесть миллионов '+mmo1.Text;
7:mmo1.Text:='Семь миллионов '+mmo1.Text;
8:mmo1.Text:='Восемь миллионов '+mmo1.Text;
9:mmo1.Text:='Девять миллионов '+mmo1.Text;
0:if (a[i+1]<>0) and (a[i+2]<>0) then mmo1.Text:='миллионов '+mmo1.Text;
end;
end;
if i=10 then begin
case a[i] of
1:mmo1.Text:='Один миллиард '+mmo1.Text;
2:mmo1.Text:='Два миллиарда '+mmo1.Text;
3:mmo1.Text:='Три миллиарда '+mmo1.Text;
4:mmo1.Text:='Четыре миллиарда '+mmo1.Text;
5:mmo1.Text:='Пять миллиардов '+mmo1.Text;
6:mmo1.Text:='Шесть миллиардов '+mmo1.Text;
7:mmo1.Text:='Семь миллиардов '+mmo1.Text;
8:mmo1.Text:='Восемь миллиардов '+mmo1.Text;
9:mmo1.Text:='Девять миллиардов '+mmo1.Text;
0:if (a[i+1]<>0) and (a[i+2]<>0) then mmo1.Text:='миллиардов '+mmo1.Text;
end;
end;
end;
end;
end.
3) Скриншот программы
знак массив пирамида число
Глава 2. Пирамидальная сортировка
1) Постановка задачи
Реализовать программное обеспечение, упорядочивающее по возрастанию массив данных, вводимых с клавиатуры, методом пирамидальной сортировки. Результат сортировки сохраняется в файл output.txt.
2) Код программы
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
var a: array [1..50] of Integer;
i,n:integer;
fo:Text;
procedure Sort(var Arr: array of integer; Count: Integer);
procedure DownHeap(index, Count: integer; Current: integer);
//Функция пробегает по пирамиде, восстанавливая ее
//Также используется для изначального создания пирамиды
//Использование: Передать номер следующего элемента в index
//Процедура пробежит по всем потомкам и найдет нужное место для следующего элемента
var
Child: Integer;
begin
while index < Count div 2 do begin
Child := (index+1)*2-1;
if (Child < Count-1) and (Arr[Child] < Arr[Child+1]) then
Child:=Child+1;
if Current >= Arr[Child] then
break;
Arr[index] := Arr[Child];
index := Child;
end;
Arr[index] := Current;
end;
//Основная функция
var
i: integer;
Current: integer;
begin
//Собираем пирамиду
for i := (Count div 2)-1 downto 0 do
DownHeap(i, Count, Arr[i]);
//Пирамида собрана. Теперь сортируем
for i := Count-1 downto 0 do begin
Current := Arr[i]; //перемещаем верхушку в начало отсортированного списка
Arr[i] := Arr[0];
DownHeap(0, i, Current); //находим нужное место в пирамиде для нового элемента
end;
end;
begin
Assign(fo, 'output.txt');
Rewrite (fo);
Writeln('Enter n');
Readln(n);
Writeln('Enter integers');
for i:=1 to n do Read(a[i]);
Sort(a,n);
for i:=1 to n do Write(fo, a[i], ' ');
close (fo);
end.
3) Скриншот программы
Размещено на Allbest.ru
...Подобные документы
Определение понятия, видов и задач сортировки. Рассмотрение основ построения простых и улучшенных алгоритмов сортировки, анализ числа операций. Линейная и пирамидальная организация данных. Основные правила нижней оценки числа операций в алгоритмах.
презентация [274,5 K], добавлен 19.10.2014Составление программы сортировки по возрастанию массив из 20 шестнадцатеричных чисел, просматривающей все исходные числа во внешней памяти и выбирающей самое большое число. Блок-схема алгоритма работы программы. Таблица команд и число их выполнения.
курсовая работа [23,1 K], добавлен 24.05.2015Реализация различных методов сортировки. Алгоритмические языки программирования. Обработка большого числа единообразно организованных данных. Алгоритмы сортировки массивов. Анализ проблем реализации и использования различных видов сортировок массивов.
курсовая работа [640,3 K], добавлен 07.07.2011Разработка программы, сортирующей массивы данных различного типа методом подсчета. Основные шаги алгоритма сортировки, ее свойства и модификация подсчетом. Целесообразность применения сортировки подсчетом. Условия эффективности алгоритма сортировки.
лабораторная работа [438,5 K], добавлен 16.07.2015Краткое описание языка программирования С++. Алгоритм линейного выбора элемента, методов минимального (максимального) элемента и челночной сортировки. Анализ и разработка приложения, организующего сортировку массива данных пятью методами сортировки.
реферат [614,8 K], добавлен 12.04.2014Анализ основных алгоритмов внутренней сортировки массивов данных, сравнение сложности их реализации и производительности. Сортировка пузырьком, методами вставок, выбора, методом Шелла, быстрая сортировка. Операция разделения массива внутренней сортировки.
курсовая работа [161,7 K], добавлен 17.12.2015Структура доходов коммерческого банка. Сортировка записей документа по возрастанию наименований статей. Программное обеспечение для создания документов на ЭВМ. Текстовые процессоры. Объекты MS Access: таблица, запрос, форма, отчет, макрос, модуль.
контрольная работа [21,3 K], добавлен 11.12.2008Представление (построение, создание) списка данных в виде линейного однонаправленного списка. Формирование массива данных. Вывод данных на экран. Алгоритм удаления, перемещения данных. Сортировка методом вставки. Алгоритм загрузки данных из файла.
курсовая работа [2,1 M], добавлен 16.05.2015Исследование программного средства для управления базой данных с информацией о фильмах. Составление алгоритма удаления и добавления элемента в указанное место двунаправленного списка. Характеристика поиска, вывода на экран и сортировки элементов списка.
курсовая работа [94,5 K], добавлен 23.09.2011Основные модули и процедуры, входящие в состав программного комплекса. Логические структуры данных, объявление массивов. Сущность пирамидальной сортировки. Основные вкладки программы (использование пакета Borland Delphi). Листинг и тестирование программы.
курсовая работа [1,0 M], добавлен 07.11.2010Составление программы lab3.exe, реализующей удаление элемента из списка перед указанным методом и его сортировку по возрастанию. Описание предикатов, используемых в программе. Проверка на корректный вывод информации. Программа для обхода бинарного дерева.
контрольная работа [559,3 K], добавлен 20.05.2012Способы сортировки задач программирования: пузырьком, пузырьковая с просеиванием, метод последовательного поиска минимумов, вставками. Распределяющая сортировка - RadixSort-цифровая - поразрядная. Теория чисел. Простые числа. Задача "Красивые числа".
реферат [90,5 K], добавлен 14.05.2008Принцип работы алгоритма бинарного поиска в массиве. Способы исследования алгоритма "прямое включение". Формулы зависимости числа сравнений от элементов в массиве. Графики среднего числа сравнений и перемещений практических и теоретических измерений.
курсовая работа [646,1 K], добавлен 07.01.2014Изучение алгоритмов внутренней сортировки массивов данных, сравнение сложности их реализации и производительности. Отличительные черты сортировки включением, выбором, разделением, сортировки Шелла, обменной сортировки. Сравнение методов: плюсы и минусы.
курсовая работа [203,8 K], добавлен 03.12.2010Разработка встраиваемого в электронную аппаратуру микроконтроллера с целью обеспечения ввода данных с клавиатуры и отображения результатов обработки на индикации. Описание активного элемента (системная шина ISA). Программное обеспечение микроконтроллера.
курсовая работа [848,9 K], добавлен 05.02.2016Алгоритмы сортировки методами простых вставок и пузырька. Зависимость среднего времени сортировки от числа сортируемых элементов. Функции, осуществляющие сортировку любого количества элементов методом простых вставок, на основе сортировки таблицы адресов.
курсовая работа [557,1 K], добавлен 26.05.2010Понятие и основной принцип действия алгоритмов сортировки информации. Сравнительное исследование и анализ эффективности методов сортировки Шелла и Флойда в виде графиков зависимостей количества сравнений и числа перестановок элементов от объёма данных.
контрольная работа [573,6 K], добавлен 09.11.2010Учет товаров, контроль их срока хранения на складах фирмы как предметная область проектируемой базы данных "Хранение товаров". Содержание основных запросов базы данных. Методы сортировки массива данных - пузырька, цифровой сортировки и деревьев сравнений.
контрольная работа [3,4 M], добавлен 12.02.2014Исследование особенностей работы с динамическими структурами данных, обработки строк. Реализация работоспособного программного обеспечения, которое должно поддерживать информационную базу пользователей компьютеров. Метод пирамидальной сортировки данных.
курсовая работа [364,1 K], добавлен 06.04.2014Алгоритм по обработке массивов таким образом, чтобы группы, состоящие из трех или более подряд стоящих нулей, были переписаны в начало массива. Сортировка полученных массивов методом всплывающего пузырька. Вывод на дисплей монитора обновленной матрицы.
курсовая работа [300,1 K], добавлен 30.08.2011