3 в программах какого типа используется счетный оператор цикла

Алгоритм выполнения оператора цикла с параметрами при выполнении оператора FOR:

1. счётчику циклов присваивается начальное значение i:=a;

2. проверяется условие i > b (счётчик циклов больше конечного значения);

3. если условие i > b выполняется, то на пункт 7, иначе на пункт 4

4. выполняется тело цикла;

5. счётчик увеличивается на единицу: i:=i + 1;

7. при выполнении условия i > b цикл заканчивается.

Пример: Найти сумму значений переменной цикла.

Решение: Фрагмент программы с оператором цикла запишется в виде:

For i:= 1 to 10 do s:=s+i;

Счётный оператор цикл FOR может иметь такую структуру:

FOR i: = b DOWNTO a DO ;

Замена зарезервированного слова TO на DOWNTO означает, что шаг наращивания переменной цикла равен (-1).

Пример: Найти сумму значений переменной цикла.

Фрагмент программы с оператором цикла запишется в виде:

For i:=10 downto 1 do s:=s+i;

При работе с оператором FOR следует соблюдать ряд правил:

Assembler — операторы цикла

1. Нельзя войти в цикл, минуя оператор FOR.

2. Нельзя изменять параметры цикла (a, b) внутри цикла.

3. Параметры цикла и переменная цикла должны быть целыми.

4. Шаг цикла может быть единица или минус единица.

5. Естественное окончание цикла осуществляется при условии i > b при шаге=1.

6. Из цикла можно выйти до естественного окончания цикла по условию.

Оператор цикла WHILE с предусловием

Структура оператора имеет вид:

WHILE, DO – зарезервированные слова (WHILE –пока; DO – выполнить);

– выражение логического типа;

– произвольный оператор Турбо Паскаля.

Если выражение имеет значение TRUE, то выполняется , после чего вычисление выражения и его проверка повторяются. Если имеет значение FALSE, оператор WHILE прекращает свою работу.

Пример: Переписать фрагмент примера с циклом While…do, используя оператор цикла с предусловием.

Решение: Фрагмент программы с оператором цикла запишется в виде:

В примере рассматривается составной оператор цикла, тело цикла заключено в операторные скобки.

Оператор цикла REPEAT…UNTIL с постусловием

Структура оператора имеет вид:

REPEAT, UNTIL – зарезервированные слова (повторять до тех пор, пока не будет выполнено условие);

– произвольная последовательность операторов Турбо Паскаля; – выражение логического типа.

Операторы, входящие в , выполняются хотя бы один раз, после чего вычисляется выражение : если его значение есть FALSE, операторы повторяются, в противном случае оператор REPEAT…UNTIL завершает свою работу.

Пример: Переписать фрагмент примера с циклом While…do, используя оператор цикла с постусловием.

Решение: Фрагмент программы с оператором цикла запишется в виде:

В пример цикл выполняется пока переменная i £ 10, при i >10 цикл закончится.

Пример: Написать программу циклического алгоритма рис.11.

В цикле вычислить значение функции z= x* y при условии, что одна из переменных — x меняется в каждом цикле, а другая переменная- у не меняется и может быть любым целым числом.

Цикл for. Что это. Что делает. Пример. Синтаксис. Циклы. Урок #16.

Решение: Программа алгоритма цикла со счётчиком имеет вид:

x, y, z, i, n:integer;

writeln (‘ввести x, y, количество циклов-n’);

Writeln (‘x= ’, x, ‘ y= ’, y, ‘ z= ’, z);

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

Пример: Пока y>x вычислить у=у-x,, если y=30, x=4. Вывести на экран количество циклов и значения переменной y в цикле. Алгоритм этой задачи представлен в виде блок-схемы рис.12.

Решение: Программа алгоритма цикла с предусловием имеет вид:

readln (‘i=’, i, ‘x= ’, x, ‘y= ’, y);

В примере используется оператор цикла с предусловием, который работает при условии y>x. Условие проверяется при входе в цикл.

