Цикл с постусловием реализуется с помощью инструкции

Вопросы:

·     Цикл
с постусловием.

·     Применение
инструкций управления циклом на языке Python.

Рассмотрим
алгоритм мытья посуды. Для того, чтобы помыть грязные тарелки, нужно: взять
губку, открыть кран с водой, помыть одну тарелку, вытереть её, после чего проверить,
не осталось ли грязных тарелок. Если это условие не выполняется, нужно снова
помыть тарелку; если же грязных тарелок не осталось, нужно закрыть кран,
положить губку на место и вытереть руки.

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

Прежде
чем рассмотреть программирование цикла с постусловием, рассмотрим одну из
инструкций управления циклом – инструкцию остановки работы цикла. Она
записывается единственным служебным словом break.
Когда интерпретатор встречает в цикле эту инструкцию, он останавливает работу
текущего цикла и переходит к исполнению команд, записанных после него.

В
большинстве языков программирования есть отдельный оператор цикла с
постусловием, но в языке Python его нет. Здесь цикл с постусловием реализуется с
помощью бесконечного цикла с предусловием. Мы уже знаем, что его заголовок – while
True. Дальше
записываются инструкции, составляющие тело цикла с постусловием. После них
следует инструкция ветвления, содержащая условие цикла с постусловием. Если это
условие выполняется – следует инструкция остановки цикла – break.

Рассмотрим
работу цикла с постусловием на примере решения задачи. Написать программу,
которая вычисляет наибольший общий делитель двух целых положительных чисел.
Наибольшим общим делителем двух чисел (сокращённо НОД) называется наибольшее
число, на которое без остатка делятся оба числа. Для вычисления НОД мы будем
использовать усовершенствованный алгоритм Эвклида. В нём, чтобы найти НОД двух
чисел, наибольшее из них заменяется своим остатком от деления на наименьшее
число до тех пор, пока одно из чисел не станет равным нулю. После этого
ненулевое число имеет значение наибольшего общего делителя исходных чисел.

Напишем
модуль для решения задачи. Вначале с помощью инструкции print
выведем на экран сообщение о том, что это программа, вычисляющая наибольший
общий делитель двух целых положительных чисел, а также запрос на ввод двух
чисел. Запишем инструкцию для считывания чисел в переменные a
и b. По условию задачи числа
целые, поэтому при считывании мы будем преобразовывать их значения в целочисленный
тип int. Теперь запишем цикл с
постусловием. Для этого запишем сначала бесконечный цикл while,
в котором будет ветвление с условием завершения работы цикла: a
= 0
or b
= 0
,
то есть цикл завершится тогда, когда одно из чисел станет равным нулю.  Если
это условие выполняется – сработает инструкция окончания работы цикла break.
Тело цикла с постусловием будет содержать ветвление для определения большего из
чисел с условием a
>
b. Если это условие
выполняется, то переменной a
присвоим значение a
%
b, если это условие не
выполняется, значит наибольшее число b,
поэтому переменной b
мы присвоим значение b
%
a. Так как одно из чисел
после выполнения описанного цикла будет равно нулю, то значение ненулевого
числа можно вычислить как их сумму. Поэтому выведем на экран сообщение о том,
что НОД введённых чисел равен сумме значений a
и b.

Сохраним
написанный модуль и запустим его на выполнение. Введём числа 45 и 75.
Наибольший общий делитель этих чисел действительно равен 15. Снова запустим
программу и введём числа 7 и 3. Наибольший общий делитель этих чисел
действительно равен единице. Программа работает правильно. Задача решена.

Циклы
в языке Python после основного тела могут содержать блок инструкций else.
Он выполняется в том случае, когда работа цикла была завершена без помощи
инструкции, остановки исполнения цикла – break.

Помимо
инструкции break есть и другая
инструкция управления циклом – continue.
Эта инструкция прерывает текущее исполнение тела цикла и переходит к
следующему, начиная с проверки условия.

Проверим
работу описанных инструкций управления циклом, решив задачу. Написать
программу, генерирующую случайное целое число на промежутке от a
до b и
предоставляющую пользователю неограниченное число попыток для того, чтобы его
угадать. Если пользователю надоело угадывать, то он должен ввести слово
«Сдаюсь». A всегда
меньше либо равно b.

