Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metodichka_red._sent2 (2).doc
Скачиваний:
6
Добавлен:
02.09.2019
Размер:
1.07 Mб
Скачать

Раздел 6.2 Алгоритмическая структура – ветвления

Для реализации одной из основных алгоритмических структур – конструкции ветвления (выбора) в алгоритмическом языке Pascal используют условный оператор и оператор выбора.

Условный оператор IF .. THEN позволяет выполнять те или иные действия в зависимости от выполнения логического условия.

Используются две конструкции:

If <условие> then <оператор 1 >

If <условие> then <оператор 1 > else <оператор 2 >,

Где If, then, else – зарезервированные слова

Примеры:

1) if (x<> 0) then y:= 2 * z / x

2) if (A>0) and (B>0) and (c>0) and (a+b+c=180)

then writeln (‘являются углами треугольника’)

else writeln (‘не являются углами треугольника’);

3) if (x>5)

then

begin

x: = x+5;

y: = 1

end

else

y: = - 1;

Условные операторы могут быть вложенными друг в друга:

If

Then

If

Then

Begin

. . .

end

Else

Begin

. . .

end

Else

Begin

. . .

end.

Пример программы с ветвлением: Программа сравнения двух чисел.

Program sravn;

uses crt;

var

first_number, second_number: real;

Begin

writeln (‘Введите первое число’);

readln (first_number);

writeln (‘Введите второе число’);

readln (second_number);

if first_number < second_number

then writeln (‘Наименьшим является первое число’)

else

if first_number = second_number

then writeln (‘Введенные значения равны’)

else writeln (‘Наименьшим является второе число’);

End.

Задания к практическим занятиям

  1. Напишите программу, которая считывает три вещественных значения и заменяет каждое отрицателЬное значение его модулем, а нулевое – значение числа .

  2. Напишите программу, которая считывает три вещественных значения и сообщает о том, какое из введенных значений наибольшее. Предусмотреть возможность равенства всех или некоторых введенных значений.

  3. Написать программу для вычисления значения корней квадратного уравнения

ax2+bx+c=0 в общем случае включая наличие комплексных корней.

  1. Написать алгоритм решения следующей задачи: заданы три числа x, y, z. Если x<0, то P задать как максимальное из y, z. Если x0, то P задать как минимальное из y, z. Исходные данные: x=-3, y=7, z=3.

5. Заданы два числа x, y. Если их сумма положительна, то переменной P присвоить значение x2+y2; если отрицательна или равна нулю, то P задать как (x+y)2. Исходные данные: X=- 4, Y=7.

  1. Зритель, сидящий в k –м ряду концертного зала и радиослушатель, находящийся в другом городе, слушают концерт. Составить программу определения, кто их них первый услышал мелодию, если известно расстояние между городами, расстояние от сцены до первого ряда, расстояние между рядами, а также скорость распространения звука и радиоволн.

  2. На заданном расстоянии от объекта стоит пушка. Известен угол наклона ствола пушки и скорость снаряда. Составить программу определения, попадет ли снаряд:

а). в стену заданной высоты;

б). в облако. Пушка стреляет в направлении движения градового облака в тот момент, когда оно проплывает над пушкой. Известны длина и скорость облака, высота на которой оно движется.

  1. Составить программу поиска среди трех чисел a, b, c хотя бы :

  • одной пары равных между собой чисел;

  • одного четного числа;

  • одной пары дающей в сумме четное число.

  1. Составить программу упорядочивания значений трех переменных a, b, c таким образом, чтобы:

  • A < b < c

  • A > b > c

  1. Составить программу анализа введенного пользователем числа (целое или нет; положительное, отрицательное или нуль; четное или нечетное).

11. Для действительных значений а и b составить программу полного анализа и решения:

  • линейного уравнения ax=b;

  • линейного неравенства ax<b;

  • кубического уравнения ax3+bx+c>0

12. Для действительных значений а и b составить программу полного анализа и решения:

  • квадратного уравнения ax2+bx+c=0;

  • квадратного неравенства ax2+bx+c>0.

13.Составить программу определения типа треугольника (равносторонний, равнобедренный, разносторонний):

  • по заданным длинам его сторон;

  • по заданным координатам его вершин на плоскости.

14.Составить программу определения, пересекаются ли две прямые, заданные своими уравнениями на плоскости, и установления координат точки пересечения, если она есть.

15.Составить программу определения принадлежности точек А(x1,y1), B(x2,y2), С(x3, y3) одной прямой.

16.Плот составлен из n бревен длиной l и диаметром d. Составить программу определения, выдержит ли этот плот k путешественников со средней массой m. Плотность дерева принять равной 0,8 плотности воды.

17.Составить программу определения, может ли кирпич, имеющий форму прямоугольного параллепипеда с ребрами a, b, c пройти через прямоугольное отверстие со сторонами x и y.

18 На затонувшем корабле обнаружены сундуки с сокровищами. Сундуки можно извлечь только через иллюминатор. Составить программу определения, можно ли это сделать, если известны: r – радиус иллюминатора, а, b, c – линейные размеры прямоугольных сундуков.

19.Самолет находится на расстоянии l от радиолокационной станции с радиусом действия r и движется прямолинейно под углом а к прямой, соединяющей начальное положение самолета со станцией. Составить программу определения, может ли станция обнаружить самолет. Если да, то вычислить расстояние, которое самолет пролетает в условиях видимости.

20. Даны площадь круга и площадь правильного n-угольника. Составить программу определения. Составить программу определения, может ли поместиться одна фигура в другой при совмещении центров их симметрии.

Структурированный оператор – оператор варианта, оператор выбора CASE.

Если вариантов выбора немного, то можно обойтись конструкцией ветвления if. Если вариантов много, то используется оператор Case.

Case <управляемая переменная или выражение> of

Набор значений 1: Оператор 1;

2: Оператор 2;

3: Оператор 3;

4: Оператор 4;

N: Оператор N;

Else

<альтернативный всем наборам оператор>

end;

Пример:

Program t2;

Var i: integer;

x, y, z: real;

Begin

Readln (i, x, y);

Case i of

1: z: =x + y;

2: z: =x - y;

3: z: =x * y;

4: z: =x/y;

end;

writeln (z);

end.

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