Функция random для генерации случайного числа
В средах программирования или в приложениях электронных таблиц имеется возможность генерации случайного числа.
Рассмотрим получение случайных чисел:
- вещественных
- целых
Будем использовать среду программирования PascalABC.NET.
Решим также задачу с использованием случайного числа.
Выполним присваивание
a:=random;
При использовании такого выражения и переменной типа integer возникает ошибка.
Делаем вывод
Функция random выдает значение типа real в диапазоне [0; 1)
Значит для использования функции random и получения вещественного числа будет использовать переменную типа real.
Для получения целого числа воспользуемся присваиванием
a:=random(10);
В данном случае будут случайно сгенерированы первые 10 неотрицательных чисел в промежутке от 0 до 9.
Чтобы получить целое число из промежутка [a; b], воспользуемся формулой:
Пусть нужно получить случайное число из промежутка [-2; 10]
Формула примет такой вид:
-2 + random(10-(-2)+1) = -2 + random(13)
Если random(13) сгенерирует 0, то будет получена левая граница промежутка -2 + 0 = -2, если random(13) сгенерирует 12, то будет получена правая граница -2+12 = 10.
Для получения случайного числа из промежутка также можно воспользоваться функцией random с двумя аргументами — левой и правой границами промежутка (в среде Free Pascal работать не будет).
a:=random(-2,12);
Задача. Получить 30 случайных чисел из промежутка [-2;12] и вывести их на экран.
Воспользуемся циклом for с счетчиком x от 1 до 30, сгенерируем и выведем на экран 30 случайных чисел.
Итоги
Как использовать функцию random для генерации случайного числа
- Вещественное число
- Целое число
Напишите в комментариях, какие числа будут получены с помощью таких присваиваний?
Программа получения массива случайных чисел.
Dragon1256 |
||||||||
1 |
||||||||
03.04.2012, 22:15. Показов 7494. Ответов 1 Метки нет (Все метки)
я это сделала, а у меня что то нее выходит
у меня вылазиет ожидалось логическое выражение после s
|
gralgar |
||||
03.04.2012, 23:27 |
2 |
|||
if s then Добавлено через 10 минут
(латиницу разберешь, читаемо) |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
03.04.2012, 23:27 |
Помогаю со студенческими работами здесь Поиск элемента, меньшего заданного, в упорядоченном массиве Поиск индекса заданного элемента в отсортированном массиве Реализовать бинарный поиск заданного элемента в массиве Быстрый поиск индекса заданного элемента в упорядоченном массиве Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 2 |
Паскаль.Найти четное число.
Получил заданние, не знаю как приступить даже(((
В паскале нужно написать программку…
Имеется ли среди заданных чисел A, B, C хотя бы одно чётное?
6 ответов
320
26 мая 2008 года
m_Valery
1.0K / / 08.01.2007
Получил заданние, не знаю как приступить даже(((
В паскале нужно написать программку…
Имеется ли среди заданных чисел A, B, C хотя бы одно чётное?
- Для каждой задачи создавай отдельную тему.
- Дай теме нормальное название,а подробности о своих ощущениях
лучше опускай,это не интересно никому.Тебе помощь нужна ведь ? Или поддержка в твоей расстерянности ? Мне личным сообщением пришли новое название темы.
17K
26 мая 2008 года
ALEX_
40 / / 19.04.2007
Код:
var a,b,c:integer;
begin
writeln(«Введите А,В,С»);
readln(a,b,c);
if (a mod 2 =0) or (b mod 2 =0) or (c mod 2=0) then
writeln(«Хотя бы одно число четное»)
else
writeln(«Ни одного четного»);
readln;
end.
1.6K
26 мая 2008 года
Vov4ick
476 / / 01.02.2007
Можно их перемножить и проверить результат на чётность. Но прямой метод быстрее и без переполнений, хотя переполнение на чётность и не повлияет.
а в пасике нет функции odd???:cool:
1.6K
27 мая 2008 года
Vov4ick
476 / / 01.02.2007
а в пасике нет функции odd???:cool:
А в каком ЯВУ она есть? Есть функция получения остатка от деления, в том числе на два. Для гурманов в ЯВУ никто не мешает сделать
Код:
asm{
test что надо,1
jz чётно
} end
Вообще клавиша F1 рулит.
431
28 мая 2008 года
sherry
207 / / 16.10.2006
Да чего тут мудрить? Решение в 2 строчки ведь!
TRUE — присутствует, FALSE — не присутствует
Код:
VAR
a,b,c: integer;
BEGIN
readln(a,b,c);
writeln(not(Odd(a) and Odd(b) and Odd(c)));
readln;
END.
Pascal задачи
Вводятся три целых числа. Определить какое из них наибольшее.Пусть a, b, c – переменные, которым присваиваются введенные числа, а переменная max в конечном итоге должна будет содержать значение наибольшей переменной.Разбор задачи на Pascal
Алгоритм решения задачи на языке программирования Паскаль
1) Сначала предположим, что переменная a содержит наибольшее значение. Присвоим его переменной max
2) Если текущее значение m меньше, чем у b, то следует присвоить m значение b. Если это не так, то не изменять значение max.
3)Если текущее значение max меньше, чем у c, то присвоить m значение c. Иначе ничего не делать.
Решение задачи с использованием Паскаль
var
a,b,c,max: integer;
begin
writeln(‘Введите первое число’);
readln(a);
writeln(‘Введите второе число’);
readln(b);
writeln(‘Введите третье число’);
readln(c);
max := a;
if max < b then max := b;
if max < c then max := c;
writeln(‘Наибольшее число — ‘ , max);
end.
Pascal задачи
Все задачи на Паскаль
Репост статьи
24 ноября 2022 г.
Комментарии могут оставлять только зарегестрированные пользователи!
Комментарии
Ваш комментарий будет первым !
Проще всего задача поиска максимального из трех, четырех и более чисел, решается перегрузкой функции нахождения максимума из двух.
Аналогичные функции можно написать для поиска минимального из чисел. Для этого достаточно сменить знак сравнения в функции с двумя аргументами(в первой из рассмотренных).
Для реализации сначала нужно написать функцию, которая находит максимальное из двух чисел.
Функция определения максимального из двух чисел
function Max(x1, x2 : integer) : integer;
begin
if x1 > x2 then
Max := x1
else
Max := x2;
end;
Теперь у нас есть код, который возвращает наибольшее из двух чисел. Для того, чтобы расширить количество аргументов до трех, достаточно написать ещё одну функцию, которая будет дважды вызывать предыдущую.
Функция поиска наибольшего из трех чисел
function Max(x1, x2, x3 : integer) : integer;
begin
Max := Max(Max(x1, x2), x3);
end;
А что если нужно сравнить четыре, пять и больше чисел, и найти максимальное из них?
Без проблем, мы можем писать столько перегруженных функций, сколько нам нужно.
Максимум из четырех чисел
function Max(x1, x2, x3, x4 : integer) : integer;
begin
Max := Max(Max(x1, x2, x3), x4);
end;
Эта функция использует вызов двух предыдущих.
Программа для поиска и вывода максимальных чисел
все приведенные выше функции должны быть размещены в том же порядке над телом основной программы
В зависимости от количества аргументов, компилятор выбирает какую из функций вызывать.
begin
writeln(Max(1, 4));
writeln(Max(9, 2, 7));
writeln(Max(8, 3, 6, 5));
readln;
end.
Если предполагается сравнивать много чисел, то лучше всего представить их в виде массива, и искать минимальный или максимальный элемент в массиве.