Эта процедура выводит на экран какие-либо данные. Она может выводить три основные вещи:
1. Строку символов;
2. Переменную;
3. Результат вычислений;
Read(A1,A2,...AK); ReadLn(A1,A2,...AK); ReadLn; Первый из них реализует чтение К значений исходных данных и присваивание этих значений переменным А1, А2, ..., АК. Второй оператор реализует чтение К значений исходных данных, пропуск остальных значений до начала следующей строки, присваивание считанных значений переменным А1, А2, ..., АК. Третий оператор реализует пропуск строки исходных данных.
Процедура Readln; - используется для чтения с клавиатуры. В нашей программе она служит для того, чтобы затормозить программу после выполнения. В этой процедуре может быть задан параметр, помещенный после нее в скобках -
Readln(A);
В качестве параметра может быть только переменная, ее значение будет читаться с клавиатуры.
ПроцедураInc - (от англ. Increment - увеличение).
Эта процедура увеличивает переменную на заданное число или на другую переменную.
2. Dec(переменная); - при отсутствии 2-го параметра уменьшает переменную на единицу.
И примеры использования процедуры:
1. Имеем переменную Count. Так уменьшаем ее на единицу:
Dec(Count);
2. А так уменьшаем на 7:
Dec(Count, 7);
Процедура Writeln - эта процедура работает точно так же, как и Write, но после того, как выведет строку, она переносит курсор на новую строку.
For I := 10 downto 1 do
Некоторые функции. Методы работы со строками.
Тип-строка обозначается как String. Переменная такого типа может хранить любые символы, в т.ч. и буквы русского алфавита. Строки нельзя представлять как числа, их нельзя сопоставлять типу Integer и другим числовым, однако в некотором роде этот тип совместим с типом Char, который может хранить один символ. Тип String может хранить до 255 символов, то есть максимальная длина строки - 255 знаков. Если нам нужно точно знать, сколько символов ввел пользователь в строку - для этого есть специальная функция, которая и определяет длину строки. Это функция Length.
Функция Length (англ. длина) - определяет, точное количество символов в строке. Это функция, а не процедура: процедура выполняет какие-либо действия внутри себя, то есть все данные, которые ей передаются, доступны ей и только ей. Функция - результаты ее работы могут быть использованы прямо в программе, причем делается это простым присваиванием. То есть она возвращает значение от своего действия, и это значение можно занести в какую-либо переменную или использовать в непосредственно в выражениях. Если не понятно, поймете на примере использования Length.
Функция Length очень наглядно демонстрирует пример использования функций. Чтобы это показать, расскажу как использовать ее в действии. Итак, имеем мы какую-нибудь строку, например S: String. Нам нужно вычислить ее длину. Понятно, что длина - то число, например, 120. При своей работе Length возвращает длину строки как результат своей работы. Зная принцип работы функций (можно присваивать их переменным), а также зная, что она возвращает число, запишем:
A := Length(S); где A: Byte; S: String;
Функция UpCase - возвращает как результат своей работы переменную-символ в верхнем регистре. В качестве параметра к функции задается переменная типа Char. Если эта переменная является буквой в нижнем регистре, она превратиться в большую, заглавную букву.
В других случаях (например, переменная Char является цифрой) ничего не произойдет.
Операция div - выполняет деление целых чисел (Integer, Byte, Word, LongInt) без остатка. Работа этой операции очень проста - например, при делении числа на 10 (как в нашем случае) результат не всегда получится целым (123 div 10) и не может храниться в переменной целого типа. Эта же операция попросту откидывает остаток у получившегося значения. Вот пример:
123 / 10 = 12.3; (Результат обычного деления)
123 div 10 = 12; (Результат работы операции div)
Операция mod - получает остаток от деления целых чисел. При выполнении этой операции происходит выявление остатка от деления и именно он выноситься в результат. Вот пример:
123 mod 10 = 3;
17 mod 12 = 5;
В помощью этих двух операций можно с успехом выполнять деление целых чисел. При этом если сразу получать остаток, а после этого выполнить деление без остатка, то мы получим два числа, которые и будут содержать все необходимые данные от деления. Естественно, если при делении остатка нет, то результат выполнения операции mod будет равен нулю.
Dec(A, B); Это эквивалентно: A := A - B;
Функция Random(A: Integer);.
Данная функция возвращает от своей работы случайное число. Что значит "случайное число"? Это значит, что функция возвращает от своей работы какое-то число, каждый раз новое. В качестве параметра задается максимальное значение случайного числа, иначе говоря функция не возвратит число большего диапазона. Для того, чтобы использовать эту функцию, необходимо включить (так говорят, однако мне нравиться больше "инициализировать" - на включение это мало похоже) датчик случайных чисел. Тогда функция начнет нормально работать и возвращать действительно случайные значения.
Инициализация датчика случайных чисел (ДСЧ) происходит вызовом процедуры Randomize. Вы видите ее перед циклом.