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

Информатика_ЗФ / Лабораторный практикум по программированию / Лабораторный_практикум_по программированию_2

.pdf
Скачиваний:
136
Добавлен:
22.03.2016
Размер:
646.66 Кб
Скачать

Итак, точка принадлежит области C, если выполняются три условия. Если же не выполняется хотя бы одно из них, точка лежит вне области. Следовательно, эти условия должны быть объединены логической операцией «конъюнкция» – «И». Таким образом, условие нахождения точки в области С на алгоритмическом языке выглядит: x/-3+y/3<=1 and x<=0 and y>=0.

Визуальное представление алгоритма решения задачи в виде блоксхемы представлено на рисунке 9.

1

Начало

2

Ввод

координат

x,y

3

Вывод "точка x,y

находится"

4

 

(x-2)^2+

Yes

(y-2)^2<=1 and

y<=2

5

No

"в области B"

 

6

x^2+y^2<=1 Yes

7

No

"в области A"

8

x/-3+y/3<=1 and

Yes

x<=0 and y>=0

9

No

"в области C"

10

"вне областей"

11

Конец

Рис. 9. Визуальное представление алгоритма решения задания B в виде блок-схемы

Программа на языке QBasic INPUT “введите координаты x,y”;x,y

PRINT “точка (”;x; “,”;y; “) находится ”; IF (x-2)^2+(y-2)^2<=1 and y<=2 THEN PRINT “в области B”

21

ELSEIF x^2+y^2<=1 THEN PRINT “в области A”

ELSEIF x/-3+y/3<=1 and x<=0 and y>=0 THEN PRINT “в области C”

ELSE

PRINT “вне областей”

END IF

END

В качестве тестовых значений нужно взять по одной точке из каждой области и одну точку вне областей.

Результаты выполнения программы введите координаты x,y? 2,1.5

точка (2, 1.5) – в области B введите координаты x,y? 0.5,0.5 точка ( .5, .5 ) – в области А введите координаты x,y? –1.5,0.5 точка (-1.5, .5) – в области C введите координаты x,y? 3,3 точка (3, 3) – вне областей

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

Программный код Public Sub Ветвление_В()

Dim x As Single

Dim y As Single

Dim strRezultat As String

