1 / 53

Язык Паскаль

Язык Паскаль. Блез Паскаль. Блез Паскаль (1623-1662) - французский математик, физик и философ. Монах.

trula
Download Presentation

Язык Паскаль

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ЯзыкПаскаль

  2. Блез Паскаль Блез Паскаль (1623-1662) - французский математик, физик и философ. Монах. В 1642 г. начал работу на созданием суммирующей машины, которая представляет собой механическое устройство - ящик с многочисленными шестеренками {за десять лет он построил более 50 вариантов машины}. Складываемые числа вводились путем поворота наборных колесиков {на колесиках имелись цифры от 1 до 9}, каждое из которых соответствовало одному десятичному разряду числа. Избыток над 9 колесико ‘переносило’, совершая полный оборот и продвигая соседнее справа. Другие операции производились путем процедуры повторных сложений Изобретенный Паскалем принцип связанных колесиков явился основой, на которой строились большинство вычислительных устройств на протяжении следующих трех столетий. Блез Паскаль изобрел и сконструировал первое механическое счетное устройство, позволяющее складывать в десятичной системе счисления, в котором числа "набирались" на специальных дисках. (В суммирующей машине Паскаля десятичные цифры шестизначного числа задавались поворотами дисков с цифровыми делениями, а результат операции можно было прочитать в шести окошечках - по одному на каждую цифру десятичного числа). Диски были механически связаны, при сложении можно было учесть "перенос единицы" в следующий десятичный разряд. Диск "единиц" был связан с диском "десятков", диск "десятков" - с диском "сотен" и т.д. Если при повороте диск проходил через 0, то следующий диск поворачивался на один зубец. Этот поворот, в свою очередь, мог вызвать поворот на зубец следующего диска (например, при прибавлении 1 к числу 99) и т.д. Механический компьютер Паскаля предназначался для его отца, работавшего сборщиком налогов. Blaise Paskal

  3. Никлаус Вирт Niklaus E. Wirth [15.02.1934, Winterhur (Switzerland) - ] • создатель языка программирования Pascal [1970] • автор концепции структурного программирования • Премия им. Тьюринга в 1984 • …

  4. Филип Кан • «Бешеный француз», дипломированый математик, саксафонист-любитель • Студент Н.Вирта: прослушал вводный курс по Паскалю • Разработчик Турбо-Паскаля, основатель Borland International (1984) • 150 000$ за первый месяц продаж компилятора TurboPascal (по 50$ за копию)

  5. Классический Паскаль • Процедурный язык: поддерживает концепцию структурного программирования (технологию создания программ в виде иерархически связанных модулей, представляющих собой линейную последовательность операторов цикла, присваивания и условных операторов, а также вызовов вложенных модулей) • Императивный язык: его инструкции предназначены для последовательного, пошагового изменения состояния вычислительного устройства • Язык со строгой типизацией: все определяемые в программе переменные принадлежат конкретным типам данных, что позволяет избежать многих ошибок обработки данных ещё на этапе компиляции.

  6. 1. Словарь языка паскаль • Все латинские буквы • Все арабские цифры • Ограничители и специальные символы + - * / := . , ; : = <> < <= > >= ( ) [ ] .. { } • Ключевые слова AND ARRAY BEGIN CASE CONST DIV DO DOWNTO ELSE END FILE FOR FUNCTION GOTO IF IN LABEL MOD NIL NOT OF OR PACKED PROCEDURE PROGRAM RECORD REPEAT SET THEN TO TYPE UNTIL VAR WHILE WITH

  7. 2. Правила синтаксиса • Комментарий – конструкция вида {произвольный текст в фигурных скобках}. Может быть помещен в любом месте программы • Пробелы, комментарии, концы строк являются разделителями • Между любыми именами, числами, ключевыми словами должен стоять разделитель • Внутри имени, числа или ключевого слова нельзя отделять один символ от другого • …

  8. 3. Данные • По отношению к процессу выполнения программы подразделяются на • исходные данные (задаются на входе), • результаты (получаются на выходе). • В зависимости от способа хранения и обработки подразделяются на • константы, • переменные.

  9. 3.1. Константы • Числовые – для представления целых и вещественныхчисловых данных. • Булевские – для представления данных, имеющих смысл логических высказываний (да/нет, истина/ложь). • Символьные – для представления последовательностей символов (текстов).

  10. 3.1.1. Целые константы (INTEGER) Целая константа – последовательность десятичных цифр. Может предшествовать знак «-» (минус): 158 -128 56789

  11. 3.1.2. Вещественные константы (REAL) • В виде десятичной дроби (точка вместо запятой!): 3.2 -156.89 0.567 • В виде числа с указанием на степень десяти: 2.5Е13{соответствует числу 2,5*1013} 0.13Е-13{соответствует числу 0,13*10-13}

  12. 3.1.3. Булевские константы (BOOLEAN) TRUE FALSE

  13. 3.1.4. Символьные константы (CHAR) Символьная константа - символ, заключённый в апострофы: ‘A’ ‘1’ ‘=‘

  14. 3.1.5. Константы-строки(STRING) Строка - последовательность символов, заключённая в апострофы: ‘язык паскаль’ ‘MGIMO finished? Ask!’ ‘Itogo = 0’

  15. 4. Идентификаторы Идентификатор – последовательность букв или цифр, начинающаяся с буквы. Используются для обозначения переменных и др. Пробелы не допускаются. Нельзя использовать идентификаторы, совпадающие по написанию с ключевыми словами паскаля (см.п.1). Синонимы слова «идентификатор»: «имя», «наименование», «название».

  16. 5. Типы переменных Тип переменной определяет • множество значений этой переменной, • набор операций, которые к ней могут быть применены, • а также тип результата выполнения этих операций. • «Простые» типы • Скалярные • Стандартные • Целый (INTEGER) • Вещественный(REAL) • Булевский(BOOLEAN) • Символьный(CHAR) • Строковый (STRING) • Нестандартные (перечисление) • Ограниченные (SUBRANGE) • «Сложные» типы • Массив(ARRAY) • Множество(SET) • Файл(FILE) • Запись (RECORD) • Указатели (POINTER)

  17. 6. Скалярные типы Каждый скалярный тип определяет соответствующее ему упорядоченное множество значений.

  18. 6.1. Тип целый (INTEGER) Переменные типа INTEGERмогут принимать только целые значения. Описываются следующим образом: A,B,C,Summa,Porjadkovy_Nomer: INTEGER; С операндами целого типа дают целый результат операции * умножение, + сложение, - вычитание, DIVделение без округления {целая часть частного}, MODостаток от деления {A MOD B = A – ((A DIV B)*B) }, функции ABS(X)абсолютная величина X, SQR(X)квадрат X. С операндами целого и вещественного типа дают целый результат функции TRUNC(X)отбрасывание десятичных знаков (знаков после точки) числа X, ROUND(X)округление числа X до целого.

  19. 6.2. Тип вещественный (REAL) Переменные типа REALмогут принимать только вещественные значения. Описываются следующим образом: X,Y,Z,DlinaLinii: REAL; Если (хотя бы один) операнд - вещественного типа, дают вещественный результат операции * умножение, + сложение, - вычитание, /деление (даже в случае, когда оба операнда – целые), функции ABS(X)абсолютная величина X, SQR(X)квадрат X. SIN(X) синус X (Х в радианах), COS(X) косинус X (Х в радианах), LN(X) натуральный логарифм Х, EXP(X) экспонента Х, SQRT(X) квадратный корень из Х, ARCTAN(X) арктангенс Х. Нельзя использовать переменные и константы вещественного типа • в функцияхPRED(X), SUCC(X), ORD(X), • в качестве индексов массивов, • в определении базы множества (SET).

  20. 6.3. Тип булевский (BOOLEAN) Булевские (логические) значения TRUEи FALSE упорядочены следующим образом: FALSE < TRUE Стандартные булевские функции: ODD(X) = TRUE, если Х нечётное (Х целое), EOLN(X) = TRUE, если встретился конец строки (Х – имя текстового файла), EOF(X) = TRUE, если встретился конец файла Х.

  21. 6.4. Тип символьный (CHAR) Переменная типа CHAR может принимать значения из множества символов, разрешённого транслятором паскаля на данном компьютере. Функции преобразования: ORD(С)-номер символа C в символьном наборе (в таблице ASCII), CHR(i)- i-й символ (i целое)в символьном наборе.

  22. 6.5. Тип строковый (STRING) Значение переменной типа STRING: строка символов (не более 255 символов). Стандартные операции: + -конкатенация строк {s1_2:= s1 + s2}, Length(строка)–функция «длина строки», Copy(строка, с_позиции, сколько_символов) – функция «копирование подстроки», Delete(строка, с_позиции, сколько_символов)– процедура «удаление подстроки».

  23. 6.6. Тип «перечисление» Тип задаётся перечислением всех значений, которые может принимать переменная. Упорядочивание значений – по порядку перечисления. Примеры: TYPE color = (red, yellow, green, blue,пёстрый); бархатный_сезон = (июль, август, сентябрь); Стандартные функции: PRED(X)-элемент последовательности значений, предыдущий Х (здесь Х – переменная типа «перечисление»), SUCC(X)- элемент, следующий за Х, ORD(X)- номер элемента Х в последовательности.

  24. 7. Ограниченные типы (SUBRANGE) Для переменной скалярного типа можно указать границы подмножества возможных значений: VAR год_рождения: 1900..2007; лето: июнь..август;

  25. 8. Структура программы • Заголовок • Блок

  26. 8.1. Заголовок программы В заголовке указывается имя программы и список параметров: PROGRAMHELLO_WORLD2(INPUT, OUTPUT, FILE1, FILE2,…); Здесь: • HELLO_WORLD2 – имя программы, • INPUT – файл ввода, указывается, если в программе есть ввод данных, • OUTPUT – файл вывода, указывается всегда, • FILE1,… - внешние файлы, указываются, если используются.

  27. 8.2. Блок Состоит из 6 разделов, следующих в строго определённом порядке: • [Раздел меток (LABEL).] • [Раздел констант (CONST).] • [Раздел типов (TYPE).] • [Раздел переменных (VAR).] • [Раздел процедур и функций.] • Раздел операторов. Названия разделов в тексте программы указываются один раз.

  28. 8.2.1 Раздел меток (LABEL) Любой оператор может быть снабжён меткой – целой положительной константой, не более 4-х цифр. Все метки, встречающиеся в программе, должны быть описаны в разделе меток: LABEL 5,10,100; … 5: А:=0; … 10: B:=999; … 100: C:=-25;

  29. 8.2.2. Раздел констант (CONST) Повторяющиеся и громоздкие постоянные значения принято обозначать именами и описывать в разделе констант. Это делает программу более наглядной и удобной при отладке и внесении изменений: CONST PI=3.1415926; {число Пи}

  30. 8.2.3. Раздел типов (TYPE) Если в программе вводится тип, отличный от стандартного, то но описывается в разделе TYPE: TYPE palitra = (RGB, CMYK); sex = (male, female, bi, trans);

  31. 8.2.4. Раздел переменных (VAR) Каждая переменная должна быть описана в разделе VAR и отнесена к одному и только одному типу: VAR indeks_massiva: INTEGER; a,b,c: INTEGER; summa_znacheniy: REAL;

  32. 8.2.5. Раздел операторов Выполняемая часть программы, состоит из операторов, ограничена операторными скобками BEGIN … … … END.

  33. 9. Операторы Операторы – описания действий. Отделяются друг от друга точкой с запятой. Исключение: «;» не ставится перед END, UNTIL, ELSE.

  34. 9.1. Оператор присваивания Обший вид: V:=A; Здесь V – переменная, А – выражение, := – операция присваивания. Выражение может содержать константы, переменные, названия функций, знаки операций и скобки.Действия выполняются справа налево с учётом старшинства операций. Примеры: Summa:=Price*Qtty; A:=SQRT(SQR(C)-SQR(B)); TGX:=SIN(X)/COS(X);

  35. 9.2. Вывод информации на печать Общий вид: WRITELN(P1,P2,…,PN); Здесь WRITELN – имя процедуры вывода, P1,P2,…,PN – список выражений, значения которых выводятся на печать. На печать можно выводить произвольный набор символов, заключённый в апострофы. Пример: WRITELN(‘Длина окружности радиусом 5 ’ + ‘равняется’, 2*3.146*5);

  36. 10. Ввод информации с консоли Общий вид: READLN(V1,V2,…,VN); Здесь READLN – имя процедуры ввода, V1,V2,…,VN – список имён переменных, значения которых вводятся c консоли. Пример: READLN(A,B,C);

  37. 9.3. Пример простейшей программы PROGRAM Vichislenie_Ploschadi_KRUGA(INPUT,OUTPUT); CONST PI = 3.1415926; {Число Пи} VAR S_KR: REAL; {Площадь круга} R_KR: REAL;{Радиус круга} BEGIN WRITELN(‘Работает программавычисления площади круга’); {Ввод исходных данных:} WRITE(‘Введите значение радиуса: ‘); READLN(R_KR); S_KR := PI * SQR(R_KR);{собственно вычисление площади круга} {Вывод результатов:} WRITELN(‘Площадь круга радиусом ’, R_KR, ‘равна:‘, S_KR); WRITELN; WRITELN(‘До свидания!’) END.

  38. 9.5 Составной оператор Начинается ключевым словом BEGIN, заканчивается словом END. Между этими операторными скобками помещаются операторы, которые выполняются в порядке следования: BEGIN {пример составного оператора} I:=2; {…ещё какие-то операторы…} J:=3 END;

  39. 9.6. Операторы условного перехода IF…THEN…ELSE…; CASE………ELSE…END;

  40. 9.6.1 Оператор условного перехода «IF» Обший вид: IF A THEN ST1 ELSE ST2; Здесь А – булевское выражение, ST1,ST2 – простые или составные операторы («тело цикла»). Если А=TRUE, то выполняется оператор ST1, иначе – выполняется ST2.

  41. 9.6.1 Оператор условного перехода «CASE» Обший вид: CASE N OF ValueN1,…,ValueNM: ST1; ValueNX,…,ValueNY: ST2; … ELSE STK; END; Здесь N – выражение-селектор, ValueN1,…ValueNY – значения селектора; ST1,ST2,…STK – операторы. Если N=ValueN1, то выполняется оператор ST1,…

  42. 9.7. Операторы цикла WHILE…DO… REPEAT…UNTIL… FOR…DO…

  43. 9.7.1. Оператор цикла «WHILE» Обший вид: WHILE A DO ST; Здесь А – булевское выражение, ST – оператор. До тех пор, пока А=TRUE, снова и снова (в цикле) выполняется оператор ST. Пример: WHILE X<>0 DO BEGIN C:=C+K*X; DEC(X); END;

  44. 9.7.2. Оператор цикла «REPEAT» Общий вид: REPEAT ST UNTIL A; Здесь А – булевское выражение, ST – оператор. В цикле выполняется оператор ST до тех пор, пока Ане станет TRUE. Пример: REPEAT WRITELN(‘Я учу паскаль!’); UNTIL FALSE;

  45. 9.7.1. Оператор цикла «FOR» Обший вид (варианты): FOR J:=N1 TO N2 DO ST; FOR J:=N2 DOWNTO N1 DO ST; Здесь J – переменная цикла, N1, N2 – начальное/конечное значение переменной цикла, ST – оператор. До тех пор, пока J<N2, в цикле выполняется оператор ST. Пример: FOR J:=1 TO 100 DO BEGIN WRITELN(‘J=‘,J); END;

  46. 12.1. Массивы (ARRAY) Массив – структура данных, состоящая из фиксированного числа компонентов одного типа. Массивы описываются в разделе VAR. Общий вид описания массива: A: ARRAY [iType1, iType2,…iTypeL] OF TypeA; Здесь A – имя массива, TypeA – тип компонентов (базовый тип массива), L – размерность массива (количество индексов), iType1, iType2,…iTypeL – типы индексов. Пример описания массива: M: ARRAY[1..5,1..8] OF INTEGER; {матрица целых чисел размером 5x8}

  47. 19. Записи (RECORD) Запись – это структура данных, состоящая из фиксированного числа компонентов, называемых полями. В одном поле данные имеют один и тот же тип, в разных полях - Общий вид описания типа RECORD: TYPE T=RECORD ID11,ID12,…,ID1N: Type1; ID21,ID22,……..,ID2L: Type2; …………………….. IDK1,IDK2,……………….,IDKM: TypeK; END; Здесь T – имя типа; IDmn – идентификаторы полей; TypeN – типы полей. Пример: TYPE COMPLEX=RECORD{тип «комплексные числа»} RE,IM: REAL; {действительная и мнимая часть комплексного числа} END;

  48. 19.1. Оператор «WITH» Используется для удобства работы с переменными типа RECORD. Общий вид: WITH A DO ST; Здесь A – имя переменной типа RECORD, ST – оператор.

  49. 13. Процедуры (PROCEDURE) Процедура паскаля – это самостоятельная подпрограмма. Процедуры, используемые в разных программах, помещаются в т.н. «библиотеки процедур» и находятся в памяти ЭВМ (оперативной либо внешней). Процедура имеет ту же структуру, что и главная программа: заголвок процедуры, разделы описаний CONST, TYPE, VARи выполняемую часть BEGIN…END;. Общий вид заголовка процедуры: PROCEDURE N (P1:T1;…PN:TN; VAR PM:TM;…); ЗдесьN – имя процедуры, P – формальные параметры, T – их типы.

  50. Вызов процедуры. Формальные и фактические параметры. Вызов процедуры (запуск процедуры в работу) производится оператором вида N (fP1,fP2,fP3,…); Здесь N – имя вызываемой процедуры, fP – фактические параметры. При вызове процедуры производятся действия: • устанавливается взаимно однозначное соответствие между формальными и фактическими параметрами (по количеству и по типу); • управление передаётся процедуре; • по завершении работы процедуры управление передаётся вызывающей программе (процедуре) на оператор, следующий за вызовом процедуры.

More Related