Пример: Составитьпрограмму для алгоритма, представленного на рисунке 13, используя оператор цикла с постусловием. Цикл выполняется при условии y>x, но в конце оператора проверяется условие выхода из цикла (y<=x).

Решение: Программа алгоритма цикла с постусловием имеет вид:

readln (‘i=’, i, ‘x= ’, x, ‘y= ’, y);

Программирование. Массивы

Понятие и описание массивов

Массивом называются последовательность однотипных объектов, обозначаемая одним именем.

Массив характеризуется размером и размерностью. Размер массива — это количество элементов в нём. Размерность — это количество индексов в скобках.

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

Пример: А [20], B [5,3].

Если для выделения элемента нужен 1 индекс, массив называется одномерным, два – двумерным и т.д.

Массивы относятся к структурированным типам данных. В программе массив можно описать двумя способами:

1) непосредственно в разделе описаний переменных:

Var

имя_массива: array [1..N] of тип_элементов;

где, N – максимальное возможное количество элементов массива.

Пример:

a, b: array [1..10] of real;

d, y: array [1..5,1..5] of integer;

2) объявлением типа – массива (удобно, когда требуется несколько одинаковых массивов).

Пример:

mas= array [1..10] of real;

Элементы массива могут быть любого типа, а индексы могут быть любого порядкового типа (например, типа int, char, …). Но обычно используется тип – диапазон: 1..10, N..M.

Число элементов массива и его границы фиксируются при его описании и не могут быть изменены в процессе выполнения программы. Границы диапазона [N..M> могут быть заданы константами в разделе описания констант.

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

Пример:

y: array [1..5] of integer=(7,1,5,3,9);

Ввод и вывод массивов

Ввод и вывод массивов осуществляется поэлементно. Часто это делают с помощью циклов (обычно используется цикл FOR)

Пример: Ввести с клавиатуры значения элементов одномерного массива вещественного типа состоящего из 10 элементов. Вывести элементы массива на экран.

Читайте также:
Основные программы развития Жкх

Решение:

A: array[1..10] of integer;

for k:=1 to 10 do

for k:=1 to 10 do

Двумерные массивы (матрицы) можно вводить по строкам или по столбцам.

Пример: Пусть требуется ввести массив А (3;4):

Решение:

а) ввод и вывод по строкам:

a:array [1.. 3, 1.. 4] of integer;

Источник: zdamsam.ru

5. Программирование алгоритмов циклической структуры

В языке Pascal существует три разновидности операторов цикла:

1) счетный оператор цикла (оператор цикла со счётчиком);

2) оператор цикла с предусловием;

3) оператор цикла с постусловием.

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

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

Параметром цикла называется переменная, служащая для управления циклом. Для оператора цикла FOR в качестве используется переменная целого либо любого порядкового типа. Здесь min_значение> и max_значение>  это константы (или выражения), определяющие соответственно начальное и конечное значения параметра цикла. Их типы должны быть совместимыми с типом параметра цикла.

Вторая форма позволяет уменьшать на единицу значение параметра цикла:

Пример. Вычислить Y = 1 + 1/2 + 1/3 + . + 1/N.

Для вычисления в программе необходимо многократно произвести сложение по “формуле суммы” Y =Y+1/I при изменении параметра I от одного до N.

FOR I:=1 TO N DO Y=Y+1/I;

FOR I:=N DOWNTO 1 DO Y=Y+1/I;

Значение параметра цикла в теле цикла может не использоваться, а лишь выполнять функцию счетчика. Например, пусть необходимо вычислить Y = X n . Тогда фрагмент тела программы запишется в следующем виде:

FOR I :=1 TO N DO Y=Y*X;

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

5.2. Примеры и задания для оператора цикла со счётчиком

Пример 1. Вычислить сумму членов ряда: s = 1 +1/4 +1/9+ 1/16 + . .

Учитывая, что параметр  знаменатель числового ряда – изменяется как квадрат натурального числа, определим алгоритм решения за­дачи в виде циклической структуры (pис. 7) и напишем соответствующую программу:

PROGRAM summa;

i, N: INTEGER;

BEGIN

FOR I :=1 TO N DO

