Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Основы алгоритмизации и программирования (среда PascalABC.Net)

Покупка
Основная коллекция
Артикул: 636941.04.01
К покупке доступен более свежий выпуск Перейти
Учебное пособие направлено на изучение общепрофессиональной дисциплины «Основы алгоритмизации и программирования» и может служить для самостоятельного обучения основам программирования и начального изучения языка Pascal. В данном пособии дисциплина изучается с помощью языка Pascal на базе приложения PascalABC.NET. Пособие рассматривает основные положения языка Pascal, разнообразные приемы программирования, начиная с простейших программ. Книга составлена с позиции изложения учебного материала таким образом, чтобы обучающиеся могли поэтапно видеть возможности языка Pascal, его практического применения, а также рассмотрения тонких мест составления конструкций программ. Книга содержит 104 примера, программы составления к ним подробно рассмотрены в тексте. Каждый пример сопровождается поясняющим рисунком результата работы программы. Каждая глава содержит блок самостоятельной работы и проверочных контрольных работ. Учебное пособие написано в соответствии с требованиями Федерального государственного образовательного стандарта среднего профессионального образования последнего поколения по специальности 09.02.04 «Информационные системы (по отраслям)». Также может быть использовано при изучении общепрофессиональной дисциплины «Основы программирования» по специальности 09.02.03 «Программирование в компьютерных системах».
Фризен, И. Г. Основы алгоритмизации и программирования (среда PascalABC.NET) : учебное пособие / И.Г. Фризен. — Москва : ФОРУМ : ИНФРА-М, 2020. — 392 с. — (Среднее профессиональное образование). - ISBN 978-5-00091-005-4. - Текст : электронный. - URL: https://znanium.com/catalog/product/1047096 (дата обращения: 26.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
ОСНОВЫ 
АЛГОРИТМИЗАЦИИ 
И ПРОГРАММИРОВАНИЯ

(СРЕДА PascalABC.NET)

И.Г. ФРИЗЕН 

УЧЕБНОЕ ПОСОБИЕ

Москва                                        2020

ИНФРА-М

Рекомендовано в качестве учебного пособия для учебных заведений,
реализующих программу среднего профессионального образования
по специальностям 09.02.04 «Информационные системы (по отраслям)»
09.02.03 «Программирование в компьютерных системах»


УДК 004.42(075.32)
ББК 32.973-018.1я723
 
Ф88

Фризен И.Г.
Ф88  
Основы алгоритмизации и программирования (среда PascalABC.
NET) : учебное пособие / И.Г. Фризен. — Москва : ФОРУМ : ИНФРА-М, 
2020. — 392 с. — (Среднее профессиональное образование).

ISBN 978-5-00091-005-4 (ФОРУМ)
ISBN 978-5-16-012232-8 (ИНФРА-М, print)
ISBN 978-5-16-105049-1 (ИНФРА-М, online)
Учебное пособие направлено на изучение общепрофессиональной  
дисциплины «Основы алгоритмизации и программирования» и может 
служить для самостоятельного обучения основам программирования 
и начального изучения языка Pascal. В данном пособии дисциплина изучается с помощью языка Pascal на базе приложения PascalABC.NET. Пособие рассматривает основные положения языка Pascal, разнообразные 
приемы программирования, начиная с простейших программ. Книга составлена с позиции изложения учебного материала таким образом, чтобы 
обучающиеся могли поэтапно видеть возможности языка Pascal, его практического применения, а также рассмотрения тонких мест составления 
конструкций программ.
Книга содержит 104 примера, программы составления к ним подробно 
рассмотрены в тексте. Каждый пример сопровождается поясняющим рисунком результата работы программы.  Каждая глава содержит блок самостоятельной работы и проверочных контрольных работ.
Учебное пособие написано в соответствии с требованиями Федерального государственного образовательного стандарта среднего профессионального образования последнего поколения по специальности 09.02.04 
«Информационные системы (по отраслям)». Также может быть использовано при изучении общепрофессиональной дисциплины «Основы программирования» по специальности 09.02.03 «Программирование в компьютерных системах».

УДК 004.42(075.32)
ББК 32.973-018.1я723

А в т о р:
Ирина Григорьевна Фризен, кандидат педагогических наук, преподаватель Московского автомобильно-дорожного колледжа имени 
А.А. Николаева, руководитель структурного подразделения ДПО