x = val(InputBox("Введите координату x”)) y = val(InputBox("Введите координату y"))

strRezultat = "точка (" & x & " , " & y & ") находится" If (x - 2) ^ 2 + (y - 2) ^ 2 <= 1 And y <= 2 Then

MsgBox strRezultat & "в области B"

ElseIf x ^ 2 + y ^ 2 <= 1 Then

MsgBox strRezultat & "в области A"

ElseIf x / -3 + y / 3 <= 1 and x <= 0 and y >= 0 Then MsgBox strRezultat & "в области С"

Else

MsgBox strRezultat & "вне областей"

22

End If

End Sub

Результат работы программного кода при значении координат x=0.5 и y=0.5 показан на рисунках 10, 11, 12.

Рис. 10. Диалоговое окно ввода координаты x – результат использования функции InputBox("Введите координату x”)

Рис. 11. Диалоговое окно ввода координаты y – результат использования функции InputBox("Введите координату y")

Рис. 12. Результаты работы программного кода в диалоговом окне сообщений (MsgBox)

Протестируйте остальные ветви алгоритма, введя соответствующие значения исходных данных.

Теперь рассмотрим пример разработки программного кода того же примера, используя объектно ориентированное программирование, реализуемое средствами языка VBA, используя экранные формы.

23

Форма и расположение на ней элементов управления после задания новых свойств этим элементам представлена на рисунке 13.

Image1

TxtX

LblY

LblX

TxtY

Cmd

TxtRezultat2

Рис. 13. Форма и расположение на ней элементов управления

Программный код

Private Sub Cmd_Click()

Dim x As Single

Dim y As Single

Dim strRezultat1 As String Dim strRezultat2 As String x = Val(TxtX.Value)

y = Val(TxtY.Value)

strRezultat1 = "Точка (" & X & " , " & Y & ") находится" If (x - 2) ^ 2 + (y - 2) ^ 2 <= 1 And y <= 2 Then

strRezultat2 = strRezultat1 & "в области B"

ElseIf x ^ 2 + y ^ 2 <= 1 Then

strRezultat2 = strRezultat1 & "в области A" ElseIf x / -3 + y / 3 <= 1 And x <= 0 And y >= 0 Then

strRezultat2 = strRezultat1 & "в области С"

Else

strRezultat2 = strRezultat1 & "вне областей"

End If

TxtRezultat2.Value = strRezultat2

End Sub

24

Результаты выполнения программного кода при значении координат x=2 и y=1.5 представлены на рисунке 14.

Протестируйте остальные ветви алгоритма, введя соответствующие значения исходных данных.

Рис. 14. Диалоговое окно для решения задания B при x=2 и y=1.5

Задачи для самостоятельного выполнения

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

Вариант 1. Определить: принадлежит ли целое число Х, вводимое с клавиатуры, интервалу (0, 70).

Вариант 2. Даны три целых числа. Определить, можно ли построить треугольник с такими сторонами.

Вариант 3. Ввести два числа. Меньшее число заменить полусуммой этих чисел, а большее – удвоенным произведением.

Вариант 4. Определить, является ли точка с координатами X,Y точкой пересечения диагоналей квадрата со стороной А (X, Y, А вводятся). Левая нижняя вершина квадрата расположена в начале координат.

Вариант 5. Фирма приобрела ткань двух наименований. Для каждого наименования ткани известно количество закупленной ткани (м) и сумма уплаченных за неё денег (руб.). Определите, для какой ткани цена за 1 м меньше.

25

Вариант 6. Известна длина каждой из трех сторон треугольника. Определить, является ли треугольник прямоугольным.

Вариант 7. Известны число, месяц и год рождения двух человек. Определить, кто из них старше.

Вариант 8. Даны три числа Х1, Х2 и Х3. Определить наибольшее число. Вариант 9. Для определения текущей успеваемости студентов в условиях рейтинговой системы принят следующий порядок формирования

итоговой семестровой оценки.

отлично,

если Р 85%

 

 

 

если 75 Р 85

 

хорошо,

,

Оценка

 

если 60 Р 75

удовлетворительно,

 

 

 

 

если Р 60

 

неудовлетворительно,

 

где Р – суммарный рейтинг по дисциплине.

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

Вариант 10. Две точки плоскости заданы своими координатами. Определить, лежат ли они в одной или разных координатных четвертях.

Вариант 11. Определить, попадает ли точка с координатами Х, Y в круг радиуса R (X, Y, R вводятся). Центр круга находится в начале координат. Вывести признак N=1, если точка находится внутри круга, и признак N=0, если точка находится вне круга.

Вариант 12. Определить, попадает ли точка с координатами Х,Y в первый квадрант (X, Y вводятся). Вывести признак N=1, если точка попадает в первый квадрант, и признак N=0, если точка не попадает в первый квадрант.

Вариант 13. Точка задана своими координатами X, Y на плоскости XOY. Определите, где она расположена: на пересечении осей координат, на какой оси, или в какой координатной четверти.

Вариант 14. Вычислите значение функции, представленной графиком:

26

Вариант 15. Даны два числа: А и B. Сравните эти два числа. Большее число уменьшите в 2 раза, а меньшее число уменьшите на 3.

Контрольные вопросы

1.Назовите базовую управляющую структуру, реализующую разветвляющийся вычислительный процесс.

2.Назовите основные варианты структуры «ВЕТВЛЕНИЕ».

3.Назовите операторы языка QBasic или VBA, с помощью которых организуется разветвляющийся вычислительный процесс, назначение каждого из них и как они выполняются.

4.Укажите ответ, который получится в результате работы фрагмента

программы в каждом из следующих

случаев: 1) x=0.5; 2) x=1.5;

3) x=3; 4) x=5.

 

QBasic

 

VBA

IF x<1 THEN

 

If x<1 Then

y=x+1

 

y=x+1

ELSEIF x<2 THEN

 

Elseif x<2 Then

y=x+3

 

y=x+3

ELSEIF x<4 THEN

 

Elseif x<4 Then

y=x^2

 

y=x^2

ELSE

 

Else

y=x-2

 

y=x-2

END IF

 

End If

z=2*y

 

z=2*y

PRINT "x=";x,"y=";y,"z=";z

 

MsgBox "X=" & x & " " & _

 

 

"Y=" & y & " " & "Z=" & z

 

 

 

5. Укажите ответ, который получится в результате работы следую-

27

щего фрагмента программы в каждом из следующих случаев: если 1) x=0.5

и y=0.8; 2) x=2.5 и y=1.5; 3)х=-0.7 и y=1; 4)x=-0.7 и y=1. QBasic

INPUT x,y

