- •1.Этапы разработки компьютерной программы.
- •2.Алгоритмы и их свойства.
- •3.Формы существования алгоритмов; Блок-схемы; Примеры записи алгоритма в виде блок схемы.
- •4.Классификация алгоритмических языков.
- •5.Понятие структурного программирования.
- •6.Характеристика алгоритмического языка Паскаль.
- •7.Элементы языка Паскаль (алфавит, индентификаторы, константы, выражения, операции).
- •8.Структура программ, при использовании для разработки программы алгоритмического языка Паскаль.
- •9.Операторы Паскаля.
- •1. Составной и пустой операторы
- •2. Операторы ветвлений
- •3. Операторы повторений
- •10.Ввод и вывод данных в Паскале.
- •11.Операторы Паскаля: составной оператор и пустой оператор.
- •12. Операторы Паскаля: условный оператор.
- •13. Операторы Паскаля: операторы повторений.
- •14. Операторы Паскаля: операторы цикла с предусловием.
- •16. Операторы Паскаля: оператор цикла с постусловием (repeat… until).
- •17.Операторы Паскаля: оператор цикла с параметрами (for …to …do).
- •18. Операторы Паскаля: оператор безусловного перехода, метки. Оператор безусловного перехода goto
- •19.Подпрограммы в Паскале.
- •20.Процедуры в Паскале.
- •21.Функции в Паскале.
- •Описание и вызов процедур и функций
- •22.Типы данных в Паскале: простые типы.
- •23. Типы данных в Паскале: структурированные типы. Массивы.
- •24. Типы данных в Паскале: структурированные типы. Записи.
- •25. Типы данных в Паскале: структурированные типы. Множества.
- •26. Типы данных в Паскале: структурированные типы. Файлы (понятие файла, доступ к файлу, процедуры и функции для работы с файлами).
- •27. Типы данных в Паскале: структурированные типы. Файлы (текстовые, типизированные, нетипизированые).
- •28.Аппарат формальных и фактических параметров при работе с подпрограммами.
- •Назначение подпрограмм.
- •Механизм подпрограмм, их описание и вызов
- •Параметры подпрограмм ]Назначение параметров
- •[Править]Формальные и фактические параметры
- •[Править]Способ передачи параметров в подпрограмму
- •[Править]Виды подпрограмм
- •29.Массивы.
- •30.Сортировки массивов. Прямые методы сортировки.
- •31.Сортировка вставкой.
- •32.Сортировка массивов. Прямые методы сортировки.
- •33.Сортировка обменом.
- •34.Сортировка массивов. Прямые методы сортировки
- •35. Сортировка выбором.
- •36.Двоичный поиск в массиве.
- •37. Поиск данных в массиве по ключу.
- •38.Средства тп для работы с файлами.
- •39.Классификация структур данных в Паскале.
- •40.Данные статической структуры в Паскале.
- •41.Переменные строкового типа.
- •42.Динамические структуры данных в Паскале.
- •43.Динамическая память. Понятия адреса и указателя. Объявление указателей. Динамическая память
- •Адреса и указатели
- •Объявление указателей
- •44.Динамическая память. Выделение и освобождение динамической памяти.
- •45.Процедуры и функции для работы с динамической памятью.
- •46.Связанные динамические данные.
- •47. Связанные динамические данные: очередь.
- •Принципы работы с динамической очередью
- •48. Связанные динамические данные: стек.
- •Описание стека
- •Работа с динамическим стеком
- •49. Связанные динамические данные: списки. Динамические структуры данных
- •Классификация структур данных
- •Данные динамической структуры:
- •Статические и динамические переменные в Паскале
- •Указатели
- •Объявление указателей
- •Выделение и освобождение динамической памяти
- •Присваивание значений указателю
- •Операции с указателями
- •Присваивание значений динамическим переменным
- •Динамические структуры
- •Описание списка
- •Формирование списка
- •Просмотр списка
- •Удаление элемента из списка
- •Динамические объекты сложной структуры
- •50. Связанные динамические данные: деревья.
- •51.Понятие рекурсии, примеры рекурсивных алгоритмов.
18. Операторы Паскаля: оператор безусловного перехода, метки. Оператор безусловного перехода goto
Оператор безусловного перехода goto имеет следующую форму:
goto метка
Он переносит выполнение программы к оператору, помеченному меткой метка.
Метка представляет собой идентификатор или целое без знака. Чтобы пометить оператор меткой, необходимо перед оператором указать метку с последующим двоеточием:
label1: оператор
Метки должны быть описаны в разделе меток с использованием служебного слова label:
label 1,2,3;
Например, в результате выполнения программы
label 1,2; begin var i := 5; 2: if i<0 then goto 1; write(i); Dec(i); goto 2; 1: end.
будет выведено 543210.
Метка должна помечать оператор в том же блоке, в котором описана. Метка не может помечать несколько операторов.
Переход на метку может осуществляться либо на оператор в том же блоке, либо на оператор в объемлющей конструкции. Так, запрещается извне цикла переходить на метку внутри цикла.
Использование оператора безусловного перехода в программе считается признаком плохого стиля программирования. Для основных вариантов использования goto в язык Паскаль введены специальные процедуры: break - переход на оператор, следующий за циклом, exit - переход за последний оператор процедуры, continue - переход за последний оператор в теле цикла.
Единственный пример уместного использования оператора goto в программе - выход из нескольких вложенных циклов одновременно. Например, при поиске элемента k в двумерном массиве:
var a: array [1..10,1..10] of integer; ... var found := False; for var i:=1 to 10 do for var j:=1 to 10 do if a[i,j]=k then begin found := True; goto c1; end; c1: writeln(found);
19.Подпрограммы в Паскале.
Подпрограмма – Это программа, которая является вспомогательной для основной программы. У неё также есть свой переменные и константы. Она может содержать те же инструкции, что и основная программа.
Для чего нужны подпрограммы?
1) Когда один и тот же фрагмент повторяется несколько раз, удобно написать подпрограмму и вызывать её в тех местах, где она необходима. 2) Улучшает понимание программы.
Запомните: Подпрограммы записываются в разделе описания программы (до раздела var основной программы)
У подпрограмм два вида переменных – формальные и фактические. Формальные – Это, те переменные, которые записаны при создании подпрограммы. Фактические – Это, те переменные, которые записываются при вызове функций. То есть формальные => в фактические.
Виды подпрограмм. Существует два вида подпрограмм для паскаля – это функций(function) и процедуры(procedure).
Запомните: Отличие между функцией и процедурой в том: 1) Что функций есть свой тип, а процедуры нет. 2) Функция возвращает значение, процедура нет.
Для упрощения понимания отличия между функцией и процедурой. Напишем одинаковые программы, только одну с помощью функций, а другую с помощью процедуры.
Пример задачи: Написать функцию, которая сравнивает два числа и возвращает значение в виде знаков <, >, =.
Function znak(var a,b: integer): char;
znak – имя функций. char – тип функции(она, как переменная имеет свой тип) a,b – формальные переменные типа integer char – Функция должна вывести результат типа символ.
Далее var – основной программы. begin – основная программа.
zn:=znak(x,y); – вызов функции с фактическими переменными.
x – фактическая переменная для формальной переменной a y – фактическая переменная для формальной переменной b
Запомните: 1) Фактические переменные могут быть разными. 2) Фактические переменные должны стоять в том же порядке, что и формальные.
a,b – формальные переменные x,y – фактические переменные, они заменяются при вызове функций на формальные переменные a,b
Теперь процедура.
Procedure znak(var a,b:integer; var zn:char);
Обратите внимание. В функций function:char, а в процедуре переменная zn: char.Функция сама, какого либо типа, а в процедуре нам пришлось вводить дополнительную переменную для вывода знака. Вот главное отличие function от procedure. У функции ЕСТЬ свой тип, а у процедуры НЕТ.
Сравните, как вызывается функция и процедура в основной программе.
znachok - фактическая переменная для формальной переменной zn
Обязательно просмотрите следующие уроки, на которых подробно по отдельности описаны подпрограммы.