Plazer-don.ru

Сварочное оборудование
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Циклы в Питоне

Циклы в Питоне

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

Циклы в Питоне

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

Цикл с параметром счетчиком

страницы: 1 2 3

Содержание

  • Содержание
  • Операторы циклов
    • for-to и for-downto
      • Инкрементный цикл с параметром
      • Декрементный цикл с параметром
      • Оператор безусловного перехода goto

      Операторы циклов

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

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

      Замечание: Алгоритмы, построенные только с использованием циклов, называются итеративными 1 — от слова итерация , которое обозначает повторяемую последовательность действий.

      for-to и for-downto

      В случае, когда количество однотипных действий заранее известно (например, необходимо обработать все компоненты массива), стоит отдать предпочтение циклу с параметром ( for ).

      Инкрементный цикл с параметром

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

      Счётчик i (переменная), нижняя граница first (переменная, константа или выражение) и верхняя граница last (переменная, константа или выражение) должны относиться к эквивалентным порядковым типам данных. Если тип нижней или верхней границы не эквивалентен типу счётчика, а лишь совместим с ним, то осуществляется неявное приведение: значение границы преобразуется к типу счётчика, в результате чего возможны ошибки.

      Цикл for-to работает следующим образом:

      1. вычисляется значение верхней границы last;
      2. переменной i присваивается значение нижней границы first;
      3. производится проверка того, что i <= last;
      4. если это так, то выполняется <оператор> ;
      5. значение переменной i увеличивается на единицу;
      6. пункты 3–5, составляющие одну итерацию цикла, выполняются до тех пор, пока i не станет строго больше, чем last; как только это произошло, выполнение цикла прекращается, а управление передаётся следующему за ним оператору.

      Из этой последовательности действий можно понять, какое количество раз отработает цикл for-to в каждом из трёх случаев:

      • first < last : цикл будет работать last — first + 1 раз;
      • first = last : цикл отработает ровно один раз;
      • first > last : цикл вообще не будет работать.

      После окончания работы цикла переменная–счётчик может потерять своё значение 2 . Таким образом, нельзя с уверенностью утверждать, что после того, как цикл завершил работу, обязательно окажется, что i = last + 1 . Поэтому попытки использовать переменную-счётчик сразу после завершения цикла (без присваивания ей какого–либо нового значения) могут привести к непредсказуемому поведению программы при отладке.

      Декрементный цикл с параметром

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

      Счётчик i (переменная), верхняя граница first (переменная, константа или выражение) и нижняя граница last (переменная, константа или выражение) должны иметь эквивалентные порядковые типы . Если тип нижней или верхней границы не эквивалентен типу счетчика, а лишь совместим с ним, то осуществляется неявное приведение типов.

      Цикл for-downto работает следующим образом:

      1. переменной i присваивается значение first ;
      2. производится проверка того, что i >= last ;
      3. если это так, то выполняется <оператор> ;
      4. значение переменной i уменьшается на единицу;
      5. пункты 2-4 выполняются до тех пор, пока i не станет меньше, чем last ; как только это произошло, выполнение цикла прекращается, а управление передаётся следующему за ним оператору.
      • first < last , то цикл вообще не будет работать;
      • first = last , то цикл отработает один раз;
      • first > last , то цикл будет работать first — last + 1 раз.

      Замечание о неопределённости значения счётчика после окончания работы цикла справедливо и в этом случае.

      while и repeat-until

      Если заранее неизвестно, сколько раз необходимо выполнить тело цикла, то удобнее всего пользоваться циклом с предусловием ( while ) или циклом с постусловием ( repeat-until ).

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

      Условие окончания цикла может быть выражено переменной, константой или выражением, имеющим логический тип .

      Замечание: Обратите внимание, что на каждой итерации циклы for и while выполняют только по одному оператору (либо группу операторов, заключённую в операторные скобки begin-end и потому воспринимаемую как единый составной оператор). В отличие от них, цикл repeat-until позволяет выполнить сразу несколько операторов: ключевые слова repeat и until сами служат операторными скобками.

      Так же, как циклы for-to и for-downto , циклы while и repeat-until можно назвать в некотором смысле противоположными друг другу.

      Последовательности действий при выполнении этих циклов таковы:

      Для while :Для repeat-until :
      1. Проверяется, истинно ли <условие_1>.1. Выполняются <операторы>.
      2. Если это так, то выполняется <оператор>.2. Проверяется, ложно ли <условие_2>
      3. Пункты 1 и 2 выполняются до тех пор, пока <условие_1> не станет ложным.3. Пункты 1 и 2 выполняются до тех пор, пока <условие_2> не станет истинным.

      Таким образом, если <условие_1> изначально ложно, то цикл while не выполнится ни разу. Если же <условие_2> изначально истинно, то цикл repeat-until выполнится один раз.

      Break и Continue

      Существует возможность 3 прервать выполнение цикла (или одной его итерации), не дождавшись конца его (или её) работы.

      Break прерывает работу всего цикла и передаёт управление на следующий за ним оператор.

      Continue прерывает работу текущей итерации цикла и передаёт управление следующей итерации (цикл repeat-until ) или на предшествующую ей проверку (циклы for-to , for-downto , while ).

      Замечание: При прерывании работы циклов for-to и for-downto с помощью функции Break переменная цикла (счётчик) сохраняет своё текущее значение, не «портится».

      Оператор безусловного перехода goto

      Возвращаясь к сказанному об операторе goto 4 , необходимо отметить, что при всей его нежелательности всё–таки существует ситуация, когда предпочтительно использовать именно этот оператор — как с точки зрения структурированности текста программы, так и с точки зрения логики её построения, и уж тем более с точки зрения уменьшения трудозатрат программиста. Эта ситуация — необходимость передачи управления изнутри нескольких вложенных циклов на самый верхний уровень.

      Дело в том, что процедуры Break и Continue прерывают только один цикл — тот, в теле которого они содержатся. Поэтому в упомянутой выше ситуации пришлось бы заметно усложнить текст программы, вводя много дополнительных прерываний. А один оператор goto способен заменить их все.

      Сравните, например, два программно–эквивалентных отрывка:

      Write ( ‘Матрица ‘ ) ;
      for i := 1 to n do
      begin
      flag := False ;
      for j := 1 to m do
      if a[i , j] > a[i , i] then
      begin
      flag := True ;
      Write ( ‘не ‘ ) ;
      Break ;
      end ;
      if flag then Break ;
      end ;
      WriteLn ( ‘обладает свойством’ +
      ‘ диагонального преобладания.’ ) ;

      Write ( ‘Матрица ‘ ) ;
      for i := 1 to n do
      for j := 1 to m do
      if a[i , j] > a[i , i] then
      begin
      Write ( ‘не ‘ ) ;
      goto 1 ;
      end ;
      1 : WriteLn ( ‘обладает свойством’ +
      ‘ диагонального преобладания.’ ) ;

      Пример использования циклов

      Задача. Вычислить интеграл в заданных границах a и b для некоторой гладкой функции f от одной переменной (с заданной точностью).

      Алгоритм. Метод последовательных приближений, которым мы воспользуемся для решения этой задачи, состоит в многократном вычислении интеграла со всё возрастающей точностью, — до тех пор, пока два последовательных результата не станут различаться менее, чем на заданное число (скажем, eps = 0,001). Количество приближений нам заранее неизвестно (оно зависит от задаваемой точности), поэтому здесь годится только цикл с условием (любой из них).

      Вычислять одно текущее значение для интеграла мы будем с помощью метода прямоугольников: разобьём отрезок [a, b] на несколько мелких частей, каждую из них дополним (или урежем — в зависимости от наклона графика функции на данном участке) до прямоугольника, а затем просуммируем получившиеся площади. Количество шагов нам известно, поэтому здесь удобнее всего воспользоваться циклом с параметром.

      На нашем рисунке изображена функция f(x) = x 2 (на отрезке [1, 2]). Каждая из криволинейных трапеций будет урезана (сверху) до прямоугольника: высотой каждого из них послужит значение функции на левом конце участка. График станет «ступенчатым».

      Реализация

      03-01.png

      Вывод массива, удобный для пользователя

      Задача. Распечатать двумерный массив размерности MxN удобным для пользователя способом. (Известно, что массив содержит только целые числа из промежутка [0 .. 100].)

      Алгоритм. Понятно, что если весь массив мы вытянем в одну строчку (или, того хуже, в один столбик), то хороших слов в свой адрес мы от пользователя не дождёмся. Именно поэтому нам нужно вывести массив построчно, отражая его структуру.

      Цикл с параметром счетчиком

      Урок 42. Цикл с заданным числом повторений. Итерационный цикл

      Циклы с заданным числом повторений

      imageПример 1. Дано целое положительное значение N. Требуется вычислить сумму:

      image

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

      image

      Обратите внимание на то, как цикл с предусловием преобразуется в цикл с постусловием — условие цикла помещается после тела цикла и заменяется на противоположное:

      И тот, и другой цикл повторят свое выполнение (N + 1) раз. Переменная i выполняет роль не только знаменателя в дроби 1/i!, но и является счетчиком числа повторений цикла. Такие переменные называются параметрами цикла. И еще: в цикле с постусловием служебные слова Repeat и Until сами выполняют роль операторных скобок. Поэтому писать Begin и End здесь не требуется.

      Выполнение этих программ на компьютере для значения N = 7 приводит к следующему результату: Е=2,7182539.

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

      image

      В программе используется оператор цикла For, для которого существуют два варианта:

      1) For <параметр цикла>:=<выражение 1> То <выражение 2>

      Do <оператор>

      2) For <параметр цикла>:=<выражение 1> Downto <выражение 2>

      Do <оператор>

      Здесь <параметр цикла> — имя простой переменной порядкового типа. Выполнение оператора For в первом варианте (То) происходит по следующей схеме.

      1. Вычисляются значения <выражения 1> и <выражения 2>. Это делается только один раз при входе в цикл.

      2. Параметру цикла присваивается значение <выражения 1>.

      3. Значение параметра цикла сравнивается со значением <выражения 2>. Если параметр цикла меньше или равен этому значению, то выполняется тело цикла (<оператор>), в противном случае выполнение цикла заканчивается.

      4. Значение параметра цикла изменяется на следующее значение в его типе (для целых чисел — увеличивается на единицу); происходит возврат к пункту 3.

      Оператор цикла For объединяет в себе действия, которые при использовании цикла While выполняют различные операторы: присваивание параметру начального значения, сравнение его с конечным значением, изменение значения параметра на следующее.

      Во втором варианте оператора For слово Downto буквально можно перевести как «вниз до». В таком случае параметр цикла изменяется по убыванию, т. е. при каждом повторении цикла параметр изменяет свое значение на предыдущее (равносильно i : =pred (i)).

      Работая с оператором For, учитывайте следующие правила:

      • параметр цикла не может иметь вещественного типа;
      • в теле цикла нельзя изменять переменную-параметр цикла;
      • при выходе из цикла значение переменной-параметра является неопределенным.

      Рассмотрим пример программы, в которой в теле цикла будет присутствовать ветвление.

      imageПример 2. Составим программу проверки знаний учеником таблицы умножения. Компьютер задает ученику 10 вопросов на умножение чисел от 2 до 9. На каждое задание ученик вводит свой ответ, компьютер сообщает, верный ответ или нет.

      На рисунке 3.16 приведена блок-схема такого алгоритма.

      image

      Обратите внимание на то, как отображается на блок-схеме цикл с параметром.

      В этом алгоритме использована функция random (х), результатом выполнения которой является случайное целое число из диапазона от 0 до х — 1. Следовательно, выражение random (8)+2 принимает случайные значения от 2 до 9. Функция random называется датчиком случайных чисел.

      На Паскале этот алгоритм программируется так:

      image

      А вот фрагмент интерфейса исполнения этой программы:

      В программе используется стандартная процедура randomize. Ее исполнение производит установку случайного начального состояния датчика случайных чисел. Благодаря этому при повторном выполнении программы будут получаться разные последовательности случайных чисел.

      image

      Вопросы и задания

      1. Постройте трассировочную таблицу выполнения программы Summa_1 для значения n = 3.

      2. Составьте программу, по которой компьютер десять раз запросит ввод любых чисел и в результате выведет среднее арифметическое значение введенных чисел (массив не использовать). Сделайте три варианта программы, используя операторы цикла While, Repeat и For.

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

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

      5. Усовершенствуйте программу TablMul (пример 2 данного параграфа) таким образом, чтобы в результате выводилось сообщение о количестве правильных и неправильных ответов.

      6. Усовершенствуйте программу TablMul таким образом, чтобы в результате выводилась оценка, поставленная ученику. Критерии для выставления оценок придумайте сами.

      7. Получите таблицу значений функции sin x и cos x на отрезке [0, 1] с шагом 0,1 в следующем виде:

      image

      8. Получите в возрастающем порядке все трехзначные числа, в десятичной записи которых нет одинаковых цифр.

      9. Значение функции е х (экспонента от х) равно сходящейся сумме бесконечного ряда:

      image

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

      Итерационные циклы

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

      imageПример 1. Снова рассмотрим задачу вычисления суммы числового ряда:

      image

      Но теперь условие будет таким: в сумму нужно включить только слагаемые, значение которых больше некоторой малой величины ε. При этом полученная сумма будет отличаться от предельного значения (константы е) на величину, не большую ε.

      Поскольку с увеличением значения i величина 1/i! уменьшается, в сумму надо включать все слагаемые, предшествующие первому значению, меньшему ε. Вот две программы решения этой задачи, использующие циклы с предусловием и постусловием:

      image

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

      В качестве результата выводится значение суммы и число вошедших в нее слагаемых. Выполнение этих программ для значения ε=10 -8 дает в результате:Е=2,71828182, Слагаемых: 12. Таким образом, за 12 повторений цикла значение константы е получено с точностью до 8 знаков после запятой. Слово «итерации» означает «приближения». С каждым повторением цикла вычисляемая величина приближалась к предельному значению константы.

      imageПример 2. На уроках 33 — 35 "Программирование линейных алгоритмов" была рассмотрена задача вычисления суммы цифр трехзначного натурального числа. Программа имела линейную структуру. Поставим задачу в более общем виде: для любого многозначного натурального числа вычислить сумму всех его цифр.

      Выделение цифр происходит с помощью однотипных действий: использования операций mod и div. Очевидно, что их можно «зациклить». Однако число повторений цикла будет разным для чисел разной длины. Поэтому эта задача не решается с помощью цикла с заданным числом повторений. В таком случае в программе можно использовать либо оператор цикла While, либо Repeat и нельзя — цикл с параметром For.

      Программа с использованием цикла с предусловием:

      image

      Поскольку при каждом повторении цикла от числа X отбрасывается одна младшая цифра, закончить цикл нужно тогда, когда X станет равным нулю. Обратите внимание на типы переменных. Надо помнить о разнообразии групп типов в Паскале. Назначение переменной X типа Longint дает возможность вводить в нее значения, включающие до десяти знаков. Для переменной Sum, назначен тип Word, поскольку сумма цифр может быть только положительным числом.

      image

      Вопросы и задания

      1. Найдите все значения натуральных чисел X, Y, Z из интервала от 1 до 10, удовлетворяющих равенству: X 2 + Y 2 = Z 2 .

      2. Вычислите количество точек с целочисленными координатами, попадающих в круг радиуса R (R > 0) с центром в начале координат.

      3. Старинная задача. Сколько можно купить быков, коров и телят на 100 руб., если в сумме должно быть куплено 100 голов скота, а цена быка — 10 руб., цена коровы — 5 руб., цена теленка — 0,5 руб.?

      4. Чем отличается итерационный цикл от цикла с заданным числом повторений?

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

      6. Запрограммируйте итерационный цикл вычисления функции е х (см. задание 9 из "Программирование циклов" *1* ) с точностью ε. Сделайте два варианта программы: с циклами While и Repeat. Выполните вычисления для ε = 10 -6 , х = 2 и сопоставьте полученный результат со значением стандартной функции ехр (х).

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

      8. Составьте программу определения наибольшей цифры в записи данного натурального числа.

      *1* Задание 9 из "Программирование циклов"

      Значение функции е х (экспонента от х) равно сходящейся сумме бесконечного ряда:

      image

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

      Операторы цикла в языке C#

      В C# имеются четыре различных вида циклов (for, while, do…while и foreach), позволяющие выполнять блок кода повторно до тех пор, пока удовлетворяется определенное условие.

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

      Рассмотрим синтаксис операторов с примерами их применения.

      Цикл for

      Цикл for в C# предоставляет механизм итерации, в котором определенное условие проверяется перед выполнением каждой итерации.
      Синтаксис этого оператора показан ниже:

      for (инициализатор; условие; итератор) оператор (операторы);

      Здесь:
      инициализатор — это выражение, вычисляемое перед первым выполнением тела цикла (обычно инициализация локальной переменной в качестве счетчика цикла). Инициализация, как правило, представлена оператором присваивания, задающим первоначальное значение переменной, которая исполняет роль счетчика и управляет циклом;

      условие — это выражение, проверяемое перед каждой новой итерацией цикла (должно возвращать true, чтобы была выполнена следующая итерация);

      итератор – это выражение, вычисляемое после каждой итерации (обычно приращение значения счетчика цикла).

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

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

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

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

      2161

      Результат:

      Цикл while

      Подобно for, while также является циклом с предварительной проверкой.
      Синтаксис его аналогичен, но циклы while включают только одно выражение:

      while (условие) оператор (операторы);

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

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

      Как только условие становится ложным, управление программой передается строке кода, следующей непосредственно после цикла.

      Как и в цикле for, в цикле while проверяется условное выражение, указываемое в самом начале цикла. Это означает, что код в теле цикла может вообще не выполняться, а также избавляет от необходимости выполнять отдельную проверку перед самим циклом.

      2162

      Результат:

      Цикл do…while

      Цикл do…while (делай — пока) в C# — это версия while с постпроверкой условия. Это значит, что условие цикла проверяется после выполнения тела цикла.

      Следовательно, циклы do…while удобны в тех ситуациях, когда блок операторов должен быть выполнен как минимум однажды.

      Ниже приведена общая форма оператора цикла do-while:

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

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

      В качестве примера использования цикла do-while можно привести следующую программу, рассчитывающую факториал числа:

      2163

      Результат:

      Цикл foreach

      Цикл foreach служит для циклического обращения к элементам коллекции (см. далее), представляющей собой группу объектов.

      В C# определено несколько видов коллекций, каждая из которых является массивом.
      Ниже приведена общая форма оператора цикла foreach:

      foreach (тип имя_переменной_цикла in коллекция) оператор;

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

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

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

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

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

      Цикл завершается, когда все элементы массива окажутся выбранными.

      Цикл foreach позволяет проходить по каждому элементу коллекции (объект, представляющий список других объектов). Формально для того, чтобы нечто можно было рассматривать как коллекцию, это нечто должно поддерживать интерфейс IEnumerable.

      Примерами коллекций могут служить массивы C#, классы коллекций из пространства имен System.Collection, а также пользовательские классы коллекций.

      Пример использования цикла foreach:

      2164

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

      Внимание! Об ограниченности применения цикла foreach:

      При компиляции конструкции:

      возникает ошибка:
      Невозможно присвоить «fVar» значение, поскольку он является «переменная цикла foreach».

      Это означает, в данном типе цикла изменить элемент массива невозможно, и следует использовать другие конструкции цикла.

      Примечание автора

      Непонимание циклических действий – первый признак профнепригодности программиста. Совет: научитесь программировать циклы без ошибок.

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

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

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

      Таким образом, возведение числа n в степень d можно выразить так:
      n d = n1 * n2 * n3 * … * nd , где нижние индексы просто указывают очередное по счету число n .

      Еще необходимо учесть следующее:

      • число в нулевой степени равняется 1
      • если показатель степени отрицателен, т.е. d , то задача решается по формуле:
        n d = 1 / (n1 * n2 * n3 * … * nd)

      Т.е., решая программу на Паскале, учитываем:

      • в программе на языке Паскаль количество итераций (повторений) цикла while должно быть равно показателю степени числа по модулю;
      • если показатель степени — отрицательное число, то нужно впоследствии единицу разделить на результат.

      Задача 6. Вычислить в Паскале степень числа, используя цикл while.

      голоса
      Рейтинг статьи
      Читайте так же:
      Joyetech 150w счетчик затяжек
Ссылка на основную публикацию
Adblock
detector