Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Pas_Lab2.doc
Скачиваний:
7
Добавлен:
15.03.2016
Размер:
167.94 Кб
Скачать

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 ч.

  1. Составить программу, печатающую значение true, если указанное высказывание является истинным, и false – в противном случае.

  2. График функции y=ax2+bx+c проходит через заданную точку с координатами (m,n).

  1. Определить, поместится ли круг площадью R в квадрате площадью S. Результат вывести на экран.

  1. Определить, поместится ли квадрат площадью S в круге радиусом R. Результат вывести на экран

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]