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

Лабораторная работа_3

.doc
Скачиваний:
27
Добавлен:
22.05.2015
Размер:
60.93 Кб
Скачать

Лабораторная работа №3

Операторы ветвления: условный оператор, оператор выбора case.

1 Цель работы

Изучить операторы, используемые для организации ветвления в программе.

2 Порядок выполнения работы

Получить задание для выполнения лабораторной работы (раздел 5) согласно своему варианту (номер студента по журналу). Разработать и отладить программу. Составить и защитить отчет о лабораторной работе у преподавателя.

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

  • Наименование и цель работы.

  • Задание на лабораторную работу согласно варианту.

  • Схема алгоритма, текст программы на алгоритмическом языке.

  • Результаты работы программы.

4 Операторы ветвления

В VB .NET условная команда If существует в двух версиях — однострочной и многострочной:

If X < 0 Then Console.WriteLine("Number must be positive!")

Условие конструкции If-Then может содержать логические операторы And, Or и Not. Довольно часто программа выполняет разные действия в зависимости от того, окажется ли условие истинным или ложным. В этом случае базовая форма команды

If условие Then

' Команды VB .NET (0 и более)

End If

дополняется одной или несколькими секциями Else:

If условие Then

' Команды VB .NET (0 и более)

Else

' Команды VB .NET (0 и более)

End If

Например:

If result > 48 Then Console.WriteLine(“result is >48”)

Else Console.WriteLine(“result is <48”)

End If

Несколько последовательных проверок в секциях Else можно оформить в виде конструкции Elseif:

If условие Then

' Команды

Elseif условие Then

' Команды

Elself условие Then

' Команды

Else

' Команды

End If

Конструкция If-Then может использоваться для преждевременного выхода из цикла — для этого она объединяется с командой Exit Do или Exit For. Встретив команду Exit Do или Exit For, VB .NET немедленно завершает цикл и продолжает выполнение программы с команды, следующей за ключевым словом Loop или Next (в зависимости от типа цикла).

Изменения в видимости переменных

Изменения проявляются при объявлении переменных в теле цикла или блока If-Then. Такие переменные невидимы за пределами блока, в котором они были объявлены. Например, в следующем фрагменте мы выбираем одну из двух версий строковой переменной Risk и затем пытаемся использовать ее:

If income < 100000 Then

Dim risk As String = "too much risk"

Else

Dim risk As String = "love to make a deal"

End If

Console.WriteLine("Your risk level is " & Risk)

На экране появляется сообщение об ошибке:

The name 'risk' is not declared.

Видимость обеих версий переменной risk ограничивается блоком, в котором они были объявлены! Мораль: не объявляйте переменные внутри блоков, если для этого нет веских причин.

Ускоренная проверка

Если компилятор обнаруживает, что проверенная часть сложного логического условия однозначно определяет результат, он не проверяет остаток выражения. Это называется ускоренной проверкой (short curcuiting). Например, если в следующем примере переменная foo ложна, компилятор не проверяет переменную bar:

If foo And bar Then...

Так было в VB .NET бета-версии 1, но в прежних версиях VB ускоренная проверка не применялась. После многочисленных жалоб разработчики Microsoft вернули старую интерпретацию логических операторов And и Or и добавили новые ключевые слова AndAlso и OrElse, поддерживающие ускоренную проверку:

If foo AndAlso Then...

Оператор выбора Select Case

В качестве альтернативы для громоздких конструкций с множеством Elself в VB .NET была сохранена команда Select Case, упрощающая принятие решений в зависимости от состояния числовой или строковой переменной. Пример:

Dim a As Integer

Select Case a

Case 90

Console.WriteLine("A")

Case 80

Console. WriteLine("B")

Case 70

Console.WriteLine("C")

Case Else

Console.WriteLine("You fail")

End Select

Дискретные наборы значений перечисляются через запятую, а ключевое слово То позволяет задавать интервалы:

Select Case yourChoice

Case 1 To 9

' Порядок

Case -1. 0

' Неправильный ввод

End Select

5 Варианты заданий для выполнения работы

1.Переменные X, Y, Z имеют положительные значения. Присвоить переменной Р значение 1, если можно построить треугольник с длинами сторон X, Y, Z, и О - в противном случае.

2. Составить программу вычисления корня уравнения X=LN(X+2.5) методом простой интерации:

X(к+1)=LN(X(к)+2.5), k=0,1,...

