Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Самоучитель PascalABC.doc
Скачиваний:
5
Добавлен:
01.05.2025
Размер:
1.76 Mб
Скачать

«Рандомные числа»

Пришло время познакомиться с оператором генерирования случайных чисел – RANDOM. Это очень полезная и часто встречающаяся функция. Разберём её:

• «Рандом обыкновенный» - генерирует числа от 0 до 1 с точностью 15 знаков после запятой:

Используется очень редко, и рассматривать мы его не будем. А рассмотрим мы следующий тип рандома:

• «Рандом с диапазоном» - генерирует числа в заданном диапазоне. Использование:

RANDOM (<диапазон>) – диапазон указывается положительным числом. Например:

Random (10) – выпадет случайное число от 0 до 9 – то есть одна из цифр десятичной системы счисления.

Random(12) – выпадет число от 0 до 11.

Random (100) – от 0 до 99 и так далее.

Для того, чтобы выдать числа из диапазона 1..10, то необходимо к выпавшему числу прибавить 1:

Random(10)+1 – выпадет число от 1 до 10. Почему? Рассмотрим случаи:

• Выпал 0 – прибавим 1, получится 1

• выпало 9 – прибавим 1, получится 10

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

Random(11)-5

Случаи:

• выпал 0 – минус 5 = -5

• выпало 10 – минус 5 = 5

Random(21)-10 – выдаёт случайное число из диапазона [-10 .. 10]. И так далее. Попробуйте.

Теперь напишем программу, которая выдаёт случайное число из введённого диапазона:

Оператор очень прост в применении.

Задание №8:

«Напишите программу, которая загадывает число от 0 до 5. Человек должен отгадать. Если человек отгадал, завершить программу со словами: `вы угадали!`».

Примечание: для повтора ввода числа использовать цикл repeat until.

Если у Вас получилось – идём дальше.

Усложним программу: добавьте подсказки человеку. Например [Задача №9]:

Если получилось – Вы молодец! Усложним программу, добавив в неё количество попыток [Задача №9]. Пусть попыток будет 3. Для того, чтобы организовать количество попыток, дам подсказку: добавьте переменную, отвечающую за попытки, которая в начале программы имеет значение 3 и уменьшается на 1, при каждой попытке. В конце цикла repeat until нужно добавить условие:

Repeat

<программа>

Until (<загаданное число> = <введённое число>) or (<попытки> = 0);

К сожалению, я не угадал.

Сделаем программу ещё сложнее [Задача №10] – пусть пользователь вводит количество попыток; добавьте сообщение о том, что попытки закончились или вы угадали число и сколько попыток осталось. Если число не угадано и попытки закончились – пусть компьютер говорит, какое число загадал. При помощи меток GOTO задайте вопрос, хочет ли человек сыграть ещё раз, а метку поставьте на оператор clrscr, чтобы очистить экран и перезапустить программу:

«Некоторые полезные функции и операторы»

Необязательная глава (для ознакомления)

Можно сокращать некоторые команды:

• x≔x+1  inc(x);

• x≔x-1  dec(x);

Операторы INC и DEC увеличивают и уменьшают, соответственно, переменную X на 1. Для того, чтобы увеличить или уменьшить переменную на другое число, команда будет выглядеть так:

• x≔x+z  inc(x,z); - увеличить `x` на `z`.

• x≔x-z  dec(x,z); - уменьшить `x` на `z`.

Где `Z` - целое.

Существует функция LENGTH – возвращает длину строки (возвращает – получает длину строки/считает/ выдаёт). Использование:

Length(‘Привет’) = 6

Length(‘Привет, мир!’) = 12

Length(‘Привет ’) = 11 – любые символы считаются.

Функции

INTTOSTR(INTEGER to STRING) – функция, преобразующая число в строковую запись,

и

STRTOINT(STRING to INTEGER) – обратная функция, преобразующая строку в число (в строке должно быть число, иначе программа выдаст ошибку при преобразовании).

Использование: