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

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

Циклические конструкции.

 

Цель работы

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

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

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

 

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

- наименование и цель работы;

- задание на лабораторную работу согласно варианту;

- схема алгоритма, текст программы на алгоритмическом языке;

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

 

Краткая теория

 

В VB .NET, как практически во всех языках программирования, существуют циклы — конструкции, позволяющие выполнять операции заданное количество раз или продолжать, пока выполняется (или наоборот, не выполняется) некоторое логическое условие. По сравнению с прежними версиями VB синтаксис циклов мало изменился. В частности, изменилась конструкция While/Wend, но это изменение к лучшему.

Цикл с определенным условием

Цикл, выполняемый заданное количество раз, определяется при помощи ключевых слов For и Next. Например, следующая программа выводит в консольном окне числа от 1 до 10:

 

Sub Main()

Dim i As Integer

For i = 1 To 10

Console.WriteLine(i)

Next i

Console.ReadLine()

End Sub

 

Обычно переменной-счетчику присваивается начальное значение, после чего проверяется, не превышает ли текущее значение счетчика конечное. Если счетчик превысил конечное значение, тело цикла не выполняется. Если текущее значение меньше конечного, VB .NET выполняет последующие команды до тех пор, пока не встретит ключевое слово Next (указывать имя переменной в команде Next необязательно). По умолчанию счетчик увеличивается на 1, и все начинается заново. Процесс продолжается до тех пор, пока при очередной проверке не окажется, что счетчик превысил конечное значение. В этот момент цикл завершается, и управление передается следующей за ним команде.

Хотя в качестве счетчика может использоваться числовая переменная любого типа, рекомендуется использовать переменные типа Integer. В этом случае VB .NET тратит минимальное количество времени на изменение счетчика, что ускоряет выполнение цикла.

Единичное приращение счетчика, используемое по умолчанию, иногда неудобно—в некоторых ситуациях счетчик должен изменяться на 2, на дробную величину или в обратном направлении. Как и во всех прежних версиях VB, нестандартное приращение указывается в цикле For-Next с ключевым словом Step.

Следующая программа имитирует обратный отсчет перед запуском космического корабля:

 

Sub Main()

Dim i As Integer

For i = 10 To 1 Step = -1

Console.WriteLine("It's t minus " & i & " and counting.")

Next i

Console.WriteLine("Blastoff!")

Console. ReadLine()

End Sub

 

При отрицательном приращении тело цикла For-Next игнорируется в том случае, если начальное значение счетчика меньше конечного. Это очень удобно при выполнении таких операций, как удаление элементов из списка. Если бы отсчет велся от 0 до ListCount, то на середине произошло бы обращение к удаленному элементу, тогда как при отсчете от ListCount до 0 с шагом -1 элементы нормально удаляются от последнего к первому.

 

Значение Step может относиться к любому числовому типу. Пример:

 

for yearlylnterest = .07 То .09 Step .00125D

 

Цикл перебирает значения от 7 до 9 процентов с приращением в 1/8 процента. Обратите внимание на использование типа Decimal для предотвращения ошибок округления.

 

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

 

Sub Main()

Dim i, j As Integer

For j = 2 To 12

For i = 2 To 12

Console.Write( j & " ")

Next i

Console.WriteLine()

Next j

Console.ReadLine()

End Sub

 

Во внутреннем цикле вместо метода WriteLine используется метод Write, чтобы избежать перевода строки при выводе соседних элементов.

 

Циклы с неопределенным условием

 

Довольно часто условие продолжения цикла зависит от результатов, полученных в теле цикла. Следующая конструкция используется в VB .NET для построения цикла с неопределенным условием, тело которого выполняется минимум один раз (завершающая проверка):

 

Do

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

Until условие_выполняется

 

Конечно, условие не ограничивается простой проверкой равенства. В вашем распоряжении операторы сравнения, перечисленные в табл.4.1

 

Таблица 4.1 Операторы сравнения 

Символ  Проверяемое условие

<>      Не равно

<       Меньше

<=      Меньше или равно

>       Больше

>=      Больше или равно

 

