Конспект лекций по программированию для начинающих. Гладков В.П. - 158 стр.

UptoLike

Составители: 

160
i:=i+1
end;
Пример 11.17. Вычислить произведение сумм элементов заданного
одномерного массива: x
n
(x
n
+x
n-1
)(x
n
+x
n-1
+x
n-2
)...(x
n
+x
n-1
+...+x
1
).
Решение. Здесь нужно найти произведение n сомножителей. Каждый
сомножитель представляет собой сумму элементов массива. Каждая сумма
отличается от предыдущей добавлением одного элемента массива. Просмотр
массива здесь лучше всего вести с конца.
p:=1;
s:=0;
for i:=n downto 1 do
begin s:=s+a[i];
p:=p*s
end;
Пример 11.18 Заполнить массив случайными трехзначными целыми числами.
Решение. «Случайно выбранные» числа широко используются в информатике,
например, при моделировании разных явлений (приход клиентов в банк, выбор
респондентов при опросе общественного мнения, тасование карт, бросание
игральных костей), в численном анализе (метод Монте - Карло), для получения
данных для тестирования, для принятия решений (каждый, наверное, хотя бы
однажды принимал решение бросая монету)
и т.д. В Паскале есть специальная
стандартная функция random, значением которой является случайное число из
интервала [0;1). Эта функция обычно называется датчиком случайных чисел. При
каждом вызове функции это число каждый раз свое. Если же вызывать функцию
много раз подряд, то множество полученных чисел будет равномерно
распределено в интервале [0;1). При повторном запуске
программы
последовательность случайных чисел повторяется. Это сделано для удобства
отладки программ. Таким образом, числа эти получаются с помощью специального
алгоритма, реализуемого функцией random, поэтому их еще называют
псевдослучайными.
Функция random(a) возвращает целое псевдослучайное число из интервала
[0;a). Если нужно случайное число из интервала [a;b], то применяют выражение
a+random(b+1-a). Например, для получения случайной цифры - выражение
random(10). Для получения случайного числа из интервала [-60;50] используют
выражение -60+random(51-(-60)) = -60+random(111). Применяя описанное, пример
11.18 можно на Паскале записать так:
for i:=1 to n do a[i]:=10+random(90).
11.6.2. Решение задач второго класса
Характерным признаком задач второго класса является изменение порядка
следования элементов массива. Для этого часто приходится менять местами
элементы массива. Эта работа в Паскале выполняется с помощью приведенных
ниже операторов:
{обменять местами элементы a[i] и a[j]}
r:=a[i]; { запомнили a[i] во вспомогательной переменной }
                                    160

           i:=i+1
    end;
    Пример 11.17. Вычислить произведение сумм элементов заданного
одномерного массива: xn(xn+xn-1)(xn+xn-1+xn-2)...(xn+xn-1+...+x1).
    Решение. Здесь нужно найти произведение n сомножителей. Каждый
сомножитель представляет собой сумму элементов массива. Каждая сумма
отличается от предыдущей добавлением одного элемента массива. Просмотр
массива здесь лучше всего вести с конца.
    p:=1;
    s:=0;
    for i:=n downto 1 do
    begin      s:=s+a[i];
               p:=p*s
    end;
    Пример 11.18 Заполнить массив случайными трехзначными целыми числами.
    Решение. «Случайно выбранные» числа широко используются в информатике,
например, при моделировании разных явлений (приход клиентов в банк, выбор
респондентов при опросе общественного мнения, тасование карт, бросание
игральных костей), в численном анализе (метод Монте - Карло), для получения
данных для тестирования, для принятия решений (каждый, наверное, хотя бы
однажды принимал решение бросая монету) и т.д. В Паскале есть специальная
стандартная функция random, значением которой является случайное число из
интервала [0;1). Эта функция обычно называется датчиком случайных чисел. При
каждом вызове функции это число каждый раз свое. Если же вызывать функцию
много раз подряд, то множество полученных чисел будет равномерно
распределено в интервале [0;1). При повторном запуске программы
последовательность случайных чисел повторяется. Это сделано для удобства
отладки программ. Таким образом, числа эти получаются с помощью специального
алгоритма, реализуемого функцией random, поэтому их еще называют
псевдослучайными.
    Функция random(a) возвращает целое псевдослучайное число из интервала
[0;a). Если нужно случайное число из интервала [a;b], то применяют выражение
a+random(b+1-a). Например, для получения случайной цифры - выражение
random(10). Для получения случайного числа из интервала [-60;50] используют
выражение -60+random(51-(-60)) = -60+random(111). Применяя описанное, пример
11.18 можно на Паскале записать так:
    for i:=1 to n do a[i]:=10+random(90).

                    11.6.2. Решение задач второго класса
   Характерным признаком задач второго класса является изменение порядка
следования элементов массива. Для этого часто приходится менять местами
элементы массива. Эта работа в Паскале выполняется с помощью приведенных
ниже операторов:
   {обменять местами элементы a[i] и a[j]}
   r:=a[i]; { запомнили a[i] во вспомогательной переменной }