ISBN 978-5-00091-005-4 (ФОРУМ)
ISBN 978-5-16-012232-8 (ИНФРА-М, print)
ISBN 978-5-16-105049-1 (ИНФРА-М, online)
© Фризен И.Г., 2016
© ФОРУМ, 2016

ВВЕДЕНИЕ

Несмотря на интенсивное развитие ЭВМ, разработка дружественных интерфейсов и развитых инструментальных программных 
средств, облегчающих общение с ними, до сих пор остается непростым делом при решении прикладных задач в любых областях человеческой деятельности. По-прежнему решение ряда задач требует 
изучения не только основных математических понятий, но и некоторых специальных разделов математики, основ программирования, а также хотя бы двух, а то и трех языков программирования 
для правильного составления программ.
К настоящему времени разработано несколько сотен, а с учетом 
модификаций — более тысячи языков программирования, каждый 
из которых является предпочтительным для решения конкретного 
класса задач. Специалисты в области информационных технологий 
при разработке и эксплуатации алгоритмов и программ решения 
задач в автоматизированных комплексах, при решении учебных 
и практических задач должны уметь ориентироваться в существующих и перспективных средствах написания программ и обоснованно производить выбор наиболее предпочтительного языка 
программирования для своих целей.
До середины, а может и конца 1980-х гг., понятие «программирование» было аналогом понятия «компьютерная грамотность». 
В настоящее время программирование все больше становится занятием для профессионалов, а под компьютерной грамотностью 
понимают в первую очередь навык использования многообразных 
средств информационных технологий. 
Решая ту или иную информационную задачу, конкурентоспособному специалисту  в области информационных технологий необходимо выбрать адекватное программное средство (электронные 
таблицы, СУБД, математические пакеты и т.п.), и только в том 
случае, когда подобные средства не дают возможности решить задачу, следует прибегать к универсальным языкам программирования.
Современное программирование — быстро развивающаяся наука. 
Принято различать программистов двух категорий: прикладных 
и системных. Системные программисты — это разработчики базовых программных средств ЭВМ (ОС, трансляторов, сервисных 
программ и т.п.), они являются профессионалами высочайшего 
уровня. Прикладные программисты решают более узкую задачу, 
но профессионализм их также должен быть достаточно высок. 

Согласно ФГОС специальности 09.02.04 «Информационные 
системы (по отраслям)» в результате изучения обязательной части 
профессионального цикла обучающийся по общепрофессиональной дисциплине «Основы алгоритмизации и программирования» должен:
знать:
 
• общие принципы построения алгоритмов, основные алгоритмические конструкции;
 
• понятие системы программирования;
 
• основные элементы процедурного языка программирования, 
структуру программы, операторы и операции, управляющие 
структуры, структуры данных, файлы, кассы памяти;
 
• подпрограммы, составление библиотек программ;
 
• объектно-ориентированную модель программирования, понятие классов и объектов, их свойств и методов;
уметь:
 
• использовать языки программирования, строить логически правильные и эффективные программы.
Задачи, которые следует ставить при первоначальном изучении 
программирования, — освоение основ методологии программирования. Для указанной цели наиболее подходящим является язык 
Pasсal.
Программирование — наука, неразрывно связанная с практикой. Невозможно научиться программировать, не составив и не 
отладив ни одной программы в той или иной оболочке программирования. Именно навык работы в языковой среде дает возможность 
будущему специалисту получить необходимый навык работы в языковой среде, проходя все этапы создания программы — от идеи 
и алгоритма решения поставленной задачи до полного успешного 
ее завершения (создания программы или приложения). 
Для изучения  языка Pascal предлагается  использовать компилятор PascalABC.NET. 
Учебное пособие содержит 104 примера, программы составления 
к ним подробно рассмотрены в тексте. Каждый пример сопровождается поясняющим рисунком результата работы программы.
Каждая тема содержит блок самостоятельной работы и проверочных контрольных работ.
Данное учебно-методическое пособие также может быть использовано при изучении общепрофессиональной дисциплины 
«Основы программирования» для специальности 09.02.03 «Программирование в компьютерных системах». 

Тема 1
ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ

1.1. СТАНОВЛЕНИЕ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

