Стандартные процедуры и функции

Арифметические подпрограммы

Функция Abs (x) - вычисляет абсолютное значение аргумента х (х - целого или действительного типа).

Функция Sqr (x) - возвращает квадрат аргумента х (х - целого или действительного типа).

Функция Sqrt (x: real): real - возвращает квадратный корень аргумента х.

Функция Sin (x: real): real - возвращает синус аргумента х (х - угол в радианах).

Функция Cos (x: real): real - возвращает косинус аргумента х (х - угол в радианах).

Функция ln (x: real): real - возвращает натуральный логарифм аргумента х.

Функция Frас (х:real): real - возвращает дробную часть аргумента х.

Пример на функцию Frac:

var

k: real;

begin

k: = Frас (-1.53); {-0,53}

k: = Frас (2.603); {0.603}

end.

Функция Int (x: real): real - возвращает целую часть аргумента х.

Пример var k: real;

begin

k: = int (9.83); {9.0}

k: = int (-3.9); {3.0}

end.

Функция Round (x: real) longint - округляет значение выражения х вещественного типа до ближайшего целого числа.

Пример:

var k: real

begin

k: = round (1.3); {1}

k: = round (3.72); {4}

k: = round (-15.54); {-16}

k: = round (-13.1); {-13}

end.

Функция Trunc (x: real): longint - усекает значение действительного типа до значения целого типа путем отбрасывания дробной части, независимо от ее величины.

Пример:

var k: real;

begin

k: = trunc (7.9); {7}

k: = trunc (-5.1); {-5}

end.

Функция Odd (x: longint): Boolean - возвращает значение True, если х - нечетное число, и false, если х - число четное.

Odd (-121) - true

Odd (24) - false

Функция Pi: real- возвращает значение константы =3,141592.6535897932385.

Функцию Exp (x: real): real - вычисляет экспоненту аргумента х, результат есть .

Примечание. В Турбо Паскале нет операции возведения в степень, при возведении в степень следует воспользоваться стандартными функциями exp и ln, т.е.

ax=exp(x*ln(a)).

Сортировка и поиск элементов

Поиск – нахождение элемента в массиве элементов, по какому – либо критерию (например, максимального или минимального элемента).

Пример. Дан массив действительных чисел. Найти минимальный элемент массива и определить его порядковый номер.

* введем массив из n действительных чисел,

* переменной minприсвоим значение первого элемента массива,

* переменной k ( порядковый номер элемента) - единицу,

* начиная со второго элемента массива, проверяем неравенство



min > A[i], если оно истинно, то значение minи k меняем соответственно наA[i] и i.

* проверив все элементы, будем иметь минимальный элемент в переменной minи его порядковый номер в k.

* выведем полученные результаты на экран.

Программа примерно может иметь следующий вид:

program Minp;

Uses crt;

const n = 10;

var

A: array[1..n] of integer;

minN: integer;{ номер минимального элемента}

min : real; {минимальный элемент}

I : integer; { номер элемента}

Begin

Clrscr;

write(‘Введите ’, n, ’ элементов массива ’);

for i = 1 to n do read(A[i]);

min := A[1];

minN := 1;

for i := 2 to n do if min >A[i] then

begin

min : = A[i];

minN := i:

end;

{переменная min содержит минимальное значение массива, переменная minN - его порядковый номер}

writeln(‘Минимальный элемент A[’,minN,’] = ’,min :5);

writeln(‘Его порядковый номер = ’, minN);

end.

Скриншот с решением:

Сортировка – упорядочивание элементов массива по какому-либо критерию (возрастанию или убыванию значений).

Алгоритмы сортировки

Постановка задачи

Дан массив из N записей, каждая из которых имеет ключ Ki, по значению которого выполняется сортировка (см. рисунок 1); в дальнейшем, для простоты будем считать Ki целым числом.

K1
... ... ... ...
Kn

Поля записи

Поле ключа

Рисунок 1

