Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ShPORKI_33_33_33_2jhtg.doc
Скачиваний:
3
Добавлен:
25.09.2019
Размер:
143.36 Кб
Скачать

Понятие алгоритма. Правила построения блок-схем алгоритмов. Линейный алгоритм (пример).

Алгоритм решения задачи может быть представлен в виде словесного описания или графически — в виде блок-схемы. При изображении алгоритма ввиде блок-схемы используются специальные символы.

Основные символы, используемые для представления алгоритма в виде блок-схемы.

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

Начало/Конец Ввод/Вывод

Обработка Выбор

Алгоритм поиска максимального значения элемента в массиве.

За макс(мин) принимается значение 1-го элемента, затем все элементы просматриваются и сравниваются с макс(мин). Если значение элемента окажется больше, чем значение макс(мин), то оно кладется в ячейку с макс(мин), иначе просматривается следующий элемент.

M := A[1]; {запоминание первого элемента массива}

FOR I :=1 TO N DO IF A[I]>M THEN M=A[I]; WRITE(‘максимальный элемент =’,M]);

Алгоритм поиска индекса наибольшего элемента массива.

Номер элемента в массиве называется индексом. Массив – это переменная с индексом.

M := 1; {запоминание индекса первого элемента}

FOR I := 1 TO N DO IF A(I)>A(M) THEN M=I; WRITE(‘максимальный элемент =’,A[M]);

Алгоритм отбора.

Суть этого алгоритма заключается в том, что сначала мы ищем наименьший элемент в списке, затем меняем его местами с первый элементом. Затем среди оставшихся элементов ищем следующий наименьший, делаем перестановку найденного элемента со вторым. Потом такую же операцию проводим с третьим элементом и так до тех пор, пока не дойдем до конца массива.

Алгоритм замещения.

В основе алгоритма лежит обмен соседних элементов массива. Каждый элемент массива, начиная с первого, сравнивается со следующим, и если он больше следующего, то элементы меняются местами. Таким образом, элементы с меньшим значением продвигаются к началу массива (всплывают), а элементы с большим значением — к концу массива (тонут). Поэтому данный метод сортировки обменом иногда называют методом "пузырька". Этот процесс повторяется столько раз, сколько элементов в массиве, минус единица.

Методы сортировки.

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

Сортировка методом нахождения минимального элемента

Заключается он в следующем: при каждом просмотре массива находим минимальный элемент и меняем местами его с первым на первом проходе, со вторым - на втором и т.д. Не забудьте только, что первый элемент массива должен иметь индекс 0.

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

Более быстрый и оптимальный метод сортировки - сортировка вставками.

Суть её в том, что на n-ном шаге мы имеем упорядоченную часть массива из n элементов, и следующий элемент встаёт на подходящее ему место.

Имейте в виду - первый индекс массива - 0.

Поиск перебором

Чтобы найти какие-то данные в неупорядоченном массиве, применяется алгоритм простого перебора элементов. Следующая функция возвращает индекс заданного элемента массива. Её аргументы: массив с первым индексом 0, количество элементов в массиве и искомое число. Если число не найдено, возвращается -1.

Бинарный поиск

При поиске в упорядоченном массиве можно применить гораздо более быстрый метод поиска - бинарный. Суть его в следующем: В начале переменная Up указывает на самый маленький элемент массива (Up := 0), Down - на самый большой

(Down := n, где n - верхний индекс массива), а Mid - на средний. Дальше, если искомое число равно Mid, то задача решена; если число меньше Mid, то нужный нам элемент лежит ниже среднего, и за новое значение Up принимаю Mid + 1; и если нужное нам число меньше среднего элемента, значит, оно расположено выше среднего элемента, и Down := Mid - 1. Затем следует новая итерация цикла, и так повторяется до тех пор, пока не найдётся нужное число, или Up не станет больше Doun.

Алгоритм определения суммы цифр целого числа.

алг БезНазвания(арг цел X, рез цел сумма)

дано |...

надо |...

нач

|оператор mod - остаток от деления

|оператор div - целочисленное деление

|trunc - округление в сторону меньшего

|lg - логарифм по основанию 10

сумма:=0

k:=trunc(lg(x))+1 |k - количество цифр в числе x

нц для i от 1 до k

t:=(x mod 10**i) div 10**(i-1) |t - цифра с номером i, нумерация справа налево

если (t mod 2)=1 то

сумма:=сумма+t

все

кц

вывод сумма

кон алг БезНазвания

Типы данных в языке Object Pascal.

Целый тип

Язык Delphi поддерживает семь целых типов данных: shortint, smallint, Longint, Int64, Byte, Word И Longword.

Вещественный тип

Язык Delphi поддерживает шесть вещественных типов: Reai48, single, Double, Extended, Comp, Currency. Типы различаются между собой диапазоном допустимых значений, количеством значащих цифр и количеством байтов, необходимых для хранения данных в памяти компьютера.

Символьный тип

Язык Delphi поддерживает два символьных типа: Ansichar и widechar: тип Ansichar — это символы в кодировке ANSI, которым соответствуют числа в диапазоне от 0 до 255: тип widechar — это символы в кодировке Unicode, им соответствуют числа от 0 до 65535.

Строковый тип

Язык Delphi поддерживает три строковых тина: shortstring, Long String И Widestring:

тип shortstring представляет собой статически размещаемые в памяти компьютера строки длиной от 0 до 255 символов;

тип Longstring представляет собой динамически размещаемые в памяти строки, длина которых ограничена только объемом свободной памяти;

тип widestring представляет собой динамически размещаемые в памяти строки, длина которых ограничена только объемом свободной памяти. Логический тип

Логическая величина может принимать одно из двух значений True (истина) или False (ложь). В языке Delphi логические величины относят к типу Boolean.

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Оставленные комментарии видны всем.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]