WRITELN( ‘ Сумма= ‘ , s:6:2 );

END.

Пример 2. Вычислить значения двух функций F1(x) = tg (x) и F2(x) = sin(x) в n точках, рав­номерно распределенных на ин­тер­вале a ≤ x ≤ b, где a = -π/4, b = π.

Для реализации данной задачи разработана схема алгоритма (pис. 8) иcледующая программа:

Program Lab3;

Const а = -pi/4; b = pi;

Var F1, F2, x, dx: real;

writeln (‘введите число точек N’); read(n);

writeln (‘| I | X | F1 | F2 |’);

Источник: studfile.net

Синтаксис операторов циклов.

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

Определение. Цикл – это последовательность операторов, которая может выполняться более одного раза.

Определение. Циклический алгоритм – это алгоритм, содержащий один или несколько циклов.

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

Исходными данными в этом случае являются переменная N — количество чисел и сами эти числа. Значение очередного числа обозначим переменной Х. Результатом работы алгоритма станет сумма этих чисел, которую обозначим переменной S.

Допустимые значения переменной N должны удовлетворять условию n>0, так как количество слагаемых не может быть числом отрицательным.

Как же мы должны решать эту задачу? Сначала нужно запросить, сколько чисел нужно будет сложить и считать это число в переменную N. Затем нужно так организовать операторы, чтобы программа запрашивала очередное число и каждый раз складывала его с предыдущими; и повторяла эту группу операторов N раз.

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

  • цикл с предусловием;
  • цикл с постусловием;
  • цикл со счетчиком.

Познакомимся с первым из них – оператором цикла с предусловием while.

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

При выполнении оператора while определенная группа операторов выполняется до тех пор, пока определенное в операторе while булево условие истинно. Если условие сразу ложно, то оператор не выполнится ни разу.

Общая форма записи следующая

while do begin группа операторов end;

На русском языке это звучит примерно так:

пока выполняется это условие делай
от начала
группа операторов
до конца;

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

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

1. значение условия выполнения цикла должно быть определено до начала цикла;

2. если значение условия истинно, то выполняется тело цикла, после чего повторяется проверка условия. Если условие ложно, то происходит выход из цикла;

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

Вернемся к нашей задаче вычисления суммы чисел. При вычислении суммы используем следующий прием: вначале, когда еще не задано ни одно слагаемое, сумму полагают равной нулю (S:=0), а затем, получая очередное слагаемое, прибавляют его к сумме (S:=S+x) (см. программу ниже).

Читайте также:
Как из программы налогоплательщик юл выгрузить документ в эксель

Очень важное значение в операторе цикла имеет так называемая переменная цикла. В нашей программе она называется i. С ее помощью мы обращаемся к пользователю за очередным числом (write (‘Введите ‘,i,’-ое число ’)) и считаем количество уже введенных чисел (i:=i+1), чтобы не запросить лишнее. Одновременно переменная цикла участвует в булевом выражении (i<=N).

Рассмотрите внимательно программу, решающую нашу задачу.

Хотелось бы, чтобы Вы смогли представить работу этой программы. Давайте попробуем вместе.

Пусть нам требуется сложить следующие числа: 5, 7, -4, 0, 8, 20. Посчитаем, сколько их всего – шесть. Это число мы введем, когда программа задаст вопрос: Сколько чисел для сложения?

Теперь наша программа запросит ввести 1-ое число, т. к. на первом шаге переменная i равна 1. Мы введем число 5. Программа считает его в переменную х. Теперь число 5 сложим с числом 0 и результат присвоим переменной S (оператор S:=S+x). В этот момент S становится равной 5. Чтобы перейти к следующему числу, увеличим значение переменной i на 1 (оператор i:=i+1). Выполнение операторов тела цикла закончено. Теперь программа переходит опять к анализу условия вхождения в цикл (i<=N). Переменная цикла i=2, переменная N=6, поэтому значение логического условия 2<=6 равно True. Значит снова выполняется тело цикла:

while i begin write (‘Введите ‘,i,’-ое число ’); readln (x); S:=S+x; i:=i+1; end;