Становление (возникновение) языков программирования можно 
начать с революционных идей Ч. Бэббиджа, приведших к созданию 
автоматических цифровых вычислительных машин, и высказанных 
им еще в 20-х гг. XIX в. следующих принципов для вычислительной 
техники (впоследствии ставших фундаментальными).
1. Автоматическое выполнение операций, т.е. без остановок, 
требующих участия человека.
2. Программа должна вводиться в исполнительное устройство со 
скоростью, соизмеримой со скоростью выполнения операций. 
3. Для записи программы можно использовать перфокарты.
Технически это не имеет ничего общего с современными приемами хранения программ в ЭВМ, но принцип здесь, по существу, 
один. Им же было предложено создание специального устройства 
хранения данных (памяти). С этого момента начинается история 
программирования.
Первым в мире программистом по праву называют Аду Лавлейс. 
Она была современницей Бэббиджа и сумела по достоинству оценить его цифровую, а главное, разрабатываемую аналитическую 
машину. 
Лавлейс разработала некоторые чертежи для машины Бэббиджа 
и исследовала вопросы, связанные с применением в ней двоичной 
системы счисления; при этом она высказала ряд идей, получивших 
широкое применение только в настоящее время. Эти идеи были 
напечатаны в «Примечаниях» (комментарии к статье Менабреа, 
в которой рассматривались революционные идеи создания аналитической машины Бэббиджа). Именно эти примечания и являются 
самой важной работой 27-летней Ады Лавлейс.
То, что и Бэббидж, и Ада прекрасно понимали, что именно они 
создали, доказывает довольно подробный разбор теоретических 
возможностей машины. Это дало основание отцу современной 
информатики А. Тьюрингу ввести в своей знаменитой брошюре 
«А может ли машина мыслить?» (1956) целый раздел под названием 
«Возражения леди Лавлейс».
На этом заканчивается история программирования XIX в. и наступает век ХХ. А начинается он с момента создания системы 

кодирования машинных команд с помощью специальных символов, предложенной сотрудником Пенсильванского университета Джоном Моучли. Далее к его работе присоединилась Грейс 
Мюррей Хоппер.
На заре компьютерной эры машинный код был единственным 
средством общения человека с компьютером. Поэтому огромным 
достижением создателей языков программирования было то, что 
они сумели заставить сам компьютер работать переводчиком с этих 
языков на машинный код. 
Процессор компьютера непосредственно понимает язык машинных команд. Писать программу на языке машинных команд — 
дело непростое, так как необходимо знать числовые (в первых машинах двоичные, а затем шестнадцатеричные) коды всех команд 
и самому распределять память под команды и данные.
Моучли и Хоппер были именно такими программистами и использовали первые средства автоматизации программирования — 
языки Автокоды, которые впоследствии стали называться Ассемблерами.
Языки типа Ассемблер являются машинно-ориентированными, 
т.е. они настроены на структуру машинных команд конкретного 
компьютера. Разные компьютеры с разными типами процессоров 
имеют разный Ассемблер. Но и это был прогресс. В Ассемблере 
переменные величины стали изображаться символическими именами, а числовые коды операций заменились на мнемонические 
(словесные) обозначения. Язык программирования стал понятнее 
для человека. 
В конце 1940-х гг., до прихода Грейс Мюррей Хоппер в фирму 
Джона Моучли, последний создал систему под названием Short 
Code, которая являлась примитивным языком программирования 
высокого уровня. В ней программист записывал решае мую задачу 
в виде математических формул, а затем, используя специальную 
табли цу, переводил символ за символом, преобразовывал эти формулы в двухлитерные коды. В дальнейшем специальная программа 
компьютера превращала эти коды в двоичный машинный код. 
Система, разработанная Джоном Моучли, была по существу одним 
из первых примитивных интерпретаторов.
Первыми «инструментами», которые экономили труд программистов, стали подпрограммы. В августе 1944 г. для релейной машины «Марк I» под руководством Грейс Хоппер была написана 
первая подпрограмма для вычисления sin(x).
В 50-е гг. прошлого века группа под руководством Г. Хоппер 
приступила к разработке нового языка и компилятора В-0. Новый 

