Логические и символьные константы.

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

Функции trunc, round в Pascal.

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

Ввод символов с клавиатуры.

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

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

Оператор варианта CASE.

Иногда его называют также оператором выбора. Это оператор CASE, который является обобщением оператора IF и позволяет сделать выбор из произвольного числа имеющихся вариантов.

Тип данных Boolean.

Тип BOOLEAN (булевский, логический). Логический тип в языке Паскаль задается как перечисляемый тип, содержащий всего два значения, которые имеют идентификаторы FALSE (ложь) и TRUE (истина).

Процедура 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).

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

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

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


Комментарии  

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

readln (b1);

end.
Ответить
 
 
+4 # TizhProgrammist 23.10.2016 17:06
В строке с переменными, после их перечисления пробел. Не подключена функция randomize. Непонятно зачем вообще нужна вторая строка раз ты её не используешь.
Ответить
 
 
-12 # 007 01.03.2013 06:15
;-) spasiba
Ответить
 
 
-7 # 1111 09.05.2013 06:53
спс буду знать ;-)
Ответить
 
 
-28 # добрий человек 19.05.2013 16:38
другий спосіб працює randon(2001)-10 00, у першому всі числа від'ємні виходять
Ответить
 
 
-4 # Федор 16.02.2014 11:30
ребята а есть у функции рандомайз или рандом. такая штука что бы сгенерированные числа не повторялись?
Ответить
 
 
-2 # Chel 25.02.2014 12:42
randomize используется, чтобы числа не повторялись
Ответить
 
 
-12 # сергей 27.12.2014 19:12
Федор имел ввиду чтобы небыло 4,8,2,4,5,4... то есть чтобы числа внутри не повторялись. Только для этого надо функцию описать, я так уже делал, когда генератор казино ляпал..
Ответить
 
 
+8 # 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", если нужно, что бы ещё одно число было случайным¿¿¿
Ответить
 
 
-7 # Kirill 15.04.2014 05:03
randomize и так генерирует все случайные числа, можно писать один раз.
Ответить
 
 
-10 # Denis 13.11.2014 19:15
как сделать так чтобы эти случайные числа которые генерируются всегда были разными, а то у меня в задаче надо посчитать кол-во положительных чисел и при генерировании рандомных чисел генерируются часто по два или три или четыре (и так далее) одинаковых числа?
Ответить
 
 
-13 # Avov 18.11.2014 19:35
:D :lol: :-) Спс, на Информатеке пригодится
Ответить
 
 
-7 # Avatar 01.04.2015 11:39
:D :D :D :D :D :D
Ответить
 
 
-12 # 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.

я хочу найди больший массив только рандомным путем т.е программа мне выдаст рандомно числа и там пусть определит какой из них больший
Ответить
 
 
-7 # влада 25.11.2015 13:40
с помощью генератора случайных чисел получить 8 чисел из диапазана от 0 до 15 и вывести на экран только нечетные из них
Ответить
 
 
-2 # iehf 27.06.2016 05:48
:-) :-) :-)
Ответить
 
 
-3 # хейтер 27.06.2016 09:58
:eek:
Ответить
 
 
-1 # Паранормальщик 29.06.2016 08:21
Я хотел алгоритм генерации чисел у функции random, а не саму функцию. И к тому-же есть переменная RandSeed по которой можно получать ряд тех-же чисел, если нет randomize.
Ответить
 
 
-5 # ziros 13.07.2016 18:54
Рандом для слабаков! Пиши всё от руки! :lol:
Ответить
 
 
-1 # 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.

как сделать, чтобы в цикле числа не повторялись?
Ответить
 
 
+1 # Douglas 09.12.2016 15:26
Качественно написано, спасибо!
Ответить
 

Добавить комментарий

Защитный код
Обновить

   ГлавнаяПаскальМассивы в Паскаль