Итак, мы сложили два числа и переходим опять к проверке условия. Ответим на вопрос: 3

while i begin write (‘Введите ‘,i,’-ое число ’); readln (x); S:=S+x; i:=i+1; end;

Аналогично, мы сложим и остальные числа. Но когда же операторы цикла выполнятся последний раз и остановится работа цикла? Когда сложим последнее число. Проверим это.

while i begin write (‘Введите ‘,i,’-ое число ’); readln (x); S:=S+x; i:=i+1; end;

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

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

Например, рассмотрите следующие циклические алгоритмы

а) Пока не сдал выпускные экзамены делай
начало
готовь уроки;
посещай школу;
конец;

б) Пока есть желание, возможность и здоровье делай
посещай занятия спортом

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

1. “Репка”. “Дед тянет-потянет, вытянуть не может. Позвал бабку. Бабка за дедку, дедка за репку, тянут потянут, вытянуть не могут. Позвала бабка внучку. И вытянули репку”.

2. “Курочка ряба”. “Снесла курочка яичко. Дед бил, бил, не разбил. Баба била, била, не разбила. Мышка бежала, хвостиком задела, яичко упало и разбилось”.

3. “Колобок”. “. Катится колобок по лесу. От зайца ушел, от медведя ушел, от волка ушел. Встретил лису, она его и съела”.

4. “Волк и лиса”. “. Сидит волк у проруби, хвост в воду опустил и приговаривает: “Ловись, ловись, рыбка, большая и маленькая”. Пришла за водой баба. Прогнала волка.

5. “Горшочек каши”. “. Варит горшок кашу, варит. Каша из дома на улицу потекла. Не знает мать девочки, что надо горшочку сказать. Пришла девочка, сказала: “Горшочек, не вари”. Перестал горшок кашу варить”.

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

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

Счетный оператор цикла FOR имеет такую структуру:

Здесь for, to, do – зарезервированные слова (для, до, выполнить);

– параметр цикла – переменная типа INTEGER (точнее, любого порядкового типа); – начальное значение – выражение того же типа; – конечное значение – выражение того же типа; – произвольный оператор Турбо Паскаля. При выполнении оператора FOR вначале вычисляется выражение и осуществляется присваивание :=. После этого циклически повторяется

– проверка условия ; если условие не выполнено, оператор FOR завершает свою работу;

– наращивание переменной на единицу.

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

list: array [1..N] of integer;

for i:=1 to N do writeln(list[i]);

Выражение list: array [1..N] of integer объявляет list как массив переменных типа integer c объемом памяти, выделяемым для трех целых переменных (так как N равен 3). К первой переменной массива можно обращаться как к list[1], второй – как к list[2] и третьей – как к list[3].

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

Цикл с предусловием. Оператор цикла с предусловием, начинающийся с ключевого слова while, содержит в себе выражение, которое управляет повторным выполнением оператора (который может быть составным оператором). Выражение, с помощью которого осуществляется управление повторением оператора, должно иметь булевский тип.

Вычисление его производится до того, как внутренний оператор будет выполнен. Внутренний оператор выполнятся повторно до тех пор, пока выражение принимает значение Тruе. Если выражение с самого начала принимает значение False, то оператор, содержащийся внутри оператора цикла с предусловием, не выполняется.

Оператор цикла с предусловием имеет следующую структуру:

где – выражение логического типа; – произвольные операторы Паскаля. Если принимает значение True, то выполняется ; после чего вычисление выражения и его проверка повторяются.

Примерами операторов цикла с предусловием могут служить следующие операторы:

while Data[I] <> X do I:= I + 1;

While I > 0 do begin

Читайте также:
Как разогнать оперативку через программу

if Odd(I) then Z:= Z * X;

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

Оператор цикла repeat. until с постпроверкой условия имеет следующую структуру:

Здесь REPEAT, UNTIL – зарезервированные слова (повторять до тех пор пока не будет выполнено условие); – произвольная последовательность операторов Турбо Паскаля; – выражение логического типа.

