Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
53
Добавлен:
27.04.2015
Размер:
1.27 Mб
Скачать

После окончания установки свойств форма должна выглядеть примерно так, как показано на рис. 4.4.2-8.

Рис. 4.4.2-8

9.Дважды щелкните мышью на форме.

Вокне Редактор кода (Code Editor) появится процедура события Form1_Load().

10.Для инициализации списка необходимо ввести следующий код программы:

ListBox1.ltems.Add("England" )

ListBox1.ltems.Add("Germany" )

ListBox1.ltems.Add("Mexico" )

ListBox1.ltems.Add("ltaly" )

Для добавления элементов в список на форме эти строки используют метод Add() объекта списка ListBox.

11. Чтобы переключиться обратно в окно Конструктора форм (Designer),необходимо

щелкнуть на

вкладке Form1.vb [Design] в верхней части окна Редактор кода (Code

Editor), а затем

дважды щелкнуть мышью на объекте списка ListBox1 на форме, чтобы

отредактировать его процедуру события.

В окне Редактор кода (CodeEditor) появится процедура события

ListBox1_SelectedIndexChanged( ).

12. Для обработки выбора, сделанного пользователем в списке, необходимо ввести следующие строки:

Label3.Text = ListBox1.Text

Select Case ListBox1.Selectedlndex

Case 0

Label3.Text ="Hello, programmer"

Case 1

Label3.Text ="Hallo, programmierer"

Case 2

Label3.Text ="Hola, programador"

Case 3

Label3.Text ="Ciao, programmatore"

End Select

Первая строка копирует имя выбранного элемента списка в свойство Text третьей надписи формы. Наиболее важным свойством, использованным в этом операторе, является свойство ListBox1.Text, которое содержит текст элемента, выбранного в списке. Остальные операторы являются частью условной конструкции Select Case. Эта конструкция в качестве проверяемой переменной использует свойство ListBox1.SelectedIndexСтраница, сравнивая128

Тема 4.4. Программирование алгоритмов разветвляющихся структур

его с несколькими значениями. Свойство SelectedIndex всегда содержит номер выбранного элемента списка; самый первый элемент имеет номер 0 (ноль), второй элемент имеет номер 1, следующий – 2 и так далее. Используя Selectedlndex, конструкция Select Case может быстро определить, какой выбор сделал пользователь, и отобразить на форме правильное приветствие.

13.Снова отобразить форму и дважды щелкнуть мышью на кнопке Выход (Button1).

Вокне Редактор кода (Code Editor) появится процедура события Button1_Click( ).

Вэтойпроцедуресобытиявведитеоператор End рис( .4.4.2-9).

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, _

ByVal e As System.EventArgs) _

HandlesMyBase.Load

ListBox1.Items.Add("England")

ListBox1.Items.Add("Germany")

ListBox1.Items.Add("Mexico")

ListBox1.Items.Add("Italy")

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) _

Handles Button1.Click

End

End Sub

Private Sub ListBox1_SelectedIndexChanged(ByVal sender _

As System.Object, ByVal e As System.EventArgs) _ Handles ListBox1.SelectedIndexChanged

Label4.Text = ListBox1.Text Select Case ListBox1.SelectedIndex

Case 0

Label4.Text = "Hello, programmer" Case 1

Label4.Text = "Hallo, programmierer" Case 2

Label4.Text = "Hola, programador" Case 3

Label4.Text = "Ciao, programmatore" End Select

End Sub

End Class

Рис.4.4.2-9

14.Чтобы сохранить изменения, щелкните на кнопке Сохранить все (SaveAll) на стандартной панели инструментов. В качестве места сохранения укажите соответствующую папку.

15.Чтобы запустить программу, щелкните на кнопке Начать отладку (Start Debugging), расположенной на стандартной панели инструментов.

16.В списке Выберите страну щелкните на каждом из названий стран.

Для каждой из перечисленных стран программа отображает приветствие. Иллюстрация на рис. 4.4.2-10 показывает приветствие для Италии.

Тема 4.4. Программирование алгоритмов разветвляющихся структур

