(общ.) Алгоритм – это система формальных правил однозначно приводящая к решению поставленной задачи.
(ПК.) Алгоритм- это последовательность арифметических и логических действий над данными, приводящая к получению решения поставленной задачи.
Свойства:
А) Дискретность - алгоритм состоит из отдельных пунктов или шагов
Б) Определённость - каждый шаг алгоритма должен быть строго сформулирован.
(иметь точный смысл)
В) Связанность - на каждом следующем шаге используются результаты предыдущего.
Г) Конечность – алгоритм должен завершаться после конечного числа шагов
Д) Результативность – алгоритм должен приводить к получению конечных результатов
Е) Массовость – пригодность для решения широкого класса задач.
Ж) Эффективность – применение а. должно давать какой бы-то положительный временной результат (временной)
Способ записи:
А) Словесно-формульный
Б) Структурная схема и алгоритм (ССА)
В) Спец. языки (алгоритмические и псевдокоды)
(псевдокод - искусственный неформальный язык, обычно состоит из элементов обычного языка с элементами программирования)
Г) Графический способ
CCA- при записи в виде структурной схемы алгоритм представляется графически в виде последовательности блоков выполняющих определённые функции и блоки соединяются линиями возможно со стрелками. Внутри блоков операции. Блоки нумеруются по порядку. По способу организации алгоритмов ССА блоки делятся на линейные, разветвляющиеся и циклические.
В линейных алгоритмах результат получается после выполнения одной последовательности действий.
Начало—ряд операторов—конец.
Разветвляющийся алгоритм предусматривает выбор одной из нескольких последовательностей действий в зависимости от исходных данных или промежуточных результатов.
Циклический алгоритм – это алгоритм обеспечивающий решение задачи путём многократного повторения последовательности действий. Участки, которые многократно повторяются - называются циклами.
Циклы по числу повторений делятся на циклы с заданным числом повторений и итерационные.
ЦИКЛЫ
ЗАДАННОЕ ЧИСЛО ИТЕРАЦИОННЫЕ
СО СЧЁТЧИКОМ УПР. УСЛОВИЕМ
ПОСТ. УСЛОВИЕ ПРЕДУСЛОВИЕ
Общее замечание: вход только в начало цикла, а выход вследствие окончания цикла, оператором GOTO, процедурами прерхода и выхода, находящимся в теле цикла.
Циклический алгоритм – это алгоритм обеспечивающий решение задачи путём многократного повторения последовательности действий. Участки, которые многократно повторяются - называются циклами.
Циклы по числу повторений делятся на циклы с заданным числом повторений и итерационные.
В итерационных циклах выполнение цикла оканчивается при выполнении общего условия, связанного с проверкой монотонно изменяющейся величины.
Вложенные циклы – это, когда определённый цикл повторяется многократно в другом цикле охватывающем данный.
Массив - это упорядоченная последовательность величин, обозначаемая одним именем. Положение каждого элемента в массиве определяется его индексом (индексами). В этом и заключается упорядоченность. Индексы принято указывать в скобках после имени массива.
Пример: В[2] означает второй элемент массива В.
Пусть имеется некоторая последовательность величин 1, 2, 4, 8, 3. Все элементы этой последовательности имеют одно имя А. Отличаются они друг от друга индексами, например, A[1]=1, A[2]=2, A[3]=4, A[5]=8, A[6]=3.
При описании массива указывается число его элементов, и это число остается постоянным при выполнении программы. Каждый элемент массива имеет явное обозначение, и к нему возможно непосредственное обращение.
Количество индексов в обозначении элемента массива определяет размерность массива. Массив может быть одномерным (один индекс S[4]), двумерным (два индекса N[2,4]), трех мерным (три индекса Y[2,4,1]) и т.д.
Массив описывается в разделе описания переменных, при этом описание массива включает описание типа массива (тип его элементов, т.е. какие значения они могут принимать) и типа индексов. Например, массив вещественного типа с именем vector может быть описан следующим образом:varvector: array [1..50] ofreal
Это описание означает, что одномерный массив vector имеет 50 элементов типа real со значениями индекса 1,2, ...,50. Элементы этого массива будут иметь обозначения: vector[1], vector[2], ..., vector[50]
Двумерный массив matrix, с целочисленными компонентами можно определить следующим образом:
varmatrix [1..10,1..15] ofinteger
Двумерный массив часто называют матрицей. Первый индекс этого массива (номер строки матрицы) принимает значения из отрезка 1..10, а второй (номер столбца) - из отрезка 1..15. Компоненты массива могут иметь обозначения: matrix[1,5], matrix[8,8], matrix[i,j] и т.п.
Примеры:
programp2;
varmatrix: array [1..3, 1..4] ofinteger;{ определяется двумерный массив в 3 строки и 4 столбца с именем matrix}
i, j: integer;
begin
for i:=1 to 3 do
forj:=1 to 4 do
read(matrix[ i, j]); {заполнение двумерного массива на 3 строки и 4 столбца}
for i:=1 to 3 do
begin
writeln;
forj:=1 to 4 dowrite(matrix[ i, j]);{вывод элементов двумерного массива в виде таблицы}
end;
Восходящее проектирование – используется для несложных задач, когда заранее известны все подзадачи или функции, которые выполнять программа. Разрабатывается алгоритм для каждой подзадачи, а затем они собираются в единую подпрограмму.
При нисходящем программировании сверху вниз сначала разрабатывается общая структурная схема алгоритма, а затем разрабатываются этапы её детализации (структурирование).
ТП – единство двух самостоятельных начал компилятора и инструментов програмной оболочки. Это мощная современная процедурная система программирования
Алфавит: буквы латинского от a до z, знак _.(если не charA = a)
Цифры – арабские 0-9, спец. символы +-*/=.,:;<>[]{}()^&$@#%!
Пробелы (ASCII от 0 до 32) ограничители идентификаторов
Зарезервированные слова и параметры (не используются в качестве идентификаторов). Стандартные директивы absolute, assembler, external, far, forward, near и т.д. .
Идентификаторы: имена констант, var’ных, меток , типов, obg-ов, процедур, функций(могут иметь произвольную длину, но значат только первые 63 символа, начинаются только с буквы или цифры).
IF<условие >THEN<операторы> ELSE <операторы>;
FOR <идентификатор>:=<начальное состояние >TO<конечное состояние > DO<оператор>
FOR <идентификатор>:=<начальное состояние >DOWNTO<конечное состояние > DO<оператор>
Цикл ДО
WHILE<условие>DO<оператор>
Цикл ПОКА
REPEAT
Оператор;
UNTIL<условие>;
Меню run
Run- запуск на исполнение
Stepover-пошаговое исполнение программы
Traceinto- пошаговое исполнение программы только подпрограммы выполняются оператор за оператором
Gotocursor – выполнение до курсора
Programreset- завершение процесса отладки
Parameters- окно для ввода параметров для отладки
Меню compile
Compile- компиляция файла, находящегося в активном окне редактирования.
Make – условная компиляция изменённых модулей в ЕХЕ файл
Build- безусловная компиляция многомодульной программы с созданием ЕХЕ файла
Target…-выбор в окне таргет целевой платформы для приложения
Primaryfile…-открывает окно для указания главного файла, компилируемой программы.
Меню Debug:
Breakpoints- установка точек условного и безусловного перехода
Callstack – показывает процедуры выполнявшиеся ранее.
Register – информация о регистрах процессора
Watch – окно значений переменных
Output – окно результатов работы программы
Userscreen – просмотр результатов включая графику
Evaluate/ modify.. – окно изменения значений выражений
Addwatch – окно значений и переменных вовремя отладки
Addbreakpoint.. – окно установки точек прерывания программы
Константы - могут использоваться целые, вещественные, шестнадцатеричные числа, логические константы, символы, строки, множества и признак неопределённого указателя NIL.
Целые числа: от –2147483648 до 2147483647
Вещественные числа: (экспоненциальная часть) 3.14E5
16-ричное число: $(код 36 в ASCII) $00000000- $F…$F(8)
Логическая константа: True, False.
Символьная константа: любой символ в ‘ ‘, либо указатель внутри кода #83=’S’
Конструктор множества - список элементов множества в [].
[1,2,3,4],[red, blue],[true, false]. В ТП разрешается объявление констант
consta=12/343;
Типизированные константы фактически являются переменными со статическим классом памяти. В отличие от простых констант, в описании типизированных указывается как значение константы, так и её тип.
Существуют типы:
Константа, константа-адрес, константа-массив, константа-запись, константа-объект, константа-множество.
Указательный тип:
Typeptr = ^integer;
Conctintptr:ptr=nil;
Структурированный тип:
1 массив (array)
2 множество (setof 1..4)
3 запись (record)
4Объектного типа (object)
<имя переменной>:=<выражение>;
арифметические логические отношения прочие