Строковые операнды по умолчанию сравниваются в соответствии с порядком символов Unicode. Таким образом, «А» предшествует «В», но «В» предшествует «а» (а пробел предшествует любому печатному символу). Строка «aBCD» предшествует строке «CDE» (то есть считается «меньше» ее), поскольку прописные буквы в кодировке стоят раньше строчных.

Вы можете игнорировать регистр символов во всех сравнениях модуля или формы; для этого в начало модуля или формы включается команда Option Compare Text. Команда Option Compare Binary возвращается к стандартному сравнению строк в соответствии с положением символов в кодировке ANSI. При активном режиме Option Compare Text используется порядок символов для страны, указанной при установке системы Windows.

Ключевое слово Unti1 можно заменить ключевым словом While (при этом следует заменить условие на противоположное). Например, фрагмент

 

Do

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

Loop Until X <> String.Empty

 

эквивалентен следующему фрагменту:

 

Do

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

Loop While X = String.Empty

 

Обратите внимание на использование константы String.Empty вместо пустой строки "", менее наглядной и чаще приводящей к ошибкам. Если переместить ключевое слово Whi1е или Unti1 в секцию Do, проверка будет выполняться в начале цикла (и при ложном условии цикл не будет выполнен ни одного раза). Пример:

 

Do While Text1.Text <> String.Empty

' Обработать непустой текст

Loop

 

Условия объединяются при помощи операторов Or, Not и And. Пример:

 

Do While count < 20 And savings < 1000000

 

Цикл For-Each

Содержимое массива часто перебирается в цикле от 0 до UBound(массив), однако вы также можете воспользоваться конструкцией For-Each. Синтаксис For-Each выглядит следующим образом:

 

For Each переменная In массив

[команды]

[Exit For при необходимости]

[команды] Next

 

Конструкция For-Each универсальна и может использоваться в тех случаях, когда структура данных поддерживает итеративный перебор элементов. Microsoft утверждает, что применение For-Each не будет приводить к существенному снижению быстродействия по сравнению с For-Next.

Пример цикла, обрабатывающего массив строк

 

Dim people={“Tom”,”Ivan”,”Dona”}

Dim person As String

For Each person In people

Console.WriteLine(person)

Next

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

1. Дано натуральное n. Написать программу вычисления а^n.

 

2. Дано натуральное n. Написать программу вычисления значений

          1     1              1

                 +     +...+           , n>=2

         1*2 2*3      (n-1)*n

 

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

                            (n-1)

          1         (-1)

     1-  +...+

          2          n

4. Дано натуральное n. Написать программу вычисления значений

 

             1                  1                     1 

    1+           * 1 +        *...* 1+

           1^2              2^2                  n^2

 

5. Дано число А. Написать программу получения в порядке убывания всех делителей данного числа.

 

6. Обозначим

              1        1                1

     f =      +           +...+         , i=0,1,...

        i i^2+1 i^2+2       i^2+i+1

 

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

     f * f *...* f . n - дано.

      0 1   n

 

7. Объем V - цилиндрической подковы вычисляется по формуле

 

              h                                           u(n)

    V=     [a(3r^2 - a^2) + 3r^2*( b-r)   ].

            3b                                          180

 

Составить алгоритм для построения графика зависимости V от угла u,если a,b и r известны, а u изменяется в диапазоне от u(1) до u(2) с шагом /\ u.

 

8. Составить алгоритм для расчета функции

 

                     0,95*(sin(x))^3

               y =

                      1+0,95*x^2

 при изменении x от 0 до 12 с шагом /\х=0.2.

 

9. Самолет летит из пункта А к пункту В со средней скоростью v. Составить алгоритм для нахождения времени полета t(1), если есть встречный ветер, скорость которого v(1), и времени t(2), если ветра нет. Расстояние между пунктами А и В считать известным и равным S. Скорость ветра v(1) может изменяться от 0 до 15 м/с. Считать шаг изменения /\v(1) =0.5 м/с.

 

