- •Разработка программ с разветвленной структурой
- •2.5. Технология отладки программы в интегрированной среде программирования TurboPascal
- •2.6. Справки по операторам для разработки программ с разветвленной структурой
- •2.6.1. Оператор if
- •2.6.2. Оператор выбора case
- •2.6.3. Оператор goto
- •2.7. Пример программ с разветвленной структурой
- •Контрольные вопросы
2.6.3. Оператор goto
Оператор безусловного перехода gotoозначает «перейти к» и применяется в случаях, когда после выполнения некоторого оператора надо выполнить не следующий оператор, а какой-нибудь другой. Метка объявляется в разделе описания меток и может содержать как цифровые, так и буквенные символы. Метка отделяется от помеченного оператора двоеточием.
Например:
·····························
label M1;
var
n : integer;
x,y : real;
begin
readln(n,x);
·····························
goto M1;
·····························
M1:
y:=x*2-3/x;
writeln(‘y=’, y);.
2.7. Пример программ с разветвленной структурой
Пример 1. Составить программу, которая вычисляет частное двух целых чисел.
Решение. В связи с тем, что делить на нуль нельзя, организовать контроль ввода данных. Для контроля вводимых значений делителя необходимо использовать оператор условного перехода if ... then ... else.
Блок-схема алгоритма показана на рисунке 1.
Рисунок 1 – Блок-схема алгоритма к примеру 1
Текст программы может выглядеть следующим образом:
program lab_2_1;
var
А,В: integer;
Rezult: real;
begin
Write('Введите значение делимого А =');
Readln(A) ;
Write('Введите значение делителя В =');
Readln(В);
if B=0 {Контроль ввода}
then Writeln('Ha нуль делить нельзя') {Условие выполнено}
else {Условие не выполнено}
begin {Начало составного оператора}
Rezult := А / В;
Writeln('Частное чисел', А,' и ',В,' = ', Rezult);
end; {Конец составного оператора}
end.
Пример 2. Разработать программу, имитирующую работу калькулятора.
Решение.Программа должна ввести два числа, знак арифметической операции, вычислить результат и вывести его на экран. Блок-схема алгоритмапоказана на рисунке 2.
Рисунок 2 – Блок-схема алгоритма к примеру 2
Текст программы может выглядеть следующим образом:
PROGRAM Calc1;
VAR
X,Y:REAL;
Op: CHAR;
BEGIN
WRITE(’Введите X и Y: ’); READLN(X,Y);
WRITE(’Введите знак операции: ’); READLN(Op);
CASE Op OF
’+’ : WRITELN(X+Y);
’-’ : WRITELN(X-Y);
’*’ : WRITELN(X*Y);
’/’ : WRITELN(X/Y);
ELSE WRITELN(’Такой операции нет’);
END;
END.
Пример 3. Разработать программу, имитирующую работу калькулятора, так, чтобы она завершалась только по указанию пользователя.
Решение.Программа должна ввести два числа, знак арифметической операции, вычислить результат, вывести его на экран и завершиться по указанию пользователя. Блок-схема алгоритмапоказана на рисунке 3.
Рисунок 3 – Блок-схема алгоритма к примеру 3
Текст программы может выглядеть следующим образом:
PROGRAM Calc2;
LABEL 1;
VAR X,Y:REAL;
Op:CHAR;
BEGIN
1:WRITE(’Введите X и Y: ’); READLN(X,Y);
WRITE(’Введите знак операции: ’); READLN(Op);
CASE Op OF
’+’ : BEGIN WRITELN(X+Y); GOTO 1; END;
’-’ : BEGIN WRITELN(X-Y); GOTO 1; END;
’*’ : BEGIN WRITELN(X*Y); GOTO 1; END;
’/’ : BEGIN WRITELN(X/Y); GOTO 1; END;
ELSE WRITELN(’Такой операции нет’);
END;
END.
Пример 4. Составить программу вычисления функции
Текст программы может выглядеть следующим образом:
Program Lab_2-1;
Uses CRT; { Раздел объявления внешних модулей }
Label M1,M2;
var
n : integer;
x,y : real;
p: byte; {Признак выполнения пунктаN1}
begin
clrscr; { Очистка экрана }
writeln(‘Программа вычисления функции...’);
{ Вывод на экран меню }
writeln(‘+--------------------------------------------+’);
writeln(‘| 1. Ввод данных |’);
writeln(‘| 2. Вычисление функции и вывод результатов |’);
writeln(‘| 3. Завершение работы программы |’);
writeln(‘+--------------------------------------------+’);
p:=0;
M1: writeln(‘введите пункт меню’);
readln(n); { Ввод номера пункта меню}
case n of
1: begin { Ввод данных }
M2: write(‘Введите значение аргумента x=’);
readln(x)
{ Проверка допустимого значения аргумента }
if x=0 then begin
writeln(‘x не может быть равным 0 по условию’) ;
goto M2; end;
p:=1; {Пункт N1 выполнен}
end;
2: { Вычисление значения функции }
begin
If p<>0 then
Writeln (‘Данные не введены, выполните пункт N1’);
else
begin
{ Операторы вычисления и вывода значения функции }
if x>0 then y:=1/x else y:=x*x;
writeln(‘при х=’, x:7:2, ‘ y=’, y:7:2)
end;
end;
3: Exit { Выход из программы }
end; { end case }
goto M1;
end. { Конец программы}
Варианты заданий
1. 2.Даны три числа a, b, c (a 0), Определить имеет ли квадратное уравнение корни. Если да, то найти их, в противном случае выдать сообщение, что корней нет. Результат вывести на экран. |
1. 2. Дано два действительных числа X и Y. Определить, принадлежит ли точка с координатам (X,Y) окружности радиусом R. Результат вывести на экран.
|
1. 2. Определить, принадлежит ли точка с координатами (x, y) кольцу между двумя окружностями с радиусами R1 и R2 (R1>R2). Результат вывести на экран. |
1. 2. Можно ли построить треугольник с длинами сторон X, Y и Z? Результат вывести на экран.
|
1. 2. Вычислить площадь треугольника со сторонами А, В, С. Перед вычислением площади проверить условие существования треугольника с заданными сторонами. |
1. 2. Определить, является ли треугольник со сторонами A,B,C равнобедренным и вычислить его площадь. |
1. 2. Текущее показание электронных часов: m ч (0≤m≤23) n мин (0≤n≤59) k с (0≤k≤59). Какое время будут показывать часы через p часов q минут r секунд? |
1. 2. Определить, можно ли сделать две квадратных заготовки со стороной А из листа железа прямоугольной формы со сторонами В и С. |
1. 2. Определить, во сколько раз площадь круга радиуса R больше площади сегмента, отсеченного хордой длины А. |
1. 2. Даны три прямоугольных треугольника, катеты которых равны а1,а2; в1,в2; с1,с2 соответственно. Определить номер треугольника с наибольшей гипотенузой. Результат вывести на экран. |
1. 2. Окружность вписана в квадрат заданной площади. Найти площадь квадрата, вписанного в эту окружность. Во сколько раз площадь вписанного квадрата меньше площади заданного? |
1. 2. Вычислить высоты треугольника со сторонами a, b, c. |
1. 2. Найти площадь круга, вписанного в треугольник с заданными сторонами. |
1. 2. Треугольник задан величинами своих углов и радиусом вписанной окружности. Найти стороны треугольника. |
1. 2. Составить программу вычисления пути, пройденного лодкой, если ее скорость в стоячей воде v км/ч, скорость течения реки v1 км/ч, время движения по течению t1 ч, а против течения t2 ч.
|
|
|
|