язык позволил бы программировать на языке, близком к обычному 
английскому. 
При создании нового языка программирования Грейс Хоппер 
использовала революционный по тем временам подход. Для начала 
было отобрано около 30 английских легко запоминающихся слов 
типа: add (сложить), compare (сравнить), transfer (переслать). Слова 
были отобраны непростые — каждое из них содержит неповторимую комбинацию из первой и третьей букв, поэтому компилятор 
при генерации машинного кода мог игнорировать все остальные 
буквы в слове. В дальнейшем этот принцип стал использоваться 
при создании прочих языков программирования.
Итак, мы перешли к истории создания языков программирования, которые были независимо машинно-ориентированными 
(в дальнейшем их стали называть языками программирования высокого уровня).
В 1951 г. Грейс Хоппер создала первый в мире компилятор, и ею 
же был введен сам этот термин. Компилятор Хоппер осуществлял 
функцию объединения команд и в ходе трансляции производил 
организацию подпрограмм, выделение памяти ком пьютера, преобразование команд высокого уровня (в то время псевдокодов) 
в машинные команды. 
В 1954 г. группа под руководством Грейс Хоппер разработала 
систему, включающую язык программирования и компилятор, которая в дальнейшем получила название MATH-MATIC. 
Середина 1950-х гг. характеризуется стремительным прогрессом 
в области про граммирования. Роль программирования в машинных командах стала уменьшать ся. Начали появляться языки 
программирования нового типа, выступающие в роли посредника 
между машинами и программистами. Первым и одним из наиболее распространенных был Фортран (FORTRAN, от FORmula 
TRANslator — перево дчик формул), разработанный группой программистов фирмы IBM в 1954 г. (первая версия). Как видно из названия, первоначально язык создавался с целью использования при 
математических расчетах. 
В 1956 г. было завершено создание «необычного» языка и компилятора. Он получил название В-0, а с 1958 г. система В-0 поступила на рынок под коммерческим названием FLOW-MATIC. 
В отличие от языка Фортран, ориентированного на разработку научных приложений, FLOW-MATIC был первым языком для задач 
обработки коммерческих данных.
В 1959 г. началась работа по созданию еще более совершенного, 
аппаратно-независимого языка для коммерческих приложений, 

которая успешно завершилась в 1961 г. созданием языка COBOL 
(Common Business Oriented Language — универсальный язык, ориентированный на задачи бизнеса). Одним из основных консультантов 
при создании языка была конечно же Грейс Мюррей Хоппер, получившая с тех пор забавное прозвище «бабушка Кобола». Кстати, 
COBOL до сих пор используется во многих финансовых приложениях.
Однако языков программирования было все еще мало. 
В конце 1950-х гг. плодом международного сотрудничества в области програм мирования явился Алгол (ALGOL, от ALGOrithmic 
Language — алгоритмический язык). Алгол предназначен для записи алгоритмов, которые строятся в виде после довательности 
процедур, применяемых для решения поставленных задач. Первая 
версия языка была представлена в Цюрихе в 1958 г. и называлась Алгол 58. Позднее, в 1960 г., в Париже был принят стандарт 
Алгол 60, который и стал основным на долгие годы; и хотя несколько раз вносились новые поправки и дополнения, это название 
оставалось неизменным до 1968 г. 
В нашей стране в те годы был создан под руководством Сергея 
Петровича Ер шова транслятор «Альфа», который представлял довольно удачную русифицирован ную версию Алгола. Впоследствии 
академик Ершов сыграл важнейшую роль в становлении в СССР 
школьной информатики.
В середине 1960-х гг. сотрудники математического факультета Дартмутского колледжа Томас Курц и Джон Кемени создали 
специализированный язык програм мирования, который состоял 
из простых слов английского языка. Новый язык назвали универсальным символическим кодом для начинающих (Beginners AllPurpose Symbolic Instruction Code, или сокращенно BASIC). Годом 
рождения нового языка можно считать 1964 г. Сегодня универсальный язык Бейсик (имеющий множество версий) приобрел 
большую популярность и получил широкое распро странение 
среди пользователей ЭВМ различных категорий во всем мире. 
В значи тельной мере этому способствовало то, что Бейсик начали использовать как встро енный язык персональных компьютеров, широкое распространение которых началось в конце 
1970-х гг.
Но это было только начало. Долгое время BASIC не имел компилятора или интерпретатора, которые бы позволяли создавать 
полноценные исполняемые exe-файлы. И лишь в конце 1975 г. был 
создан первый его интерпретатор. Он был создан двумя программистами-любителями — Диком Уипплом и Джоном Арнольдом. 

