- •Кафедра математики и информатики
- •Практикум
- •Введение
- •1. Арифметические основы построения эвм
- •2. Интегрированная среда Turbo Pascal 7.1
- •2.1. Основные элементы ide Turbo Pascal 7.1
- •2.2. Ввод программы в среде Turbo Pascal
- •2.3.Сохранение программы в файле
- •2.4. Работа с существующей программой
- •2.5. Компиляция программы в среде Turbo Pascal
- •(Успешная компиляция: Нажмите любую клавишу...)
- •2.6. Выполнение программы в среде Turbo Pascal
- •2.7. Выход из среды Turbo Pascal
- •3. Элементы языка Turbo Pascal
- •3.1. Алфавит
- •3.2. Идентификаторы
- •3.3. Разделители
- •3.4. Основные типы данных и операции с ними
- •3.5. Константы и переменные
- •3.6. Выражения
- •3.7. Стандартные математические функции языка Турбо - Паскаль
- •3.8. Структура программы на языке Pascal
- •X,y,z: Real; {переменные типа Real}
- •I,j,k: Integer; {переменные типа Integer}
- •3.9. Контрольные вопросы
- •4. Лабораторная работа №1: Программирование линейных вычислительных процессов
- •4.1. Оператор присваивания
- •4.2. Ввод исходных данных. Операторы Read и ReadLn
- •4.3. Вывод данных. Операторы Write и WriteLn
- •4.4. Примеры составления программы
- •4.5. Контрольные вопросы
- •Раздел Var;
- •4.6. Варианты заданий
- •5. Лабораторная работа №2: Программирование разветвляющихся процессов
- •5.1. Методические указания
- •5.2. Условный оператор If и составной оператор Begin … End
- •5.3. Логические операции
- •5.4. Оператор безусловного перехода Goto
- •5.5. Примеры составления программы
- •5.6. Контрольные вопросы
- •5.7. Варианты заданий
- •6. Лабораторная работа №3: Циклический процесс
- •6.1. Общие сведения
- •6.2. Цикл с параметром
- •6.3. Цикл с предусловием
- •6.4. Цикл с постусловием
- •6.5. Итерационные циклы
- •6.6. Контрольные вопросы
- •6.7. Варианты заданий
- •6.7.2. Циклы со счетчиками Составить программы используя разные циклы (с предусловием, с постусловием, с параметром)
- •6.7.2. Итерационные циклы
- •7. Лабораторная работа №4: Вложенные циклы
- •7.1. Общие сведения
- •7.2. Примеры выполнения задания
- •7.3. Контрольные вопросы
- •7.4. Варианты заданий
- •8. Лабораторная работа №5: Массивы
- •8.1. Одномерные и многомерные массивы
- •В квадратных скобках - индексы массива
- •8.2.Символьные массивы
- •8.3. Инициализация элементов массива
- •8.4. Примеры выполнения задания
- •8.5. Контрольные вопросы
- •8.6. Варианты заданий
- •9. Лабораторная работа №6: Сортировки
- •Приложение 1
- •Приложение 2 Структурограммы
- •Структурное программирование
- •Приложение 3
- •(Основная и дополнительная)
- •Приложение 4 Сообщения об ошибках компиляции
- •(Ошибка 15 : Файл не найден)
- •113. Error in statement (ошибка в операторе)
- •Приложение 5
- •21 Столетие Библиографический список
- •Содержание
5.4. Оператор безусловного перехода Goto
Оператор безусловного перехода Goto используют для изменения последовательности (порядка) выполнения операторов и перехода к выполнению программы, начиная с оператора, имеющего метку. Эта же метка должна быть указана и в операторе Goto. Пример:
Label 1, 2;
Goto 1
.
.
.
1: WriteLn ('Abnormal program termination');
2: WriteLn ('Normal program termination');
Метки, используемые в Turbo Pascal, могут быть двух типов:
целым числом (в пределах от 0 до 9999);
обычным идентификатором.
Все используемые метки должны быть описаны в разделе объявления меток, начинающемся зарезервированным словом Label, пример: Label 1,2,A,B,X2;
Для того, чтобы пометить оператор, перед ним пишут метку, двоеточием отделяя её от оператора. Таким образом, можно пометить только один оператор. Следует иметь ввиду, что использовать оператор Goto нужно очень осторожно. Частое его применение приводит к затруднению понимания логики работы программы. При написании блок-схемы этот оператор отображается стрелкой перехода в нужную часть алгоритма.
5.5. Примеры составления программы
Пример 1. Определите, попала ли заданная точка с координатами (X,Y) в заштрихованную область, включая ее границы.
Program Example_5_1;
Uses Crt; {подключаем модуль}
Var
X,Y:Real; {описываем переменные}
Begin {начало программы}
ClrScr; {Производим очистку экрана}
WriteLn ('Введите координаты Х,У точки'); {выводим сообщение на экран}
ReadLn(x,y); {вводим данные}
If ((Y<=4*Sqr(X)+2) And (Y>=0)) Or (Y<=-1) then {если условия истинные}
WriteLn ('Точка попала в заданную область') {то вывод сообщения }
Else {иначе}
WriteLn ('Точка не попала в заданную область');{вывод другого сообщения}
End. {конец программы}
Пример 2. Значения переменных X, Y, Z вводятся с клавиатуры. Если XYZ, то все значения возвести в квадрат, при X>Y>Z каждое из них разделить на 2, в противном случае изменить знаки чисел. Изменённые значения переменных вывести на экран.
Обратите внимание, что при решении данной задачи в каждой ветви условного оператора используется составной оператор.
Program Example_5_2;
Uses Crt;
Var
X,Y,Z:Real; {описываем переменные}
Begin {начало программы}
ClrScr; {Производим очистку экрана}
Write ('Введите значение X,Y,Z'); {вывод сообщения на экран}
ReadLn (X,Y,Z); {ввод данных с клавиатуры}
If (X<=Y) And (Y<=Z) Then {проверяем условие, если условие истинно,}
Begin {то открываем составной оператор}
X:=Sqr(X); {вычисляем значение Х}
Y:=Sqr(Y); {вычисляем значение Y}
Z:=Sqr(Z); {вычисляем значение Z}
End; {закрываем составной оператор}
If (X>Y) And (Y>Z) Then {проверяем условие, если условие истинно,}
Begin {то открываем составной оператор}
X:=X/2; {вычисляем значение Х}
Y:=Y/2; {вычисляем значение Y}
Z:=Z/2; {вычисляем значение Z}
End {закрываем составной оператор}
Else {иначе выполняем ветку нет}
Begin {то открываем составной оператор}
X:= -X; {вычисляем значение Х}
Y:= -Y; {вычисляем значение Y}
Z:= -Z; {вычисляем значение Z}
End; {закрываем составной оператор}
WriteLn('X=',X,' Y=',Y,' Z=',Z); {вывод значения переменных}
End. {Конец программы}