Операторы выполняются хотя бы один раз, после чего вычисляется выражение : если его значение есть FALSE, операторы повторяются, в противном случае оператор REPEAT. UNTIL завершает свою работу.

Примеры оператора цикла с постусловием:

Write(‘Введите значение (0..9):’);

until (I >= 0) and (I

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

В версии Турбо Паскаль 7.0 определены стандартные процедуры Break и Continue. Процедура Break выполняет безусловный выход из цикла. Процедура Continue обеспечивает переход к началу новой итерации цикла.

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

Продолжим изучение цикла с предусловием на примере решения следующей задачи.

Задача. Найти сумму чисел в непустой последовательности.

Рассмотрим алгоритм решения. Пусть нам дана такая последовательность чисел:

3, -4, 0, 5, 19, -20, 6, 2

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

1 2 3 4 5 6 7 8

3, -4, 0, 5, 19, -20, 6, 2

Получилось, что всего у нас чисел восемь, на первом месте стоит число 3, на втором — число (-4), на третьем — число 0 и т.д. Тогда переменная цикла i будет пробегать числа от 1 до 8, становясь на каждом шаге больше на 1 и запрашивая каждый раз очередное число. Поэтому общая схема цикла будет выглядеть так:

i:=1; while i

Здесь N — количество чисел последовательности (в нашем случае 8), х — член последовательности, i — порядковый номер очередного члена последовательности. Просмотрим, как будет работать этот цикл.

i:=1; while i begin write (‘Введите ‘,i,’-ое число’); readln (x); . i:=i+1; end;
i:=1; while i begin write (‘Введите ‘,i,’-ое число’); readln (x); . i:=i+1; end;
i:=1; while i begin write (‘Введите ‘,i,’-ое число’); readln (x); . i:=i+1; end;
i:=1; while i begin write (‘Введите ‘,i,’-ое число’); readln (x); . i:=i+1; end;

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

Если Вам не совсем понятно, что происходит при выполнении этого оператора, Вам нужно вспомнить, как происходит присваивание значение переменной: сначала вычисляется значение выражения в правой части (в нашем случае Summa+x, т.е, значение переменной Summa увеличиваем на х), а затем присваиваем это значение переменной с именем, записанным в левой части (Summa). Таким образом, в переменной Summa собирается сумма всех считанных чисел.

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

Примечание. Средним арифметическим чисел называется сумма этих чисел, деленная на их количество.

Задачи для самостоятельного решения:

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

2. Вводятся 15 чисел. Определить, сколько среди целых чисел.

3. Вывести все чётные числа начиная с числа N и до числа M. Числа N и M задает пользователь.

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

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

6. Составить программу нахождения суммы чётных чисел, находящихся в промежутке от 26 до 88.

7. Найти наибольший общий делитель двух натуральных чисел a и b.

8. Спортсмен в первый день пробежал 10 км. Каждый следующий день он увеличивал норму на 10% от нормы предыдущего дня.
а) Определить через сколько дней спортсмен пробежит суммарный путь более 100 км.
б) Определить через сколько дней спортсмен будет пробегать более 20 км.
в) Какой путь пробежит спортсмен на 7-й день.

9. Вводятся 14 чисел. Определить, сколько среди них положительных (включая 0) и сколько отрицательных. (Числа вводятся в одну переменную в цикле)

10. Запросите 16 чисел и выведите на экран для каждого, делится ли оно нацело на 11. Спросите у пользователя, сколько нужно проанализировать чисел, а затем запросите эти числа и сделайте для каждого вывод, является ли оно четным или отрицательным.

11. Найдите сумму следующей последовательности а1+а2-а3+а4-. +аn, где n — количество элементов, задаваемых пользователем.

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

13. Вывести на экран числа, кратные К из промежутка [А,В]. Числа А, В, К задает пользователь.

14. Запросите у пользователя положительное число А и найдите сумму всех натуральных чисел из промежутка [1, А].

Циклы со счетчиком.

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

Можно, конечно, циклы со счетчиком моделировать при помощи операторов while и Repeat, но структура цикла со счетчиком проще.

Источник: megalektsii.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru