Часть I. Необходимые сведения о компьютере и программе
Оглавление
Предисловие............................................................................................................................................. 5
0.1. Кому нужна эта книга?.................................................................................................................................................................. 5
0.2. Почему Паскаль?............................................................................................................................................................................. 5
0.3. Какой из Паскалей?........................................................................................................................................................................ 6
0.4. Краткое содержание с рекомендациями................................................................................................................................... 6
Часть I. Необходимые сведения о компьютере и программе..................... 8
Глава 1. Первое представление о компьютере и программе............................................................. 9
1.1. Что умеет делать компьютер........................................................................................................................................................ 9
1.2. Что такое компьютер. Первое представление о программе............................................................................................... 9
1.3. Как человек общается с компьютером.................................................................................................................................... 11
Глава 2. Программа и программирование......................................................................................... 12
2.1. Список команд. Командный и программный режимы........................................................................................................ 12
2.2. Что важно знать о программе.................................................................................................................................................... 13
2.3. Понятие о процедуре. Может ли робот поумнеть?............................................................................................................. 13
2.4. Программа для компьютера на машинном языке................................................................................................................ 14
2.5. Языки программирования........................................................................................................................................................... 15
2.6. Пример настоящей программы для компьютера на языке Лого...................................................................................... 16
2.7. Последовательность работы программиста на компьютере........................................................................................... 17
2.8. Основные приемы программирования.................................................................................................................................... 18
Глава 3. Устройство и работа компьютера........................................................................................ 21
3.1. Как устроен и работает компьютер......................................................................................................................................... 21
3.2. Устройство и размеры оперативной памяти......................................................................................................................... 23
3.3. Взаимодействие программ в памяти........................................................................................................................................ 23
3.4. Внешние устройства компьютера............................................................................................................................................ 24
3.5. Кодирование информации в компьютере............................................................................................................................... 27
Часть II. Программирование на Паскале – первый уровень..................... 29
Глава 4. Простые (линейные) программы. Операторы ввода-вывода. Переменные величины 30
4.1. Процедура вывода Write............................................................................................................................................................. 30
4.2. Первая программа на Паскале.................................................................................................................................................. 31
4.3. Выполняем первую программу на компьютере................................................................................................................... 32
4.4. Процедура вывода WriteLn. Курсор........................................................................................................................................ 33
4.5. Переменные величины. Оператор присваивания................................................................................................................. 34
4.6. Описания переменных (VAR)..................................................................................................................................................... 35
4.7. Что делает оператор присваивания с памятью.................................................................................................................... 36
4.8. Имена переменных........................................................................................................................................................................ 37
4.9. Математика. Запись арифметических выражений.............................................................................................................. 38
4.10. Вещественные числа в Паскале.............................................................................................................................................. 39
4.11. Порядок составления простой программы.......................................................................................................................... 40
4.12. Операторы ввода данных ReadLn и Read......................................................................................................................... 42
4.13. Интерфейс пользователя........................................................................................................................................................... 43
4.14. Строковые переменные............................................................................................................................................................. 44
4.15. Диалог с компьютером.............................................................................................................................................................. 45
4.16. Константы..................................................................................................................................................................................... 45
Глава 5. Разветвляющиеся программы.............................................................................................. 46
5.1. Условный оператор IF или как компьютер делает выбор............................................................................................... 46
5.2. Правила записи оператора IF................................................................................................................................................... 48
5.3. Составной оператор..................................................................................................................................................................... 49
5.4. Ступенчатая запись программы............................................................................................................................................... 50
5.5. Вложенные операторы if. Сложное условие в операторе if. Логические операции.................................................. 50
5.6. Символьный тип данных Char.................................................................................................................................................. 53
5.7. Оператор варианта case.............................................................................................................................................................. 53
Глава 6. Циклические программы...................................................................................................... 56
6.1. Оператор перехода GOTO. Цикл. Метки................................................................................................................................ 56
6.2. Выход из цикла с помощью if.................................................................................................................................................... 58
6.3. Оператор цикла repeat................................................................................................................................................................. 59
6.4. Оператор цикла while................................................................................................................................................................... 60
6.5. Отличия операторов repeat и while........................................................................................................................................... 61
6.6. Оператор цикла for....................................................................................................................................................................... 61
Глава 7. Типичные маленькие программы....................................................................................... 64
7.1. Вычислительная циклическая программа............................................................................................................................. 64
7.2. Роль ошибок.................................................................................................................................................................................... 65
7.3. Счетчики.......................................................................................................................................................................................... 65
7.4. Сумматоры...................................................................................................................................................................................... 67
7.5. Вложение циклов в разветвления и наоборот....................................................................................................................... 68
7.6. Вложенные циклы......................................................................................................................................................................... 68
7.7. Поиск максимального из чисел................................................................................................................................................. 69
Глава 8. Процедуры.............................................................................................................................. 71
8.1. Компьютер звучит......................................................................................................................................................................... 71
8.2. Простейшие процедуры.............................................................................................................................................................. 72
8.3. Процедуры и операторы............................................................................................................................................................. 75
8.4. Стандартные процедуры Halt и Exit....................................................................................................................................... 75
Глава 9. Графика................................................................................................................................... 77
9.1. Стандартные модули................................................................................................................................................................... 77
9.2. Стандартный модуль Graph, текстовый и графический режимы.................................................................................... 77
9.3. Рисуем простейшие фигуры....................................................................................................................................................... 78
9.4. Работа с цветом. Заливка. Стиль линий и заливки.............................................................................................................. 81
9.5. Используем в рисовании переменные величины.................................................................................................................. 83
9.6. Использование случайных величин при рисовании........................................................................................................... 84
9.7. Движение картинок по экрану................................................................................................................................................... 85
Глава 10. Создаем первую большую программу.............................................................................. 87
10.1. Постановка задачи..................................................................................................................................................................... 87
10.2. Программирование по методу “сверху-вниз”..................................................................................................................... 87
10.3. Сначала – работа над структурой программы................................................................................................................. 89
10.4. Зачем переменные вместо чисел............................................................................................................................................ 91
10.5. Записываем программу целиком............................................................................................................................................ 92
10.6. Порядок описания переменных, процедур и других конструкций Паскаля.............................................................. 95
10.7. Управление компьютером с клавиатуры. Функции ReadKey и KeyPressed............................................................... 96
10.8. Буфер клавиатуры...................................................................................................................................................................... 97
10.9. Гетерархия. Задание на игру “Торпедная атака”.......................................................................................................... 100
Часть III. Программирование на Паскале – второй уровень................. 103
Глава 11. Алфавит и ключевые слова Паскаля.............................................................................. 104
11.1. Алфавит....................................................................................................................................................................................... 104
11.2. Ключевые слова........................................................................................................................................................................ 104
11.3. Использование пробела.......................................................................................................................................................... 105
Глава 12. Работа с разными типами данных Паскаля.................................................................. 106
12.1. Список типов.............................................................................................................................................................................. 106
12.2. Числовые типы.......................................................................................................................................................................... 107
12.3. Массивы...................................................................................................................................................................................... 108
12.4. Определения констант............................................................................................................................................................ 111
12.5. Типизированные константы.................................................................................................................................................. 112
12.6. Придумываем типы данных.................................................................................................................................................. 112
12.7. Логический тип Boolean......................................................................................................................................................... 113
12.8. Перечислимые типы................................................................................................................................................................. 113
12.9. Ограниченный тип (диапазон).............................................................................................................................................. 114
12.10. Действия над порядковыми типами.................................................................................................................................. 115
12.11. Символьный тип Char. Работа с символами................................................................................................................... 116
12.12. Строковый тип String. Работа со строками..................................................................................................................... 117
12.13. Записи........................................................................................................................................................................................ 118
12.14. Множества............................................................................................................................................................................... 120
12.15. Расположение информации в оперативной памяти. Адреса..................................................................................... 122
12.16. Ссылки....................................................................................................................................................................................... 123
Глава 13. Процедуры и функции с параметрами........................................................................... 125
13.1. Процедуры с параметрами.................................................................................................................................................... 125
13.2. Функции....................................................................................................................................................................................... 127
13.3. Подпрограммы. Локальные и глобальные переменные................................................................................................ 128
13.4. Массивы как параметры........................................................................................................................................................ 129
13.5. Параметры-значения и параметры-переменные............................................................................................................. 130
13.6. Индукция. Рекурсия. Стек....................................................................................................................................................... 131
13.7. Сортировка................................................................................................................................................................................. 133
Глава 14. Строгости Паскаля............................................................................................................ 135
14.1. Структура программы............................................................................................................................................................ 135
14.2. Структура процедур и функций........................................................................................................................................... 136
14.3. Выражения................................................................................................................................................................................. 137
14.4. Совместимость типов.............................................................................................................................................................. 137
14.5. Форматы вывода данных....................................................................................................................................................... 138
14.6. Переполнение ячеек памяти.................................................................................................................................................. 139
14.7. Дерево типов.............................................................................................................................................................................. 139
14.8. Синтаксисические диаграммы Паскаля............................................................................................................................. 140
Глава 15. Другие возможности Паскаля.......................................................................................... 147
15.1. Работа с файлами данных..................................................................................................................................................... 147
15.2. Вставка в программу фрагментов из других программных файлов.......................................................................... 149
15.3. Модули программиста............................................................................................................................................................ 150
15.4. Дополнительные процедуры и функции модуля Graph................................................................................................. 152
15.5. Копирование и движение областей экрана...................................................................................................................... 152
15.6. Вывод текста в графическом режиме.................................................................................................................................. 154
15.7. Управление цветом в текстовом режиме (модуль CRT)................................................................................................ 154
15.8. Работа с датами и временем (модуль DOS)....................................................................................................................... 155
15.9. Нерассмотренные возможности Паскаля.......................................................................................................................... 156
15.10. Миг между прошлым и будущим....................................................................................................................................... 157
Часть IV. Работа в Паскале на компьютере............................................. 159
Что нужно знать и уметь к моменту выполнения первой программы?............................................................................... 159
Порядок работы в Паскале.............................................................................................................................................................. 159
(1) Запуск Паскаля............................................................................................................................................................................. 159
(2) Начало работы. Ввод программы. Выход из Паскаля...................................................................................................... 161
(3) Сохранение программы на диске. Загрузка программы с диска.................................................................................... 162
(4) Выполнение программы............................................................................................................................................................. 163
(5) Исправление ошибок. Отладка программы.......................................................................................................................... 164
Работа с несколькими окнами......................................................................................................................................................... 168
Копирование и перемещение фрагментов текста...................................................................................................................... 169
Обзор популярных команд меню................................................................................................................................................... 169
Создание исполнимых файлов (exe)............................................................................................................................................. 170
Приложения. Справочный материал.......................................................... 171
П1. Как вводить программу в компьютер или работа с текстом в текстовом редакторе.............................................. 171
П2. Файловая система магнитного диска.................................................................................................................................... 174
П3. Список некоторых операций, процедур и функций Паскаля......................................................................................... 176
П4. Произношение английских слов............................................................................................................................................. 177
П5. Решения заданий......................................................................................................................................................................... 180
П6. Список литературы.................................................................................................................................................................... 207
П7. Предметный указатель.............................................................................................................................................................. 208
От автора
Хочу выразить искреннюю признательность Алексею Михайловичу Епанешникову, внимательно прочитавшему рукопись и сделашему по ее содержанию больше сотни замечаний и нашедшему множество ошибок, одну из которых мне не хочется вспоминать.
Также хочу поблагодарить Алексея Яковлевича Архангельского, просмотревшего рукопись и сделавшего существенные предложения по направленности ее содержания.
Предисловие
Сначала о терминологии. Везде в дальнейшем я буду:
· для краткости вместо термина «Турбо-Паскаль» употреблять термин «Паскаль».
· также везде, где это не вызовет путаницы, словом Паскаль я буду называть не только сам язык Паскаль, но и компилятор, и среду разработки программ:
· пользоваться термином «объект» в его общечеловеческом смысле, несмотря на то, что в языках программирования он имеет специальное значение.
Кому нужна эта книга?
Это самоучитель. То есть написана книга с расчетом на то, что, изучив ее без посторонней помощи, вы сможете без посторонней помощи писать программы на Паскале и выполнять их на компьютере тоже без посторонней помощи. Материал книги я в течение трех лет проверял на учениках-энтузиастах 6-11 классов 345 московской школы. Проверка, как мне кажется, закончилась нормально - вопросов в процессе изучения ребята задавали немного, а программировать научились. Ответы же на их вопросы я включил в книгу.
Если вы хотите научиться программировать, но никогда в жизни не написали ни одной программы и плохо представляете, как компьютер устроен, читайте эту книгу с начала до конца – вы и программировать научитесь, и об устройстве компьютера узнаете все необходимые сведения.
Если вы школьник или студент, первый год изучающий программирование, и вам предстоит сдавать экзамен по программированию, то изучив книгу и выполнив задания, вы вполне можете рассчитывать на отличную оценку. Исключение – студенты, преподаватели которых уже на первом году обучения предпочитают что-нибудь глубокое или специфичное (например, работу с адресами или оптимальные сортировки). Этого в моей книге нет. Здесь только основы. (Но без них и глубину со спецификой не поймешь.)
Если вы опытный программист, но хотите изучить еще и Паскаль, вам эта книга не нужна - изложение рассчитано на начинающих.
Если у вас под рукой нет компьютера, не очень огорчайтесь. Книга снабжена достаточным количеством заданий и решений к ним. Сверяя свои программы с приведенными в ответе, вы всегда сможете сказать, на правильном ли вы пути.
Если вы хотите узнать Паскаль в полном объеме, то имейте в виду, что данная книга для этого не предназначена. Во-первых, потому, что Паскаль настолько велик, что в полном объеме во всем мире мало кому нужен. Во-вторых, потому, что для полного его изложения понадобились бы тысячи страниц текста. Цель данной книги не в полноте охвата, а в том, чтобы вы научились программировать и использовать основные средства Паскаля.
Книга учит не только писать программы на листе бумаги, но и выполнять программы на компьютере. Все, что вам нужно знать заранее, это как включать компьютер и как запускать Паскаль. Все остальное в книге объяснено.
Почему Паскаль?
Этот вопрос стоит перед новичками, которые не знают, с какого языка начать. Вот краткий обзор возможных вариантов.
Прежде всего, для полезного, занимательного и веселого изучения основных идей программирования существуют специальные учебные языки, рассчитанные на детей и новичков. Это «Кенгуренок», «Пылесосик», Лого. Кстати, Лого - язык достаточно богатый, чтобы программировать на нем и несложные игры. Но, к сожалению, эти языки мало распространены в России и по ним почти нет литературы. Так что вопрос о них отпадает. Перейдем к рассмотрению профессиональных взрослых языков. Сейчас наиболее известны Бэйсик, Паскаль, Си, Ява в их самых разных версиях.
Но Ява применяется в основном только в сети.
Си – высокопрофессиональный язык, в среде программистов он распространен очень широко, но слишком сложен для восприятия новичком и с него лучше не начинать. Если вам очень хочется программировать на Си, рекомендую начать с Бэйсика или Паскаля. После них освоение Си пойдет гораздо легче.
В качестве языков для обучения студентов и школьников наиболее широко используются Паскаль и Бэйсик. Причина в том, что их современные версии (Borland Pascal for Windows, Delphi, Visual Basic и др.) достаточно широко распространены во всем мире для разработки профессиональных программ, а сами языки, тем не менее, весьма просты и понятны.
При сравнении Паскаля и Бэйсика нужно помнить, что паскалей и бэйсиков на самом деле много (Pascal, TurboPascal, Borland Pascal, Borland Pascal for Windows, Basic, QBasic, Quick Basic, Visual Basic, Visual Basic .NET и пр.). Оба языка постоянно развиваются и каждой версии присущи свои преимущества и недостатки. Нельзя сказать, что вообще Бэйсик лучше Паскаля, или наоборот, иначе бы на свете остался только один из этих языков. Нельзя с уверенностью предсказать, что кто-то из них в будущем победит. Можно только сказать, что пока каждый силен в своей области и более поздняя версия языка всегда богаче и мощнее более ранней версии.
Исходя из этого, я сравню не Паскаль вообще и Бэйсик вообще, а их версии, наиболее распространенные в российских школах и институтах, а именно TurboPascal 7.0 и QBasic. Если сравнивать их, то на Бэйсике хорошо писать маленькие программы (до 25-50 строк). Они получаются короче и проще, чем на Паскале. Но большие программы на таком Бэйсике из-за плохой структурированности языка получаются труднообозримыми. К тому же Паскаль гораздо богаче, быстрее и мощнее (это естественно, так как он по размеру в десятки раз больше, чем Бэйсик). Паскаль строг и придирчив, изящен и красив.
Какой из Паскалей?
Любая программа, которую вы встретите в этой книге, является правильной программой в версиях Паскаля TurboPascal 5.5, TurboPascal 6.0, TurboPascal 7.0 и Borland Pascal для DOS, а абсолютное большинство программ - и в более ранних версиях. Это естественно, так как основа языка едина для всех версий. Таким образом, вы можете считать эту книгу учебником по программированию на любой из версий Паскаля. Лично я при написании этой книги использовал TurboPascal 7.0.
Теперь – о работе на компьютере. Каждая версия Паскаля предлагает свой способ работы на компьютере (каждая следующая версия - все более удобный и мощный). В широком смысле этот способ называется средой программирования. Как я уже говорил, среды программирования версий TurboPascal 6.0, TurboPascal 7.0 и Borland Pascal для DOS очень близки между собой в тех рамках, которыми я ограничиваюсь в книге. Я буду учить работать именно в этих средах. Все, что я буду говорить, относится к любой из них. Редкие случаи различий я буду полностью оговаривать. Если же на вашем компьютере установлена другая версия, не очень огорчайтесь, так как основные приемы работы в среде Паскаля одинаковы во всех версиях, а большинство остальных приемов - похожи. Различаются лишь подробности, которые нужны не часто.
0.4. Краткое содержание с рекомендациями
Книга состоит из четырех частей и приложения:
Часть I. Необходимые сведения о компьютере и программе.В этой части Паскалю мы не учимся. Она - для начинающих и для тех более опытных, кто имеет пробелы в знаниях основ компьютера и программирования. В этой части вы узнаете следующее:
· что такое компьютер, программа, цикл, ветвление, процедура, и какая от них выгода;
· что такое языки программирования;
· принцип действия компьютера и его устройств: оперативной памяти, принтера, винчестера и других;
· взаимодействие устройств во время работы компьютера;
· принципы кодирования информации в разных устройствах компьютера.
Часть II. Программирование на Паскале – первый уровень.Цель этой части – провести вас от создания самых простых программ до сложных. Здесь вы учитесь программировать на Паскале самым простым способом - на примерах, то есть по принципу “делай, как я”. Вы научитесь создавать небольшие программы, включающие циклы, ветвления, процедуры и использующие графику и звук. Заканчивается часть созданием и заданием на создание солидной программы. Предполагается, что после выполнения этого задания у вас должно возникнуть ощущение всесильности, то есть вы должны почувствовать, что теперь вам по плечу программа любого размера, и что вам может понадобиться в будущем, так это сведения о работе с теми или иными данными.
Часть III. Программирование на Паскале – второй уровень.Цели этой части:
· Снабдить вас этими самыми сведениями. Вы познакомитесь с действиями над массивами, символами, строками, записями, множествами, файлами и другими типами данных. Вы изучите процедуры и функции с параметрами, модули, расширите свои возможности работы с графикой
· Навести строгость и порядок в ваших знаниях о Паскале. Используемый мной способ изложения на примерах - самый легкий для понимания, но не строгий, а это значит, что если вы сделаете грамматическую ошибку в программе, то иногда не будете знать, в чем эта ошибка. Чтобы иметь оружие на этот случай, в данной части Паскаль излагается более систематически, а самое главное – приводятся в виде синтаксических диаграмм строгие правила записи всех нужных вам конструкций Паскаля.
Часть IV. Работа в Паскале на компьютере. Она описывает работу в среде программирования TurboPascal 7.0. Вы научитесь вводить программу в компьютер, запускать ее на выполнение, отлаживать с использованием отладчика, сохранять и загружать с диска. В полном объеме среда программирования рассмотрена не будет, но все ее средства, необходимые для уверенной работе на компьютере, будут изложены исчерпывающе.
Приложения. Справочный материал. Если вы никогда не вводили текст в компьютер и не редактировали его, что необходимо при вводе программы, то здесь вы приобретете все нужные для этого умения. Вы познакомитесь со структурой файлов и каталогов на диске, что необходимо при сохранении и загрузке программы. Здесь приводится систематизированный список встречающихся в книге процедур и функций, решения к заданиям и солидный предметный указатель.
Часть I. Необходимые сведения о компьютере и программе
Вы можете не читать эту часть, если в общих чертах знаете следующие вещи:
· Что такое программа, цикл, ветвление, процедура, и какая от них выгода.
· Принцип действия компьютера и его устройств: оперативной памяти, принтера, винчестера и других.
· Взаимодействие устройств во время работы компьютера.
· Принципы кодирования информации в разных устройствах компьютера.
В этой части мы не будем программировать на Паскале. А будем знакомиться с перечисленными выше вещами, без которых сознательное программирование невозможно.
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|