Итерации прекратить, когда два последовательных приближения Х(к) и Х(к+1) будут отличаться не больше, чем на 10^(-4). В качестве начального приближения Х взять значение В, равное одному из концов отрезка [А,В].

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

 = (1+А^2/4к^2 П), (П - пи)

к=1

учитывающую лишь те сомножители, значение десятичного логарифма которых не меньше 10^(-5).

4. Вычислить

а1, если х<в1

Q = а2, если в1<=х<в2

а3, если в2<=х<в3

а4, если в3<=х

1

а1= - ====

\/х+в1

а2=-1/(х+b^2) b1=COS x

a3=-b3*b2 b2=SIN x+COSx

a4=b1+b3 b3=IxI

x дано.

5. Написать программу вычисления суммы ряда, начиная с первого члена до члена с наименьшим номером меньшего Е=10^(-4).

Член ряда определяется выражением:

(-1)^n*Х^n /N!

6. Даны произвольные числа А, В и С. Если нельзя построить треугольник с такими длинами сторон, то напечатать 0, иначе напечатать 3,2 или 1 в зависимости от того, равносторонний это треугольник, равнобедренный или какой-либо иной.

7. Дано 50 вещественных чисел. Найти величину наибольшего из них.

8. Дано целое N>0, за которым следует N вещественных чисел. Определить, сколько среди них отрицательных.

9. Дана непустая последовательность положительных целых чисел, за которой следует 0 (это признак конца последовательности). Вычислить среднее геометрическое этих чисел.

10. Для заданного а найти корень уравнения f(x)=0, где

2ax+|a-1| при а>0

e^x

f(x)= =========

(1+a^2)-1 иначе.

11. Даны числа А,В,С (А=0). Найти вещественные корни уравнения ax^2+bx+c=0. Если корней нет, то сообщить об этом.

12. По номеру y (y>0) некоторого года определить с-номер его столетия (учесть, что, к примеру, началом 20-го столетия был 1901, а не 1900 год).

13. Вычислить

(max(x,y,z))^2-2^x*min(x,y,z)

u=

max (x,y,z)/min(x,y,z)

x,y,z- заданы.

14. Считая, что стандартные функции SIN и COS применимы только к аргументам на отрезке [0,PI/2], вычислить y=sin x для произвольного числа х.

15. Значения переменных А,В,С поменять местами так, чтобы оказалось А>=В>=С. Переменные А,В,С заданы.

16. Даны числа а1, в1, с1, а2, в2, с2. Напечатать координаты точки пересечения прямых, описываемых уравнениями а1х+в1y=c1 и а2х+в2y=с2, либо сообщить, что эти прямые совпадают, не пересекаются или вовсе не существуют.

17. В соревнованиях по бегу принимают участие 30 спортсменов. Вводя по очереди фамилии и результаты участников в ЭВМ, определить, сколько из них выполнило норму ГТО и напечатать их фамилии. Норма ГТО задана.

18. Даны координаты точки (x,y). Определить, в каком квадранте находится точка, и напечатать номер квадранта.

19. Определить, являются ли значения целочисленных переменных N и М кратными 3. Если оба значения кратны 3, то вычислить их сумму, в противном случае - разность.

20. Вычислить значение суммы функционального ряда

(бесконечности)

2х^(2n+1)

S= 

2n+1

n=1 с точностью до

Е=0.001 при заданном х.

21. Дано значение переменной с. Определить,имеет ли уравнение ax^2+bx+c действительные корни, если a=trunc(c mod2+ 5\/ 0c), b=trunc(a div 5 0c+c^2).

22. Даны значения a, b, c (a^2<>0). Определить, имеет ли уравнение ax^2+bx+c действительные корни. Если нет,то выдать соответствующее сообщение.

23. Даны вещественные числа a,b,c и m. Если a<b<c>m, то каждое число заменить наибольшим из них.

24. Даны вещественные x и y. Если x и y отрицательны, то каждое значение заменить его модулем. Если отрицательно одно из них, то оба значения увеличить на 0.5.

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

26. Даны значения x, y и z. Выбрать те из них, которые принадлежат интервалу (1;3).

27. Даны значения a и b. Меньшее из двух заменить их полусуммой, а большее - их удвоенным произведением.

28. Даны значения a, b и c. Возвести в квадрат те из них, значения которых неотрицательны.

29.Даны значения a, b и c. Проверить, выполняются ли неравенства a>b>с или a<b<c. Выдать соответствующие сообщения.

30. Даны значения a, b и c. Удвоить эти числа, если a>b>c, и заменить их абсолютными значениями, если это не так.