В том же 1975 г. фирма Micro Instrumentation and Telemetry Systems 
выпустила свою версию языка BASIC. Ее создатели — никому 
не известные программист фирмы Honeywell и студент младших 
курсов Гарвардского университета Пол Аллен, а также его друг 
Билл Гейтс.
Microsoft до сих пор продвигает своего первенца — теперь это 
уже хорошо разросшийся Visual Basic — целый пакет визуального 
программирования, который вряд ли кто-нибудь обвинит в «объектной неориентированности», и его аналог для программирования 
в Интернете — VBScript. Несмотря на практически полностью измененный интерфейс, этот язык и сейчас остается простым в изучении и отлично подходит для написания небольших, нетребовательных к ресурсам программ1.
В начале 1960-х гг. все существующие языки программирования 
высокого уровня можно было пересчитать по пальцам, однако впоследствии их число достиг ло трех тысяч. Тогда были предприняты 
попытки преодолеть эту «разноголосицу» путем создания универсального языка программирования. Пер вым детищем этого направления стал PL/I (Programming Language One) (1967). Он совмещал 
особенности трех лидеров данного сектора рынка — Фортрана, 
Кобола и Алгола. Однако разработчики далеко не всегда брали 
от его «родителей» все самое лучшее, в результате язык получился 
перегруженным возможностями и концепциями. Затем на эту роль 
претендовал Алгол 68 (1968). Предполагалось, что подобные языки 
будут развиваться и усовершенствоваться и вытеснят все остальные. 
Однако ни одна из этих попыток на сегодняшний день не увенчалась успехом. Всеохватность языка приводила к неоправданной, 
с точки зрения программиста, сложности конструк ций, неэффективности компиляторов. 
Развитие идеи Алгола о структуризации разработки алгоритмов 
нашло наи высшее отражение при создании в начале 1970-х гг. 
языка Паскаль швейцарским ученым Никлаусом Виртом. Язык 
Паскаль первоначально разрабатывался как учебный, и действительно, сейчас он является одним из основных языков обуче ния 
программированию в школах и вузах. Однако качества его в совокупности оказались столь высокими, что им охотно пользуются 
и профессиональные про граммисты. 
Однако Вирт не остановился на достигнутом, и немного позднее 
появились Ада и Оберон, которые позволяли использовать типы 

1 
По материалам статьи Антона Карабешкина «История развития  языков 
программирования».

и объекты, что уже давало кардинально новые возможности для 
разработчиков.
Язык Ада был создан фактически по заказу Министерства обороны США и, соответственно, при его активной поддержке. Период с конца 1960-х до начала 1980-х гг. характеризуется бурным 
ростом числа различных языков программирования, сопровождавшим, как это ни парадок сально, кризис программного обеспечения. Этот кризис особо остро переживало военное ведомство 
США. В январе 1975 г. Пентагон решил навести порядок в хаосе 
трансляторов и учредил комитет, которому было предписано разработать один универсальный язык. На конкурсной основе комитет 
проработал сотни проектов и, когда стало ясно, что ни один из существующих языков не может их удовлетворить, принял два проекта для окончательного рассмотрения. В мае 1979 г. был объявлен 
победитель — группа ученых во главе с Жаном Ихбиа. Победивший 
язык окрестили АDА, в честь Огасты Ады Лавлейс, дочери английского поэта Джорджа Байрона. Окончательная версия спецификаций языка Ада появилась в феврале 1983 г., она и стала основной. 
Язык Ада — прямой наследник языка Паскаль. Это современный 
алгоритмический язык с традиционной структурой управления, 
возможностями определения типов и подпрограмм. Удовлетворяет 
язык и требованиям модульности. 
Последующее развитие языка Паскаль привело к появлению 
таких библиотек, как Turbo Vision, а также языка Object Pascal, который впоследствии стал основой для создания Delphi.
Большой отпечаток на современное программирование наложил 
язык Си (первая версия — 1972 г.), являющийся очень популярным 
в среде разработчиков систем программного обеспечения (включая 
операционные системы). Изначально он создавался как инструментальное средство для реализации операционной системы UNIX 
на ЭВМ фирмы DEC, но популярность его быстро переросла рамки 
конкретной машины, операционной системы и задач системного 
программирования. И сейчас язык Си можно по праву назвать 
одним из универсальных языков программирования. Он сочетает 
в себе черты как языка высокого уровня, так и машинно-ориентированного языка, допуская программиста ко всем машинным ресурсам, чего не обеспечивают такие языки, как Бейсик и Pascal.
Языки программирования служат разным целям, и их выбор 
определяется удобством пользователя, пригодностью для данного 
компьютера и данной задачи. А задачи для компьютера бывают 
самые разнообразные: вычислительные, эконо мические, графические, экспертные и т.д. Такая разнотипность решаемых компью
К покупке доступен более свежий выпуск Перейти