- •Основные элементы языка. История создания и развитие языка программирования
- •Структурная схема программы на алгоритмическом языке.
- •Лексика языка. Типы данных.
- •Типы данных
- •Переменные и константы.
- •Выражения и операции.
- •Операторы языка. Синтаксис операторов присваивания.
- •Синтаксис операторов ввода-вывода.
- •Операторы Write и WriteLn
- •Операторы Read и ReadLn
- •Составление программ линейной структуры.
- •Синтаксис операторов безусловного и условного переходов.
- •Составной оператор.
- •Вложенные условные операторы.
- •Составление программ разветвляющейся структуры. Выберите из предложенного ниже списка задачи для самостоятельного решения.
- •Составление программ сложной разветвляющейся структуры.
- •Оператор case. Оператор выбора case. Решение задач.
- •Оператор goto.
- •Синтаксис операторов циклов.
- •Циклические конструкции.
- •Циклы с предусловием.
- •Задачи для самостоятельного решения:
- •Циклы со счетчиком.
- •Общая форма записи цикла со счетчиком
- •Циклы с постусловием.
- •Задачи для самостоятельного решения:
- •Составление программ циклической структуры.
- •Проверьте себя, ответив на вопросы:
- •Доступ к элементам массива.
- •Изменение значения некоторых элементов
- •Нахождение номеров элементов с заданным свойством
- •Нахождение количества элементов с заданным свойством
- •Задачи для самостоятельного решения
- •Вставка элементов в одномерный массив. Вставка одного элемента
- •Вставка нескольких элементов
- •Задачи для самостоятельного решения
- •Перестановка двух элементов
- •Перестановка части массива
- •Работа с несколькими массивами
- •Задачи на использование одномерных массивов
- •Самостоятельное решение задач.
- •Формирование значений элементов массива случайным образом и с клавиатуры и вывод их на экран
- •Нахождение количества элементов с данным свойством
- •Определить, отвечает ли заданный массив некоторым требованиям
- •Изменение значений некоторых элементов, удовлетворяющих заданному свойству
- •Заполнение массива по правилу
- •Задачи для самостоятельного решения
- •Вставка строк и столбцов
- •Удаление строк и столбцов
- •Задачи для самостоятельного решения Задачи на вставку элементов:
- •Задачи на удаление элементов:
- •Задачи для самостоятельного решения
- •Задачи на использованиедвумерных массивов
- •I. Заполнение и анализ элементов массива
- •II. Работа с одномерным и двумерным массивами
- •Дополнительные задачи (на усмотрение учителя)
- •Для любопытных Графические программы с применением массивов.
- •Сортировка выбором
- •Сортировка массива с помощью рекурсии
- •Рекурсивная сортировка слиянием (для любопытных)
- •Строка. Тип данных string. Строковые переменные, их описание. Длина строки. Операции над строками.
- •Задачи для самостоятельного решения
- •Задачи для дополнительного решения (на усмотрение учителя)
- •Стандартные функции для работы со строками (concat,copy,length, pos,upcase). Функция Length
- •Функция Upcase
- •Функция Copy
- •Функция Pos
- •Функция Concat
- •Задачи для самостоятельного решения
- •Стандартные процедуры для работы со строками (delete, insert,str,val).
- •Задачи для самостоятельного решения
- •Задачи для дополнительного решения (на усмотрение учителя)
- •Контрольная работа.
- •Сформулируйте тексты решенных ниже задач
- •Выберите с учителем задачи для самостоятельного решения:
- •Решение задач.
- •Бегущая строка. Пример программы осыпающихся букв. Строки в графическом режиме (для увлеченных программированием).
- •Тип данных char. Операции над символами.
- •1.Организовать ввод фио только на русском языке.
- •2.Вывести все совершенные числа в данном диапазоне.
- •3.Введенное число - полиндром?
- •2.Найти факториал числа с помощью рекурсии.
- •Задачи на построение процедур и функций
- •Самостоятельное решение задач.
- •I Выберите с учителем одну из предложенных ниже задач (тип Integer, real)
- •II Выберите с учителем одну из предложенных ниже задач (тип char)
- •III Выберите с учителем одну из предложенных ниже задач (тип string)
- •IV Выберите с учителем одну из предложенных ниже задач (тип record)
- •Текстовые файлы
- •Компонентные файлы
- •Бестиповые файлы
- •Последовательный и прямой доступ
- •Задачи на работу с файлами
- •Использование библиотеки crt
- •Программирование клавиатуры
- •Текстовый вывод на экран
- •Программирование звукового генератора
- •Использование библиотеки Graph
- •Переход в графический режим и возврат в текстовый
- •Краткая характеристика графических режимов работы дисплейных адаптеров
- •Процедуры и функции
- •Координаты, окна, страницы
Оператор goto.
В языке принят естественный порядок выполнения программы: последовательный. Рассмотренные выше операторы if и case осуществляют переход к выполнению соответствующего оператора в зависимости от выполнения условия или предложенного выбора. Однако в практике программирования задач возникает необходимость безусловного перехода для выполнения нужной последовательности операторов. Например, необходимо обойти участок программы, а вернуться к нему позже. Для этого предназначен оператор безусловного перехода, который имеет следующую форму записи:
goto метка;
Метка представляет собою число без знака в диапазоне 1-9999 либо последовательность латинских букв и цифр.
Перед использованием метка должна быть объявлена в разделе описания меток, который срузу следует за разделом описания используемых модулей:
Uses Crt, Graph; Label Metka1, Metka2; Const P=3.14; Var x : integer; |
После описания метки ее можно использовать в программе. Метка записывается перед помечаемым оператором и отделяется от него двоеточием. А оператор goto должен помещен в то место программы, откуда выполняется переход. Оператор goto передает управление на оператор с заданной меткой. Оператор goto можно вставлять в любое место программы, где могут располагаться операторы языка. Например,
Begin . . . if Alpha = 360 then goto Metka1 else writeln (‘Эта фигура - не окружность‘); . . . Metka1 : Arc(X,Y,0,Alpha,R); . . . End. |
Приведём пример уже знакомой Вам программы, применив в ней оператор безусловного перехода.
Program Number2; Label Metka; Var a, b, c : integer; Begin Metka : writeln(‘Введите цифру ‘); readln(a); case a of 0 : writeln (‘ноль‘); 1 : writeln (‘один‘); 2 : writeln (‘два‘); 3 : writeln (‘три‘); 4 : writeln (‘четыре‘); 5 : writeln (‘пять‘); 6 : writeln (‘шесть‘); 7 : writeln (‘семь‘); 8 : writeln (‘восемь‘); 9 : writeln (‘девять‘) else begin writeln (‘Это число не является цифрой‘); goto Metka; end; end; readln; End. |
Теперь в этой программе мы заставляем пользователя правильно ввести цифру. Сколько бы раз пользователь ни вводил числа не из промежутка 0..9, программа будет выдавать сообщение об ошибочном вводе и снова просить ввести цифру.
Задание. Наберите программу и протестируйте ее.
В простых программах этот оператор не вызывает затруднений. При написании сложных и объёмных программ могут быть затруднения, поэтому программисты стараются не использовать этот оператор. Возникает вопрос: где должен использоваться безусловный переход? На этот вопрос следует ответить - “нигде”. Любая программа, написанная с goto, может быть запрограммирована без этого оператора.
Следует ли вообще использовать оператор перехода? Ответить трудно. В основном применение оператора безусловного перехода оправдано в двух случаях: при преждевременном завершении цикла или программы. Но даже в этих случаях можно обойтись некоторой стандартной управляющей структурой.
Не будет ничего удивительного в том, что в Ваших программах не будет применяться безусловный переход. В общем случае рекомендуется избегать использования этого оператора для обеспечения лучшего понимания работы программы. Бесконтрольное применение оператора goto может усложнить программу настолько, что разобраться в ней будет невозможно. Поэтому программисты считают применение оператора безусловного перехода плохим стилем программирования.
Задание. Выберите произвольно из решенных Вами задач две и дополните их решение использованием оператора безусловного перехода goto.