Умножение, деление, сложение, вычитание вещественных чисел в Pascal.

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

Логические операции с целыми числами.

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

Ввод логических переменных с клавиатуры.

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

Циклы и массивы

Арифметический цикл с рекуррентной зависимостью.

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

Работа со строковыми данными.

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

Процедура Randomize используется в Паскаль для включения генератора случайных чисел. Функция Random определяет диапазон случайных чисел. Процедура Randomize и функция Random очень часто используются для демонстрации работы массивов в Паскаль.

Randomize и Random в Паскаль.


program massiv4;
uses crt;
var a:integer;
begin
clrscr;
randomize;
repeat
a:=random(1000);
writeln(a);
until a=256;
readln
end.

Строка №6. Инициализируем (включаем) генератор случайных чисел с помощью процедуры Randomize.

Строка №8. Присваиваем переменной «a» случайные числа в диапазоне от 0 до 999 (т.е. от 0 до 1000, но, не включая число 1000) с помощью функции Random. Т.е. запись (1000) означает, что все сгенерированные числа будут не меньше 0 и не больше 999. Предположим, что нам необходимо записать другой диапазон чисел, например от -1000 до 1000. В этом случае строка №8 будет иметь вид: a:= -1000 random(2001). Т.е. сначала записываем минимальное число диапазона (-1000), а в функции Random записываем сумму модуля минимального и максимального числа и прибавляем к ней 1. |-1000|+|1000|+1=2001. Таким образом, переменной «a» будут присвоены случайные числа в диапазоне от -1000 до 1000.

В строке №9 выводим сгенерированные числа на экран.

Строки №8 и №9 включены в цикл (строка №7 и №10). Случайные числа будут генерироваться и выводиться на экран до тех пор пока не выполнится условие цикла (строка №10), т.е. когда очередное сгенерированное число окажется числом 256.

randomize i random v pascal.

randomize i random v pascal..


Дополнение к материалу.

  • Если бы мы записали функцию Random без цикла (т.е. если убрать строки №7 и №10), то у нас будет сгенерировано только одно число и только оно будет выведено на экран.
  • Если убрать из программы процедуру Randomize (т.е. строку №6), то каждый раз при запуске программы у нас будут генерироваться одни и те же числа. Например, при первом запуске программы у нас сгенерировалось 50 случайных чисел. Последним числом оказалось число 256. Программа остановилась. Если закрыть программу, и запустить ее по новой, то у нас сгенерируются те же самые 50 чисел.
  • Строку «a:= -1000 random(2001)» можно записать и таким способом: «a:= random(2001) - 1000».
  • Если для функции Random не указывать диапазон (т.е. строку №8 записать как: a:=random, то переменной «a» будут присвоены случайные значения от 0 до 1, но не включая 1 (например, 0.3, 0.5, 0.9 и т.д.). В этом случае переменная «a» должна иметь не целый тип (integer), а вещественный тип (например, real).

Предыдущая статья : Использование массивов (продолжение).

Оглавление : Уроки Паскаль. Массивы.

Следующая статья : Нахождение максимального элемента массива.


Комментарии  

 
+8 # no name 28.01.2013 17:33
спасибо большое ;-)
 
 
-18 # Человек 30.01.2013 18:30
:sad: а у меня выдает оишбку на 8:10
 
 
-6 # Ангел хранитель 31.10.2014 07:42
У тебя, возможно, uses crt не прописан, или с ошибкой.
 
 
-9 # тимур 12.08.2016 08:12
помощь
var a1,b1,c1 :integer;
a,b,c :string;
begin
writeln ('Я придумаю число, а ты посторайся отгадать его');
a1:=random(100) ;
writeln(a1);

readln (b1);

end.
 
 
-6 # Степан 09.09.2017 06:20
Добрый день, помимо сказанного, вы в программе будете сначала выводить число, а потом только давать запрос на ввод предполагаемого , логичнее было бы поменять местами writeln(a1); и readln(b1);, так же возможно имеет смысл выводить предполагаемое число для сравнения результата
 
 
-4 # 007 01.03.2013 06:15
;-) spasiba
 
 
-7 # 1111 09.05.2013 06:53
спс буду знать ;-)
 
 
-20 # добрий человек 19.05.2013 16:38
другий спосіб працює randon(2001)-10 00, у першому всі числа від'ємні виходять
 
 
-6 # Федор 16.02.2014 11:30
ребята а есть у функции рандомайз или рандом. такая штука что бы сгенерированные числа не повторялись?
 
 
-4 # Chel 25.02.2014 12:42
randomize используется, чтобы числа не повторялись
 
 
-9 # сергей 27.12.2014 19:12
Федор имел ввиду чтобы небыло 4,8,2,4,5,4... то есть чтобы числа внутри не повторялись. Только для этого надо функцию описать, я так уже делал, когда генератор казино ляпал..
 
 
+1 # Program 25.02.2014 12:41
var a : integer;
begin
randomize; // используется, чтобы числа не повторялись
a := random(10);
writeln(a);
readln;
end;
 
 
-10 # Nobody 06.04.2014 14:37
Обязательно писать второй раз "randomize", если нужно, что бы ещё одно число было случайным¿¿¿
 
 
-6 # Kirill 15.04.2014 05:03
randomize и так генерирует все случайные числа, можно писать один раз.
 
 
-9 # Denis 13.11.2014 19:15
как сделать так чтобы эти случайные числа которые генерируются всегда были разными, а то у меня в задаче надо посчитать кол-во положительных чисел и при генерировании рандомных чисел генерируются часто по два или три или четыре (и так далее) одинаковых числа?
 
 
-4 # Casil 16.03.2018 13:08
Проверку сделать, если уже есть, число, сгенерировать другое.
 
 
-12 # Avov 18.11.2014 19:35
:D :lol: :-) Спс, на Информатеке пригодится
 
 
-5 # Avatar 01.04.2015 11:39
:D :D :D :D :D :D
 
 
-9 # LemonLite 26.04.2015 09:04
у меня тут проблема, я попытался написать программу чтоб получить массивы от 1 до 1000:
program mes5;
var mes:array[1..10 00]of integer;
i:integer;
begin
randomize;
repeat;
i:=random(1000);
writeln(random);
if i>mes[998] then
writeln('Элемен т ',i,' больший');
readln;
end.

