Uploaded by Рябкова Дарья

отчет по пси 2

advertisement
МИНОБРНАУКИ РОССИИ
Федеральное государственное бюджетное образовательное
учреждение высшего образования
«Ижевский государственный технический университет имени М.Т.Калашникова»
(ФГБОУ ВО «ИжГТУ имени М.Т.Калашникова»)
Институт непрерывного профессионального образования
Отчет по лабораторной работе №4
по дисциплине «Программные средства информации»
на тему «Операторы цикла Do и While»
Выполнил студент
группы 4-03-3
Куликов М. Д.
Проверил
Бендер С. А.
д. к. ПМИ
Ижевск
2020
Постановка задачи.
3 вариант.
Напишите 5 вариантов программы для цикла Do с проверкой условия в начале и в конце и
для цикла while и until.
Пользователь вводит целое число, надо посчитать сколько раз в десятичном
представлении встречается цифра 1.
Теоретические сведения
Оператор цикла позволяет выполнить группу операторов несколько раз в соответствии с
заданными условиями повтора.
Существует несколько видов операторов цикла:
1.
2.
3.
4.
Do…Loop
While…Wend
For…Next
For Each…Next
Синтаксис оператора Do…Loop следующий:
1) Первый вариант – проверка условия в начале цикла
Do [{While | Untile} <условие>]
[<операторы >]
[Exit Do]
[<операторы >]
Loop
2) Второй вариант – проверка условия в начале цикла
Do
[<операторы >]
[Exit Do]
[<операторы >]
Loop [{While | Untile} <условие>]
Где:
Условие – логическое выражение, которое имеет значение истина(True) или ложь (False);
значение условия Null то же, что и False;
Для While(англ. пока) выполнение цикла продолжается пока условие истинно,
Для Untile (англ. До) – выход из цикла, когда условие истинно;
Операторы – один или несколько операторов, выполнение которых повторяется, пока
условие после While истинно (True) или условие после Untile ложно (False);
Exit Do – может использоваться, как альтернативный выход из цикла (на следующую
строку программы после Loop);
Любое количество Exit Do может быть помещено внутри цикла. Обычно эта команда
используется с вычисляемым логическим выражением оператора If… Then.
Синтаксис оператора цикла While...Wend следующий:
While <условие>
[<операторы>]
Wend
Выполнение операторов цикла повторяется, пока <условие> истинно (True).
Решение задачи
На языке VBS написаны 5 программ:
Они выполняют одну задачу, соответственно операторы идентичны.
В строке “if x mod 10 = 1 then Y = Y + 1” стоит оператор условия If который
проверяет равен ли остаток от деления заданного числа на 10 единице, и если это так,
то прибавляет к счетчику Y единицу.
В строке “x = x \ 10” заданное пользователем число делиться на 10, тем самым
происходит переход к следующему разряду.
1)x = InputBox ( " " )
y=0
do until x = 0
if x mod 10 = 1 then Y = Y + 1
x = x \ 10
loop
MsgBox Y&" edinic"
В данной программе был использован оператор Do…Loop в вариации Untile. Условие
проверяется в начале цикла.
2)x = InputBox ( " " )
y=0
Do
If x mod 10 = 1 then Y = Y + 1
x = x \ 10
loop while x > 0
MsgBox Y&" edinic"
В данной программе был использован оператор Do…Loop в вариации while. Условие
проверяется в конце цикла.
3)X = InputBox ( " " )
y=0
while x > 0
If X mod 10 = 1 then Y = Y + 1
x = x \ 10
wend
MsgBox Y&" edinic"
В данной программе был использован оператор While…wend. Выполнение операторов
повторяется пока условие верно.
4)x = InputBox ( " " )
y=0
do while x > 0
If x mod 10 = 1 then Y = Y + 1
x = x \ 10
loop
MsgBox Y&" edinic"
В данной программе был использован оператор Do…Loop в вариации While. Условие
проверяется в начале цикла.
5) x = InputBox ( " " )
y=0
do
If x mod 10 = 1 then Y = Y + 1
x = x \ 10
loop until x = 0
MsgBox Y&" edinic"
В данной программе был использован оператор Do…Loop в вариации Untile. Условие
проверяется в конце цикла.
Результат работы программы:
Рисунок 1. Программа запрашивает у пользователя число.
Рисунок 2. Программа выдает количество единиц в разрядах введенного
пользователем числа
Download