Начнём
написание модуля для решения задачи. С помощью инструкции print
выведем на экран запрос на ввод числа a.
Теперь напишем инструкцию для считывания a.
Так как, по условию задачи, это целое число, то при вводе его значение мы будем
преобразовывать в целочисленный тип int.
Скопируем написанные инструкции и изменим их для считывания значения b.
Так как функции генерации случайных чисел описаны в модуле random,
подключим его. Теперь присвоим переменной n
случайное число на промежутке от a
до b, сгенерированное с
помощью функции randint.
Далее с помощью инструкции print
выведем на экран сообщение о том, что загадано случайное число на промежутке от
a до b
и предложение его угадать. Теперь присвоим переменной s
значение пустой строки, позже именно в эту строку мы будем считывать вводимые
числа.

Теперь
напишем цикл для угадывания значения n.
Он будет работать до тех пор, пока значение строки s
не станет равным значению переменной n,
преобразованной в строковый тип str.
Тело цикла будет начинаться со считывания значения строки s.
Так как данные с клавиатуры вводятся в текстовой форме, нам не нужно их
преобразовывать. Теперь запишем инструкцию ветвления с условием, что значение s
равно текстовой строке ‘Сдаюсь’. Если это условие выполняется, завершим
исполнение цикла с помощью инструкции break.
Далее запишем блок elif
с условием, что значение s
равно значению n, преобразованному
в строковый тип str. Если это условие
выполняется, вернёмся в начало цикла с помощью инструкции continue.
После этого ветвления запишем инструкцию print,
которая выводит на экран сообщение о том, что пользователь не угадал число, и
предложение попробовать ещё раз. Дальше напишем блок else
для цикла и в нём инструкцию print,
выводящую сообщение о том, что пользователь угадал. Сохраним написанный модуль.

print
(‘Введите a.’)

a = int (input ())

print
(‘Введите b.’)

b =
int (input
())

import random

n =
random.randint (a, b)

print (‘Загадано
случайное целое число на промежутке [a; b]. Попробуйте его угадать.’)

s = »

while s != str (n):

   
s = input ()

   
if s == ‘Сдаюсь’:

       
break

   
elif s == str
(n):

       
continue

    print (‘Вы не угадали.
Попробуйте ещё раз.’)

else:

    print (‘Поздравляем!
Вы угадали.’)

Рассмотрим,
как должен работать цикл, который мы написали в программе. После считывания s,
если это строка ‘Сдаюсь’, исполнение цикла будет завершено инструкцией break,
и начнут выполняться команды, следующие после цикла. Если это число, равное n,
то благодаря инструкции continue
снова будет проверено условие цикла. Оно будет ложно, так как противоречит
условию ветвления, поэтому начнёт выполняться блок else
цикла. Если в строке s
хранится любое другое значение, то будет выведено сообщение о том, что
пользователь не угадал.

Протестируем
программу, которую мы написали. Введём промежуток от 1 до 3. Теперь зададим
значение 1. Программа вывела сообщение о том, что мы не угадали, и предложение
попробовать ещё раз. Попробуем ввести 2. Программа снова предлагает попробовать
ещё раз. И, наконец, введём 3. На этот раз программа вывела сообщение о том,
что мы угадали. Снова запустим программу и введём промежуток от 1 до 100. Угадывание
числа на таком промежутке займёт много времени, поэтому сразу введём слово
«Сдаюсь». Как видим, программа завершила свою работу. Программа работает правильно.
Задача решена.

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

Например,
в нашей программе можно очень просто избавиться от инструкции continue,
а также от блока else
в цикле, переписав ветвление так, чтобы оно, когда условие в блоке elif
выполняется, выводило на экран сообщение о том, что пользователь угадал. А в том
случае, когда никакое из условий не выполняется, выведем на экран сообщение о том,
что пользователь не угадал.

print (‘Введите
a.’)

a =
int (input
())

print (‘Введите
b.’)

b =
int (input
())

import random

n =
random.randint (a, b)

print (‘Загадано
случайное целое число на промежутке [a; b]. Попробуйте его угадать.’)

s = »

