Text
                    


ББК УДК 32.973.2-018.1 я7 004.43(075) У93 Д. Ушаков, Т. Юркова У93 Паскаль для школьников. 2-е изд. - СПб.: Питер, 2011. - 320 с.: ил. ISBN 978-5-4237-0170-3 Эта книга - не учебник, а скорее помощник в освоении языка программирова­ ния Паскаль, с которым на уроках информатики знакомятся все школьники. Она состоит из уроков, посвященных практически м вопросам программирования и решения задач. Многочисленные примеры позволяют лучше понять, как разра­ ботать алгоритм, написать собственную программу, правильно оформить ее текст. Советы и примечания помогают ч~гтателю обрапгть внимание на важные детали, позволяя избежать подводных камней и более эффективно писать программы. Книга подготовлена преподавателями информатики в школе, имеющими боль­ шой опыт многолетней практической работы. Во второе издание добавлено несколько новых глав, посвященных записям, ди­ на:мическн:м переменным, стеку, очереди :н списка~·1. Также освещена одна из са­ мых сложных тем в программнровании - построение рекурсивных алгоритмов. ББК 32.973.2-018.1я7 УДК 004.43(075) Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав. Информация, содержащаяся в данной книге, получена из источников, рассматриваемых изда­ тельством как надежные. Тем не менее, имея в виду возможные человеческие или техниче­ ские ошибки, издательство не может гарантировать абсолютную точность и полноту приводи­ мых сведений и не несет ответственности за возможные ошибки, связанные с использовани­ ем книги. ISBN 978-5-4237-0170-3 © 000 Издательство "Питер", 2011
Содержание Предисловие ко второму изданию Вступлен ие ................................... 1 6 От издательства ТЕМА 1. .......... . .. . .. . .. . .. . .. . .. . ......... . .. . .. . ... 16 Как написать простую программу на Паскале Урок ................ 15 Выводим сообщение на экран дисплея ................. ... . .. . .. . .... Этапы создания компьютерной программы ............... Урок 1.3. Оформление текста на экране .......................... Выводы ........................................................ Контрольные вопросы ... . .. . .. . .. . .. . ......... . .. . .. . .. . .. . .... Урок ТЕМА 1.1. 1.2. ................................. 17 Как заложить эту программу в компьютер 2. Как включить в работу числовые данные Урок 2.1. 18 19 20 28 34 34 .... 36 Начнем с простого: целые числа ............ . .. . .. . .... ..................................... Тип Integer. Оператор присваивания. Вывод на экран ..... Операции с типом Integer ................................ Стандартные функции типа Integer .............. . .. . .... Понятие переменной 37 38 38 40 42 Как представляются переменные целого типа в памяти компьютера Урок ......................... . .. . .... ............... Описание вещественного типа данных (real) .............. Форматы записи вещественных переменных .............. 2.2. Включаем в работу вещественные числа 43 45 45 46
6 Содержание Вещественные операции ................................. 46 ................ . .. . .. . ... 47 математических выражений ...................... 48 Стандартные функции типа геа! Запись Как представляются переменные вещественного типа в памяти компьютера Урок 2.3. ................................. 50 Как совместить переменные целого и вещественного типа ....................................... ................................... Правила приоритета в выполняемых действиях .... . .. . ... Действия над данными разных типов ..................... 2.4. Ввод и вывод данных .................................. Вводим переменные с клавиатуры ........................ Красивый вывод на экран ...................... . .. . .. . ... П реобразование типов Урок 51 51 52 53 56 57 57 Задание значений переменных датчиком случайных чисел ........................... . .. . .. . ... ................. Выводы ........................................................ Контрольные вопросы .......................................... Урок ТЕМА 2.5. 3. Урок Зачем нужны константы в программе? Учимся работать с символами ............. 66 Как компьютер понимает символы 67 67 68 70 71 72 3.1. ..................... ASCII .......................... . .. . .... Описание типа Char и стандартные функции ............. Урок 3.2. Тип Char - порядковый тип! .......................... Выводы ........................................................ Контрольные вопросы .......................................... Кодовая таблица ТЕМА 4. Урок 61 62 64 64 Ажордж Буль и его логика 4.1. Необходим еще один тип - ................ 73 логический! .... . .. . .. . .... ........................ Операции отношения .................................... Ввод-вывод булевских переменных ...................... Урок 4.2. Логические (булевские) операции .... . .. . .. . .. . .. . .... Логическое умножение (конъюнкция) .................... Логическое сложение (дизъюнкция) ..................... Исключающее ИЛИ (сложение по модулю 2) ..... . .. . .... Логическое отрицание (инверсия) ........................ Логический тип данных (Воо!еап) 74 75 75 76 76 76 77 77 78
Содержание 7 Применение логических операций в программе ........... .................. . .. . ... Выводы ........................................................ Контрольные вопросы .......................................... Приоритет логических операций ТЕМА 5. Анализ ситуации и последовательность ...... 82 выполнения команд Урок 5.1. Проверка условия и ветвление в алгоритме Полная и неполная форма оператора ............. 83 if ......... . .. . .. . ... 84 Оформление программ .................................. ..................................... Урок Ветвление по ряду условий (оператор case) ............ Выводы ................................................. . .. . ... Контрольные вопросы .......................................... Урок ТЕМА 5.2. 5.3. 6. Урок 78 80 81 81 Блоки операторов Многократно повторяющиеся действия 6.1. 86 88 92 96 96 ...... 98 Оператор цикла for .................................... 99 100 Оператор fOJ' с последовательным уменьшением счетчика 101 Урок 6.2. Применение циклов со счетчиком ..................... 101 Цикл в цикле ........................................... 102 Трассировка ............................................ 103 Вычисление суммы ряда ................................ 105 Выводы .......................... . .. . ......... . .. . .. . .. . .. . ... 108 Контрольные вопросы ......................................... 109 Оператор ТЕМА 7. for с последовательным увеличением счетчика Циклы с условием ................................. ........................ Приближенное вычисление суммы бесконечного ряда ... Возведение числа в указанную целую степень ........... Урок 7.2. Цикл с постусловием ................................. Описание цикла с постусловием ........ . .. . .. . .. . .. . ... Использование циклов repeat и while .................... Относительность выбора операторов while и repeat ...... Выводы ....................................................... Контрольные вопросы ... . .. . .. . .. . .. . ......... . .. . .. . .. . .. . ... Урок 7.1. ..................... 11 О Цикл с предусловием Описание цикла с предусловием 111 111 112 115 119 120 120 123 129 129
8 Содержание ТЕМА 8. Урок Массивы 8.1. - структурированный тип данных 131 Хранение однотипных данных в виде таблицы ........ 132 .............. 133 .................... 133 Основные действия по работе с массивами Описание массива на языке Паскаль Заполнение массива случайными числами и вывод массива на экран ............................ 134 ...... . .. . ..... 137 элемента массива ................. 140 Создание пользовательского типа данных Поиск максимального Вычисление суммы и количества элементов массива с заданными свойствами Урок 8.2. Поиск в массиве .................... 144 ...................................... 148 Определение наличия в массиве отрицательного элемента с использованием флажка .................. 148 Определение наличия в массиве отрицательных элементов путем вычисления их количества .......... ... Урок 8.3. Двумерные массивы .................................. Выводы ....................................................... Контрольные вопросы ......................................... Нахождение номера отрицательного элемента массива ТЕМА 9. 149 150 154 156 157 Вспомогательные алгоритмы. Процедуры и функции. Структурное программирование Урок 9.1. ......................... 158 Конструирование алгоритма «сверху вниз!> ........... 159 П рактическая задача с использованием вспомогательных алгоритмов Урок 9.2. ........................ 160 Пример работы с функцией: Поиск максимального элемента ................................................... 167 ....................................................... 168 Контрольные вопросы ......................................... 169 Выводы ТЕМА 10. Как работать с символьными строками .... 170 Урок 10.1. Работаем с цепочками символов: тип Описание строковой переменной Основные действия со строками Урок 10.2. String .......... 171 ................. . .. . ... 171 ........................ 172 Некоторые функции и процедуры Паскаля для работы со строками .................................... 173
Содержание 9 Использование библиотечных подпрограмм работы со строками ............................................ 173 ....................................................... 175 Контрольные вопросы ......................................... 175 Выводы ТЕМА 11. Процедуры и функции с параметрами Урок 11.1. .... 176 Простые примеры использования подпрограмм с пара метрами ............................................. .................. Формальные и фактические параметры ................. Простейшие функции с параметрами ........... . .. . ..... Урок 11.2. Способы передачи параметров ....................... Выводы ....................................................... Контрольные вопросы ......................................... Простейшие процедуры с параметрами 177 177 179 179 181 183 184 ТЕМА 12. Файлы: сохраняем результаты работы .... 185 до следующего раза Урок 12.1. Как работать с текстовым файлом Открытие файла для чтения Открытие файла для записи Урок 12.2. .......... . .. . ..... 186 ............................ 186 ............................. 188 Сохранение двумерного массива чисел в текстовом файле .......................................... ........ Сохранение массива чисел в текстовом файле ....... . ... Дописывание информации в конец файла ............... Выводы ....................................................... Контрольные вопросы ......................................... Сохранение числовых данных в текстовом файле Тема 13. Графический режим работы. МОДУЛЬ Graph Урок 13.1. Включаем графический режим работы 199 ............... ........................ Переключение в графический режим видеоадаптера ..... Урок 13.2. Продолжаем изучать возможности модуля Graph .... Рисование линий средствами модуля Graph ............. Рисование окружностей средствами модуля Graph ... . ... Выводы ....................................................... Контрольные вопросы ......................................... Особенности работы с графикой 192 192 192 196 197 197 200 200 201 203 203 205 206 207
1О Содержание Тема 14. Операторы, изменяющие естественный ХОД программы Урок 14.1. ............................... 208 Использование оператора безусловного перехода goto .............................................. ..... Оператор break ......................................... Оператор сопtiШlе .... . .. . .. . .. . .. . .. . ......... . .. . ..... Выводы ....................................................... Контрольные вопросы ......................................... Урок Тема 14.2. 15. Урок Операторы, изменяющие ход выполнения цикла Группируем данные: записи Тема 15.1. 15.2. ............. 216 Описание типа данных record ........................ ............ Создание собственного типа данных - запись ..... . ..... Массив записей ......................................... Оператор при соединения with .......................... Пример выбора структуры данных ...................... Записи записей ...................... . ......... . .. . ..... Выводы ....................................................... Контрольные вопросы и задания ............................... Урок 16. Урок Урок Урок Урок Когда и как разумно использовать записи Аинамические переменные 16.1. 16.2. 16.3. 21 О 213 213 214 215 215 218 220 220 220 221 223 224 225 225 ............. 226 Выделение памяти .................................. .............................................. Указатели ........................... . .. . .. . .. . .. . ... Указатели на отдельные переменные .................... Указатели на блоки переменных ......................... 16.4. Динамическое выделение памяти .................... New и Dispose ................................... . .. . ... Динамическое выделение памяти для массивов .......... GеtМеш и FгееМеш ..................................... Адреса 227 229 230 230 232 232 233 235 236 Обращение к элементам массива, созданного динамически ........................................ .............................. Выводы ....................................................... Контрольные вопросы ......................................... Массив переменной длины 237 238 241 242
Содержание Тема 17. Урок Аинамические структуры данных. Стек Тема 17.1. 17.2. ..... 244 Опишем тип данных ................................ ...... Добавление элемента в стек (Push) ...................... Извлечение элемента из стека (Рор) ............ . .. . ..... Проверка стека на пустоту (StасkIsЕшрtу) .............. Урок 17.3. Использование стека ................................ Программирование стека при помощи массива .......... Выводы ................................................. . ..... Контрольные вопросы и задания ............................... Урок 18. Создание стека и основные операции со стеком Тема 18.1. 18.2. .................................. 258 Принцип работы и описание типа данных ... . .. . ..... ...................... Добавление элемента в очередь (EnQueue) ............... Извлечение элемента из очереди (DeQueue) .... . .. . ..... Проверка очереди на пустоту (QuеuеIsЕшрtу) ........... Урок 18.3. Использование очереди ............................. П рограммирование очереди при помощи массива ........ Выводы ................................................... . ... Контрольные вопросы ......................................... Урок 19. Основные операции с очередью Урок Урок 259 261 261 263 264 264 267 269 269 Аинамические структуры данных. Однонаправленный список Урок 245 247 248 251 252 253 255 256 256 Аинамические структуры данных. Очередь Урок 11 19.1. 19.2. ................... 270 Описание типа данных и принцип работы ........... Основные операции с однонаправленным списком ... Последовательный просмотр всех элементов списка ..... Помещение элемента в список .......................... Удаление элемента из списка ............ . .. . .. . .. . .. . ... 19.3. Обработка списков .................................. 271 272 272 273 275 276 Целесообразность использования однонаправленного списка .............................................. 278 ....................................................... 280 Контрольные вопросы ......................................... 280 Выводы
Содержание 12 Тема 20. Урок Урок Урок Урок Рекурсия 20.1. 20.2. 20.3. 20.4. задачи Урок 20.5. ............................ 281 Описание принципа ................................. 282 ................................... 285 рекуррентной подпрограммы ............. 287 Ханойские башни Структура Пример рекуррентного решения нерекуррентной ..................................................... 288 Пример рекуррентного решения рекуррентной задачи ..................................................... 289 .................. . .. . .. . .. . .. . .. . .. . ............ . ..... 291 Контрольные вопросы ......................................... 291 Выводы Приложение 1. Элементы блок-схем .............. 292 Приложение 2. Задачи ......................... 295 Iпtеgег. Описание. Ввод. Вывод. Операции ..................... Real. Описание. Ввод. Вывод. Операции и функции .... . .. . ..... Real. Запись и вычисление выражений ......................... Char. Описание. Ввод. Вывод. Функции ........................ Вооlеап. Запись выражений .................................... Вооlеап. Вычисление выражений ............... . .. . .. . .. . .. . ... Н. Простые сравнения. Мiп/шах/средний ...................... Н. Уравнения и неравенства с параметрами ..................... For. Перечисления ............................................. For. Вычисления со счетчиком цикла ........................... For. Перебор со сравнениями .................................. While-Repeat. Поиск ........................................... While-Repeat. ряды ...... . .. . .. . .. . .. . ......... . .. . .. . .. . .. . ... Графика. Прямые .............................................. Графика. Окружности ......................................... Массивы. Заполнение, вывод, сумма/количество ............... Массивы. Перестановки ............................. . .. . .. . ... Массивы. Поиск ............................................... Массивы. Проверки ........................................... Массивы. Максимумы ............ . .. . ......... . .. . .. . .. . .. . ... Подпрограммы без параметров ................................. Строки. Часть 1 ................................................ Строки. Часть II ............................................... 296 296 297 298 298 299 300 300 300 301 302 302 303 303 304 305 305 306 307 307 307 308 309
Содержание Подпрограммы с параметрами. Часть 1 ........ . ................ II .... . .. . .. . .. . .. . .. . .... Подпрограммы с параметрами. Часть III ....................... Файлы ............................... . .. . .. . . . .......... . .... Однонаправленный список ........ . ..... . ..... . .. . .. . .... Рекурсия ..................................................... Подпрограммы с параметрами. Часть 13 309 310 310 311 312 313