В.С.Лебедькова В.С.Лебедькова. Pascal для школьников. 2 Содержание 1. Основные правила грамматики ................................................................................................. 2 2. Структура программы. Зарезервированные слова................................................................... 2 3. Арифметические операции ......................................................................................................... 3 4. Определение переменной. Типы переменных............................................................................. 4 5. Константы. ................................................................................................................................. 6 6. Операции DIV и MOD. ................................................................................................................... 6 1. Основные правила грамматики 1. Текст программы состоит из трех составных частей. Это заголовок, раздел переменных (описания), исполнительная часть (операторы). 2. Заголовок программы содержит имя программы. В Turbo Pascal заголовок имеет декоративное значение и использовать его не обязательно. 3. Описания - это символьные конструкции для описания свойств объектов программы. Все объекты программы надо обязательно указать в этой части программы. 4. Операторы - это символьные конструкции (зарезервированные слова) для описания действий над объектами программы. Операторы должны находиться между словами begin и end. Эти слова называют операторными скобками. 5. В одной строке текста можно размещать несколько операторов или описаний. Поэтому между операторами надо обязательно ставить символ-разделитель. Для разделения операторов используется символ точка с запятой ( ; ). После последнего оператора разделитель ставить не обязательно. В последней строчке программы, т.е. после слова end необходимо ставить точку! 6. Малые и большие буквы считаются эквивалентными (равнозначными). Имя любого объекта в записи программы может содержать только буквы латинского алфавита, цифры и символ подчеркивания ( _ ). Максимальное число символов в имени не может превышать 63. Имя не может начинаться с цифры! Никакие другие типы символов в записи имен не разрешаются! 2. Структура программы. Зарезервированные слова. Зарезервированные слова – слова, за которыми закреплено строго определенное значение. Рассмотрим пример программы, записанной на языке программирования Pascal, для вычисления суммы двух целых чисел: Program zadacha1; Var a,b,sum: integer; Begin write (‘Введите значение целого числа а: ‘); readln (a); write (‘Введите значение целого числа b: ‘); readln (b); sum:=a+b; В.С.Лебедькова. Pascal для школьников. 3 write (‘Сумма чисел = ‘,sum); end. Program - заголовок программы, который можно было бы пропустить, как было сказано выше. Var - начало раздела объявления переменных (сокращение от английского слова variable – переменная). В разделе описываются все переменные, которые нам понадобятся в программе, т.е. описывается их тип (см. п.3 «Понятие переменной. Типы переменных»). Integer - тип переменных, данный тип указывает, что переменные a,b,sum – целые числа, т.е. могут принимать целочисленные значения в интервале от -32768 до 32767. Write - инструкция компьютеру о выводе на экран сообщения. Причем сообщение, которое должно быть выведено на экран без изменение заключается в апострофы (Например: ‘Текст’), значение переменной, которое должно быть выведено на экран, записывается после запятой без апострофов). "In" в операторе writeln означают "line" - по-английски "строка" и следовательно данный оператор переведет курсор на следующую строку. Readln - инструкция компьютеру о считывании значения переменной с клавиатуры. Таким образом, в исполнительной части программы мы видим, что компьютер запрашивает у человека значение первого целого числа, человек набирает значение на клавиатуре и нажимает клавишу <Enter>, затем компьютер считывает число и записывает в память под именем a. Далее компьютер запрашивает у человека значение второго целого числа, человек набирает значение на клавиатуре и нажимает клавишу <Enter>, компьютер считывает число и записывает в память под именем b. После этого компьютер выполняет сложение чисел a и b, записывает результат в память под именем sum, выводит на экран сообщение: «Сумма чисел =…». Обратите внимание: для вычисления суммы чисел a и b в программе использована запись инструкции присваивания переменной sum. Присваивание записывается с помощью пары символов := , т.е. Для выполнения программы следует воспользоваться командой Run (Запустить) в меню Run (Пуск) или использовать сочетание клавиш <Ctrl>+<F9>. Задание: 1.1. Составьте программу для вычисления разности двух целых чисел. 1.2. Составьте программу для вычисления квадрата числа, вводимого с клавиатуры. 3. Арифметические операции Арифметические выражения (АВ) строятся из операндов, которыми могут быть константы, переменные и стандартные функции. В АВ также входят арифметические операции и круглые скобки. В языке Паскаль определен ряд арифметических операций, перечислим их в соответствии с приоритетом, то есть, старшинством (табл. 3.1). Операции с одинаковым приоритетом равноправны между собой и выполняются слева направо, как и в математике. Использование скобок в выражениях позволяет менять порядок вычислений. Табл. 3.1. Арифметические операции языка Паскаль Приоритет 1 Знак операции - Описание операции унарный минус not арифметическое отрицание В.С.Лебедькова. Pascal для школьников. 2 mod and shl shr + - умножение деление деление 2 целых значений с отбрасыванием остатка взятие остатка от деления 2 целых значений арифметическое И побитовый сдвиг влево побитовый сдвиг вправо сложение вычитание or xor =, <>, <, >, <=, >=, in арифметическое ИЛИ арифметическое побитовое сложение по модулю операции отношения * / div 3 4 4 4. Определение переменной. Типы переменных. Переменная – ячейка оперативной памяти компьютера, которой присвоено определенное имя (идентификатор). Запомните: 1. Содержимое ячейки может меняться, но имя остается неизменным. 2. Переменная может хранить только одно единственное значение, каждое следующее значение, присвоенное данной переменной, «затирает» предыдущее. В п.2 была рассмотрена программа для вычисления суммы двух целых чисел, но далеко не всегда требуется составить программу для работы с целыми числами, также может потребоваться работа с дробными числами, с символами, со словами и т.д. Для этого все данные классифицируются на несколько типов. Тип определяет множество значений, которые могут принимать переменные, а также совокупность операций, допустимых над этими значениями. Например, из слова нельзя извлечь квадратный корень, над целыми числами допустимы такие операции, как сложение, вычитание и т.д. Рассмотрим несколько стандартных типов: Табл. 4.1.Типы переменных № Наименование Тип данных Диапазон возможных Память, п/п типа переменной значение байт 1 2 Integer Longint Целочисленный Целочисленный 3 4 5 6 7 Byte Real Char String Boolean Целочисленный Вещественный Символьный Строковый Логический Примеры программ: Program zadacha2; var L: integer; N:real; от -32768 до 32767 от -2147483648 до 2147483647 от 0 до 255 от 2,9е-39 до 1,7е38 Символы кодовой таблицы до 255 символов true, false 2 4 1 6 1 2 1 В.С.Лебедькова. Pascal для школьников. 5 begin N:=5.9; L:=2; N:=N+L; write (‘Сумма чисел = ‘,N); end. Program zadacha3; var L: integer; N:boolean; begin writeln (‘Введите целое число’); readln(L); N:=N>5; write (N); end. Program zadacha4; var a,b:string; begin writeln (‘Как тебя зовут?’); readln(a); writeln (‘Как твоя фамилия?’); readln(b); write (‘Здравствуй,’ , a, ’ ‘,b, ‘!’); end. Program zadacha5; Var X,Y: Char; begin writeln('Введите несколько символов:'); readln(X); writeln(X); writeln('Введите еще несколько символов:'); readln(X,Y); writeln(X,Y); readln end. Запустив программу на выполнение и введя с клавиатуры последовательность символов (например, ABC) после нажатия клавиши <Enter> программа выведет единственный символ: А В ответ на второе предложение на экране получим два символа, т.к. переменная типа Char принимает только один символ из введенной строки. При вводе символы не заключаются в апострофы. Таким образом, в первом случае из введенных символов запомнился только один, во втором — два. Кроме упомянутых типов существует механизм создания новых типов данных. Раздел описания новых типов начинается с ключевого слова type и выглядит следующим образом: type имя_типа = описание_типа; Например: type people = (Nike, Pete, Oleg); var B1, B2, B3: people; … Задание: 4.1. Составьте программу, в которой три переменные (a,b,c) вводятся с клавиатуры, а в переменной d храниться результат вычисления следующего выражения: a*b+c. Полученный результат должен быть выведен на экран в виде 'Ответ: ...'. 4.2. Обменять значения двух переменных, используя третью (буферную) переменную. В.С.Лебедькова. Pascal для школьников. 6 4.3. Составить программу для вычисления площади прямоугольника. Длины сторон вводятся с клавиатуры. 4.4. Составить программу, которая считает количество часов, минут и секунд во введенных с клавиатуры количестве суток. 5. Константы. Иногда в программе необходимо использовать данные, которые в ходе ее выполнения не изменяются, их называют константами. Их имя и значение определяется в начале программы. Например: program zadacha_6; const chislo_pi=3.14159265; var s,r: real; begin writeln (‘Введите значение радиуса’); readln(r); s:=2*chislo_pi*r; writeln (‘ S=’ ,s) end. В данной программе мы ввели константу, соответствующую числу π и далее использовали её при вычислении длины окружности. 6. Операции DIV и MOD. DIV – целочисленное деление. Возвращает целую часть частного, а дробная отбрасывается. Результат DIV всегда равен нулю, если делимое меньше делителя. Например, 13 div 3 = 4. MOD – взятие остатка от деления. Вычисляет остаток, полученный при выполнении целочисленного деления. Например, 13 mod 3 = 1. Например: program zadacha_7; var n,m,w: integer; begin n:=25; m:=6; w:=n*m; writeln (’25 умножить на 6 равно ’ , w); w:=n div m; writeln (’Результат целого деления 25 на 6 равен ’ , w); w:=n mod m; writeln (‘Остаток от деления 25 на 6 равен ’ , w); w:=n + m; writeln (‘Сумма 25 и 6 равна ’ , w); w:=n - m; writeln (‘Разность 25 и 6 равна ’ , w); end. Задание: 6.1. Найдите значение выражений: 11 div 5 = 10 div 3 = 2 div 3 = 123 div 4 = 17 div 5 = 10 mod 5 = 11 mod 5 = 10 mod 3 = В.С.Лебедькова. Pascal для школьников. 7 22 mod 5 = 31 mod 16 = 6.2. Исходя из заданного объявления переменных, укажите, что будет напечатано в результате выполнения каждой из четырех приводимых ниже последовательностей предложений: var i, j, k, m : integer; а) в) i := 6; j := 15; j := i div 2; k := 16; k := i * j div 3; i := j div 3; writeln(i, ‘ ‘, j, ‘ ‘, k) m := k mod j; k := k + 3; writeln(i, ‘ ‘, j, ‘ ‘, k, ‘ ‘, m) б) m := 50 mod 11; k := m mod 4; j := k * 10 div 3; i := j div 2; writeln(i, ‘ ‘, j); writeln(k, ‘ ‘, m) г) i := 10; j := 3; k := i div j; m := i - k * j; writeln(i, ‘ ‘, j, ‘ ‘, k, ‘ ‘, m) 6.3. Составьте программу, которая высчитывает количество часов, минут и секунд из введенных с клавиатуры секунд. Например, 3780 секунд = 1 час 3 минуты 0 секунд. 6.4. Составьте программу, которая вычисляет сумму крайних цифр двузначного числа. 6.5. Составить программу, которая вычисляет сумму и произведение всех цифр четырехзначного числа. 6.6. Составить программу, которая записывает цифры трехзначного числа в обратном порядке. 6.7. Дано целое число n. Написать программу получения последней и предпоследней цифр записи этого числа.