while s != str (n):

   
s = input ()

   
if s == ‘Сдаюсь’:

       
break

   
elif s == str (n):

       
print (‘Поздравляем!
Вы угадали.’)

    else:

        print (‘Вы не угадали.
Попробуйте ещё раз.’)

Таким
образом, принцип работы кода стал очевиднее, при этом программа всё ещё
работает правильно. Убедимся в этом. Сохраним написанный модуль и запустим его
на выполнение. Введём промежуток от 1 до 100. Предпримем пару безуспешных
попыток угадать число, после чего запишем слово «Сдаюсь». Программа завершила
свою работу. Снова запустим модуль и введём промежуток от 1 до 1. Введём 1.
Программа вывела сообщение о том, что мы угадали. Таким образом мы убедились в
правильности работы программы.

Мы
узнали:

·     Как
работают инструкции остановки работы цикла – break,
а также прерывания текущего исполнения цикла – continue.

·     В
цикле может присутствовать блок else,
который выполняется в том случае, когда исполнение цикла завершено без помощи
инструкции break.

·     Цикл
с постусловием
работает до тех пор, пока не выполнится
его условие, которое проверяется после исполнения тела цикла.

·     Цикл
с постусловием в программе в любом случае выполняется хотя бы один раз.

·     Так
как в языке Python нет инструкции для записи цикла с постусловием, он
реализуется через бесконечный цикл прерываемый с помощью инструкции break.

Цикл с заданным условием продолжения работы (предусловием) записывается с помощью оператора «while». В переводе с английского while — до тех пор, пока.

Общий вид оператора:

Screenshot_10.png

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

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

Напишем программу, которая будет выводить на экран первые (10) целых чисел на экран.

Screenshot_11.png

Цикл с заданным условием окончания работы (цикл с постусловием) записывается с помощью оператора «repeat».

Общий вид оператора:

Screenshot_12.png

После слова repeat записывается тело цикла, и оно выполняется до тех пор, пока условие ложно.

Цикл
с инструкциейdo
. . while

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

Относится к итерационнымпроцессам.

В
этом виде цикла условие стоит после
тела цикла, поэтому этот цикл называют
с постусловием.
Тело цикла повторяется, пока выполняется
условие. Тело цикла первый раз выполняется
без проверки условия. Выход из цикла
при не
выполнении условия
.

Эта
циклическая инструкция работает по
принципу: «Повторить — пока выполняется
условие».

Ее
синтаксис выглядит следующим образом:

do

{

Инструкции тела цикла;

}

while (Условие);

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

static
void Main(string[] args)

{

int i = 0;

do

{

Console.WriteLine(«i = {0} «, i);

i = i + 1;

}

while (i < 10);

Console.ReadKey();

}

Инструкция dowhile
выполняется следующим образом:

  1. Сначала выполняются находящиеся между
    dowhile
    инструкции тела цикла.

  2. Затем вычисляется значение выражения
    условия.

  3. Если значение выражения условия
    истинно (True), то
    инструкции тела цикла выполняются
    еще раз.

  4. Если значение выражения условия ложно
    (False), то выполнение
    цикла прекращается и выполняется
    следующий оператор, предусмотренный
    ходом выполнения программы.

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

Задача7.
Вычислить наибольшее положительное
целое число n,
удовлетворяющее условию: 3n5
— 690n

7.

static void Main(string[] args)

{

int n = 1;

do
n = n + 1;

while (3 * Math.Pow(n, 5) — 690 * n <= 7);

Console.WriteLine(«n = {0 } «, n — 1);

Console.ReadKey();

}

Задача8. Написать
программу, вычисляющую сумму и среднее
арифметическое последовательности
положительных чисел, которые вводятся
с клавиатуры.

static
void Main(string[] args)

{

int s = 0, a = 0, n = 0; double m;

Console.WriteLine(«Введите положительные
числа»);

Console.WriteLine(«Для выхода из цикла
введите 0»);

do

{

s = s + a;

Console.Write(«>> «);

a = Convert.ToInt16(Console.ReadLine());

n = n + 1;

}

while (a > 0);

n = n — 1;

Console.WriteLine(«n = {0} «, n);

Console.WriteLine(«s = {0} «, s);

m = s / n;

Console.WriteLine(«m = {0,5:f} «, m);

Console.ReadKey();

}

    1. Накопление сумм и произведений

Задача9. Написать программу вычисляющую
сумму и произведение чисел от 1 до 10.

Рассмотрим
процесс накопления Sсуммы
иPпроизведения чисел от
1 до 10.

Накопление
суммы Накопление
произведения

Блок схема и программа накопления SиP:

static
void Main(string[] args)

{

int s, p, i;

s = 0;

p = 1;

for (i = 1; i <= 10; i++)

{

s = s + i;

p = p * i;

}

Console.WriteLine(«Сумма
10 чисел=» + s);

Console.WriteLine();

Console.WriteLine(«Произведение
10 чисел=» + p);

Console.ReadKey();

}

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

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

static void Main(string[] args)

{

int s, p, i;

s
= 0;

p
= 1;

for (i = 1; i <= 10; i++)

{

s
= s + i;

Console.WriteLine(«Сумма
«+ i + » чисел=» + s);

p
= p * i;

Console.WriteLine(«Произведение
» + i +

»
чисел=» + p);

Console.WriteLine();

}

Console.ReadKey();

}

Задача10. Написать программу
вычисляющую сумму членов ряда:

t=sin(x*1)+
sin(x*2)+ sin(x*3)+ sin(x*4)+ sin(x*5)

t0
= 0

t1
=
t0
+ sin(x*1)

t2
=
t1
+ sin(x*2)

t3
=
t2
+ sin(x*3)

t4
=
t3
+ sin(x*4)

t5
=
t4
+ sin(x*5)

static
void Main(string[] args)