Страница 129

Рис. 4.4.2-10

17.Чтобы остановить программу, щелкните на кнопке Выход. Программа остановится, и вернется среда разработки.

Вначале этой темы мы обсуждали события, на которые могут реагировать программы, написанные на Visual Basic, теперь вы узнали, как управлять различными типами событий с помощью условных конструкций If и Select Case.

4.4.3.Базовые алгоритмы разветвляющихся структур и их

программирование

Алгоритмы разветвляющихся структур позволяют описывать широкий класс задач: вычисление значений сложных функций, зависящих от условий; нахождение максимума и минимума среди нескольких переменных; выбора различных путей вычислительного процесса и т.д.

В примерах 4.4.3-1 – 4.4.3-6 описаны алгоритмы и процедуры наиболее часто встречающихся задач. Ввиду сложности первоначального понимания и оформления процедур-Sub и процедур-Function необходимо сделать несколько замечаний.

Если процедура не содержит ни входных, ни выходных параметров (является автономной функционально полной функцией), то она может быть оформлена как

процедура-Sub и как процедура-Function.

Если процедура содержит несколько входных параметров (с атрибутом ByVal) и несколько выходных параметров (с атрибутом ByRef), два и более, то эту процедуру следует оформлять как процедуру-Sub.

Если процедура содержит несколько входных параметров (с атрибутом ByVal) и один выходной параметр (с атрибутом ByRef), то она может быть оформлена и как процедура-

Sub, и как процедура-Function.

Этими замечаниями воспользуемся при написании процедур следующих примеров.

Пример 4.4.3-1.Написать процедуру, вычисляющую значение функции

1, если x = 0;

y(x)=

 

 

Sin(x),

если х > 0 или х < 0, где x – вводимое значение.

 

Схема алгоритма и код программы процедуры приведены на рис.4.4.3-1. В коде

процедуры vvodDbl2( ) и vivodDbl2( ) взяты из примера 4.3.4-2.

 

Тема 4.4. Программирование алгоритмов разветвляющихся структур

Страница 130

 

 

 

 

Function Pr4431( ) As Double

 

 

 

Начало

 

 

Dim x

As Double

 

 

 

 

 

 

 

 

 

Dim y

As Double

 

 

 

 

 

 

Ввод

 

 

