3_Основы Паскаля.ppt
- Количество слайдов: 58
Основные понятия языка программирования Паскаль 1
История развития языка Паскаль n n n Язык Паскаль был создан Никлаусом Виртом в 1968— 1969 годах после его участия в работе комитета разработки стандарта языка Алгол-68. Язык назван в честь французского математика, физика, литератора и философа Блеза Паскаля, который создал первую в мире механическую машину, складывающую два числа. Первая публикация Вирта о языке датирована 1970 годом; представляя язык, автор в качестве цели его создания указывал построение небольшого и эффективного языка, способствующего хорошему стилю программирования, использующему структурное программирование и структурированные данные. Никлаус Вирт во время визита в Россию (Уральский университет, 2005 год) https: //ru. wikipedia. org/wiki/Вирт, _Никлаус 2
Трансляторы Паскаля n Turbo Pascal n Borland Pascal n Free. Pascal n ABCPascal n Component. Pascal n Object. Pascal (сейчас Delphi) n……. http: //pascalabc. net Павловская Т. А. (СПб. ГУИТМО) 3
Структура языка программирования 4
Состав языка n Символы: n n буквы: A-Z, a-z, _ цифры: 0 -9 спец. символы: +, *, {, … пробельные символы n. Лексемы: nконстанты 2 0. 11 ‘Вася’ Vasia a _11 begin var if + - nимена nключевые слова nзнаки операций : = nразделители ; [ ] , n. Выражение: nправило вычисления значения a + b n. Операторы: nисполняемые nописания c : = a + b var a, b : real; 5
Константы Паскаля Целые Вещественные С С 16 Десяплавающ. порядко тичные ричные точкой м 2 15 $0101 $FFA 4 -0. 26. 005 1. 2 e 4 0. 1 E-5 Символь- Строконые вые ‘k’ #186 ^M ‘абырвалг ’ ‘I’’m fine’ + Булевские: true и false 6
Имена (идентификаторы) n имя должно начинаться с буквы или _; n имя должно содержать только буквы, знак подчеркивания и цифры; n прописные и строчные буквы не различаются в Паскале и различаются в др. языках; n длина имени практически не ограничена. Примеры правильных имен: Vasia, A, A 13, A_and_B. Примеры неправильных имен: 2 late, Big gig, Sюр (для С# - правильное) Павловская Т. А. (СПб. ГУИТМО) 7
Ключевые слова и знаки операций n Ключевые слова — идентификаторы, имеющие специальное значение для компилятора. Их можно использовать только в том смысле, в котором они определены. n n Знак операции — один или более символов, определяющих действие над операндами. Внутри знака операции пробелы не допускаются. n n Например, целочисленное деление в Паскале записывается div. Операции делятся на унарные (с одним операндом) и бинарные (с двумя). n n Например, для оператора перехода определено слово goto. В С# есть также одна тернарная операция Разделители используются для разделения или, наоборот, группирования элементов. Примеры разделителей: скобки, точка, запятая. 9
Ключевые слова Паскаля and array asm begin case constructor destructor div do downto else end exports file for function goto if implementation in inherited inline interface label library mod nil not object of or packed procedure program record repeat set shl shr string then to type unit until uses var while with xor absolute assembler export external far forward index interrupt name near private public resident virtual 10
Структура программы на Паскале 11 Павловская Т. А. (СПб. ГУИТМО)
Структура программы Программа на языке Паскаль состоит из заголовка (1), раздела описаний(2) и раздела операторов(3): PROGRAM имя; Раздел описаний BEGIN Операторы (команды программы) END. (* программа заканчивается точкой *) 12
Раздел описания Раздел описаний состоит из подразделов. Раздел описаний предназначен для объявления всех встречающихся в программе данных и их характеристик (имена данных, их тип, возможные значения и др. ). Не все перечисленные разделы обязательны в каждой программе. После каждого описания ставится символ « ; » . Раздел описаний 13
Подразделы раздела описания USES - раздел модулей; n LABEL - раздел меток; n CONST - раздел констант; n TYPE - раздел типов; n VAR - раздел переменных; n PROCEDURE - раздел процедур; n FUNCTION - раздел функций; n Последовательность разделов? 14
Разделы описаний n Раздел описания модулей uses crt, graph, my_module; n Раздел описания констант const Max. Len = 100; g = 9. 8; koeff : integer = 5; n Раздел описания переменных var number : integer; x, y : real; n Раздел описания меток label 1, 2, error; Разделы описания типов, процедур и функций будут рассмотрены позже 15
Пример программы PROGRAM PR 1; CONST PI=3. 14; VAR R: REAL; {радиус шара} V: REAL; {объем шара} BEGIN R: =0. 2; V: =4*PI*R*R*R/3; WRITELN(‘объем шара =‘, V: 8: 3) END. 16
Общая структура программы на Паскале Главная Глобальные переменные Подпрограмма А Локальные переменные begin. . . end Подпрограмма В Подпрограмма С begin Вызов А. . . Вызов В. . . end 17
Переменная величина в программе 18
Переменная величина в программе n переменная (variable) это ячейка в оперативной памяти для хранения определённой величины 19
Переменная величина в программе Характеристики: 1. Имя 2. Тип 3. Значение Способы получения значения: Специальные 1. Ввод с клавиатуры операторы(команды) 2. Чтение из файла 3. Оператор присваивания 2/6/2018
Оператор присваивания Присваивание – это замена старого значения переменной на новое. Старое значение стирается бесследно n переменная : = выражение x n a : = b + c; x : = 1; x : = x + 0. 5; 1 1. 5 n n 1+0. 5 Величины в левой и правой части должны быть совместимы по присваиванию, например: вещественная переменная : = целое выражение; 21
Присваивание A: =5. 4 A: =A+1 A: =C+3. 14 -X 2/6/2018
Типы данных 23 Павловская Т. А. (СПб. ГУИТМО)
Концепция типа данных Тип данных определяет: n внутреннее представление данных, а следовательно и множество их возможных значений n допустимые действия над данными (операции и функции) 24
Классификация типов Паскаля Стандартные Определяемые программистом Простые логические целые вещественные символьный строковый адресный файловые Павловская Т. А. (СПб. ГУИТМО) перечисляемый интервальный адресные Составные массивы строки записи множества файлы объекты процедурные типы 25
Стандартные типы данных Паскаля 27
Логические типы n Основной логический тип данных - boolean. Величины этого типа занимают в памяти 1 байт и могут принимать два значения: true (истина) или false (ложь). Внутреннее представление значения false — 0 (нуль), значения true — 1. n Для совместимости с другими языками определены типы Byte. Bool, Word. Bool и Long. Bool длиной 1, 2 и 4 байта соответственно. Истинным в них считается любое отличное от нуля значение. n К величинам логического типа применяются логические операции and, or, xor и not и операции отношения. n <> >< 28
Логические операции a b a and b a or b a xor b not a 0 0 0 1 0 1 1 0 0 1 1 1 1 0 0 Павловская Т. А. (СПб. ГУИТМО) 29
Операции отношения Операция Знак операции больше > больше или равно >= меньше < меньше или равно <= равно = не равно <> Павловская Т. А. (СПб. ГУИТМО) 30
Целые типы Тип integer shortint byte word longint Павловская Т. А. (СПб. ГУИТМО) Размер Знак Диапазон значений 2 байта есть -32768. . 32767 (-215. . 215 -1) 1 байт есть -128. . 127 (-27. . 27 -1) 1 байт нет 0. . 255 (0. . 28 -1) 2 байта нет 0. . 65535 (0. . 216 -1) 4 байта есть -2147483648. . 2147483647 (-231. . 231 -1) 31
Операции с целыми §Арифметические операции Операция Знак операции сложение + вычитание - умножение * деление остаток от деления div mod §Операции отношения §Поразрядные операции: and, or, xor, not §Операции сдвига: shl, shr Павловская Т. А. (СПб. ГУИТМО) 32
Павловская Т. А. (СПб. ГУИТМО) 33
Стандартные функции для целых Имя abs Описание модуль arctan арктангенс угла Результат целый Пояснения |x| записывается abs(x) вещественный arctg x записывается arctan(x) cos косинус угла вещественный cos x записывается cos(x) exp экспонента вещественный ex записывается exp(x) ln натуральный логарифм вещественный logex записывается ln(x) odd проверка на четность логический odd(3) даст в результате true pred предыдущее значение целый pred(3) даст в результате 2 sin синус угла вещественный sin x записывается sin(x) sqr квадрат целый sqrt квадратный корень вещественный √x записывается sqrt(x) succ следующее значение целый Павловская Т. А. (СПб. ГУИТМО) x 2 записывается sqr(x) succ(3) даст в результате 4 34
Стандартные процедуры Имя Описание Пояснения inc инкремент inc(x) — увеличить х на 1 inc(x, 3) — увеличить х на 3 dec декремент dec(x) — уменьшить х на 1 dec (x, 3) — уменьшить х на 3 Павловская Т. А. (СПб. ГУИТМО) 35
Вещественные типы n Внутреннее представление вещественного числа состоит из двух частей — мантиссы и порядка, и каждая часть имеет знак. n Существует несколько вещественных типов, различающихся точностью и диапазоном представления данных. n Точность числа определяется длиной мантиссы, а диапазон — длиной порядка. Павловская Т. А. (СПб. ГУИТМО) 36
Характеристика вещественных типов real single double extended comp Павловская Т. А. (СПб. ГУИТМО) Значащих цифр Тип Диапазон значений 6 байт 11 -12 2. 9 e-39. . 1. 7 e+38 4 байта 7 -8 1. 5 e-45. . 3. 4 e+38 8 байт 15 -16 5. 0 e-324. . 1. 7 e+308 10 байт 19 -20 3. 4 e-4932. . 1. 1 e+4923 8 байт 19 -20 -9. 22 e 18. . 9. 22 e 18 (-263. . 263 -1) Размер 37
Операции с вещественными величинами n Арифметические + - * / n Операции отношения < Павловская Т. А. (СПб. ГУИТМО) = <= > >= <> 38
Функции для вещественных величин Имя abs arctan Описание модуль арктангенс угла Имя Описание ln натуральный логарифм pi значение числа π round округление до целого cos косинус угла exp экспонента sin синус угла frac дробная часть аргумента sqr квадрат целая часть аргумента sqrt квадратный корень trunc целая часть аргумента int Павловская Т. А. (СПб. ГУИТМО) 39
Символьный тип n Этот тип данных, обозначаемый ключевым словом char, служит для представления любого символа из набора допустимых символов. Под каждый символ отводится 1 байт. n К символам можно применять операции отношения (<, <=, >, >=, =, <>), при этом сравниваются коды символов. Павловская Т. А. (СПб. ГУИТМО) 40
Функции для символьных величин Имя Описание Результат ord порядковый номер символа целый chr преобразование в символьный pred предыдущий символьный succ последующий символьный перевод в верхний регистр символьный upcase Павловская Т. А. (СПб. ГУИТМО) 41
Порядковые типы Все возможные значения порядкового типа представляют собой ограниченное упорядоченное множество. К любому порядковому типу могут быть применены функции: n. Ord - возвращает порядковый номер конкретного значения в данном типе; n. Pred и Succ - возвращают предыдущее и последующее значения соответственно; n. Low и High - возвращают наименьшее и наибольшее значения величин данного типа. К порядковым относятся: логические, целые, символьный, перечисляемый, интервальный. Павловская Т. А. (СПб. ГУИТМО) 42
Линейные программы 43 Павловская Т. А. (СПб. ГУИТМО)
Переменные n Переменная — это величина, которая во время работы программы может изменять свое значение. n Все переменные, используемые в программе, должны быть описаны. n Для каждой переменной задается ее имя и тип: var number x, y option : integer; : real; : char; Тип переменной выбирается исходя из диапазона и требуемой точности представления данных. n В Паскале переменные описываются в разделе описания переменных, начинающемся со служебного слова var. Павловская Т. А. (СПб. ГУИТМО) 44
Инициализация переменных При объявлении можно присвоить переменной некоторое начальное значение (инициализировать). Инициализированные переменные в Паскале описываются после ключевого слова const: const number : integer = 100; x : real = 0. 02; option Павловская Т. А. (СПб. ГУИТМО) : char = ’ю’; 45
Именованные константы Вместо значений констант можно (и нужно!) использовать в программе их имена. Это облегчает читабельность программы и внесение в нее изменений: const weight = 61. 5; n = 10; g = 9. 8; Павловская Т. А. (СПб. ГУИТМО) 46
Выражения n n n n Выражение — правило вычисления n t + sin(x)/2 * x значения. В выражении участвуют операнды, результат имеет объединенные знаками операций. вещественный тип Операндами выражения могут быть константы, переменные и вызовы функций. n a <= b + 2 Операции выполняются в результат имеет соответствии с приоритетами. логический тип Для изменения порядка выполнения операций используются круглые скобки. n (x > 0) and (y < 0) Результатом выражения всегда является значение определенного типа, который определяется типами результат имеет логический тип операндов. Величины, участвующие в выражении, должны быть совместимых типов. Павловская Т. А. (СПб. ГУИТМО) 47
Приоритеты операций Паскаля 1. Первичные - (), [] 2. Унарные - not, минус -, взятие адреса @. 3. Операции типа умножения: * / div 3. shl shr. Операции типа сложения: + 4. mod and - or xor. Операции отношения: = <> Павловская Т. А. (СПб. ГУИТМО) < > <= >= in. 48
Контрольный вопрос Чему равно значение выражений: 2 + 1 e 1 / 2 * 5 10 E-1 + 1 div 2 Павловская Т. А. (СПб. ГУИТМО) 49
Ввод-вывод в Паскале 50 Павловская Т. А. (СПб. ГУИТМО)
Ввод с консоли Значения при вводе разделяются read(список); пробелами, Tab или readln[(список)]; Enter Ввод значения каждой переменной выполняется так: n значение переменной выделяется как группа символов, расположенных между разделителями; n эти символы преобразуются во внутреннюю форму представления, соответствующую типу переменной; n значение записывается в ячейку памяти, определяемую именем переменной. var a : integer; b : real; . . . readln(a, b); Павловская Т. А. (СПб. ГУИТМО) 51
Вывод на консоль write(список); writeln[(список)]; var a : integer; b : real; d : char; . . . writeln(’Значение a = ’, a: 3, ’ b = ’, b: 5: 2, sin(a) + b); Значение a = 1 b = 4. 124. 9614709848 E+00 Павловская Т. А. (СПб. ГУИТМО) 52
Правила записи процедур вывода n Список вывода разделяется запятыми. n Список содержит выражения логических, целых, вещественных, символьного и строкового типов. n После любого значения можно через двоеточие указать количество отводимых под него позиций. n Для вещественных чисел можно указать второй формат, указывающий, сколько позиций из общего количества позиций отводится под дробную часть числа. n Если форматы не указаны, под целое число, символ и строку отводится минимально необходимое для их представления количество позиций. Под вещественное число отводится 17 позиций, 10 из них — под дробную часть. n Форматы могут быть выражениями целого типа. Павловская Т. А. (СПб. ГУИТМО) 53
Пример: перевод температуры из F в С program temperature; var fahr, cels : real; begin writeln('Введите температуру по Фаренгейту'); readln(fahr); cels : = 5 / 9 * (fahr - 32); writeln('По Фаренгейту: ', fahr: 6: 2, ' в градусах Цельсия: ', cels: 6: 2); end. Павловская Т. А. (СПб. ГУИТМО) 54
Тест № 1 для самопроверки (Паскаль) 55 Павловская Т. А. (СПб. ГУИТМО)
1) Выберите все правильные ответы. В переменной типа byte можно хранить число: 1 13 2 213 3 -13 4 -213 5 1213 2) Выберите все правильные ответы. Число 256 можно хранить в переменной типа: 1 byte 2 word 3 shortint 4 longint 5 real Павловская Т. А. (СПб. ГУИТМО) 56
3) Выберите все допустимые константы 1 2 3 4 5 '\' $00 FH -7. 12 e-13 'Ж'' 1, 23 4) Какие выражения не содержат синтаксических ошибок? 1 -0. 18 * Pi / r - 0. 2 * t 2 (-0. 18) * Pi / 1(r - 0. 2) 3 cos^2 * x + 0, 2 4 (-0. 18) * Pi) (r - 0. 2 * t)) Павловская Т. А. (СПб. ГУИТМО) 57
5) Чему равно значение выражения e + sqrt(e) * 1 e 1 / 2 * a при e=4, a=3 ? 6) Чему равно значение выражения a and not b xor c при a = true, b = true, с = false? 1 false 2 true 3 нечто среднее Павловская Т. А. (СПб. ГУИТМО) 58
7) Какие выражения не содержат синтаксических ошибок? 1 2 3 4 sin(abs(0. 6 e 3 * y_t)) a div b / c * mod $EF 01 * 1. 34 E-2 / i 7_17 1_2 i - exp(y) / 2 * t 8) Чему равно значение переменной А после выполнения фрагмента программы, если В=5 ? A : = 2; if В >= 4 then C : = 1 else if B > 2 then C : = 0; A : = C; Павловская Т. А. (СПб. ГУИТМО) 59
Итоги 7 -8 баллов – «отлично» n 6 баллов – «хорошо» n 4 -5 баллов – «удовлетворительно» n Павловская Т. А. (СПб. ГУИТМО) 60