10. Цех вводится в строй постепенно, выдавая в первый день х(1)% продукции от нормы, во второй - х(2)%, в третий -x(3)%,..., в n-й день - х(n)%. Составить алгоритм для расчета продукции S за n дней, если в первый день цех выдал А [т] продукции.

 

11. Составить алгоритм для расчета функции y при значениях х=0; 0.1; 0.2;...;10.

 

 

                      x-1

                                      , если x<=1

      y =  2*x^2+3

 

                   1.05*(x-1)^2, если x>1.

 

12. Дана функция y=0.5+sin(5x), причем х изменяется от 0 до 2п с шагом /\х=п/6.

 

13. Составить алгоритм для вычисления функции

 


                   1

                 === , если 0<y<1.36; /\y=0.136;

              \/1+y

            

     z =    0  , если y=0;

              

                     1

                  ====, если -1.5<y<0; /\y=0.15.

               \/1-2y

 

14. Постоянная времени Т электрической цепи равна Т=RC, где R и С - соответственно сопротивление и емкость цепи. Составить алгоритм решения задачи при условии, что R изменяется от 10^2 Ом до R(0)=10^3 Ом с шагом /\R=10^2 Ом.

 

15. Кинетическая энергия движущегося тела W(k)=m*v^2/2, где m - масса тела, v - его скорость. Составить алгоритм для получения зависимости W(k) от m при значенияхv, изменяющихся от v(1) до v(2) с шагом /\v. Масса изменяется от m(1) до m(2) с шагом /\m.

 

16. Дана функция x=a*sin(k*t+2)*cos(k*t). Составить алгоритм для расчета этой функции, если а изменяется от 5 до 7 с шагом 0.12, t изменяется от 4.2 до 6.2 с шагом 0.17 а k=1,2,3,...,12.

 

17. Составить алгоритм для нахождения итерационным методом с точностью до е корня уравнения 2*x-3*sin(x)=0.

 

18. Дана функция y=-2*x^2+3*x+1.5. Составить алгоритм для поиска максимального значения y если х изменяется в диапазоне 0.1<=х<=1 с шагом /\х=0.01.

 

19. Слесарь-сантехник начинает работу в 8 ч. и заканчивает в 17 ч., делая перерыв на обед с 12 до 13 ч. Через каждые 30 мин работы он устраняет течь в кранах водопроводной системы одной из квартир жилого дома. Составить алгоритм для вычисления количества воды Q, которое вытечет из неисправных кранов за рабочий день слесаря - сантехника, если утечка воды в одной квартире составляет Q(1) [л/мин].

 

20. Даны функции y(1)=x^3 и y(2)=sin(x).Составить алгоритм для вычисления точки пересечения этих функций при х>0. Вычисления производить с точностью до е.

 

21. Даны целые числа n и K[n]. Получить сумму S последних цифр чисел K[n].

 

22. Дано целое число K. Найти знакочередующуюся сумму цифр числа К. (Пусть запись К в десятичной системе есть a[n]...a[2] a[1] a[0];найти a[0]+a[1]+a[2]+...+a[n]).

 

23. Даны действительные числа a,h, целое n. Вичислить:

f(a) + f(a+h)+f(a+2h)+...+ f(a+nh), где f(x)=(x^2+ 1)/x.

 

24. Даны целое n, действительное x. Вычислить:

Y=sinx+sin^2x+...+sin^2x.

 

25. Дано целое n. Чему равна сумма его цифр?

 

26. Дано целое число n. Найти первую цифру числа n.

 

27. Дано целое K. Сколько цифр в числе К?

 

28. Дано вещественное x. Вычислить:

            s=(x-2)+(x-4)+(x-8)+...+(x-64);

            p=(x-1)*(x-3)*(x-7)...(x-63).

 

29. Даны действительные числа x, a, целое число i. Вычислить:

        ((...((x+a)^2 +a)^2 +...+a)^2 +a)^2 +a, (0<a<_91_0).

 

30. Дано вещественное число x. Вычислить:

        x-x^3/3!+ x^5/5!-x^7/7!+x^9/9!-x^11/11!+x^13/13!

 

 


Дата добавления: 2018-02-28; просмотров: 469; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!