x = vvodDbl2("Ввод

x=", TextBox1)

 

 

x

 

 

 

 

 

 

 

If

x = 0 Then

y = 1

Else

y =Sin(x)

Нет

 

x=0

Да

 

vivodDbl2(у,"Значение функции у", TextBox2)

 

 

 

 

Return y

 

 

 

 

 

 

 

 

End

 

 

 

 

y=sin(x)

 

 

y=1

Function

 

 

 

 

 

 

Вывод

 

 

 

 

 

 

 

 

 

 

 

y

 

 

 

 

 

 

 

 

 

 

 

Конец

 

 

 

 

 

 

 

 

 

Рис.4.4.3-1

 

 

 

 

 

 

 

 

 

 

 

Процедура-Function Pr4431( )

может быть вызвана из любой другой процедуры или

из модуля формы, например, как показано на рис. 4.4.3-2.

 

 

 

 

As

Double

 

 

 

 

 

 

 

 

Dim YY

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

YY=Pr4431( )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис.4.4.3-2

 

 

 

 

 

 

 

 

 

 

 

Если процедура-Function не будет содержать ввода и вывода

данных, то она будет

выглядеть, как на рис. 4.4.3-3.

В этом случае необходимо использование параметра функции

для передачи значения x в вызываемую процедуру -функцию Pr4433( ).

 

 

 

 

 

 

Function Pr4433(ByVal

x As Double) As Double

 

 

Dim y As Double

y = 1 Else y = Sin(x)

 

 

If x = 0 Then

 

 

Return y

 

 

 

End Function

 

 

Рис.4.4.3-3

Процедура-Function Pr4433( ) может быть вызвана из любой другой процедуры или из модуля формы, например, как на рис. 4.4.3-4.

Dim YY, x As Double

x = vvodDbl2("Ввод x=", TextBox1) YY=Pr4433( x )

vivodDbl2(YY,"Значение функции YY", TextBox2)

Рис.4.4.3-4

Оформим решение примера как процедуру-Sub. Программный код процедуры-Sub и соответствующее обращение к ней приведены на рис. 4.4.3-5 и 4.4.3-6 соответственно. При создании процедуры типа Sub необходимо ввести еще один параметр yy, который передает в процедуру значение параметра по ссылке (ByRef), так как именно через этот параметр происходит возврат результата работы процедуры- Sub в вызывающую процедуру. Здесь xx и yy – фактические параметры, на которые заменяются формальные параметры x и y при работе (вызове) процедуры Pr4435( ).

Тема 4.4. Программирование алгоритмов разветвляющихся структур

Страница 131

Sub Pr4435(ByVal x As Double, ByRef y As Double)

If x = 0 Then y = 1 Else y = Sin(x) End Sub

Рис.4.4.3-5

Dim XX, YY As Double XX=vvodDbl2("Ввод x=", TextBox1) Pr4435( XX, YY)

vivodDbl2(YY,"Значение функции YY", TextBox2)

Рис. 4.4.3-6

Пример 4.4.3-2.Написать процедуру, вычисляющую x

Sin(a2)+b , если а > b;

x =

a – b ,в противном случае.

Данную задачу можно решить двумя способами. На рис 4.4.3-7 приведена схема алгоритма решения задачи, в которой использовано стандартное разветвление, а на рис.4.4.3-8 – усеченное разветвление. Второй способ в данном случае предпочтительнее, поскольку упрощает программную реализацию алгоритма. Усеченное разветвление рекомендуется использовать в тех случаях, когда выбор из двух возможных ветвей производится последовательно и неоднократно.

Кроме того, здесь, как и в предыдущем случае, реализовать данную задачу можно как с помощью процедуры-Sub, так и с помощью процедуры-Function.

Начало

Ввод

a,b

Нет Да a>b

x=a-b

 

 

 

x=Sin(a2)+b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вывод x

Конец

Рис. 4.4.3-7

 

 

Function

Pr4437(ByRef a As Double_

Dim x

ByVal

b As Double) As Double

As Double

If

a > b

Then

x = Sin(a^2) + b

Else

x = a – b

End If

Return x

End Function

Тема 4.4. Программирование алгоритмов разветвляющихся структур

Страница 132

Начало

Ввод

a,b

x=a-b

Нет Да a>b

x=Sin(a2)+b

Вывод x

Конец

Рис. 4.4.3-8

Function Pr4438(ByVal a As Double_

ByVal b

As Double) As Double

Dim x As

Double

x = a – b

Then

x = Sin(a^2) + b

If a > b

Return x

 

 

End Function

Процедура-Function Pr4437( ) (или Pr4438( )) может быть вызвана из любой другой процедуры или из модуля формы, например, как на рис. 4.4.3-9.

 

 

 

 

Dim XX

As Double

 

 

Dim aa,

bb As Double

 

 

a=", TextBox1)

 

aa= vvodDbl2("Ввод

 

bb= vvodDbl2("Ввод

b=", TextBox2)

 

 

 

 

XX=Pr4438(aa, bb )

 

 

 

 

 

vivodDbl2(XX,"Значение функции ", TextBox3)

 

Рис. 4.4.3-9

 

 

 

Пример 4.4.3-2.Написать процедуру-Function, которая вычисляет значение

функции y(x) в соответствии со следующим правилом:

 

ex, если x<=-1;

y(x)=

3,

если

x>1;

 

2,

если

–1<х≤1.

Схема алгоритма и код программы вычисления сложной функции приведены на рис.4.4.3-10, где разветвление реализовано с использованием блочного If.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Начало

 

 

 

Function Pr44310(ByVal x

As Double) _

 

 

 

 

 

 

 

 

x

 

 

 

 

Dim y

As Double

 

 

 

 

 

 

 

 

 

 

 

 

 

As Double

 

 

 

 

 

 

 

 

 

Ввод

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X -1

 

 

 

 

If x <= 1 Then

 

 

 

 

 

 

 

 

 

Да

 

y

= Exp(x)

 

 

 

 

 

 

 

 

Нет

 

ElseIf

x > 1 Then

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Нет

x>1

Да

 

y=ex

 

 

y=3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Else

 

 

 

 

 

y=2

 

 

y=3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y=2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

End If

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Return y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

 

 

 

End

Function

 

 

 

 

 

 

 

 

 

Вывод

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Конец

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 4.4.3-10

 

 

 

 

 

 

 

 

 

 

Страница 133

 

Тема 4.4. Программирование алгоритмов разветвляющихся структур

 

Процедура-FunctionPr44310( ) может быть вызвана из любой другой процедуры или из модуля формы, например, как на рис. 4.4.3-11.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Dim

YY

 

As

 

Double

 

 

 

 

 

 

 

 

Dim

x

As

Double

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x=", TextBox1)

 

 

 

 

 

x= vvodDbl2("Ввод

 

 

 

 

 

 

YY=Pr44310( x )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

vivodDbl2(YY,"Значение функции ", TextBox2)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 4.4.3-11

 

 

 

 

 

 

 

 

 

 

 

Пример 4.4.3-3.Написать процедуру-Function, которая

присваивает

переменной f наибольшее из значений двух вводимых чисел x, y ( f = max{x, y } ).

Алгоритмы и программы решения задачи

выбора наибольшего из двух значений

приведены на рис.4.4.3-12 и 4.4.3-13.

 

 

 

 

 

 

 

 

 

 

Начало

 

 

 

Function Pr44312(ByVal x As Double_

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ByVal y As Double) As Double

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x,y

 

 

 

Dim f

As

Double

 

 

 

 

 

 

 

 

Ввод

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

If x > y

Then f = x Else

f = y

 

 

 

 

Нет

 

 

 

 

 

Да

 

 

Return

f

 

 

 

 

 

 

 

 

 

x>y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

End Function

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f=y

f=x

 

 

 

 

 

 

 

Вывод

 

 

 

 

 

 

 

 

f

 

 

 

 

 

 

 

 

Конец

 

 

 

 

 

 

 

 

Рис. 4.4.3-12

 

 

 

 

 

 

 

 

Начало

 

Function Pr44313(ByVal x As Double_

 

 

 

 

 

ByVal y As Double) As Double

Ввод

 

Dim f

As

Double

 

 

x,y

 

 

 

 

 

f = x

 

 

 

 

 

f=x

 

If

y >f

Then

f = y

 

 

 

Return f

 

 

 

 

Нет

Да

End Function

 

 

 

 

y>f

 

 

 

 

 

 

 

 

 

f=y

 

 

 

 

 

 

 

Вывод

 

 

 

 

 

 

 

 

f

 

 

 

 

 

 

 

 

Конец

 

 

 

 

 

 

 

 

Рис. 4.4.3-13

 

 

 

 

 

 

 

 

В первом способе (рис. 4.4.3-12) используется стандартное разветвление, а во втором

(рис.4.4.3-13) – усеченное.

 

 

 

 

 

 

 

 

Процедура-Function Pr44312( )

(или Pr44313( ))

может быть вызвана из любой

другой процедуры или из модуля формы, например, как на рис. 4.4.3-14.

Страница 134

Тема 4.4. Программирование алгоритмов разветвляющихся структур

 

 

 

 

Dim

ff

As

Double

Dim

xx,

yy

As

Double

xx= vvodDbl2("Ввод

x=", TextBox1)

yy= vvodDbl2("Ввод

y=", TextBox2)

 

 

 

 

ff=Pr44313(xx, yy)

vivodDbl2(ff, "max{x, y }= ", TextBox3)

Рис. 4.4.3-14

Пример 4.4.3-4. Написать процедуру-Function, которая вычисляет r = min{a+b, c2, d }.

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

Алгоритм, реализующий пример 4.4.3-4 (рис.4.4.3-15), относится к числу базовых алгоритмов выбора наименьшего (наибольшего) из нескольких значений. В основу алгоритма положено усеченное разветвление. Здесь первоначально переменной r присваивается значение первого из выражений данной последовательности. Истинное значение наименьшего значения определяется путем последовательного сравнения со всеми остальными значениями выражений заданной последовательности.

 

Начало

 

Ввод

 

a,b,c,d

 

r=a+b

Нет

Да

 

c2<r

r=c2

 

 

 

Function Pr44315(ByVal

a

As Double_

ByVal

b

As

Double_

ByVal

c

As

Double _

ByVal

d

As

Double) As Double

Dim

r

As

Double

 

r =

a +b

 

Then

r = c^2

If

c^2 < r

If

Sqrt(d)

< r

Then r = Sqrt(d)

Return

r

 

 

End Function

Нет

Да

 

d <r

r = d

Вывод r

Конец

Рис. 4.4.3-15

Процедура-Function Pr44315( ) может быть вызвана из любой другой процедуры или из модуля формы, например, как на рис. 4.4.3-16.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Dim

rr

As

Double

dd As Double

 

 

Dim

aa,

bb,

cc,

 

 

 

 

 

a=", TextBox1)

 

 

aa= vvodDbl2("Ввод

 

Тема 4.4. Программирование алгоритмов разветвляющихся структур

Страница 135

bb= vvodDbl2("Ввод

 

b=", TextBox2)

 

 

 

 

cc= vvodDbl2("Ввод

 

c=", TextBox3)

 

 

 

 

dd= vvodDbl2("Ввод

 

d=", TextBox4)

 

 

 

 

 

 

 

 

 

cc,

dd )

 

 

 

 

rr = Pr44315(aa, bb,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

vivodDbl2(rr,"Значение r= ", TextBox5)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 4.4.3-16

 

 

 

 

 

 

 

 

 

Пример 4.4.3-5.Задано число n. Если n – натуральное нечетное число, меньше

10, то целочисленной переменной f присвоить 1, если n – натуральное четное число, то

переменной f присвоить 2, если n – отрицательное, то присвоить f значение -1, если

значение n находится внутри отрезка [10;1000], то f присвоить 10, иначе f присвоить0.

Схема алгоритма и код программы решения задачи 4.4.3-5 с использованием

оператора Select Case приведены на рис.4.4.3-17.

 

 

 

 

 

 

Начало

 

 

 

Function Pr44317(ByVal n As Integer)_

 

 

 

 

 

 

 

 

 

 

 

As Integer

 

 

 

Ввод

 

 

 

 

Dim f

As

 

Integer

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

Select Case

n

 

Да

n=1,3,

Нет

 

 

 

Case

1, 3, 5, 7, 9

 

 

 

5,7,9

 

Нет

 

f =1

 

 

 

f=1

 

Да

n=2,4,

 

 

 

 

 

 

6,8

 

 

 

Case

2, 4, 6, 8

 

 

 

f=2

Да

 

Нет

 

f =2

 

 

 

 

 

 

 

n<0

 

 

 

 

 

 

 

 

 

Да

Нет

Case Is <0

 

 

 

 

 

 

 

10≤n≤1000

f =-1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f=-1

 

 

 

Case 10

TO

1000

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f =10

 

 

 

 

 

 

 

 

f=10

f=0

Case Else

 

 

 

 

 

 

 

 

 

 

f =0

 

 

 

 

 

 

 

 

 

 

End Select

 

 

 

 

 

 

 

 

End

Return f

 

 

 

 

Вывод

 

 

 

Function

 

 

 

 

 

f

 

 

 

 

 

 

 

 

 

 

Конец

 

 

 

 

 

 

 

 

Рис.4.4.3-17

 

 

 

 

 

 

 

 

 

Процедура-Function Pr44317( ) может быть вызвана из любой другой процедуры или

из модуля формы, например, как на рис. 4.4.3-18.

 

 

 

 

 

As

Integer

 

 

 

 

 

 

 

Dim ff

 

 

 

 

 

 

 

Dim

nn

As

Integer

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

nn= vvodInt4(TextBox1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ff=Pr44317(nn)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

vivodInt4(ff, TextBox2))

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 4.4.3-18

 

 

 

 

 

 

 

 

Страница 136

Тема 4.4. Программирование алгоритмов разветвляющихся структур

4.4.4. Задачи для самостоятельного решения по теме «Программирование алгоритмов разветвляющихся структур»

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

1) Даны положительные действительные числа

x, y, z. Выяснить, существует ли

треугольник с длинами сторон x, y, z. Если

треугольник существует, то ответить,

является ли он остроугольным.

 

2)Даны действительные числа x1, x2, x3, y1, y2, y3. Принадлежит ли начало координат треугольнику с вершинами (x1, y1),(x2, y2),(x3, y3)?

3)Если сумма трех попарно различных действительных чисел x, y, z меньше единицы, то наименьшее из этих трех чисел заменить полусуммой двух других; в противном случае заменить меньшее из x и y полусуммой двух оставшихся значений.

4)Даны действительные числа x, y. Если x, y отрицательны, то каждое число заменить его модулем. Если отрицательно только одно из них, то оба значения увеличить на 0,5. Если

оба значения неотрицательны и ни одно из них не принадлежит отрезку [0.5;2.0], то оба значения уменьшить в 10 раз. В остальных случаях x, y оставить без изменения.

5)Даны положительные действительные числа a, b, c, d. Выяснить, можно ли прямоугольник со сторонами a, b уместить внутри прямоугольника со сторонами c, d так, чтобы каждая из сторон одного прямоугольника была параллельна или перпендикулярна каждой стороне второго прямоугольника.

6)Даны действительные числа x и y. Определить, принадлежит ли точка с координатами x, y замкнутой фигуре, ограниченной кривыми y=e-x, y=ex, y=x2.

7)Даны действительные числа a, b, c, d, s, t, u (sиt одновременно не равны нулю). Известно, что точки (a, b) и (c, d) не лежат на прямой L, заданной уравнением sx+ty+u=0. Прямая L разбивает координатную плоскость на две полуплоскости. Выяснить, верно ли, что точки (a, b) и (c, d) принадлежат разным полуплоскостям, т.е. выяснить, одинаков ли знак выражений sa+tb+u и sc+td+u.

8)Даны действительные числа x, y. Определить, принадлежит ли точка с координатами x, y указанной геометрической фигуре: треугольник с вершинами (-1, -1), (1, -1), (0, 2); Пятиугольник с вершинами (0, 0), (1, 1), (1, -2), (-1, -2), (-1, 1); Четырехугольник с вершинами (0, 0), (1, 0), (-2, -1), (1, -2).

9)Даны действительные числа x, y. Определить, принадлежит ли точка с координатами x, y указанной геометрической фигуре: верхняя часть плоскости, ограниченной ломаной линией, проходящей через точки (-∞, 1), (-1, 1), (0, 0), (1, 1), (∞, 1).

10)Даны действительные числа x, y. Определить, принадлежит ли точка с координатами x, y указанной геометрической фигуре: полукольцо из двух концентрических верхних полуокружностей с центром в начале координат и радиусами 1 и 2.

11)Даны действительные числа x, y. Определить, принадлежит ли точка с координатами x, y

указанной геометрической фигуре: нижняя часть полуокружности, заданной уравнением x2+y2=1 и прямой x/2;область, ограниченная кривыми, заданными выражениями x2+(y-1)2=1и y=1-x2.

12)Даны действительные числа x, y. Определить, принадлежит ли точка с координатами x, y

указанной геометрической фигуре: область, ограниченная кривыми, заданными выражениями y=|x| и y2+x2=1.

13)Даны действительные числа x, y. Определить, принадлежит ли точка с координатами x, y указанной геометрической фигуре: кольцо, ограниченное концентрическими окружностями с центром в начале координат и радиусами 1 и 0,5.

Тема 4.4. Программирование алгоритмов разветвляющихся структур

Страница 137

Соседние файлы в папке УчеП-Раз-4-Инф-270100