Добавлен: 31.03.2023
Просмотров: 320
Скачиваний: 1
public static void main (String args[]) {
// …
}
, как бы по выделяя начало и конец какого-либо процесса:
begin
t := a;
a := b;
b := t
end;
Существуют некоторые зарезервированные слова, которые выполняют какую-нибудь функцию, такие как program, const, var, begin, end. Создание переменные, функций, программ идентичных с этими словами или расширение эти слова, как например const – constant, приведет к ошибке. Использовать в программном коде можно прописные и строчные буквы, только между ними существует разница. А так же каждая переменная или функция не может начинаться с цифры или знаков:
var 1a: integer;
begin
1a := 34;
writeln(1a);
end.
// Ошибка! Встречено ‘1’, а ожидался идентификатор.
Небольшой вывод по пройденной главе.
В этой главе я рассказал, что такое вообще язык программирования, немного рассказал историю нашего языка, который я привожу в этой курсовой и его структуру, описал установку среды разработки и работу с ней. Можно сказать, что после этой главы уже все подготовлено для того, чтобы начать программировать, творить, создавать. Далее будут рассмотрены основные команды с работой в языке Pascal.
2. Данные и их типы, операции, циклы, конструкторы, операторы
2.1 Операторы
Оператор подразумевает определенное действие. После каждого выражения с оператором, необходимо поставить точку с запятой, которая будет давать компилятору понять, что действие закончено. Если перед выражениями с оператором стоит end, until, else, то точку с запятой ставить не обязательно.
Пример использования оператора присваивания:
var a: integer;
begin
a := 34;
end.
Здесь а – переменная типа integer, := - оператор присваивания, 34 – выражение, которое было присвоено переменной а.
Возможно, что выражение будет содержать множество других операторов, констант, функций, которые возвращают какие-либо результаты, знаки операции и скобки:
f := 3 * C + 2 * sin(x);
Существует определенная последовательность выполнения операторов. Действия выполняются слева на права с соблюдением последовательности, действия в скобках выполняются первыми:
- not;
- *, /, div, mod, and;
- +, -, or;
- =, <, >, <>, <=, >=, in.
Самое главное, нужно отметит, что если мы будем присваивать число с типом данных real, в переменную с типом данных integer, то получим ошибку. Мы должны уже заранее знать, когда будем описывать переменную, какой тип данных она будет иметь, в момент присваивания в нее выражения, которое будет иметь идентичный тип данных.
Пример:
var a: integer;
b: integer;
begin
b := 3;
a := b/2;
writeln(a);
end.
//Ошибка! Нельзя преобразовать тип real к integer.
Составной оператор.
Составной оператор выполняет роль скобок. Необходимость выполнения составляющих операторов в том порядке, в которых они расположены. Вид:
begin
b := 3;
end;
Отличие от тела программы только в том, что вместо точки стоит точка с запятой.
Пример составного оператора:
var a: integer;
begin
begin
a := 34;
writeln(a);
writeln(1<2);
end;
end.
// Результат выполнения программы – 34
True
2.2 Ввод-вывод
Компьютер нужен для обработки информации. Мы даем ему информацию, он обрабатывает ее, проводит с ней различные операции и уже выводит нужный нам результат. Для этого во всех языках программирования существуют инструменты для вывода и ввода данных в программу.
Из чего производиться ввод и вывод данных? Ну к примеру ввод может производиться с помощью клавиатуры или с файла, а вывод на монитор или тот же файл.
Команды write(), writeln() на Паскаль производят вывод данных в консоль. Отличие команды write() от writeln() только в концовке ln, что означает, что после выполнение этой команды будет произведен переход на новую строку.
Пример вывода данных в консоль:
var a: integer;
begin
a := 34;
writeln(a);
writeln(1<2);
write('Hi!');
writeln(1234)
end.
// Результат выполнения программы - 34
True
Hi!1234
Как можем заметить, числа 1234 вывелись в том же ряду, что и «Hi!», так как, когда мы использовали команду write('Hi!');, отсутствовало окончание ln, которое бы нас перебросило на другую строчку.
Команды read() и readln() на Паскаль производят ввод данных в программу через консоль. Отличие между этими двумя командами такое же как и в командах вывода данных.
Пример ввода данных в консоль:
var name:string;
begin
write('Здравствуйте! Задайте свое имя: ');
readln(name);
writeln('Добрый день, ' + name + '!');
end.
// Результат выполнения программы - Здравствуйте! Задайте свое имя: Рубен
Добрый день, Рубен!
Как видим из примера, данный были введены в программу, и вывелся другой результат, в нашем случае новая строка.
2.3 Переменные, константы
Каждая программа подразумевает работу с данными, которые хранятся в памяти компьютера. Для того, чтобы дать компьютеру понять где находятся данные используют переменные.
Перед тем, чтобы работать с данными, их нужно описать (указать компьютеру, сколько необходимо выделить памяти и какого типа данные будут использоваться) перед использованием.
Во время работы программы, в ячейке памяти будут сохраняться или изменяться данные и именно с помощью переменных мы сможем к ним для этого обращаться.
Имена переменных могут содержать почти любые сочетания английских букв и цифр, кроме тех сочетаний, которые в программе означают какие-нибудь команды языка.
При описании переменных важную роль играет не только имя самих переменных, но и тип данных. Когда мы описываем переменные, мы присваиваем им типа данных, который сообщает компьютеру, что в них будет храниться и сколько памяти необходимо под них выделить. Храниться в них всегда будут данные в двоичной системе счисления, но означать они могут что угодно (число, символ, строка, массив и т.д.).
В примере ниже, я создаю переменную, которая имеет имя а и тип данных integer. Изначально она будет содержать значение 5, но походу выполнения программы, мы присвоим в нее другое значение, с помощью ввода. В нее мы сможем вложить любое значение в диапазоне от -32768 и до 32767, но если мы попытаемся вложить в нее, например, символ, то получим ошибку:
var
a: integer;
begin
a:=5;
write(a);
readln(a);
write(a);
end.
Пример работы программы:
5
8 – ввод
8
Что касается констант, это примерно то же самое что и обычная переменная, но предназначена немного для другого. Например, мы хотим использовать какое-то значение постоянно и в принципе мы можем использовать обычную переменную и просто ее не менять по ходу работы программы, но программист может случайно ее изменить и для этого придумали константы.
Ниже приставлен код с использованием константы Pi, которая имеет значение 3,14. Не забываем, что константы описываются выше обычных переменных:
const
конст1: тип=значение;
конст2: тип=значение;
const
Pi: real=3.14;
var
a: integer;
begin
a:=5;
write(a*Pi);
end.
2.4 Типы данных.
Большинство программ нужны для того, чтобы обрабатывать данные. В качестве данных могут выступать числа, символы, строки, массивы, тексты, звуки и т.д.
Чтобы использовать данные в программе, нужно создать переменную, благодаря которой мы сможем обращаться к памяти, чтобы получить эти данные и указать этой переменной, какой тип данных будет за ней.
В языке программирования Pascal имеются следующие основные типы данных:
Тип integer – переменные этого типа могут содержать только целые числа в диапазоне от -32768 до 32767 (подобные типы byte, longint).
Тип real - переменные этого типа могут содержать вещественные числа.
Тип boolean - переменные этого типа содержат только два значения: true(правда) и false(лож).
Тип char - переменные этого типа содержат символы.
Массив – это структура, которая содержит определенное количество компонентов одного типа.
Строки - представляют собой последовательность символов, размер которой не превышает 255 включительно.
2.5 Логические выражения и операции.
В программировании для разных ситуаций были придуманы логические выражения, зачастую их используют для определения пути выполнения программы.
Выполнение логических выражений является результат (true или false) сравнения двух операндов. В примерах мы будем использовать 2 операнда y и x. Операндами могут числа, символы и другие типы данных.
В Pascal используются следующие операторы сравнения:
- меньше: x < y
- больше: x > y
- равно: x = y
- не равно: x <> y
- меньше или равно: x <= y
- больше или равно: x >= y
Пример работы с логическими выражениями:
var
x, y: integer;
b1, b2, b3, b4, b5, b6: boolean;
begin
write('Введите 2 числа для сравнения: ');
readln(x, y);
b1 := x < y;
b2 := x > y;
b3 := x = y;
b4 := x <> y;
b5 := x <= y;
b6 := x >= y;
writeln('х меньше y: ', b1);
writeln('x больше y: ', b2);
writeln('x равно y: ', b3);
writeln('x не равно y: ', b4);
writeln('x меньше или равно y: ', b5);
writeln('x болье или равно y: ', b6);
end.
Результат выполнения программы:
Введите 2 числа для сравнения: 4 5
х меньше y: True
x больше y: False
x равно y: False
x не равно y: True
x меньше или равно y: True
x болье или равно y: False
Логические операции:
And – конъюнкция. Выдает значение true только когда оба значения являются правдивыми, в остальных случаях – лож:
true and true = true
true and false = false
false and true = false
false and false = false
Or – дизъюнкция. Выдает значение true, если хотя бы одно значение правда:
true or true = true
true or false = true
false or true = true
false or false = false
Отрицание – меняет true на false и false на true:
not true = false
not false = true
Важным моментом использования логических операторов и операторов значения. Вначале выполняются (and, or, xor, not) а потом (>, >=, <, <=, <>, =), так что не нужно забывать заранее расставлять скобки.
Стандартные boolean функции:
- odd(x) = true, если x нечетный (x целый тип);
- eoln(x) = true, если встретился конец строки текстового файла x;
- eof(x) = true, если встретился конец файла x.
2.6 Операции с битами.
В языке Pascal над целочисленными типами, как byte, shortint, word, integer, longint допустимы побитовые операции.
Логические операции над битами:
Над битами операндов можно выполнять следующие логические операции and, or, not, xor. Отличие над работой с битами заключается в том, что побитовые операции выполняются над каждым битом операндов, а не над их значениями в десятичном представлении.
Пример:
Имеем число 5 и 3 (в двоичной системе число 5 расписывается, как 00000101, а число три, как 00000011), операция not над этим числом выдаст значение 11111010 (все нули заменились на единицы, а единицы на нули), что в десятичном представлении равно 250, операция or над числами 5(00000101) и 3(00000011) выдаст 7(00000111).
Операции циклического сдвига:
Существуют еще две побитовые операции над данными целого типа, это операции shl и shr. Операция shl двигает каждый бит влево на указанное количество битов, а новые добавленные биты справа заполняются нулями. Операция shr двигает каждый бит вправо на указанное количество битов, и заполняет новые добавленные биты слева единицами при сдвиге вправо отрицательных значений и нулями в случае положительных значений.