Краткий курс лекций. Основы языка Паскаль
Оценка 4.7

Краткий курс лекций. Основы языка Паскаль

Оценка 4.7
Домашнее обучение +2
docx
информатика
10 кл—11 кл +1
30.12.2017
Краткий курс лекций. Основы языка Паскаль
Алфавит языка Паскаль. Начальные сведения о программах на языке Pascal. Идентификаторы. Переменные и типы данных. Константы. Метки. Простейшие операторы. Типы данных языка Pascal: классификация и описания. Арифметические и порядковые типы данных, действия с ними. Арифметические выражения: функции, операции и порядок действий. Совместимость и преобразования типов данных.Краткий курс лекций. Основы языка Паскаль
ПАСКАЛЬ_краткий курс.docx
Краткий курс лекций. Основы языка Паскаль Алфавит языка Паскаль Алгоритмический язык Pascal (Паскаль) был разработан Никлаусом Виртом в 1969­71гг. Современный вариант ­ язык Turbo Pascal ­ расширение американского стандарта ANSI Pascal. Система Turbo Pascal (TP) является интегрированной средой, включающей: ­ ­ ­ ­ универсальный текстовый редактор; компилятор входного языка; редактор связей; встроенный символический отладчик. Текст   программы   на   языке   ТР   представляет   собой   последовательность   строк, состоящих из символов, образующих алфавит языка. Максимальная длина строки составляет 126 символов. В алфавит языка входят: 1)     Буквы латинского алфавита от   a  до  z  и от  A  до  Z, а также знак подчеркивания "_", который приравнивается к буквам 2)     Арабские цифры  от 0 до 9. 3)     Специальные символы, их 23: +  ­  *  /  =  .  ,  :  ;  '  <  >  (  )  {  }  [  ]  $  @  #  ^  и  пробел. Символы из языка используются для построения базовых элементов ­ лексем.  В ТР определены следующие классы лексем: 4.  Служебные (ключевые или зарезервированные) слова:  Begin,  End, Var,       Type,  Label,  Const,  If,  Then,  Else,  For,  Do,  While,  Repeat  и другие.      Служебные слова нельзя использовать не по назначению. Они не могут          использоваться в качестве идентификаторов. 5.   Имена (или идентификаторы) вводятся программистом для переменных, констант, типов, меток, процедур, функций,  объектов, моделей, полей в записях и т.п.  Они  формируются только из  букв и цифр, причем первой должна быть буква. Длина имени может быть произвольной, но компилятор воспринимает только первые 63 символа.  Идентификаторы вводятся в программу посредством описаний. 6.   Изображения  ­   группа   лексем,   обозначающих   числа,   символьные   строки     и некоторые другие значения. 7.   Знаки операций, которые формируются из одного или нескольких   специальных символов или служебных слов: а) арифметические операции: + (сложение),  ­ (вычитание),   * (умножение),  / (деление вещественных чисел),   mod (деление целых чисел),     div (остаток от деления двух целых чисел); б) операции отношения:    < ­ (меньше),    >  ­ (больше),   <=  ­ (не больше),  >=  ­ (не меньше),    = ­ (равно),    <> ­ (не равно); в) логические операции:  and ­ логическое И,  or ­ логическое ИЛИ,  not ­ логическое НЕ,  xor ­ исключительное ИЛИ; 8.         Разделители, которые формируются из специальных символов. 9.         Комментарии     ­ произвольная последовательность символов, в том числе и русских букв, заключенных в фигурные скобки   {…} или   (* … *), предназначенная для пояснений в программе.      Пробел,   не   имеющий   графического   изображения,   используется   для   отделения лексем друг от друга. 10.   Данные в языке Паскаль Любой     идентификатор,   используемый   в     исполняемых     операторах,     должен   быть предварительно описан в разделе описаний.  Тип   любого   объекта   определяет   множество   допустимых     значений     и   множество допустимых операций  над этими значениями.  В   языке   предусмотрен     механизм   создания   новых   типов   данных   на   основе   базовых. Поэтому   общее   число   типов,   используемых   в   программе,   может   быть   сколь   угодно большим.Рассмотрим  так называемые простые или базовые типы, являющиеся основой для построения других типов. Их иногда называют также стандартными типами данных. Порядковые типы данных Порядковые типы  характеризуются   тем, что каждый  из   них имеет конечное число возможных значений и с каждым из них можно сопоставить некоторое целое число ­ порядковый номер значения.  К порядковым типам относятся: ­ ­ ­ ­ ­ целый тип; логический (или булевой) тип; символьный тип; перечислимый (или перечисляемый) тип; ограниченный   (или   интервальный)   тип,   который   также   называют  тип­ диапазон. К   любому   из   них   применима   стандартная   функция  ORD(Х),   результатом   которой является порядковый номер значения Х. К порядковым типам можно также применять функции: PRED(X) ­ возвращает предыдущее значение порядкового типа; SUCC(X) ­ возвращает следующее значение порядкового типа. Целые типы данных Эта группа типов обозначает множество целых чисел в различных диапазонах. Диапазон возможных значений целых типов зависит от их внутреннего представления, которое может занимать один, два или четыре байта. В таблице 1 приведены имена (или названия) всех возможных целых типов (их всего 5), а также длина их внутреннего представления в байтах и диапазоны возможных значений каждого из типов. Целые типы  Длина, байт Название типа 1 1 2 2 4 byte shortint word integer longint Диапазон значений от 0 до 255 от ­128 до 127 от 0 до 65535 от ­32768 до 32767 от ­2147483648 до 2147483647 Таблица 1 Над целыми числами выполняются операции:     "+" – сложение; "*" – умножение;" / "– деление;     "­" – вычитание; div – целочисленное деление;     mod – получение остатка от целочисленного деления. Например, 5div2 дает результат 2, 6div2 дает – 3, 5mod2 дает – 1, а 6mod3 – 0.  В табл.2 содержатся основные встроенные процедуры и  функции, применяемые к   целым типам.  В квадратных скобках указывается необязательный параметр. Встроенные процедуры и  функции для обработки данных целого типа Обращение abs(x) dec(x[,i]) inc(x[,i]) odd(i) Реализуемое действие Возвращает модуль х Уменьшает значение х на i, при отсутствии i  на 1 Увеличивает значение х на i, при отсутствии i  на 1 Возвращает true, если i ­ нечетное число, false ­ четное random(w) Возвращает псевдослучайное число, равномерно распределенное sqr(x) на интервале[0,w­1] Возвращает квадрат аргумента   Таблица 2 Под данными вещественного типа понимаются числа, записанные с  десятичной  точкой. Значение числа вещественного типа представляется в ЭВМ лишь с  некоторой  конечной точностью, которая зависит  от  внутреннего  формата вещественного числа. В табл. 3 приведены названия  вещественных типов, их   длина   в   байтах,   а также   диапазон возможных значений. Существует две формы представления вещественных чисел:   с фиксированной     и     с     плавающей   точкой.   Варианты   записи   вещественных   чисел   с фиксированной точкой приведены первом в столбце, а с плавающей – во втором: 1.36                  1.36e0 0.0013              1.3e­3 123.123            1.23123e2 В разделе описания переменных данные вещественного типа можно описать так:      var a,b: real;         c,d: single;         k: double;         l,m,n: extended;                                      Длина,  байт 4 6 8 10 8 Вещественные типы Название Диапазон десятичного Количество значащих цифр single real double extended comp порядка от ­45 до +38 от ­39 до +38 от ­324 до +308 от ­4951 до +4932 от   до  2 63 1 2 63  1 от 7 до 8 от 11 до 12 от 15 до 16 от 19 до 20 от 19 до 20    Таблица 3 В     табл.4   приведены     встроенные   функции   и   процедуры   для   обработки   данных вещественного типа.                                                      Встроенные функции для обработки данных вещественного типа Обращение abs(x) arctan(x) frac(x) int(x) ln(x) pi random randomize sqrt(x) sqr(x) sin(x) сos(x) exp(x) Реализуемое действие Модуль аргумента Àрктангенс (радианы) Дробная часть числа Целая часть числа Натуральный логарифм =3.14159... Псевдослучайное число, принадлежащее  интервалу[0,1] Инициализация датчика псевдослучайных чисел Корень квадратный  Квадрат аргумента Синус(радианы) Косинус(радианы) Экспонента                  Таблица 4 Логический тип данных  Boolean   Логический тип  (    )  состоит из 2­х значений: False (Ложь) и  True (Истина).  Над значениями этого типа допустимы операции сравнения, причем   False < True.  Для них справедливы правила: ORD(False) = True;  ORD(True) = False; SUCC(False) = True;  PRED(True) = False. Значения логического типа занимают 1 байт. С логическим типом связаны логические  операции: AND (И), OR (ИЛИ), NOT (НЕ). Символьный тип данных Значениями  символьного   типа   ( (American Code for Information Interchange ­ Американский стандартный код для обмена   являются   символы   из   множества  ASCII  Char    )    информацией). Каждому символу приписывается целое число в диапазоне от 0 до 255. Это число служит кодом внутреннего представления символа, его возвращает функция ORD. Если   символьное   значение   имеет   графическое   изображение,   то   оно   изображается   в программе соответствующим знаком, заключенным в апострофы (одинарные кавычки): 'A', 'B', …, 'a', 'b', …, '1', '2', …, '*', '+'  и т. д. Если символ не имеет графического изображения, то используют другую форму записи: #K, где К ­ целочисленный код символа.  Например:   #13 ­ Enter;  #27 ­ Esc;  #8 ­ Backspace. Так   как   символы   упорядочены,   то   к     типу  Char  применимы   операции   сравнения,  (  b  )  ­   преобразует   выражение  b  типа  byte  в   символ   и   возвращает   его   своим например: 'A' < 'M';   'A' < 'a'  и т. п., а также стандартные функции: CHR  значением.  Например: Chr(90) возвращает в качестве результата символ 'Z'. ORD   (  S  ) ­ возвращает в качестве результата код символа S в таблице символов ASCII.  Например: Ord('Z') возвращает код, равный 90. UPCASE   буква, в противном случае возвращает сам символ CH.  (  CH   ) ­ возвращает прописную латинскую букву, если CH ­ строчная латинская Например:  Upcase('z')  возвращает символ 'Z'.  PRED   SUCC    (  S  ) ­ возвращает символ, предшествующий символу S.  (  S  ) ­ возвращает символ, следующий за символом S. Перечислимый тип данных (или   перечисляемый)  тип  данных   задается   списком   значений Перечислимый  (объектов), которые могут принимать переменные этого типа. При этом каждый объект имеет   имя.   Соответствие   между   значениями   перечисляемого   типа   и   порядковыми номерами этих значений устанавливается  порядком перечисления: первое значение в списке   получает   порядковый   номер   0,   второе   ­   1   и   т.д.  Максимальное  число объектов   в   перечисляемом   типе   равно   65366   значений.  К   значениям перечислимого типа применимы стандартные функции Ord, Pred, Succ, а также операции отношений. Рассмотрим примеры порядковых типов. 1.   Описание дней недели: TypeDays=(Monday,Tuesday,Wednsday,Thday,Friday,Sutterday,Sunday). 2.   Описание месяцев года: TypeYear=(jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec). Ограниченный тип данных На   основе   четырех   рассмотренных   порядковых   типов   можно   определить   новые, порядковые типы: например, можно сузить диапазон значений любого из 4­х порядковых типов. Такие типы называют  ограниченными (или интервальными) типами.  Другое их   название   ­   диапазоны.   Такие   типы   задаются   границами   своих   значений   внутри базового типа:<минимальное значение>..<максимальное значение>  Примеры определения типов ­ диапазонов: Typedate=1..31;    TypeMonth=1..12;   TypeSim='A'..'Z' Можно сразу определить переменную типа ­ диапазон: Day:1..31;  Month:1..12;   Sim:'A'..'Z'  и т.п. Необходимо помнить, что левая граница диапазона не должна превышать правой. К значениям этого типа  могут быть применены стандартные функции: HIGH(X)   ­   возвращает   максимальное   значение   типа   ­   диапазона,   к   которому принадлежит переменная Х; LOW(X) ­ возвращает минимальное значение типа ­ диапазона, к которому принадлежит переменная Х. Вещественные типы данных Эта   группа   типов   представляет   множества   значений   в   различных   диапазонах.   ТР поддерживает пять различных вещественных типа (табл. 4). Название Длина, байт Число цифр мантиссы  Диапазон значений   Real  Single  Double  Extended  Comp          6     4              8      10      8        11­12       7­8      15­16       19­20        0 2.9 E­39…1.7 E +38 1.5 E­45…3.4 E+38 5.0 E­324…1.7 E+308 3.4E­4951…1.1E+4932 ­2 E+63… +2 E+63 ­1 Таблица 5 Данные вещественного типа могут быть представлены в двух видах: с фиксированной точкой и с плавающей точкой. Значения с фиксированной точкой изображаются десятичным числом с дробной частью, которой может быть нулевой, например:  0.5,  5.25,  5.0,  ­16. 055 и т.п. Значения с плавающей точкой изображаются следующим образом:     m E p,   где     m ­ мантисса вещественного числа,  Е ­ признак порядка (число 10),      р ­ порядок числа; m ­ целое или вещественное число с фиксированной точкой, положительное или отрицательное; р ­ только целое, положительное или отрицательное, например:  3 Е ­5 (  5103 ),     0.62 Е 4 ( 62.0  410 ),             ­1.6 Е 22 .  106.1( 22 ) Над значениями вещественных типов допустимы четыре арифметических операции *, /, +, ­. Целые и вещественные числа именуются как  "число без знака". В таблице 6   приведены некоторые стандартные математические функции и функции преобразования типов, которые используются при работе с целыми и вещественными Тип аргумента Тип результата Назначение  функции значениями. Вызов Функции  Abs(X)  Sin(X)  Cos(X) ArcTan(X) Sqrt(X) Sqr(X) Целый Вещественный Вещественный Вещественный Вещественный Целый Вещественный Целый Вещественный Вещественный Вещественный Нет аргумента Вещественный Вещественный Вещественный Вещественный Нет аргумента Exp(X) Ln(X) Pi Trunc(X) Frac(X) Int(X) Round(X) Random Random(X) Word Odd(X) Целый Целый Вещественный Вещественный Вещественный Вещественный Вещественный Вещественный Целый Вещественный Вещественный Вещественный Вещественный Longint Вещественный Вещественный Longint Вещественный Word Логический если Х ­  Вычисление абсолютного  значения Х Синус Х радиан Косинус Х радиан  Арктангенс Х радиан Квадратный корень из Х,  (Х>0) Значение Х, возведенное в квадрат Значение е в степени Х Натуральный логарифм Х, (Х>0) Значение числа  Целая часть числа Х Дробная часть числа Х Целая часть числа Х Округление Х до ближайшего целого Случайное число из диапазона (0...1) Случайное число из диапазона (0...Х)  Возвращает значение True, если Х ­  нечетное                           Таблица 6 Структура программы на Языке Рascal Любая программа  на  языке  ТР  состоит из двух основных разделов: раздела описаний данных и раздела операторов, и  заканчивается всегда символом «.». Раздел описаний  может включать в себя подразделы описания  меток,  констант, типов, переменных, а также подпрограмм, реализуемых в виде процедур или функций. Если  в программе     используются   стандартные   или   библиотечные   модули   (Unit),   то   первой должна   стоять   директива   Uses,   в   которой   перечисляются   используемые   модули. Рекомендуется всегда включать в программу директиву:       Uses CRT;       Она подсоединяет стандартный модуль CRT, содержащий описание процедур, функций, констант,   типов и переменных, позволяющих работать с цветом, звуком, экраном и ускорить операции ввода­вывода данных. Кроме двух основных разделов в программу можно и  нужно   включать комментарии: пояснения к программе, данные о разработчиках и т.п.    Раздел описаний может содержать следующие подразделы: 1.   Список имен, используемых модулей. 2.   Объявление меток. 3.   Объявление констант. 4.   Объявление типов. 5.   Объявление переменных. 6.   Описание процедур и функций. Не все подразделы обязательны. Каждый из подразделов раздела описаний начинается своим  ключевым словом.  Список имен модулей начинается с ключевого слова USES. Раздел меток начинается  с ключевого слова  LABEL  ,   раздел констант ­  CONST  , раздел типов ­  TYPE ,  раздел переменных ­  VAR . Раздел операторов следует за разделом описаний и всегда  заключается в операторные скобки, определяемые ключевыми словами    Begin ... End. Операторы отделяются друг от друга символом  ";". Запись операторов в строке может начинаться с любой позиции. В одной строке можно записать несколько операторов. Один оператор может быть записан в нескольких строках. Описание меток Метка  представляет собой правильный идентификатор или любое целое без знака от  1 до 9999. Метки должны быть описаны в подразделе  Label. Каждая метка описывается только   один   раз   в   каждой   программной   единице   (основной   программе   или подпрограммах). Label  метка;    или  Label метка1, метка2, …, меткаN; В программе метка ставится перед оператором, на который передается управление и отделяется от него символом ":". Метка : выполняемый оператор; Примеры описания меток: Label  m1, m2, met1, l1, lab, 125; Описание  переменных Любая   переменная,   используемая   в   программе   (и   подпрограммах)   должна   быть определена (описана) в подразделе  Var  раздела описаний, причем каждая переменная описывается только один раз в каждой программной единице. Определение переменной должно содержать    имя переменной и ее тип,   разделенные двоеточием.  VAR  имя переменной : тип; Примеры: Var x:real;  i: byte;  S: char;  b: boolean;   Days: 1..31; Переменные одного типа записываются друг за другом через запятые: Var  a, b, c : real;  I,j,k:byte;  m, months:1..12; Для переменных, описанных в каждой программной единице, отводится определенный объем памяти. Переменные,   описанные   в   основной   (главной)   программе,   называют  глобальными переменными.   Общий   объем   памяти,   отведенный   под   глобальные   переменные,   не должен превышать 64 Кбайта. Переменные, описываемые в подпрограммах, называются локальными переменными. Описание типов В простейших случаях тип переменных указывается явно, при их описании в разделе Var: Var  Имя переменной: тип; Можно сопоставить типу некоторое имя и описать его в разделе Type:  Type  Имя типа = Тип; Например: Type    Diapason = 1..1000; T_days = 1..31;  T_symbol = 'a'..'z'; T_Month = (j,f,mr,ap,may,jn,jl,ag,s,o,n,d); Это дает возможность программисту определять и использовать свои собственные типы, а не стандартные. Далее можно имена типов, введенные в подразделе Type использовать в подразделе Var: Var  i,i,n:Diapason;  Day:T_days;  Sim,ch:T_symbol;   Mes:T_Month; Описание простых и типизированных констант Простые константы могут быть заданы явно своим значением (0.5, 0, 100, 3.14, 'A', ­5 и т.п.)   или   обозначены   именем   и   в   этом   случае   константы   должны   быть   описаны   в подразделе Const: Const Имя константы = Значение; Например: Const N=200;   A=0.5;  sym='*'; В качестве значений константы могут быть использованы целые и вещественные числа, строки символов, идентификаторы других констант, константные выражения. Например: Const  Max=100;  Min=10;  S=(Max+Min)  div  2; Арифметические выражения Арифметические   выражения   строятся   из   арифметических   констант,   переменных, функций и операций над ними. Все данные, входящие в арифметические выражения, должны быть одного типа, хотя иногда допускается использовать в одном выражении данные целого и вещественного типов. При построении арифметических выражений следует учитывать следующие правила: 1.     Выражение записывается в строчку.   Например, выражение: 2 4 )  xa x (5.2 yb 3  cba на Паскале будет записываться следующим образом: (2*a*x+3*b*y+4*x)/(2.5*(a+b+c)) 2.   Скобки   в   арифметических   выражениях   только   круглые.   Число   открывающихся скобок должно равняться числу закрывающихся скобок. 3.   Нельзя записывать два знака операций подряд, без скобок, например в выражении:   следует записать:  (3*a+b)/(­x). 3 ba  x 4.   Порядок выполнения арифметических операций слева направо в соответствии со старшинством операций: 1) значения функций; 2) *, /, div, mod; 3) +, ­. Логические выражения Логические выражения строятся из логических (булевых) данных, логических операций (OR, AND, NOT) и операций отношений.  В операциях отношений могут участвовать арифметические и логические выражения, а также символьные данные. Результатом логического выражения является значение True или False. Приоритет операций в логических выражениях следующий: 1.   NOT 2.   * ,  /, Div, Mod, AND 3.   +,  ­,  OR 4.   <,  <=,  >,  >=,  =,  <>. Внутри   каждой   группы   приоритет   равный.     В   логических   выражениях   допускается использование   только   круглых   скобок.   Сначала   выполняются   действия   в   скобках, начиная с самых внутренних. В круглые скобки обязательно заключаются части выражения, стоящие слева и справа от логических операций AND и OR. Примеры логических выражений: A<=B;   Not a =b;   (a:=выражение. Необходимо учесть, что переменная и выражение должны быть одного типа.  Например, если переменные  описаны следующим образом:   var     x,y : integer;     a,b :  real; то можно записать операторы присваивания    x:=x+5;   y:=x;   a:=b;   b:=5.33*x+y/2; Составной оператор Составной оператор ­ это объединение нескольких операторов в одну группу или блок.  Форма записи данного оператора: Begin Оператор 1;  Оператор 2;  .  .  . Оператор n; End; Составной   оператор   представляется   как   единый   оператор   и   его   можно   вставлять   в любое   место   программы,   где   допускается     один   оператор.   Любой   из   операторов, входящих   в   составной   оператор,   в   свою   очередь,   может   быть   составным.   После ключевого слова Begin точка с запятой не ставится. Процедуры ввода и вывода данных Для ввода и вывода данных используются стандартные процедуры:  Read,  Readln, Write и Writeln. Read (Список ввода);     Readln(Список ввода);  ­  ввод данных; Write(Список вывода);   Writeln(Список вывода); ­ вывод данных. Процедуры Readln и Writeln отличаются от Read и Write тем,  что после ввода  (вывода) указанного списка данных курсор перемещается на новую строку. Список вывода может содержать значения выводимых на экран дисплея переменных, выражений или сообщения.  Текст сообщений может содержать   допустимые символы языка или русский текст и заключается в апострофы:  'текст'. Например, в программе стоит оператор: Read(a,b,c); Пользователь должен ввести значения переменных a,   b и c, в соответствии с типом, указанным в подразделе Var.  В том случае  если используется оператор Readln(a,b,c); ­ действия   пользователя   те   же,   но   курсор   после   ввода   перемещается   на   следующую строку  экрана.  Числовые данные при вводе отделяются друг от друга пробелами. При выводе данных, как правило, выводятся как значения переменных, так и пояснения. Например, необходимо вывести полученное значение Y: Writeln(' Полученное значение  Y = ',Y); В результате выполнения на экране появится сообщение,   заданное в апострофах, и значение переменной Y. После чего курсор будет установлен в начало новой строки. Процедуры Write и Writeln удобно  использовать для вывода  сообщений  перед вводом данных с клавиатуры,  что упрощает ввод данных.  Например, перед вводом данных в предыдущем примере перед процедурой ввода Read нужно поставить:     Writeln(' Введите a, b и c').

Краткий курс лекций. Основы языка Паскаль

Краткий курс лекций. Основы языка Паскаль

Краткий курс лекций. Основы языка Паскаль

Краткий курс лекций. Основы языка Паскаль

Краткий курс лекций. Основы языка Паскаль

Краткий курс лекций. Основы языка Паскаль

Краткий курс лекций. Основы языка Паскаль

Краткий курс лекций. Основы языка Паскаль

Краткий курс лекций. Основы языка Паскаль

Краткий курс лекций. Основы языка Паскаль

Краткий курс лекций. Основы языка Паскаль

Краткий курс лекций. Основы языка Паскаль

Краткий курс лекций. Основы языка Паскаль

Краткий курс лекций. Основы языка Паскаль

Краткий курс лекций. Основы языка Паскаль

Краткий курс лекций. Основы языка Паскаль

Краткий курс лекций. Основы языка Паскаль

Краткий курс лекций. Основы языка Паскаль

Краткий курс лекций. Основы языка Паскаль

Краткий курс лекций. Основы языка Паскаль

Краткий курс лекций. Основы языка Паскаль

Краткий курс лекций. Основы языка Паскаль

Краткий курс лекций. Основы языка Паскаль

Краткий курс лекций. Основы языка Паскаль

Краткий курс лекций. Основы языка Паскаль

Краткий курс лекций. Основы языка Паскаль
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.
30.12.2017