{

int n; double x = 0.5, t=0;

for (n = 1; n <= 5; n++)

t =t + Math.Sin(x*n);

Console.WriteLine(«Сумма
членов ряда
= {0:#.###}», t );

Console.ReadKey();

}

Задача11. Написать программу
вычисляющую произведение членов ряда:

v=cos2(x*2)
* cos2(x*3)
* cos2(x*4)
* cos2(x*5)
* cos2(x*6)

v0
=
1

v1
=
v0
* cos2(x*2)

v2
=
v1
* cos2(x*3)

v3
=
v2
* cos2(x*4)

v4
=
v3
* cos2(x*5)

v5
=
v4
* cos2(x*6)

static
void Main(string[] args)

{

int k; double x = 0.5, v=1;

for (k = 2; k <= 6; k++)

v = v * Math.Pow(Math.Cos(x*k),2);

Console.WriteLine(«Произведение членов
ряда = {0:#.######}», v);

Console.ReadKey();

}

Задача12. Написать программу
вычисляющую функцию:

W=12*(1
+ 2 + 3
+ 4 + 5 + 6 + 7+ 8)*

22*(1
+ 2 + 3
+ 4 + 5 + 6 + 7+ 8)*

32*(1
+ 2 + 3
+ 4 + 5 + 6 + 7+ 8)*

42*(1
+ 2 + 3
+ 4 + 5 + 6 + 7+ 8)*

52*(1
+ 2 + 3
+ 4 + 5 + 6 + 7+ 8)*

static void Main(string[] args)

{

int a=1,b=1,s=0,w=1;

for (a = 1; a <= 5; a++)

{

s=0;

for
(b = 1; b <= 8; b++)

s = s + a*a * b;

w = w * s;

}

Console.WriteLine(«w = {0}», w);

Console.ReadKey();

}

Соседние файлы в папке Лабы

  • #
  • #
  • #
  • #
  • #
  • #
  • #

Цикл с постусловием (REPEAT-UNTIL)

Цикл с постусловием в языке программирования Pascal реализуется с помощью оператора REPEAT… UNTIL.
Синтаксис

repeat
      {Операторы}
until условие выхода из цикла;

  • Условие — это логическое выражение булевского типа (операция отношения или логическая операция)
  • Тело цикла выполняется в любом случае, затем проверяется условие.
  • Инструкции тела цикла (операторы) выполняются в том случае, если значение логического выражения равно false, в противном случае осуществляется выход из цикла
  • Оператор repeat может быть использован для проверки правильности ввода исходных данных
  • Нижняя граница тела цикла определена служебным словом until, поэтому операторные скобки begin и end могут быть опущены (однако если операторы тела цикла заключены в операторные скобки — это не является ошибкой).
  • Операторы repeat и while взаимозаменяемы. То есть, практически любую задачу можно решить как с помощью цикла с постусловием, так и с помощью цикла с предусловием. Использование того или иного цикла зависит от предпочтения программиста.

Блок-схема

do_while

Примеры задач на использование цикла с постусловием
Пример №1

  1. Постановка задачи:

Выводится на экран последовательность 20 случайных чисел из промежутка [-10,10]. Определить количество отрицательных чисел больших -5 в данной последовательности.

  1. Блок-схема

pr_r_1

  1. Кодирование
program psldv;
var
      i,j:integer;
      x:real;
begin
randomize; {процедура инициализации 
генератора случайных чисел}
i:=20; j:=0;
repeat
      x:=random(20)-10; {генерируем случайное число}
      write(x:4:0); {выводим это число на экран}
      if (x > -5) and (x < 0) then
            inc(j); {процедурой inc увеличиваем
                  аргумент на единицу, 
                  считаем найденные числа}
      dec(i); {процедурой dec уменьшаем аргумент
      на единицу, определяем условие
      выхода из цикла}
until i=0;
writeln;
write('Количество отрицательных чисел 
больших -5 равно ', j);
end.

  1. Тестирование

-10 8 -6 1 7 8 -1 1 -5 -5 5 -9 -4 -5 -7 -9 -10

6 9 5

Количество отрицательных чисел больших -5 равно 2

Пример №2

  1. Постановка задачи:

Определить сумму и количество цифр числа.

  1. Блок-схема

pr_r_2

  1. Кодирование
program sum;
var
      s,a:byte;
      n:longint;
begin
write('n = '); readln(n);
s := 0; a := 0;
repeat
      s := s + n mod 10; {Суммируем цифры}
      a := a + 1; {определяем количество цифр}
      n := n div 10; {Уменьшаем разряд, 
      определяем условие выхода из цикла}
until n = 0;
writeln('Сумма цифр числа равна ', s);
writeln('Количество цифр в числе ', a);
end.

  1. Тестирование

n = 12345

Сумма цифр числа равна 15

Количество цифр в числе 5

Пример №3

  1. · Постановка задачи:

Вычислить сумму бесконечной последовательности
pi/4=1-1/3+1/5-1/7+…+(-1)n-1/(2n-1) с точностью до 1e-7.

  1. · Блок-схема

pr_r_3

  1. Кодирование
program sum;
const
      eps = 1e-7; {Точность вычислений}
var
      s,q,u:real;
      n:longint;
      k:shortint;
begin
s := 0; n := 1; k := 1;
repeat
      q := s; {Сохраняем начальное значение суммы}
      s := s + k/(2*n - 1); {Получаем очередное слагаемое}
      k := k * (-1); {Определение знака следующего 
      слагаемого}
      n := n + 1;
      u := s - q; {Текущая погрешность}
until abs(u) < eps; {Выходим из цикла, 
если погрешность станет меньше eps}
writeln('S = ', s:2:8, s*4:15:8);
writeln(Pi:29:8) {Для сравнения выводим встроенную
константу Pi}
end.

  1. Тестирование

S = 0.78539821 3.14159285

3.14159265

(Для демонстрации точности вычисления в данной задаче полученная сумма умножается на 4, что дает приблизительное значение числа «пи». Полученное значение числа «пи» сравнивается с выводом встроенной константы Pi.
Примечание: ряд сходится медленно, так что не стоит делать точность больше или eps меньше.
)

Перейти к содержанию

Просмотров 2.1к. Обновлено 11 октября 2019

Урок из серии: «Программирование на Visual Basic.NET для школьников»

Существует несколько разновидностей циклов с неизвестным числом повторений.

На прошлом уроке мы рассмотрели цикл с предусловием Do While.

На этом уроке познакомимся с ещё одной разновидностью цикла с условием — циклом с постусловием, научимся его использовать.

Цикл называется циклом с постусловием, если условие выхода из цикла стоит в конце, после тела цикла.

Visual-Basic.NET-Urok15-1 Алгоритм выполнения оператора:

  1. Выполняется тело цикла.
  2. Изменяется значение переменной цикла.
  3. Проверяется условие окончания цикла.
  4. Если условие истинно (True), поисходит выход из цикла.
  5. Если условие ложно(False), то действия повторяются с пункта 1.

Особенностью этого цикла является то, что тело цикла в любом случае выполняется хотя бы один раз (независимо от того, выполняется условие или нет).

Цикл с постусловием реализуется с помощью конструкции  Do . . . Loop Until.

Общий вид оператора:

Do
<тело цикла>
Loop Until <условие выхода>

Преждевременный выход из цикла программист может организовать при помощи конструкции Exit Do.

Проект «Проверка номера»

Смоделируйте ситуацию проверки правильности набора номера телефона в городе N. Будем считать, что телефон набран верно, если количество набранных цифр соответствует длине телефонного номера для данного города.

Технология выполнения

  1. Создайте интерфейс по образцу.Visual-Basic.Net-Urok15-2
  2. Установите для текстового поля значение свойства MaxLength равным 9 (максимальное количество цифр, которое  позволяется ввести в поле),  выберите для надписи  label2 значение свойства BorderStyle равным  Fixed3D.
  3. В окне редактора кода после строки
    «Код, автоматически созданный конструктором форм Windows»
    введите строку кода:
    Const nmax = 6  'Константа, определяющая длину набора в данном городе

  4.  Наберите программный код процедуры Button1_Click:
    Dim n As Integer 'Введенный номер
    Dim k As Byte 'Счетчик цифр
    n = Val(TextBox1.Text)
    k = 0
    Do
       k = k + 1
       n = n  10
    Loop Until n = 0
    If k = nmax Then
      Label2.Text = "Соединение возможно" : Beep()
    ElseIf k < nmax Then
      Label2.Text = "Неправильно набран номер: не хватает цифр"
    Else
      Label2.Text = "Неправильно набран номер: слишком много цифр"
    End If

  5. Запустите программу несколько раз для проверки всех возможных ситуаций.
  6. сохраните программу.

Проект «Простые множители»

Требуется создать программу разложения произвольного целого числа на простые множители. Предлагается следующий алгоритм: сначала число делится на 2 до тех пор, пока не станет нечетным. Затем оно делится последовательно на 3, 5, 7, пока результат леления не станет равным 1.

Технология выполнения

  1. Создайте интерфейс по образцу.Visual-Basic.Net-Urok15-3
  2. С помощью окна Свойства  задайте следующие значения свойств:

    Объект Свойство Значение
    Form1 Text «Простые множители»
    Label1 TextTextAlign «Введите число:»
    MiddleCenter
    TextBox1 TextMax
    Length
    TextAlign
    пусто
    10
    Center
    Button Text
    TextAlign
    «Разложить»
    MiddleCenter
    Label2 Text
    TextAlign
    BorderStyle
    пусто
    MiddleCenter
    Fixed3D

    Для текстового поля TextBox1 свойство MaxLength задает максимальную длину числа при вводе данных с клавиатуры.

  3. Наберите текст программы
    ' Разложение на простые множители
    Dim n, n1 As Integer    'Исходное число и его дубликат
    Dim del As Byte         'Простой делитель
    Dim str As String       'Строка для вывода
    n = Val(TextBox1.Text)
    del = 2
    n1 = n
    Str = ""
    Do
       If n Mod del = 0 Then
           n = n  del
           'В строку добавляется новый множитель
           str = str & CStr(del)
           'Выводится "*" после всех множителей, кроме последнего
           If n <> 1 Then str = str & "*"
       Else
           'После "2" все простые множители нечетны
           If del = 2 Then del = 3 Else del = del + 2
       End If
    Loop Until n = 1
    Label2.Text = n1 & "=" & str

  4. Сохраните программу.
  5. Доработайте программу таким образом, чтобы она подсчитывала количество множителей.
  6. Введите проверку на равенство подсчитанного количества множителей единице. Если равенство выполняется, выведите сообщение, что введенное число является простым
  7. Сохраните доработанную программу.

До встречи на следующем уроке.

Понравилась статья? Поделить с друзьями:
  • Играть на бирже для новичков пошаговая инструкция
  • Руководство по использованию аккумулятора
  • Indesit wgs 634 tx инструкция по использованию
  • Установка водосчетчика своими руками пошаговая инструкция
  • Котел тополь м руководство по эксплуатации