Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Паскаль / sidorov / Сидоров.DOC
Скачиваний:
30
Добавлен:
10.12.2013
Размер:
1.68 Mб
Скачать

УДК 681. 3

Сидоров М. Е. , Трушин О. В.

Школа работы на IBM PC. Часть 2. Уфа, 1996. с.

ISBN

Книга написана для начинающих программистов: учащихся старших классов, студентов. Для освоения изложенного материала необходимо наличие компьютера IBM PC, пакета Turbo-Pascal 7.0, и выполнение описанных в книге заданий непосредственно при чтении.

Цель этой книги - "плавное" вхождение в область программирования с постепенным усложнением заданий и алгоритмов. Первые задания имеют программы -"шаблоны", позволяющие начинающим программистам преодолеть психологический барьер изложения мыслей на алгоритмическом языке. Последующие задания имеют блоки операторов, поясняющие "изюминку" программы, которые следует модифицировать. Следует изучить приведенные примеры ("шаблоны") операторов и четко знать для чего служит каждый оператор. Большинство изложенных заданий являются оригинальными разработками авторов, особенно по модулям CRT и GRAPH. Приводятся также "стандартные" и известные интересные программы и задания.

Краткое изложение материала предполагает наличие "учителя", могущего прокомментировать "узкие места", привести дополнительные примеры, задания и контрольные вопросы (в том числе и по "шаблонам"), способствующие усвоению материала. Авторы не стремились к полному описанию языка, поэтому некоторые типы данных, специфические операции и процедуры, не нашедшие практического приложения, не рассматриваются. Авторы использовали все свои знания и опыт для создания познавательных практических заданий, способных вызвать интерес к результатам рутинного программирования. Освоение изложенного в книге материала позволит Вам перейти к профессиональному изучению алгоритмического языка Turbo-Pascal с использованием "толстых" книг, а также Help-описания.

Программирование в среде FoxPro изложено в виде примеров программ, позволяющих освоить основные команды и иметь представление о назначении команд FoxPro. Эта глава предназначена для студентов университетов.

Авторы выражают благодарность учителям информатики Сидоровой Н. Л. и Трушиной Д. В. за помощь при подборе и апробации материала для данной книги.

Разделы 1.15, 2.1.1, 2.1.5, 2.3, 2.5 и глава 3 написаны к. т. н. Трушиным О. В. ,

разделы 1.1 - 1.14, 2.1 - 2.2 и 2.4 написаны к. т. н. Сидоровым М. Е.

Общая редакция текста выполнена Сидоровым М. Е.

Оглавление

Стр.

Глава 1. Алгоритмический язык Турбо-Паскаль . . . . . . . . . . . . . . . 5 1. 1. Общие сведения . . . . . . . . . . . . . . . . . . . . . . . . 5 1. 2. Среда Турбо-Паскаль . . . . . . . . . . . . . . . . . . . . . . . . 5 1. 3. Структура языка Турбо-Паскаль . . . . . . . . . . . . . . . . . . 8 1. 4. Типы переменных . . . . . . . . . . . . . . . . . . . . . . . . . 9 1. 5. Структура программы. . . . . . . . . . . . . . . . . . . . . . . . 13 1. 6. Операции и стандартные функции. . . . . . . . . . . . . . . . . . 14 1. 7. Операторы Турбо-Паскаля . . . . . . . . . . . . . . . . . . . . . 17 1. 7. 1. Операторы ввода/вывода данных . . . . . . . . . . . . . . . . 17 1. 7. 2. Оператор выбора. . . . . . . . . . . . . . . . . . . . . . . . . 21 1. 7. 3. Условный оператор. . . . . . . . . . . . . . . . . . . . . . . . 22 1. 7. 4. Оператор цикла с параметром. . . . . . . . . .. . . . . . . . 27 1. 7. 5. Операторы цикла с условием. . . . . . . . . . . . . . . . . . . 32 1. 7. 6. Операторы ограничения и прерывания цикла . . . . . . . . . . 35 1. 7. 7. Оператор перехода к метке. . . . . . . . . . . . . . . . . . . 36 1. 8. Блок - схемы алгоритмов. . . . . . . . . . . . . . . . . . . . . 37 1. 9. Составление диалоговых программ . . . . . . . . . . . . . . . . . 39 1. 10. Массивы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . 40 1. 10. 1. Линейные массивы. . . . . . . . . . . . . . . . . . . . . . .. . . 40 1. 10. 2. Работа со элементами переменной строкового типа. . . . . .. . . 44 1. 10. 3. Двумерные массивы . . . . . . . . . . . . . . . . . . . . . .. . . 45 1. 10. 4. Создание баз данных с использованием массивов записей . . . . 48 1. 10. 5. Работа с большими массивами. . . . . . . . . . . . . . . . .. . . 49 1. 11. Текстовые файлы. . . . . . . . . . . . . . . . . . . . . . . . .. . . 50 1. 12. Разработка функций и процедур . . . . . . . . . . . . . . . . .. . . 55 1. 12. 1. Описание функций и процедур . . . . . . . . . . . . . . . . . . 55 1. 12. 2. Рекурсивные функции и процедуры. . . . . . . . . . . . . . . . 60 1. 13. Разработка модулей . . . . . . . . . . . . . . . . . . . . . . . . . 64 1. 14. Модуль CRT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 1. 14. 1. Управление экраном в текстовом режиме. . . . . . . . . . . . . 67 1. 14. 2. Управление клавиатурой . . . . . . . . . . . . . . . . . . .. . . 68 1. 14. 3. Работа с символьными переменными. . . . . . . . . . . . . . . 73 1. 14. 4. Работа со строковыми переменными. . . . . . . . . . . . . . . . 76 1. 14. 5. Управление звуковыми сигналами. . . . . . . . . . . . . . . . . 77 1. 15. Модуль Graph. . . . . . . . . . . . . . . . . . . . . . . . . . .. . . 79 1. 15. 1. Инициализация графического режима. . . . . . . . . . . . . . 79 1. 15. 2. Простейшие графические процедуры и функции . . . . . . . . 80 1. 15. 3. Рисование геометрических фигур . . . . . . . . . . . . . . . . 88 1. 15. 3. 1. Построение заполненных фигур . . . . . . . . . . . . . . . 88 1. 15. 3. 2. Работа с линиями. . . . . . . . . . . . . . . . . . . . . . . 91 1. 15. 3. 3. Создание графических узоров. . . . . . . . . . . . . . . . . . . . 94 1. 15. 4. Работа с текстом в графическом режиме. . . . . . . . . . . . . . . . 102

