Л. И. Долинер основы программирования в среде pascalabc. Net учебное пособие
Скачать 1.88 Mb.
|
Л. И. ДОЛИНЕР ОСНОВЫ ПРОГРАММИРОВАНИЯ В СРЕДЕ PascalABC.NET Учебное пособие Министерство образования и науки Российской Федерации Уральский федеральный университет имени первого Президента России Б. Н. Ельцина Л. И. Долинер О О с с н н о о в в ы ы п п р р о о г г р р а а м м м м и и р р о о в в а а н н и и я я в в с с р р е е д д е е P P a a s s c c a a l l A A B B C C . . N N E E T T Рекомендовано методическим советом УрФУ в качестве учебного пособия для студентов, обучающихся по направлениям подготовки 230400 «Информационные системы и технологии», 090900 «Информационная безопасность» Екатеринбург Издательство Уральского университета 2014 УДК 004.43PascalABC.NET(075.8) ББК 32.973-018.2я73 Д64 Рецензенты: Уральский технический институт связи и информатики (филиал) ФТОБУ ВПО «Сибирский государственный университет телекоммуникаций и информатики» (выписка из протокола № 1 от 11.09.2012 г. заседания кафедры общепрофессиональных дисциплин технических специальностей, завкафедрой канд. техн. наук, доц. Н. В. Будылдина); д-р пед. наук, проф. Б. Е. Старченко (Уральский государственный педагогический университет) Научный редактор – д-р пед. наук, проф. Г. А. Матвеева Д64 Долинер, Л. И. Основы программирования в среде PascalABC.NET : учебное пособие / Л. И. Долинер. – Екатеринбург : Изд-во Урал. ун-та, 2014. – 128 с. ISBN 978-5-7996-1260-3 Пособие является частью комплекса, предназначенного для обучения основам программирования на языке Object Pascal в среде PascalABC.NET. Комплекс включает, помимо данной книги, методические рекомендации для преподавателя, дополнительный задачник и набор учебных файлов, обеспечивающих полноценный и эффективный процесс обучения основам программирования. Предназначено для студентов, учителей в системе повышения квалификации, преподавателей информатики. Рис. 7. Табл. 1. УДК 004.43PascalABC.NET(075.8) ББК 32.973-018.2я73 _____________________________________________________________________ Учебное издание Долинер Леонид Исаевич Основы программирования в среде PascalABC.NET Подписано в печать 11.09.2014. Формат 70×100 1/16. Бумага писчая. Плоская печать. Усл. печ. л. 10,32. Уч.-изд. л. 6,6. Тираж 50 экз. Заказ № 1506. Издательство Уральского университета Редакционно-издательский отдел ИПЦ УрФУ 620049, Екатеринбург, ул. С. Ковалевской, 5 Тел.: 8 (343) 375-48-25, 375-46-85, 374-19-41 E-mail: rio@urfu.ru Отпечатано в Издательско-полиграфическом центре УрФУ 620075, Екатеринбург, ул. Тургенева, 4 Тел.: 8 (343) 350-56-64, 350-90-13 Факс: 8 (343) 358-93-06 E-mail: press-urfu@mail.ru ISBN 978-5-7996-1260-3 © Уральский федеральный университет, 2014 3 Оглавление ПРЕДИСЛОВИЕ ............................................................................................................ 5 ЧТО ТАКОЕ «ПРОГРАММИРОВАНИЕ» ................................................................. 8 ГЛАВА 1. Знакомство со средой PascalABC.NET ................................................... 15 ГЛАВА 2. Простейшие программы на языке Паскаль ........................................... 21 ГЛАВА 3. Организация диалога ............................................................................... 27 ГЛАВА 4. Графика в языке паскаль (первое знакомство) ..................................... 30 ГЛАВА 5. Операции с целыми и вещественными числами .................................. 35 ГЛАВА 6. Оператор ветвления .................................................................................. 38 ГЛАВА 7. Оператор выбора ....................................................................................... 43 ГЛАВА 8. Цикл с параметром ................................................................................... 46 ГЛАВА 9*. Рисование забора ................................................................................... 49 ГЛАВА 10 0 . Звездное небо и прочие странности .................................................... 53 ГЛАВА 11. Цикл с параметром: типовые алгоритмы ............................................ 56 ГЛАВА 12. Проектирование программ и процедуры ............................................. 62 ГЛАВА 13. Циклы с условием .................................................................................. 69 ГЛАВА 14. Построение графиков функций ............................................................. 73 ГЛАВА 15. Графические примитивы. Перья и кисти ............................................. 77 ГЛАВА 16*. Работа с графическими объектами ..................................................... 81 ГЛАВА 17*. Событийное программирование.......................................................... 83 ГЛАВА 18. Основные операции со строковыми данными .................................... 86 ГЛАВА 19. Использование процедур ....................................................................... 91 ГЛАВА 20. Работа с массивами: первые шаги ......................................................... 95 ГЛАВА 21*. Сортировка массивов ......................................................................... 102 4 ГЛАВА 22*. Многомерные массивы ..................................................................... 105 ГЛАВА 23. Подпрограммы-функции ..................................................................... 109 ГЛАВА 24. Работа с текстовыми файлами: чтение и запись .............................. 113 ГЛАВА 25. Работа с данными из текстовых файлов ........................................... 119 ГЛАВА 26. Основы работы с типизированными файлами .................................. 125 5 Предисловие Программирование сегодня – это бурно развивающаяся отрасль производ- ства программных продуктов. В конце прошлого века общаться с компьютерами можно было лишь с помощью программирования, и поэтому программирование изучали фактически во всех учебных заведениях (в т. ч. в школах и вузах). Вре- мена изменились, общаться с компьютерами можно уже с помощью готовых компьютерных программ, и нужда в массовом обучении программированию вро- де бы отпала. Однако все оказалось не так просто. В современные прикладные пакеты включаются, как правило, дополнительные средства программирования, обеспечивающие расширение возможностей этих пакетов. Например, практиче- ски в любом пакете MS Office есть среда программирования VBA (Visual Basic for Applications), обеспечивающая расширение возможностей этого пакета; профес- сиональная работа с системой «1С Предприятие» требует постоянного програм- мирования для настройки на потребности каждой фирмы. Речь уже ведется о но- вом подходе, в рамках которого программирование – это обязательная компонен- та подготовки специалистов, собирающихся профессионально работать в опреде- ленной сфере, в которой предполагается использование IT-технологий. Программирование сегодня – это не только и не столько знание языка про- граммирования. Прежде всего это знание технологии программирования, умение проектировать и разрабатывать программы и программные комплексы на ос- нове этой технологии, умение строить модели, ставить задачи и иметь представ- ление о коллективной разработке программных продуктов. Все это принято назы- вать культурой программирования. В данном пособии вы познакомитесь с языком программирования Паскаль (точнее, его разновидности – Object Pascal), c элементами структурного про- граммирования (т. е. программирования без использования оператора безусловно- го перехода), с технологией проектирования «сверху вниз», с модульным про- граммированием (т. е. с разбиением программы на подпрограммы для удобства отладки и коллективной реализации) и элементами объектно-ориентированного программирования. 6 Материал пособия необходимо изучать последовательно. В книге предложено два вида материалов: теоретический, который размещен в электронном пособии, и практический, который следует выполнять на компьютере. Для выполнения практических работ необходима среда программирования PascalABC.NET (любой модификации), а также электронная поддержка практических работ, размещенная в папке Examples. Можно, конечно, использовать для обучения и другие среды (Tur- bo Pascal, Borland Pascal, Free Pascal, TNT Pascal и т. п.), однако материал подготов- лен именно для названной среды. Среда бесплатная, и ее можно скачать с http://PascalABC.NET/. И хотя программирование на языке Паскаль изучают тра- диционно в среде Borland Pascal, мы сочли целесообразным воспользоваться сре- дой PascalABC.NET (разумеется, с разрешения авторов среды С. С. Михалковича и М. Э. Абрамяна, доцентов Ростовского государственного университета). Наш выбор был обусловлен следующими причинами: 1) традиционные Турбо-среды (тот же Borland Pascal) являются DOS- средами, т. е. для работы в них нужно использовать стандарты операционной си- стемы MS DOS, что во времена Windows является, по меньшей мере, анахрониз- мом, поскольку данные навыки вряд ли кому-то пригодятся в будущем; 2) возможности среды PascalABC.NET, в отличие от других сред, макси- мально приближены к Delphi, что позволяет более естестественно перейти от про- граммирования учебного к программированию визуальному и объектно- ориентированному; 3) графика PascalABC.NET практически совпадает с графикой Delphi; 4) среда PascalABC.NET содержит прекрасную и понятную справку на рус- ском языке с множеством примеров; 5) кроме того, в среду включен компьютерный задачник с возможностью автоматической проверки решений. В книге приняты следующие обозначения: – символ используется для выделения определений или инструкций; – так помечаются подсказки и важные замечания; – при встрече с таким символом следует показать преподавателю (кон- 7 сультанту) результаты выполнения заданий. Если вы работаете само- стоятельно, то пропустите помеченный этим символом текст; 0 – данным символом помечены простые разделы и задания. Если для вас они не составляют трудностей, то их можно пропускать. Если какие- либо сомнения есть, лучше выполнить; * – звездочкой помечены некоторые лабораторные работы, разделы и зада- ния, изучение или выполнения которых представляет определенную трудность для начинающих; ** – двумя звездочками помечены разделы и задания, являющиеся дополни- тельными для начинающих и обязательными для тех, кто планирует использовать данный программный продукт в профессиональной дея- тельности. 8 ЧТО ТАКОЕ «ПРОГРАММИРОВАНИЕ» 1. Что такое «программа» и как ее исполняет компьютер Компьютер представляет собой устройство для исполнения программ. «Моз- гом» компьютера является процессор, который призван «понимать» и исполнять эти программы. Программа– это последовательность предписаний (команд), записанных на языке, понятном исполнителю. В нашем случае исполнителем является процессор. А что за язык, который этот процессор понимает? Как известно, компьютер хранит информацию, зако- дированную с помощью двоичных чисел. Программа для компьютера – это обычная информация, поэтому и она хранится в виде набора двоичных чи- сел. Но согласно определению это не простой набор чисел, а именно набор ко- манд, понятных процессору. Сочетание команд, которые понимает процессор, и правил их написания принято называть машинным языком, или языком про- граммирования низкого уровня. Например, предположим, что некий процессор понимает следующие операции: 00000001 – сложить; 00000111 – разделить; 00000100 – переслать из одной ячейки в другую. Правило написания команды для современного процессора выглядит сле- дующим образом: <код операции> <адрес первого операнда> <адрес второго операнда>. Здесь под операндом понимается некоторое значение, с которым произво- дится операция; адрес операнда – это адрес блока памяти, в котором находится операнд. В таком случае, например, фрагмент программы, определяющей среднее арифметическое четырех чисел, будет выглядеть следующим образом (см. таб- лицу): 9 Пример компьютерной программы в двоичных кодах Код операции Адрес 1 Адрес 2 Комментарии 00000001 00011000 00011001 Сложить числа, хранящиеся в блоках памяти по адресам 00011000 и 00011001, и поместить результат в блок памяти с адресом 00011001 00000001 00011001 00011011 Сложить полученную сумму из блока памяти 00011001 и третье число, размещенное в бло- ке памяти 00011011, и поместить результат в блок памяти с адресом 00011011 00000001 00011011 00011110 Сложить полученную сумму из блока памяти 00011011 и четвертое число, размещенное в блоке памяти 00011110, и поместить ре- зультат в блок памяти с адресом 00011110 00000111 00011110 00111110 Разделить полученную сумму на число, хра- нящееся по адресу 00111110, и поместить по этому же адресу результат 00000100 00111110 10111000 Переслать содержимое блока памяти с адре- сом 00111110 в блок памяти с адресом 10111000 Разумеется, у реальной программы есть специальный заголовок, по которо- му процессор определяет, что это именно программа, и на практике программы существенно сложнее простейшего примера, приведенного здесь. Справедливости ради стоит отметить, что в некоторых редких случаях с по- мощью машинных кодов пишутся программы для специальных устройств (сти- ральные машины, управляемые ракеты и т. п.), в которые встроены относительно слабые процессоры и ограниченная оперативная память, но от которых требует- ся практически мгновенное исполнение команд. Программы, написанные с по- мощью машинных кодов, занимают существенно меньшую память, чем создан- ные с помощью других средств, и, как следствие, быстрее исполняются. 10 2. Языки высокого уровня. Компиляторы и интерпретаторы Технология написания программ на машинных языках весьма трудоемка и для создания больших программ фактически непригодна. Именно поэтому ста- ли придумывать языки высокого уровня, т. е. языки, с помощью которых можно было бы легко и удобно разрабатывать большие программы. Кроме того, подоб- ные языки должны быть доступны большому кругу людей. Это значит, что в ко- нечном итоге язык программирования должен максимально приблизиться к есте- ственному языку человека. Пока идеал не достигнут, но языки программирова- ния уже стали близки к естественным языкам. Но как в этом случае процессор понимает программы, написанные на этих языках? Да никак. Дело в том, что языки высокого уровня созданы для того, чтобы люди могли естественным обра- зом сформулировать перечень действий, выполняемых компьютером. Так как компьютеры языков высокого уровня не понимают, придумали специальные программы, называемые трансляторами. Транслятор (translator) – это программа, предназначенная для перевода (трансляции) описания алгоритма с одного формального языка на другой. Алгоритм создания программы теперь предусматривает использование шага трансляции (рис. I). Текст программы на языке программиро- вания высокого уровня Текст программы в машинном коде Program ex1; uses Graph,Graph0; var x:integer; color: integer; begin Транслятор 1000101001010101011 0101010101010111010 1000101011110101010 1011101010101010101 010101010 Рис. I. Алгоритм трансляции программы Этап превращения программы, написанной на языке высокого уровня, в ма- шинный код реализуется в двух вариантах. В первом случае транслятор берет из файла программу на языке высокого уровня и переводит ее всю целиком в про- грамму на машинном языке, создавая отдельный файл с расширением EXE. Про- 11 грамму, записанную в такой файл, принято называть исполняемым модулем, а транслятор, который выполняет такой перевод, называют компилятором. Во втором случае транслятор берет из файла с программой на языке высоко- го уровня по одному предписанию (команде), транслирует ее в машинный код и передает полученную команду процессору для исполнения. Такой транслятор называют интерпретатором. Существуют несколько сотен языков программирования высокого уровня. Каждый из них предназначен для решения определенного круга задач, например: BASIC и FORTRAN – для вычислений, PROLOG – для создания систем искусст- венного интеллекта, Pascal – для обучения программированию, COBOL – для обработки больших объемов данных, С++ – для профессионального про- граммирования больших приложений и т. п. Язык программирования– это специально обусловленный набор символов, слов и мнемонических (особым образом организованных и заранее огово- ренных) сокращений, используемых для записи набора команд (програм- мы), воспринимаемых компьютером. Синтаксис языка программирования– это перечень правил записи про- грамм из элементов этого языка. Программирование – это технология разработки программ с помощью языков программирования. Одним из современных широко распространенных языков программирова- ния является Паскаль. Он был создан на рубеже 1960–70-х годов швейцарским ученым Никлаусом Виртом и первоначально предназначался для обучения про- граммированию. В настоящее время данный язык используется и для професси- ональной разработки малых и средних компьютерных систем. |