МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего образования «Кубанский государственный университет» Институт среднего профессионального образования РЕФЕРАТ На тему: «Программирование на языке Паскаль» Выполнил: Студент 2 курса, Специальности 09.02.03 Программирование в компьютерных системах Баранов О.Ю. Краснодар 2019 г. Оглавление В В Е Д Е Н И Е ......................................................................................................................................................3 1 . О С Н О В Н Ы Е С И М В О Л Ы ................................................................................................................4 2 . Э Т А П Ы Р А З Р А Б О Т К И П Р О Г Р А М М Ы .................................................................................5 3 . А Л Г О Р И Т М Ы И А Л Г О Р И Т М И З А Ц И Я ................................................................................7 4 . С Т Р У К Т У Р А П Р О Г Р А М М Н А П А С К А Л Е .........................................................................9 5 . П Р О Г Р А М М И Р О В А Н И Е О С Н О В Н Ы Х К О Н С Т Р У К Ц И Й Я З Ы К А .................10 5.1 ПАСКАЛЬ ...........................................................................................................................................................10 6 . И Г Р Ы Н А Я З Ы К Е П А С К А Л Ь .....................................................................................................13 7 . З А Д А Н И Е .................................................................................................................................................15 З А К Л Ю Ч Е Н И Е ...........................................................................................................................................18 С П И С О К И С П О Л Ь З О В А Н Н О Й Л И Т Е Р А Т У Р Ы ...............................................................19 С П И С О К Т А Б Л И Ц И И Л Л Ю С Т Р А Ц И Й . ................................................................................20 СПИСОК ИЛЛЮСТРАЦИЙ ........................................................................................................................................20 СПИСОК ТАБЛИЦ.....................................................................................................................................................20 И С П О Л Ь З О В А Н Н Ы Е И Л Л Ю С Т Р А Ц И И .................................................................................21 Баранов О.Ю. 19.12.2019 2 ВВЕДЕНИЕ ВВЕДЕНИЕ Турбо Паскаль появился на рынке программных продуктов в 1984 году и, несомненно, совершил революцию в программировании. До этого предпочтение отдавалось Бейсику -простому, дешевому и легко усвояемому. Паскаль же был аппаратно-зависимым, дорогим и сложным в обращении. С появлением Турбо Паскаля положение в корне изменилось. Замечателен в Турбо Паскале не язык, который является лишь языком Паскаля, а программное окружение, в котором теперь можно использовать Паскаль и которое обеспечивает пользователю комфорт и высокую скорость работы. С успехом Турбо Паскаля на рынке программных продуктов связано также и развитие многочисленных пакетов, облегчающих применение Паскаля для самых разных целей. Концепция Паскаля была разработана Н. Виртом примерно в 1970 году и Паскаль быстро получил широкое распространение благодаря легкости его изучения, наглядности составленных на нем текстов программ. В середине 70-х годов была сделана попытка разработать международный стандарт на Паскаль. В результате в 1982 году появился стандарт ИСО 1 7185. Здесь следует различать этап 0 и заключительный этап 1. В Германии стандарт был опубликован в 1983 году в качестве стандарта ДИН2 66256 на немецком языке. После просуществовавшей сравнительно недолго и не получившей широкого распространения версии 1 в середине 1984 года появляется версия 2, распространение которой пошло стремительными темпами. К осени 1985 года появляется версия 3.0, отличающаяся от версии 2 следующими особенностями: компилятор и редактор стали работать существенно быстрее, появилась возможность передачи параметров в программу с помощи команды RUN, стал возможным вызов MS-DOS из программы, стала более удобной работа с файлами. С начала 1988 года начинает распространяться версия 4.0. Здесь Турбо Паскаль представлен в совершенно новой форме. Не только становится еще более быстрым компилятор, но и появляется совершенно новое программное окружение. Существенно то, что компилятор стал встроенным, так что появилась возможность разбиения программ на части, компилируемые по отдельности. Поскольку каждый такой модуль имеет собственный сегмент кодов, программы могут занимать и более 64 Кбайт. Осенью 1988 года появилась версия 5.0 с еще более развитым программным окружением. Фирма Borland / Inprise 3завершила линию продуктов Турбо Паскаль и перешла к выпуску системы визуальной разработки для Windows - Delphi. Несмотря на это, Турбо Паскаль сохраняет свое значение отличного языка для первого знакомства с миром «серьезного» программирования. Это связано как с его четкой логической структурой, так и с теми возможностями, которые позволяют использовать Турбо Паскаль для решения разнообразных задач. Среди них вычисления и обработка данных, компьютерная графика, работа со звуком, системно программирование. Турбо Паскаль позволяет применять приемы объектно-ориентированного программирования, которое стало одной из ведущих современных технологий программирования. 1 ИСО-международная неправительственная организация, которая начала свое существование еще в 1947 году. Цель ее состоит в разработке международных стандартов для товаров и услуг. 2 Немецкий институт по стандартизации (нем. Deutsches Institut für Normung e.V. сокр. DIN) 3 Американская компания по разработке программного обеспечения Баранов О.Ю. 19.12.2019 3 1. ОСНОВНЫЕ СИМВОЛЫ 1. ОСНОВНЫЕ СИМВОЛЫ Основные символы языка — буквы, цифры и специальные символы — составляют его алфавит. Турбо паскаль включает следующий набор основных символов: 26 латинских строчных и 26 латинских прописных букв: ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 2) _ подчеркивание 3) 10 цифр: 0123456789 4) знаки операций: + — * / = <> < > <= >=: = @ 5) ограничители: ., ' () [] (.) { } (* *). .:; 6) спецификаторы: ^#$ 7) служебные (зарезервированные) слова: ABSOLUTE ASSEMBLER AND ARRAY ASM ASSEMBLER BEGIN CONST CONSTRUCTOR PACKED DESTRUCTOR END ELSE INTERFACE XOR PUBLIC INHERITED EXPORTS EXTERNAL FAR FILE FOR FORWARD NOT GOTO IMPLEMENTATION VAR PRIVATE INTERRUPT LABEL TO RECORD INLINE WITH LIBRARY MOD NAME NIL NEAR OF FUNCTION IF USES IN DIV TYPE EXPORT OBJECT DOWNTO DO SET SHL SHR STRING THEN UNIT CASE OR UNTIL INDEX PROCEDURE VIRTUAL RESIDENT REPEAT PROGRAM WHILE Таблица 1 Кроме перечисленных, в набор основных символов входит пробел. Пробелы нельзя использовать внутри сдвоенных символов и зарезервированных слов. Баранов О.Ю. 19.12.2019 4 2. ЭТАПЫ РАЗРАБОТКИ ПРОГРАММЫ 2. ЭТАПЫ РАЗРАБОТКИ ПРОГРАММЫ В процессе создания любой программы, будь то небольшая учебная программа, предназначенная для демонстрации учителю информатики, или серьезный проект, над которым работают десятки программистов, можно выделить несколько этапов. Затраты труда и времени на их выполнение различны, различаются эти затраты и для различных программ. Некоторые из этапов могут быть опущены или пройдены «незаметно», однако анализ процесса разработки приводит к выводу о том, что почти всегда, явно или не явно, приходится проходить следующие этапы разработки программы: постановка задачи; анализ, формальное описание задачи, выбор модели; выбор и разработка алгоритма решения задачи; проектирование общей структуры программы; кодирование; отладка и верификация программы; получение результата; публикация или передача заказчику результата работы; сопровождение программы. Описание каждого из перечисленных этапов: Постановка задачи выполняется заказчиком, в качестве которого может выступать внешняя организация, организация в которой работает программист, начальник программиста, преподаватель, сам программист. На этом этапе задача, которую необходимо решить посредством составления программы для компьютера, формулируется на естественном языке. Анализ задачи включает определение входных и выходных данных, выявление возможных ограничений на их значения и обычно завершается формализованным описанием задачи, которое часто предполагает её математическую формулировку. Выбор и разработка алгоритма и численного метода решения задачи имеют важнейшее значение для успешной работы над программой. Тщательно проработанный алгоритм решения задачи — необходимое условие эффективной работы по составлению программы. Проектирование общей структуры программы. На этом этапе происходит «архитектурная» проработка проекта. Определяются те части алгоритма, которые целесообразно оформить в виде подпрограмм, модулей. Определяется и способ хранения информации — в виде набора простых переменных, массивов или других структур. Кодирование — это запись алгоритма на языке программирования. Если алгоритм решения задачи, структура программы и структура данных тщательно продуманы и аккуратно записаны, затраты времени на кодирование уменьшаются, а вероятность ошибок на этом этапе снижаются. Отладка и верификация программы представляют собой очень важную часть процесса разработки программы. Отладка заключается в устранении ошибок программирования, ошибок перевода алгоритма на язык программирования. Верификация 4— доказательство того, что программа работает «правильно», дает правильный результат. 4 Верифика́ция (от лат. verum «истинный» + facere «делать») в различных сферах деятельности человека может подразумевать: проверка, подтверждение Баранов О.Ю 19.12.2019 5 2. ЭТАПЫ РАЗРАБОТКИ ПРОГРАММЫ Получение результата — сравнить результаты наблюдений и результаты компьютера. Результат может отличаться от требуемого. В этом случае, возможно, придется изменить саму модель, сделав ее более реалистичной. Публикация или передача заказчику результата работы — момент рождения качественной программы. В научных исследования значение имеют результаты моделирования, которые публикуются в научных журналах. В нашем случае это сама программа, которая передается заказчику для дальнейшей эксплуатации или выкладывания на ftp- сервер для свободного распространения. Сопровождение программы — предполагают консультации заказчику по работе программы, устранение замеченных в процессе ее эксплуатации недостатков, обучение пользователей работе с программой. Баранов О.Ю 19.12.2019 6 3. АЛГОРИТМЫ И АЛГОРИТМИЗАЦИЯ 3. АЛГОРИТМЫ И АЛГОРИТМИЗАЦИЯ Алгоритмизация — составление пошагового описание процесса решения задачи. Алгоритм — конечный набор правил, расположенных в логическом порядке, позволяющий исполнителю решать любую конкретную задачу из некоторого класса однотипных задач. Алгоритм должен удовлетворять определенным требованиям. Принято выделять следующие семь: Наличие ввода исходных данных. Наличие вывода исходных данных. Однозначность. Общность — алгоритм предназначен для решения некоторого класса задач. Корректность — алгоритм должен давать правильное решение задачи. Конечность — решение задачи должно быть получено за конечное число шагов. Эффективность — для решения задачи должны использоваться ограниченные ресурсы компьютера (процессорное время, объем оперативной памяти). Для разработки структуры программы удобнее пользоваться записью алгоритма в виде блок-схемы. Для изображения основных алгоритмических структур и блоков на блок-схемах используют специальные графические символы: Рисунок 1 Баранов О.Ю 19.12.2019 7 3. АЛГОРИТМЫ И АЛГОРИТМИЗАЦИЯ Рисунок 2 Баранов О.Ю 19.12.2019 8 4. СТРУКТУРА ПРОГРАММ НА ПАСКАЛЕ 4. СТРУКТУРА ПРОГРАММ НА ПАСКАЛЕ Программа на языке Паскаль состоит из заголовка, разделов описаний и раздела операторов. Program - имя программы; Uses - подключаемые модули; Блок описания: Меток Констант Типов Переменных Процедур Функций Begin Тело программы. Исполняемая часть. End. Строка программы может иметь максимальную длину 127 символов. Если строка будет длиннее, ее часть, выходящая за пределы 127 символов, будет компилятором игнорироваться. Комментарии заключаются в фигурные скобки {……}. Рисунок 3 Баранов О.Ю 19.12.2019 9 5. ПРОГРАММИРОВАНИЕ ОСНОВНЫХ КОНСТРУКЦИЙ ЯЗЫКА 5. ПРОГРАММИРОВАНИЕ ОСНОВНЫХ КОНСТРУКЦИЙ ЯЗЫКА 5.1 ПАСКАЛЬ Линейная программа Простейшей алгоритмической структурой является линейная последовательность операций, которые выполняются по очереди и именно в том порядке, в котором они записаны. Линейные алгоритмы и линейные программы обычно предназначены для решения относительно простых задач, в которых не предусмотрен выбор из нескольких возможных альтернатив или циклических повторений каких-либо операций. Ветвления В Паскале имеются две реализации одной из основных алгоритмических структур — ветвления. Это условный оператор и оператор выбора. Условный оператор имеет вид: If a>b then Writeln (‘значение а больше’); Полная версия условного оператора имеет вид: If a > b then writeln (‘значение а больше’) Else writeln (‘значение больше’); Циклы Одной из важнейших алгоритмических структур является цикл. Цикл представляет собой последовательность операторов, которая выполняется неоднократно. В программах, связанных с обработкой данных или вычислениями, часто приходиться выполнять циклические повторяющиеся действия. В языке программирования Паскаль имеется три разновидности цикла — цикл со счетчиком, цикл с предусловием и цикл с постусловием. Операторы цикла: Оператор While Оператор Repeat Оператор For Оператор While: При использовании оператора while условие повторения цикла запрашивается в начале цикла: while выражение do оператор Выражение после while должно быть логическим выражением. Оператор после do выполняется, если логическое выражение имеет значение true. Если после do, т.е. в цикле, должны быть выполнены несколько операторов, их следует поместить в операторные скобки begin и end. Если логическое выражение в начале имеет значение false, цикл вообще не выполняется. Оператор Repeat: repeat оператор until выражение Выражение после repeat должно быть логическим выражением. Выражение после repeat выполняются до тех пор, пока логическое выражение после until не примет значение true. Итак, построенный с помощью оператора repeat цикл выполняется по крайней мере один раз. Баранов О.Ю 19.12.2019 10 5. ПРОГРАММИРОВАНИЕ ОСНОВНЫХ КОНСТРУКЦИЙ ЯЗЫКА Оператор For: for переменная:= выражение to выражение do оператор Переменная цикла и оба выражения должны иметь одинаковый тип, который должен быть порядковым. Первое выражение является начальным значением, второе — конечным. При выполнении to начальное значение увеличивается каждый раз, пока не достигнет конечного значения. Простые типы данных Все переменные, используемые в программе, должны быть перечислены в разделе описания переменных. var a, b: integer; c: real; Паскаль — это гибкий язык, в котором имеется большое число различных типов. Все имеющиеся в Паскале типы принято делить на группы. Типы, принадлежащие одной группе, имеют сходство. Прежде всего, выделяют простые и структурные типы. Простые типы, в свою очередь, подразделяют на порядковые и вещественные типы. В таблице приведено описание простых типов: Название Идентификатор Множество допустимых значений Порядковый Короткий целый Байтовый Слово Shortint -128. .127 Byte 0. .255 Word 0. .65535 Целый Integer -32768. .32767 Длинный целый Longint -2147483. .2147483647 Символьный Char Символы из расширенного набора символов кода ASCII Булев Boolean True, False Вещественный Вещественный Real -1.7x1038 . - 2.9x10-39 С одинарной точностью Single 2.9x10-39 . .1.7x1038 С двойной точностью Double -3.4x1038 . - 1.5x10-45 Сложный Comp -263 +1. .263 -1 Таблица 2 Допустимые значения порядковых типов представляют собой множество, состоящее из конечного числа элементов. В этом множестве есть первый и последний элементы. Кроме того, каждый элемент порядкового типа имеет предшествующий ему и следующий за ним элементы. В Паскале имеется пять вещественных типов. Вещественные типы различаются диапазоном и точностью связанных с ними значений. Действия над типами с одинарной, двойной и повышенной точностью, а также над сложным типом могут выполняться только при наличии математического сопроцессора. Процедуры и функции Подпрограмма — это последовательность операторов, которые определены и записаны только в одном месте программы, однако их можно вызвать для выполнения из одной или нескольких точек программы. Каждая подпрограмма определяется уникальным именем. В языке Паскаль существуют два типа подпрограмм — процедуры и функции. Баранов О.Ю 19.12.2019 11 5. ПРОГРАММИРОВАНИЕ ОСНОВНЫХ КОНСТРУКЦИЙ ЯЗЫКА Процедура и функция — это именованная последовательность описаний и операторов. При использовании процедур или функций Паскаль — программа должна содержать текст процедуры или функции и обращение к процедуре или функции. Тексты процедур и функций помещаются в раздел описаний процедур и функций. Процедура может содержать такие — же разделы описаний, что и Паскаль — программа, а именно: разделы описания модулей, меток, констант, типов, переменных, процедур и функций. Баранов О.Ю 19.12.2019 12 6.ИГРЫ НА ЯЗЫКЕ ПАСКАЛЬ 6.ИГРЫ НА ЯЗЫКЕ ПАСКАЛЬ 1 Угадай число Задача: Отгадать целое число, которое "загадал" компьютер в определенном диапазоне. Описание переменных: x - число, "загаданное" компьютером; y - Очередное число, вводимое пользователем. Алгоритм решения задачи: Программа генерирует псевдослучайное число, которое записывается в переменную x. Пока число x не совпадет с числом y, пользователю будет предлагаться ввести очередное число. При этом, если x > y, то на экран будет выдаваться сообщение "Ваше число меньше задуманного". Иначе будет проверяться условие x < y. При его положительном значении появится сообщение "Ваше число больше задуманного", иначе сообщение "Вы угадали". Не трудно понять, что если y не больше и не меньше x, то значит оно равно x. В таком случае логическое выражение при while вернет false, и цикл прервется. Программа на языке Паскаль: Program Ugaday_chislo; label 1,2;x,y,k: ineger; begin writeln ('У тебя есть 5 попыток'); k:=5; randomize; x:=random (10); writeln ('Введи число от одного до десяти'); readln (y); if k<>0 then beginx=y then begin writeln ('Вы угадали!'); 1;begin if y>x then ('Ваше число больше задуманного') else writeln ('Ваше число меньше задуманного'); k:=k-1;2;begin writeln ('Число попыток истекло'); 1; end; readln; end. Примечания: Угадать число всегда можно не более чем через 5 попыток. Баранов О.Ю 19.12.2019 13 6.ИГРЫ НА ЯЗЫКЕ ПАСКАЛЬ 2 Тир Программа Тир представляет с собой игровую программу. Мишень в тире имеет круглую форму. Программа выводит приглашение: «Добро пожаловать в тир». После этого пользователю предлагается сделать выстрел, т. е. ввести значимое x и y. Выводит сообщение: «Ваш выстрел, введи значимое x, y». Если это значение удовлетворяет условию x2+y2<=R2, то пользователь попадет в мишень, иначе нет. При промахе программа выводит сообщение о промахе: «Промах, попробуйте еще раз» и предлагает пользователю сделать выстрел еще раз Программа на языке Pascal: Program Tir;1,2;R,x,y:integer; Begin Writeln (Добро пожаловать в тир); writeln (Ваш выстрел, введи значимое x, y); Readln(x, y); R:=10;SQR(x) + SQR(y) Баранов О.Ю 19.12.2019 14 7. ЗАДАНИЕ 7. ЗАДАНИЕ Составить программу вывода на экран всех натуральных чисел, не превосходящих N и не делящихся на каждую из своих цифр. Описать соответствующую функцию, получающую из основной программы в качестве параметра натуральное число и возвращает TRUE, если оно удовлетворяет указанному условию. Блок — схема программы Рисунок 4 Баранов О.Ю 19.12.2019 15 7. ЗАДАНИЕ Блок — схема функции { viborka } Рисунок 5 Баранов О.Ю 19.12.2019 16 7. ЗАДАНИЕ Текст программы program nat_chisla; uses crt; function viborka (var n: integer): boolean; var f: boolean; k: integer; m: integer; begin f: =true; k: =n; while k<>0 do begin m: =k mod 10; if m <> 0 then if n mod m = 0 then begin f: =false; break; end; k: =k div 10; end; viborka: =f; end; var i,n: integer; begin clrscr; writeln ('Введите число'); readln (n); for i: =1 to n do if viborka (i) then writeln (i); readln; end. Баранов О.Ю 19.12.2019 17 ЗАКЛЮЧЕНИЕ ЗАКЛЮЧЕНИЕ В данной работе были рассмотрены основные вопросы, касающиеся основ структурного программирования в среде Turbo Pascal. Turbo Pascal является одним из наиболее востребованных языков программирования которые используются при обучения студентов основам алгоритмизации и программирования. Он был создан Николаусом Виртом для обучения студентов в 70-х годах прошлого века, но до сих пор пользуется популярностью у начинающих программистов благодаря своей простоте и возможности создавать от простых программ до сложных многострочных кодов. В работе были освещены вопросы, связанные с основами программирования на языке Pascal. В теоретической части рассмотрены структура программы на языке Pascal, типы данных, основные операторы языка, такие как операторы ввода и вывода, условный оператор, оператор безусловного перехода, цикл с предусловием, цикл с постусловием и цикл с параметром. Также рассмотрены основы работы с символьными и строковыми переменами, одномерным и двумерными массивами. В практической части были рассмотрены вопросы, касающиеся создание программ на языке Pascal в качестве примеров программ были выбраны игровые программы. Такие как Тир и Угадай число. Язык программирования Pascal предоставляет возможность для создания игровых программ различных видов. В программе Тир был реализован циклический алгоритм, который осуществлял выход из цикла только при условии попадания пользователя в цель. Это осуществлялось при помощи оператора безусловного перехода goto. В программе Угадай число использовался датчик случайных чисел для того, чтобы компьютер загадал число. Первоначально пользователю было дано пять попыток для угадывания. Если пользователь не смог угадать задуманное компьютером число за пять попыток, то он проигрывает. В заключении следует отметить, что язык программирования Pascal обладает всеми возможностями для создания игровых программ. Созданные, в рамках работы, программы могут быть использованы для обучения студентов основам структурного программирования на языке Pascal. Баранов О.Ю 19.12.2019 18 СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 1. TurboPascal: практикум. — СПб.: Питер, 2002. — 256 с.: ил. 2. TurboPascal / 2-е изд., перераб., — Вологда: МП «МИК», 1991. — 342с. Баранов О.Ю 19.12.2019 19 СПИСОК ТАБЛИЦ И ИЛЛЮСТРАЦИЙ СПИСОК ТАБЛИЦ И ИЛЛЮСТРАЦИЙ СПИСОК ИЛЛЮСТРАЦИЙ Рисунок 1 ...........................................................................................................................................................7 Рисунок 2 ...........................................................................................................................................................8 Рисунок 3 ...........................................................................................................................................................9 Рисунок 4 .........................................................................................................................................................15 Рисунок 5 .........................................................................................................................................................16 СПИСОК ТАБЛИЦ Таблица 1 ...........................................................................................................................................................4 Таблица 2 .........................................................................................................................................................11 Баранов О.Ю 19.12.2019 20 ИСПОЛЬЗОВАННЫЕ ИЛЛЮСТРАЦИИ ИСПОЛЬЗОВАННЫЕ ИЛЛЮСТРАЦИИ Баранов О.Ю 19.12.2019 21 ИСПОЛЬЗОВАННЫЕ ИЛЛЮСТРАЦИИ Баранов О.Ю 19.12.2019 22 ИСПОЛЬЗОВАННЫЕ ИЛЛЮСТРАЦИИ Баранов О.Ю 19.12.2019 23