я хочу найди больший массив только рандомным путем т.е программа мне выдаст рандомно числа и там пусть определит какой из них больший
 
 
-9 # влада 25.11.2015 13:40
с помощью генератора случайных чисел получить 8 чисел из диапазана от 0 до 15 и вывести на экран только нечетные из них
 
 
-2 # iehf 27.06.2016 05:48
:-) :-) :-)
 
 
-11 # шурА 27.06.2016 05:50
:lol: :lol: ПИДОРЫ
 
 
+3 # artue 15.03.2022 07:45
8)
 
 
+1 # хейтер 27.06.2016 09:58
:eek:
 
 
-3 # ИНКОГНИТО, БЛЯТЬ 27.06.2016 10:00
а я и не знал что так можно :oops:
 
 
-6 # Паранормальщик 29.06.2016 08:21
Я хотел алгоритм генерации чисел у функции random, а не саму функцию. И к тому-же есть переменная RandSeed по которой можно получать ряд тех-же чисел, если нет randomize.
 
 
-7 # ziros 13.07.2016 18:54
Рандом для слабаков! Пиши всё от руки! :lol:
 
 
+2 # artue 15.03.2022 07:58
согласен! ;-)
 
 
-3 # game 04.08.2016 19:44
Помогите, пожалуйста.

program game;
uses crt;
var d, i: string; x, y: integer;
begin

randomize;
x:=random(101);
y:=random(101);
writeln('хочешь поиграть?');
readln(d);
if d='да'
then writeln('загада й любое число от 0 до 100.');
writeln(' ');
writeln('это ', x, '?' );
readln(i);
if i='да'
then writeln('йехуу! да я же просто искуственный интеллект!')
else repeat
writeln('это ', a, '?' );
readln(i);
if i='да'
then writeln('йехуу! да я же просто искуственный интеллект!')
until i='да';

end.

как сделать, чтобы в цикле числа не повторялись?
 
 
-7 # Casil 16.03.2018 13:10
Проверку сделать сгенерированых, чисел, если есть, сгенеировать другое число.
 
 
-2 # Douglas 09.12.2016 15:26
Качественно написано, спасибо!
 
 
-8 # Антон 25.10.2017 16:17
А можно написать x,y := random
 
 
+1 # Serg 06.10.2021 09:15
function Random(maxValue : integer): integer; Возвращает случайное целое в диапазоне от 0 до max
 
 
-5 # Человек 28.10.2017 20:46
Подскажите у меня программа с рандомным расположением на экране x:=random(getma x);что делать если пишет ошибку?
 
 
-6 # AndroID 10.10.2018 01:36
У меня random(20,60) будет выдавать числа между 20 и 60. А при каждом перезапуске программы random выводит разные значения, а не одинаковые.
 
 
+1 # Serg 06.10.2021 09:15
function Random(maxValue : integer)
 
 
0 # dianz 09.03.2022 17:33
а что делает 10 строка?
 
 
-1 # спасибо. 15.03.2022 09:08
:lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol:
 
 
-1 # Fernandez 15.03.2022 09:09
:lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol:
 
 
0 # Шарпюзер 19.03.2022 21:58
А на шарпе как такое провернуть :sad:
 
 
+1 # Егорка 31.03.2022 13:33
Помогите
Я написал тест на везение но варианты:привил ьно, не правильно всегда
Под теми же цифрами, мне нужно чтобы они менялись
 
 
0 # Друзья 12.04.2022 06:20
Randomize Pascal
 
 
0 # Веник 06.12.2022 14:23
А как сделать так чтоб выдавалось случайное число которого нет в массиве?
 
 
-1 # Serg 12.12.2022 08:50
randomize(); // инициал. датчик случайных чисел (вызов стандартной процедуры)

n := 5; // сколько чисел выводить

for i := 1 to n do
begin
x := random(100) - 50; // из диапапоза она от -50 до 49
writeln(x); // печатаем значение
 
   ГлавнаяПаскальМассивы в ПаскальRandomize и Random в Pascal.