ВУЗ:
Составители:
Рубрика:
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] во вспомогательной переменной }
Страницы
- « первая
- ‹ предыдущая
- …
- 156
- 157
- 158
- 159
- 160
- …
- следующая ›
- последняя »