Требуется выполнить перестановку записей, после которой значения ключей будут расположены в неубывающем порядке:



... Ki-1 < Ki < Ki+1 ... (9)

Методы решения задач сортировки отличаются быстродействием (или временной сложностью), требуемым объемом памяти (или емкостной сложностью).

Существует несколько способов сортировки элементов массива:

· сортировка выбором (метод пузырька);

· обменная сортировка;

· сортировка вставками (метод Шелла);

· сортировка подсчётом;

· сортировка слиянием;

· и др.

Сортировка выбором

Вначале отыскивается запись с наименьшим значением ключа и помещается на первое место. Эта запись исключается из дальнейшего анализа. Затем отыскивается запись с наименьшим значением ключа в оставшейся части массива, помещается на второе место и исключается из дальнейшего анализа и т.д.

Пример:

Исходные значения ключей в массиве: 7 3 5 6 1.

После первого просмотра массива найден наименьший элемент (ключ) 1; установлен на первое место; а элемент, занимавший это место (7), установлен на место выбранного: 1 3 5 6 7.

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

Обменная сортировка

Выполняется последовательный анализ массива данных, если два соседних элемента (ключа) не удовлетворяют условию формулы (9), то они меняются местами; если в процессе такого анализа выполнена хотя бы одна перестановка, процесс сравнения повторяется с начала массива, иначе алгоритм заканчивает работу.

Сортировка вставками

Массив рассматривается состоящим из двух частей: отсортированной и не отсортированной. На первом шаге отсортированная часть содержит первый по порядку элемент (запись) массива, не отсортированная – остальные. Шаг в данном случае – это последовательность операций по добавлению (вставке) одного элемента (первого из не отсортированной части) в то место отсортированной части, которое после этого будет удовлетворять условию формулы (9).

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

Пример:

Исходные значения ключей в массиве: 7 6 4 5 1


Неотсортированная часть на первом шаге

Последовательность ключей на последующих шагах:

6 7 4 5 1

неотсортированная часть на втором шаге

4 6 7 5 1

неотсортированная часть на третьем шаге

4 5 6 7 1

неотсортированная часть на четвертом шаге.

Результат сортировки: 1 4 5 6 7

Для реализации этого алгоритма необходима процедура сдвига элементов массива вниз (вправо) для освобождения места для вставки элемента данных (записи).

Сортировка подсчетом

Идея алгоритма заключается в том, чтобы попарно сравнить значения всех ключей и при этом для каждого ключа Ki подсчитать количество меньших его ключей Ci, затем каждый i-й элемент массива (запись) устанавливается на место, номер которого равен Ci + 1.

При реализации алгоритма можно использовать три массива:

– для исходных данных;

– для подсчета результатов сравнения ключей;

– для результата сортировки.

Алгоритм сортировки подсчетом состоит из следующих процедур:

– сравнение значения очередного i-го элемента массива (ключа) с остальными и подсчет Ci;

– запись очередного i-го элемента (записи) в массив результатов в позицию с номером Ci + 1.

Пример:

Исходный массив: 7 3 5 6 1.

Результаты сравнения: 4 1 2 3 0.

Результат сортировки: 1 3 5 6 7.

Сортировка слиянием

Алгоритмы сортировки этого класса основываются на объединении нескольких (часто двух) уже упорядоченных массивов. Рассмотренные далее алгоритмы выбирают из исходного массива упорядоченные отрезки и объединяют их в более длинные.

Этот алгоритм ищет упорядоченные отрезки с двух концов массива и переписывает их по очереди также в оба конца. Повторяя эту процедуру в цикле, мы приходим к середине массива, что означает окончание сортировки.

Прочие функции и процедуры

Randomize; - инициализирует генератор случайных чисел

Random; - генератор случайных чисел возвращает случайное вещественное число из интервала [0,1].

Random (R: word): word; - возвращает целое число из диапазона 0<=x

Перед вызовом функции Random нужно вызвать процедуру Randomize, тогда будут выдаваться различные случайные последовательности чисел, иначе будет выдаваться одна и та же последовательность чисел.

Readkey: char - функция возвращает символ, соответствующий нажатой клавише.

KeyPressed: boolean - функция возвращает значение True, если клавиша на клавиатуре была нажата и False в противном случае.


Приложение Б

Примерное задание на домашнюю работу

Разработать алгоритм и программу поиска и сортировки элементов массива на языке Паскаль. В задании необходимо использовать структуру меню и подпрограммы пользователей на алгоритм поиска и сортировки. Способ получения элементов массива - с помощью датчика псевдослучайных чисел.

Варианты заданий взять из таблицы № 1. Для группы ГЛ алгоритм поиска оформляется как ДЗ№3, а алгоритм сортировки как ДЗ№4.

Таблица №1

№ вар. Алгоритм поиска Алгоритм сортировки
Сравнение с выделенной ячейкой (min) Метод Шелла (по возрастанию)
Сравнение соседних элементов (min) Метод пузырька (по убыванию)
Сравнение с выделенной ячейкой (max) Быстрая сортировка (по возрастанию)
Сравнение соседних элементов (max) Обменная поразрядная сортировка (по убыванию)
Сравнение с выделенной ячейкой (min) Метод Шелла (по возрастанию)
Сравнение соседних элементов (min) Метод пузырька (по убыванию)
Сравнение с выделенной ячейкой (max) Быстрая сортировка (по возрастанию)
Сравнение соседних элементов (max) Обменная поразрядная сортировка (по убыванию)
Сравнение с выделенной ячейкой (min) Метод Шелла (по возрастанию)
Сравнение соседних элементов (min) Метод пузырька (по убыванию)
Сравнение с выделенной ячейкой (min) Быстрая сортировка (по возрастанию)
Сравнение соседних элементов (max) Обменная поразрядная сортировка (по убыванию)
Сравнение с выделенной ячейкой (max) Метод пузырька (по возрастанию)
Сравнение с выделенной ячейкой (min) Метод Шелла (по убыванию)
Сравнение соседних элементов (max) Метод пузырька (по возрастанию)
Сравнение с выделенной ячейкой (min) Быстрая сортировка (по убыванию)
Сравнение с выделенной ячейкой (max) Метод пузырька (по возрастанию)
Сравнение с выделенной ячейкой (min) Метод Шелла (по возрастанию)
Сравнение соседних элементов (min) Метод пузырька (по убыванию)
Сравнение с выделенной ячейкой (max) Обменная поразрядная сортировка (по убыванию)


МИНОБРНАУКИ РОССИИ

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«ПЕНЗЕНСКАЯ ГОСУДАРСТВЕННАЯ ТЕХНОЛОГИЧЕСКАЯ АКАДЕМИЯ»

(ПГТА)

Кафедра «Информационные компьютерные технологии»

Домашняя работа

по дисциплине «Информатика»

Тема: «Разработка простейшей информационной системы на языке программирования Turbo Pascal »

Выполнил: студент гр. ___________________

Руководитель курсовой работы:____________

Работа защищена с оценкой_______________

Пенза, 2013 г.


Список литературы

1. Епанешников А. Программирование в среде Турбо Паскаль 7.0. - М.: Диалог - МИФИ, 2007.

2. Марченков А.И. Программирование в среде Турбо Паскаль 7.0. - М.: Бином Универсал, К.: ЮНИОР, 2008.

3. Меженный О.А. Turbo Pascal. Вильямс. 2008.

4. Немнюгин С.А. Турбо Паскаль программирование на языке высокого уровня. ЗАО Издательский дом Питер. 2007г.

5. Павловская Т.А. Паскаль. Программирование на языке высокого уровня. Питер, 2007.

6. ГОСТ 19.701-90. ЕСПД. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения.

7. Стандарт академии. Система менеджмента качества. Курсовое проектирование. ПГТА., 2006.


8260756612406642.html
8260891817301940.html
    PR.RU™