PRINT "точка (";x;",";y;") — "; IF x+y<2 and x>0 and y>0 THEN PRINT "в треугольнике" ELSEIF (x+1)^2+(y+1)^2<1 THEN

PRINT "внутри круга"

ELSE

PRINT "вне областей" END IF

VBA

x = val(InputBox("Введите координату x”)) y = val(InputBox("Введите координату y"))

strRezultat = "точка (" & x & " , " & y & ") находится" If x+y<2 and x>0 and y>0 Then

MsgBox strRezultat & "в треугольнике" Elseif (x+1)^2+(y+1)^2<1 Then

MsgBox strRezultat & "внутри круга"

Else

MsgBox strRezultat & "вне областей"

End If

6.Укажите метку оператора, которому будет передано управление в результате работы фрагмента программы, если 1) А=1; 2) А=2

On A Goto M1,M2

7.Укажите приоритет выполнения операций в следующих логических выражениях. Определите, какие значения принимают логические выражения:

a) X+Y<4 AND X^2 + Y^2>=4,

если: 1 случай — X=0. Y=1.5, 2 случай — X=2.5 Y=0.5 b) ABS(X) + ABS(Y)<=1,

если: 1 случай — X=0.5 Y=0.5, 2 случай — X=1.5 Y=0.5 c) (ABS(X)>=1 OR ABS(Y)>=1) AND X^2+Y^2<9,

если 1 случай — X=0.5 Y=0.5 2 случай — X=1.5 Y=1.5

Содержание отчета

1.Тема работы.

2.Цель работы.

3.Задание к работе.

28

4.Визуальное представление алгоритмов.

5.Экранная форма (при программировании на VBA).

6.Программный код.

7.Результаты выполнения программ.

8.Файлы протестированных и отлаженных программ на электронном носителе.

29

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

Основная литература

1.Информатика: базовый курс [Текст] : учеб. пособие для вузов / под ред. С.В. Симоновича. – 2-е изд. – СПб. : Питер, 2005. – 640 с. : ил.

2.Информатика [Текст] : учебник для вузов / Н.В. Макарова, Л.А. Матвеев, В.Л. Бройдо [и др.] ; под ред. Н.В. Макаровой. – Изд. 3-е, перераб. – М. : Финансы и статистика, 2006. – 768 с. : ил.

3.Каймин, В.А. Информатика [Текст] : учебник для вузов / В.А. Каймин. – 4-е изд., перераб. и доп. – М. : ИНФРА-М, 2005. – 285 с.

Дополнительная литература

4.Назаров, С.В. Программирование на MS Visual Basic [Текст] : Рек. УМО по образованию в обл. экономики, статистики, информ. систем и математ. методов в экономике в качестве учеб. пособия для студ. экон. вузов, обучающихся по спец. «Финансы и кредит» / С.В. Назаров, П.П. Мельников ; под ред. С.В. Назарова. – М. : Финансы и ста-

тистика, 2003, 2002. – 320 с.

5.Иванова, Г.С. Основы программирования [Текст] : допущено МО РФ в качестве учебника для студ. вузов, обучающихся по напр. «Информатика и вычислительная техника» спец. «Вычислительные машины, комплексы, системы и сети», «Автоматизированные системы обработки информации и управления», «Программное обеспечение вычислительной техники и информационных систем» / Г.С. Иванова. – 2-е изд., перераб. и доп. – М. : Изд-во МГТУ им. Н.Э. Баумана, 2002. – 416 с.

6.Экономическая информатика и вычислительная техника [Текст] : учебник для вузов / под ред. В.П. Косарева и Л.В. Еремина. – М. : Финансы и статистика, 2002. – 592 с.

7.Данова, Н.С. Электронный учебник по информатике / Н.С. Данова,

В.А. Лихачев. – URL: http://bsu.edu.ru:8801/projects/inf/default.htm.

8.Новиков, Ф.А. Microsoft Office XP в целом [Текст] / Ф.А. Новиков, А.Д. Яценко. – СПБ. : БХВ-Петербург, 2002. – 928 с.

9.Каммингс, С. VBA для «чайников» [Текст] : учеб. пособие / пер. с англ. С. Каммингса. – М. : Вильямс, 2000. – 384 с.

Методические разработки ЮРГУЭС

10.Диброва, Г.Д. Лабораторный практикум по программированию [Текст] : практическое пособие: в 4 ч. / Г.Д. Диброва. – Шахты : Изд-

во ЮРГУЭС, 2007. – Ч. 1. – 32 с.

30