Стр.

1. 15. 5. Мультипликация. . . . . . . . . . . . . . . . . . . . . . . . . 104 1. 15. 5. 1. Мультипликация с запоминанием части экрана. . . . . .. . . 104 1. 15. 5. 2. Мультипликация с чередованием видеостраниц. . . . . .. . . 107 1. 15. 5. 3. Мультипликация с управлением движения образа. . . . . . . 108 1. 15. 5. 4. Модификация контурного изображения. . . . . . . . . . . . 109

Глава 2. Программирование в среде Турбо-Паскаль. . . . . . . . .. 111 2. 1. Геометрические построения на плоскости. . . . . . . . . . . . . . 111 2. 1. 1. Построение графиков функций. . . . . . . . . . . . . . . . . . 111 2. 1. 2. Графическое решение уравнений. . . . . . . . . . . . . . . . . 118 2. 1. 3. Геометрические построения на плоскости . . . . . . . . . . . . 118 2. 1. 4. Построение касательных и нормалей к плоским кривым . . . . 119 2. 1. 5. Двумерные преобразования координат. . . . . . . . . . . . . . 121 2. 1. 6. Проецирование пространственного изображения тела на плоскость. . 126 2. 2. Некоторые задачи физики . . . . . . . . . . . . . . . . . . . . . . . . . 128 2. 2. 1. Механика . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 2. 2. 2. Оптика и свет . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 2. 2. 3. Электростатика и электромагнетизм. . . . . . . . . . . . . . . . . 138 2. 3. Математическое моделирование физических процессов . . . . . . . . 140 2. 4. Моделирование многовариантных задач с использованием графов. . 147 2. 5. Программы математических расчетов. . . . . . . . . . . . . . . . . 150 2. 5. 1. Численное решение уравнений. . . . . . . . . . . . . . . . . . . . 150 2. 5. 2. Аппроксимация по методу наименьших квадратов. . . . . . . . . 152 2. 5. 3. Численный расчет интегралов. . . . . . . . . . . . . . . . . 153 2. 5. 4. Сортировка одномерных массивов. . . . . . . . . . . . . . 156

Глава 1. Алгоритмический язык Турбо-Паскаль

1. 1. Общие сведения

Алгоритмический язык Паскаль разработан профессором Цюрихского технологического института Никлаусом Виртом в 1969-71 годах для обучения студентов структурному программированию. Идеи, заложенные в основу создания языка, позволили фирме Borland International значительно расширить алгоритмические средства языка, а удобный интерфейс (меню команд) и высокая скорость компиляции (процесса перевода текста программы в машинные коды) сделали язык Турбо-Паскаль (Turbo-Pascal) одним из самых распространенных среди начинающих и профессиональных программистов.

Процесс программирования начинается, как правило с составления алгоритма - последовательности операций, описывающих процесс решения задачи. Графическая запись алгоритма представляется в виде блок-схемы. Составление алгоритма заключается в логическом описании процесса решения задачи и требует знания элементов математической логики. Следует отметить, что программированию предшествует важнейший этап - постановка задачи. Постановка задачи может включать широкий спектр вопросов (разработка математических и физических моделей, вывод расчетных формул и т. п. ). Программист должен четко представлять явление или формулу, которые он алгоритмизирует.

Программирование заключается в записи алгоритма на языке программирования и отладке программы. Текст программы записывается в текстовом редакторе, затем программа компилируется - переводится транслятором (переводчиком) в машинные коды и запускается на выполнение. Процесс отладки программы начинается с выявления:

- синтаксических ошибок в тексте ( неверно записанных операторов ),

- ошибок при выполнении программы ( недопустимые математические действия, операции с числами, превосходящими предельные значения ),

- алгоритмических ошибок ( неверно составлен или запрограммирован алгоритм ),

и заканчивается, как правило написанием новой программы, поскольку каждый программист знает, что программу можно усовершенствовать до бесконечности, а отлаженную программу лучше не изменять.