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

4.2.2. Оператор безусловного перехода

Оператор GOTO позволяет изменить стандартный последовательный порядок выполнения операторов и перейти к выполнению программы, начиная с заданного оператора. Оператор, на который происходит переход, должен быть помечен меткой, которая и указывается в GOTO.

Формат записи оператора:

GOTO <метка>;

Использовать оператор GOTO следует крайне осторожно. Широкое его применение без особых на то оснований ухудшает понимание логики работы программы. Безусловный переход можно осуществлять далеко не из каждого места программы и не в любое место программы. Так, нельзя с помощью этого оператора перейти из основной программы в подпрограмму или выйти из подпрограммы. Не рекомендуется осуществлять переход внутрь структурированного оператора, т.к. он может дать неправильный результат.

Задача1. Составить программу вычисления значения функции y=x+ln(x).

program fn1;

label 20;

var X, Y : real;

begin Write ('Введите значение X'); Readln(X);

if X<=0 then begin

Writeln('программа прервана'); goto 20

end

else Y:=X+ln(X);

Writeln('Y = ',Y)

20: end.

Задача 2. Даны три различных целых числа. Определить, можно ли из этих чисел образовать арифметическую прогрессию.

Указание. Если три числа a,b,c образуют арифметическую прогрессию, то справедливо равенство b = (a+c)/2.

program arif_progr;

var a,b,c: integer;

begin

Write ('Введите значения a,b,c: '); Readln(a,b,c);

if (a+b = 2*c) or (a+c = 2*b) or (b+c = 2*a) then

Writeln('данные числа образуют арифметическую прогрессию ')

else Writeln('данные числа не образуют арифметическую прогрессию ')

end.

Задача 3. Вывести на экран номер четверти, которой принадлежит точка с координатами (x, y), при условии, что x и y отличны от нуля.

program koordinati;

var x, y: real;

begin Write ('Введите координаты точки: '); Readln(x, y );

if x>0 then if y>0 then Writeln('точка находится в 1 – ой четверти ')

else Writeln('точка находится в 4 – ой четверти ')

else if y>0 then Writeln('точка находится во 2 – ой четверти ')

else Writeln('точка находится в 3 – ей четверти ')

end.

Задача 4. Составить программу вычисления корней квадратного уравнения

ax2 + bx + c = 0 при a не равном нулю.

program KVUR;

var a,b,c: real; {коэффициенты уравнения, a<>0}

d: real; {дискриминант}

x1,x2: real; {действительные корни}

e: real; {действительная часть мнимых корней}

f: real; {коэффициент при мнимой части}

begin

Writeln('Введите коэффициенты a, b, c'); Readln(a,b,c);

d:= sqr(b)-4*a*c; e:= -b/(2*a); f:= sqrt(abs(d))/(2*a);

if d>=0 then

begin x1:= e-f; x2:= e+f;

Write('Корни действительные: '); Writeln('x1=',x1:8:5,' x2=',x2:8:5);

end

else

begin Writeln('Корни мнимые.'); Writeln('Действительная часть: ',e:8:5,',');

Write('коэффициент при мнимой части: ',f:8:5);

end

end.

Задача 5. В небоскребе N этажей и всего один подъезд; на каждом этаже по 3 квартиры. Человек садится в лифт и набирает номер нужной ему квартиры M. На какой этаж должен доставить лифт пассажира?

program Biult;

var M, x: integer;

begin

write ('Введите номер квартиры : '); readln (M);

x: =M div 3; {Определяем целую часть от деления номера квартиры на 3}

{Проверяем условие целочисленного деления на 3. Если «истина», то целая часть от деления будет нужным результатом, если «ложь» – к результату добавляем единицу}

if M mod 3 = 0 then writeln ('Номер этажа = ',x)

else writeln ('Номер этажа = ',x+1);

end.

Задача 6. Даны четыре целых числа. Определить сумму тех из них, которые кратны 3.

program Number;

var

a, b, c, d, S: integer;

begin

write (' Введите число a = '); readln (a);

write (' Введите число b = '); readln (b);

write (' Введите число c = '); readln (c);

write (' Введите число d = '); readln (d);

S:=0;

{Определяем числа, которые кратны 3, и считаем их сумму.}

if a mod 3 = 0 then S:=S + a;

if b mod 3 = 0 then S:=S + b;

if c mod 3 = 0 then S:=S + c;

if d mod 3 = 0 then S:=S + d;

writeln(S);

end.

Задача 7. Найти наибольшее значение среди трех величин.

program Number3;

var A, B, C, D: integer;

begin

write ('Введите значение A: ');

readln (A);

write ('Введите значение B: ');

readln (B);

write ('Введите значение C: ');

readln (C);

if A>B then D:=A

else D:=B;

if C>D then D:=C;

writeln ('Наибольшее число = ', D);

end.

Задача.8 Составить программу для вычисления значения функ­ции у(х):

program Func;

var y, x: integer;

begin

write (' x = ');

readln (x);

if x = 1 then y:=1

else

if x<1 then y:= -1

else y:= x;

writeln ('Значение функции y = ',y);

end.

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