Программирование на JAVA, C++, PASCAL
ОСНОВЫ ПРОГРАММИРОВАНИЯ
Программирование все в большей степени становится занятием лишь для профессионалов. Объявленный в середине 1980-х гг. лозунг «Программирование — вторая грамотность» остался в прошлом. В понятие «компьютерная грамотность» сегодня входит прежде всего навык использования многообразных средств информационных технологий. Решая ту или иную информационную задачу, необходимо выбрать адекватное программное средство. Это могут быть электронные таблицы, системы управления базами данных, математические пакеты и т.п. И только в том случае, когда подобные средства не дают возможности решить задачу, следует прибегать к универсальным языкам программирования.
Принято различать программистов двух категорий: прикладных и системных. Системные программисты — это разработчики базовых программных средств ЭВМ (операционных систем, трансляторов, сервисных средств и т.п.). Они являются профессионалами высочайшего уровня в программировании. Прикладные программисты разрабатывают средства прикладного программного обеспечения ЭВМ, предназначенные для решения задач из различных областей (наука, техника, производство, сфера обслуживания, обучение и т.п.). Требования к качеству как прикладных программ, так и системных сегодня очень высоки. Программа должна не только правильно решать задачу, но и иметь современный интерфейс, быть высоконадежной, дружественной по отношению к пользователю и т.д. Только такие программы могут выдерживать конкуренцию на мировом рынке программных продуктов. Программирование на любительском уровне сегодня никому не нужно.
По мере развития компьютерной техники развивались также и методика, и технология программирования. Сначала возникает командное и операторное программирование, в 1960-х гг. бурно развивается структурное программирование, появляются линии логического и функционального программирования, а в последнее время — объектно-ориентированное и визуальное программирование.
Задача, которую следует ставить при первоначальном изучении программирования, — освоение основ структурной методики программирования. Для указанной цели наиболее подходящим средством является язык программирования Паскаль. Автор языка Паскаль — швейцарский профессор Никлаус Вирт — создавал его именно для этого. Структурная методика остается основой программистской культуры. Не освоив ее, человек, взявшийся изучать программирование, не имеет никаких шансов стать профессионалом.
Реализации Паскаля в версиях фирмы Borland для IBM, известных под названием Турбо Паскаль, значительно расширили язык по сравнению с вариантом Вирта. Начиная с версии 5.5 Турбо Паскаль становится также и языком объектного программирования.
Содержание третьей главы настоящего учебника ориентировано на глубокое освоение студентами базовых понятий языков программирования высокого уровня в их реализации на Паскале. Такая подготовка облегчает изучение других языков программирования. Изложение основ языков Си/Си++ в четвертой главе опирается на знания и навыки, полученные учащимися при изучении Паскаля.
При изучении данного курса студентам понадобятся знания основ алгоритмизации в рамках школьного базового курса информатики. Обычно в школе алгоритмизация изучается с использованием учебных исполнителей, с помощью которых можно успешно освоить основы структурной методики, а именно:
- построение алгоритмов из базовых структур;
- применение метода последовательной детализации.
Желательным является знакомство с архитектурой ЭВМ на уровне машинных команд (достаточно на модельных примерах учебных компьютеров, изучаемых в школьной информатике; совсем' не обязательно изучение реальных языков команд или ассемблера). Эти знания позволяют освоить основные понятия программирования, такие как переменная, присваивание; «входить в положение транслятора» и благодаря этому не делать ошибок, даже не помня каких-то деталей синтаксиса языка; предвидеть те «подводные камни», на которые может «напороться» ваша программа в процессе выполнения. По существу, все эти качества и отличают профессионального программиста от дилетанта.
Еще одно качество профессионала — способность воспринимать красоту программы, получать эстетическое удовольствие оттого, что она хорошо написана. Нередко это чувство помогает интуитивно отличить неправильную программу от правильной. Однако основным критерием правильности является, безусловно, не интуиция, а грамотно организованное тестирование.
Процесс изучения и практического освоения программирования делится на три части:
- изучение методов построения алгоритмов;
- изучение языка программирования;
- изучение и практическое освоение определенной системы программирования .
Решению первой задачи посвящены вторая и пятая главы учебника. Во второй главе даются основные, базовые понятия и принципы построения алгоритмов работы с величинами. В пятой главе излагаются некоторые известные методики полного построения алгоритмов, обсуждаются проблемы тестирования программ, оценки сложности алгоритмов.
Языки программирования Турбо Паскаль и Си/Си++ излагаются в третьей и четвертой главах учебника соответственно. Подчеркнем, что данная книга — это прежде всего учебник по программированию, а не по языкам Паскаль и Си. Поэтому исчерпывающего описания данных языков вы здесь не найдете. Языки излагаются в том объеме, который необходим для начального курса программирования. Более подробное описание языков можно найти в книгах, приведенных в списке литературы.
В учебнике нет инструкций по работе с конкретными системами программирования для изучаемых языков. С ними студенты должны познакомиться в процессе практики на ЭВМ, используя другие источники.
Шестая глава представляет собой достаточно большой задачник по программированию. Этот задачник можно использовать для организации практических и лабораторных занятий по любому из изучаемых языков.
Навигация :
ГЛАВА 1. ОСНОВЫ АЛГОРИТМИЗАЦИИ
1.1. Алгоритмы и величины
Этапы
решения задачи на ЭВМ. Работа по решению любой задачи с использованием компьютера делится на
следующие этапы:
1. Постановка задачи.
2. Формализация задачи.
3. Построение алгоритма.
(читать далее...)
стр. 0 1 2
1.2. Линейные вычислительные алгоритмы
Основным элементарным действием в вычислительных
алгоритмах является присваивание значения
переменной величине. Если значение константы определено видом ее
записи, то переменная величина получает конкретное значение только в результате
присваивания. (читать далее...)
стр. 3 4
1.3. Ветвления и циклы в вычислительных алгоритмах
Составим алгоритм решения квадратного уравнения
Задача хорошо знакома из математики. Исходными данными
здесь являются коэффициенты а, b, с.
Решением в общем случае будут два корня x1
и х2, которые вычисляются по формуле:
Все используемые в этой программе величины
вещественного типа.
(читать далее...)
стр. 5 6 7
1.4. Вспомогательные алгоритмы и процедуры
В теории алгоритмов известно понятие вспомогательного алгоритма.
Вспомогательным называется алгоритм решения некоторой подзадачи из основной
решаемой задачи. В таком случае алгоритм решения исходной задачи называется основным алгоритмом.
(читать далее...)
стр. 8 9
ГЛАВА 2. ВВЕДЕНИЕ В ЯЗЫКИ ПРОГРАММИРОВАНИЯ
2.1. История и классификация языков
программирования
Язык программирования — это способ записи программ
решения различных задач на ЭВМ в понятной для компьютера форме. Процессор
компьютера непосредственно понимает язык машинных команд (ЯМК). Программы на
ЯМК программисты писали лишь для самых первых ламповых машин — ЭВМ первого поколения.
(читать далее...)
стр. 10 11 12 13
2.2. Структура и способы описания языков
программирования высокого уровня
Во всяком языке программирования определены способы
организации данных и способы организации действий над данными. Кроме того,
существует понятие «элементы языка», включающее в себя множество символов
(алфавит), лексемы и другие изобразительные средства языка программирования.
(читать далее...)
стр. 14 15
ГЛАВА 3. ПРОГРАММИРОВАНИЕ НА ПАСКАЛЕ
3.1. Первое знакомство с Паскалем
Структура
программы на Паскале. По определению стандартного Паскаля программа состоит из заголовка программы и тела программы (блока), за которым следует
точка — признак конца программы.
В свою очередь, блок содержит разделы описаний
и раздел операторов.
(читать далее...)
стр. 16 17 18 19
3.2. Некоторые сведения о системе Турбо Паскаль
Название Турбо Паскаль обычно воспринимается в двух
смыслах:
• как диалект языка Паскаль, представляющий собой
расширение стандартного Паскаля;
• как система программирования Турбо Паскаль,
являющаяся совокупностью системных программ, предназначенных для создания,
отладки и выполнения Паскаль-программ.
(читать далее...)
стр. 20 21 22
3.3. Элементы языка Турбо Паскаль
Алфавит. Алфавит языка состоит из множества
символов, включающих в себя буквы, цифры
и специальные символы.
Латинские
буквы: от A до Z (прописные) и от а до z. (строчные).
Цифры: 0, 1, 2, 3, 4,
5, 6, 7, 8, 9.
(читать далее...)
стр. 23
3.4. Типы данных
Концепция типов данных является одной из центральных в
любом языке программирования. С типом
величины связаны три ее свойства: форма внутреннего представления, множество
принимаемых значений и множество допустимых операций. (читать далее...)
стр. 24 25
3.5. Арифметические операции, функции, выражения.
Арифметический оператор присваивания
К арифметическим типам данных относятся группы вещественных
и целых типов. К ним применимы арифметические операции и операции отношений.
Операции над данными бывают унарными (применимые к одному операнду) и бинарными (применимые к двум операндам).
(читать далее...)
стр. 26 27
3.6. Ввод с клавиатуры и вывод на экран
Ввод данных — это передача информации от
внешних устройств в оперативную память. Вводятся, как правило, исходные данные
решаемой задачи. Вывод — обратный
процесс, когда данные передаются из оперативной памяти на внешние носители
(принтер, дисплей, магнитные устройства и т.д (читать далее...)
стр. 28 29
3.7. Управление символьным выводом на экран
Использование для вывода на экран только процедур Write
и WriteLn дает программисту очень слабые
возможности для управления расположением на экране выводимого текста. Печать
текста может производиться только сверху вниз, слева направо. (читать далее...)
стр. 30 31 32
3.8. Логические величины, операции, выражения.
Логический оператор присваивания
Прямое отношение к программированию имеет дисциплина,
которая называется математической логикой.
Основу математической логики составляет алгебра
логики, или исчисление высказываний. Под высказыванием понимается
любое утверждение, в отношении которого можно однозначно сказать, истинно оно
или ложно. (читать далее...)
стр. 33 34
3.9. Функции, связывающие различные типы данных
В табл. 3.6 приводится список стандартных функций,
обеспечивающих связь между различными типами данных.
Таблица 3.6
Функции ord,
pred и succ применимы только к порядковым типам. (читать далее...)
стр. 35 36
3.10. Логические выражения в управляющих операторах
Алгоритмическая структура ветвления программируется в
Паскале с помощью условного оператора.
Раньше мы его описывали в таком виде:
If
<условие> Then
<оператор 1> Else
<о (читать далее...)
стр. 37 38
3.11. Цикл по параметру
Рассмотрим следующую простую задачу: требуется
вычислить сумму целых чисел от M до N путем
прямого суммирования. Здесь М и N — целые числа. Задачу можно сформулировать
так:
Алгоритм и программа решения этой задачи с
использованием структуры цикл-пока представлены на рис. (читать далее...)
стр. 39 40
3.12. Особенности целочисленной и вещественной
арифметики
Числовые расчеты могут производиться на множестве
целых чисел или на множестве вещественных чисел. С математической точки зрения
целые числа являются подмножеством множества вещественных чисел. (читать далее...)
стр. 41 42 43
3.13. Подпрограммы
С понятием вспомогательного алгоритма вы уже знакомы
(см. разд. 1.4). В языках программирования вспомогательные алгоритмы называются
подпрограммами. В Паскале
различаются две разновидности подпрограмм: процедуры
и функции. (читать далее...)
стр. 44 45 46 47 48 49
3.14. Вычисление рекуррентных последовательностей
Рекуррентная
последовательность.
Из курса математики известно понятие рекуррентной
последовательности. Это понятие вводится так: пусть известно k чисел a1, ..., аk.
Эти числа являются первыми числами числовой последовательности. (читать далее...)
стр. 50 51 52 53
3.15. Основные понятия и средства компьютерной
графики в Турбо Паскале
До сих пор мы использовали экран компьютера только для
вывода символьной информации — чисел, текстов. Однако Турбо Паскаль позволяет
выводить на экран рисунки, чертежи, графики функций, диаграммы и т.п (читать далее...)
стр. 54 55 56 57 58 59 60
3.16. Строковый тип данных
Теперь мы познакомимся с типом данных, который
относится к числу структурированных. Это строковый тип данных (строка). Следует
заметить, что строковый тип данных есть в Турбо Паскале и отсутствует в
стандартном Паскале.
(читать далее...)
стр. 61 62 63 64
3.17. Табличные данные и массивы
В повседневной и научной практике часто приходится
встречаться с информацией, представленной в табличной форме. Вот, например,
таблица, содержащая среднемесячные значения температуры, °С, за определенный
год:
Такую таблицу называют линейной. (читать далее...)
стр. 65 66 67 68 69
3.18. Понятие множества. Множественный тип данных
Одним из фундаментальных разделов математики является
теория множеств. Некоторые моменты математического аппарата этой теории
реализованы в Паскале через множественный
тип данных (множества).
(читать далее...)
стр. 70 71 72 73
3.19. Файлы. Файловые переменные
С термином «файл» вам уже приходилось встречаться.
Прежде всего это понятие обычно связывают с информацией на устройствах внешней
памяти. В Паскале понятие файла употребляется в двух смыслах:
• как поименованная информация на внешнем устройстве
(внешний файл);
(читать далее...)
стр. 74 75 76 77 78 79
3.20. Комбинированный тип данных
Все структурированные типы данных, с которыми мы уже
познакомились, представляют собой совокупности однотипных величин. Комбинированный тип данных — это
структурированный тип, состоящий из фиксированного числа компонент (полей)
разного типа. (читать далее...)
стр. 80 81 82
3.21. Указатели и динамические структуры
До сих пор мы рассматривали программирование,
связанное с обработкой только статических данных. Статическими называются такие величины, память под которые выделяется
во время компиляции и сохраняется в течение всей работы программы.
(читать далее...)
стр. 83 84 85 86 87 88 89
3.22. Внешние подпрограммы и модули
Стандартный Паскаль не располагает средствами
разработки и поддержки библиотек программиста (в отличие, скажем, от Фортрана и
других языков программирования высокого уровня), которые компилируются отдельно
и в дальнейшем могут быть использованы не только самим разработчиком. (читать далее...)
стр. 90 91 92 93
3.23. Объектно-ориентированное программирование
Основные
понятия объектно-ориентированного программирования (ООП). Основополагающей идеей одного из
современных подходов к программированию — объектно-ориентированному — является
объединение данных и обрабатывающих их процедур в единое целое — объекты.
(читать далее...)
стр. 94 95 96 97 98 99 100
3.24. Виртуальные методы. Конструкторы и
деструкторы
Объекты
в динамической памяти. При работе с объектами довольно типичной является ситуация, когда
сложный метод приходится создавать заново для каждого типа объекта, хотя
различия в поведении объектов могут быть небольшими. (читать далее...)
стр. 101 102 103
ГЛАВА 4. ЯЗЫК ПРОГРАММИРОВАНИЯ СИ++
4.1. Введение в Си и Си++
История
языка программирования C++. Вторым языком программирования, который предлагается для изучения
в данном пособии, является язык Си (в английском варианте его название
обозначается одной заглавной буквой латинского алфавита — С). (читать далее...)
стр. 104 105 106
4.2. Элементы языка Си++
Алфавит.
В алфавит языка
Си++ входят:
• латинские буквы: от а
до z
(строчные) и от A до Z (прописные);
• десятичные цифры: 0,
1, 2, 3, 4, 5, 6, 7, 8, 9;
• специальные символы: "
(читать далее...)
стр. 107
4.3. Типы данных
Концепция типов данных является важнейшей стороной
любого языка программирования. Особенность Паскаля состоит в большом
разнообразии типов, схематически представленном в разд. 3.4 на рис. 9.
(читать далее...)
стр. 108 109 110 111
4.4. Операции и выражения
Во всех языках программирования под выражением
подразумевается конструкция, составленная из констант, переменных, знаков
операций, функций, скобок. Выражение определяет порядок вычисления некоторого
значения. (читать далее...)
стр. 112 113 114 115 116 117
4.5. Линейные программы на Си/Си++
Структура
программы. Общая
структура программы на Си/Си++ следующая:
директивы_препроцессора
определение_функции_1
определение_функции_2
определение_функции_N
Среди функций обязательно присутствует главная функция
с именем main. (читать далее...)
стр. 118 119 120 121 122
4.6. Программирование ветвлений
Для программирования ветвящихся алгоритмов в языке Си
имеется несколько различных средств. К ним относятся рассмотренная выше
операция условия ?:, условный оператор if и оператор выбора switch.
(читать далее...)
стр. 123 124
4.7. Программирование циклов
В Си, как и в Паскале, существуют все три типа
операторов цикла: цикл с предусловием, цикл с постусловием и цикл с параметром.
Цикл с
предусловием.
Формат оператора цикла с предусловием:
while
(выражение) оператор;
(читать далее...)
стр. 125 126 127
4.8. Функции
А теперь нам предстоит разобраться с вопросом о том,
как в Си/Си++ реализуется механизм подпрограмм. Вспомним о том, что в Паскале
существуют две разновидности подпрограмм: подпрограммы-процедуры и
подпрограммы-функции. (читать далее...)
стр. 128 129 130 131 132 133
4.9. Массивы
Понятие массива знакомо из Паскаля. Массив — это структура однотипных элементов,
занимающих непрерывную область памяти. С массивом связаны следующие
его свойства: имя, тип, размерность, размер.
(читать далее...)
стр. 134 135 136
4.10. Указатели
Понятие указателя знакомо читателю из разд. 3.21, в
котором описывается ссылочный тип данных в Паскале. Смысл этого понятия в
Си/Си++ остается тем же: указатель — это
адрес поля памяти, занимаемого программным объектом.
(читать далее...)
стр. 137 138 139 140
4.11. Обработка символьных строк
В языках Си/Си++ нет специально определенного
строкового типа данных, как в Турбо Паскале. Символьные строки организуются как
массивы символов, последним из которых является символ \0, внутренний код
которого равен нулю. (читать далее...)
стр. 141 142 143
4.12. Структуры и объединения
В языках Си/Си++ понятие структуры аналогично понятию
записи (record) в Паскале. Это структурированный тип
данных, представляющий собой поименованную совокупность разнотипных элементов.
Тип структура обычно используется при разработке информационных
систем, баз данных.
(читать далее...)
стр. 144 145 146
4.13. Потоковый ввод-вывод в стандарте Си
Под вводом-выводом в программировании понимается
процесс обмена информацией между оперативной памятью и внешними устройствами:
клавиатурой, дисплеем, магнитными накопителями и т. п. Ввод — это занесение
информации с внешних устройств в оперативную память, а вывод — вынос информации
из оперативной памяти на внешние устройства. (читать далее...)
стр. 147 148 149 150 151 152
4.14. Объектно-ориентированное программирование в
Си++
Основным отличием языка Си++ от Си является наличие в
нем средств объектно-ориентированного программирования (ООП). Часто в
литературе язык Си++ определяют именно как язык объектно-ориентированного
программирования. (читать далее...)
стр. 153 154 155 156 157
4.15. Форматированный ввод-вывод в Си++
Для организации ввода-вывода в Си++ можно использовать
средства языка Си (conio.h).
Однако в Си++ существует стандартная библиотека классов, ориентированная на
организацию потокового ввода-вывода. (читать далее...)
стр. 158 159
ГЛАВА 5. МЕТОДЫ ПОСТРОЕНИЯ АЛГОРИТМОВ
5.1. Основные понятия структурного программирования
Прошло уже более полувека со времени появления первой
ЭВМ. Все это время вычислительная техника бурно развивалась. Менялась
элементная база ЭВМ, росли быстродействие, объем памяти, менялись средства
взаимодействия человека с машиной. (читать далее...)
стр. 160 161 162 163
5.2. Метод последовательной детализации
Суть метода была описана выше. Сначала анализируется
исходная задача. В ней выделяются подзадачи. Строится иерархия таких подзадач
(рис. 48).
Затем составляются алгоритмы (или программы), начиная
с основного алгоритма (основной программы), далее — вспомогательные алгоритмы
(подпрограммы) с последовательным углублением уровня, пока не получим
алгоритмы, состоящие из простых команд.
(читать далее...)
стр. 164 165 166
5.3. Рекурсивные методы
Суть рекурсивных методов — сведение задачи к самой
себе. Вы уже знаете, что как в Паскале, так и в Си существует возможность
рекурсивного определения функций и процедур. Эта возможность представляет собой
способ программной реализации рекурсивных алгоритмов. (читать далее...)
стр. 167 168
5.4. Методы перебора в задачах поиска
В данном разделе мы рассмотрим некоторые задачи,
связанные с проблемой поиска информации. Это огромный класс задач, достаточно
подробно описанный в классической литературе по программированию (см., (читать далее...)
стр. 169 170 171 172
5.5. Эвристические методы
Под эвристическими понимаются такие методы,
правильность которых строго не доказывается. Они выглядят правдоподобными; кажется,
что в большинстве случаев они должны давать верные решения. На уровне
экспертной оценки алгоритма часто не удается придумать контрпример,
доказывающий ошибочность или неуниверсальность метода. (читать далее...)
стр. 173
5.6. Сложность алгоритмов
Традиционно принято оценивать степень сложности
алгоритма по объему используемых им основных ресурсов компьютера: процессорного
времени и оперативной памяти. В связи с этим вводятся такие понятия, как
временная сложность алгоритма и объемная сложность алгоритма.
(читать далее...)
стр. 174 175
5.7. Методы сортировки данных
Существует традиционное деление алгоритмов на
численные и нечисленные. Численные алгоритмы предназначены для математических
расчетов: вычисления по формулам, решения уравнений, статистической обработки
данных и т.п (читать далее...)
стр. 176 177 178
ГЛАВА 6. ЗАДАЧИ ПО ПРОГРАММИРОВАНИЮ
6.1. Задачи по теме «Линейные программы»
В этой главе представлена большая подборка задач,
которые могут быть использованы для организации практических занятий по
программированию как на Паскале, так и на Си++.
Задачи систематизированы по конструкциям языка,
охватывают 17 тем и сгруппированы в разделы. (читать далее...)
стр. 179 180 181 182 183
6.2. Задачи по теме «Развилка»
6.2.1. Текстовые задачи
А
1. Даны три действительных числа. Возвести в квадрат
те из них, значения которых неотрицательны, и в четвертую степень —
отрицательные.
2. Даны две точки А(х1, у1) и В(х2, у2). (читать далее...)
стр. 184 185 186 187
6.3. Задачи по теме «Оператор выбора»
1. Написать программу, которая по номеру дня недели
(целому числу от 1 до 7) выдает в качестве результата количество уроков в вашем
классе в этот день.
2. Написать программу, позволяющую по последней цифре
числа определить последнюю цифру его квадрата.
(читать далее...)
стр. 188 189
6.4. Задачи по теме «Циклы»
6.4.1. Цикл с параметром
1. Имеется серия измерений элементов треугольника.
Группы элементов пронумерованы. В серии в произвольном порядке могут
встречаться такие группы элементов треугольника:
1) основание и высота;
(читать далее...)
стр. 190 191 192
6.5. Задачи по теме «Целочисленная арифметика»
А
1. Дано натуральное число п. Найти сумму первой и последней цифры этого числа.
2. Дано натуральное число п. Переставить местами первую и последнюю цифры этого числа.
3. Даны два натуральных числа т и п
(т ≤ (читать далее...)
стр. 193 194 195 196 197
6.6. Задачи по теме «Подпрограммы»
6.6.1. Нерекурсивные процедуры и функции
А
1. Треугольник задан координатами своих вершин.
Составить программу для вычисления его площади.
2. Составить программу для нахождения наибольшего
общего делителя и наименьшего общего кратного двух натуральных чисел .
(читать далее...)
стр. 198 199 200 201
6.7. Задачи по теме «Одномерные массивы»
А
1. В массив A[N] занесены натуральные числа. Найти сумму
тех элементов, которые кратны данному К.
2. В целочисленной последовательности есть
нулевые элементы. Создать массив из номеров этих элементов.
(читать далее...)
стр. 202 203 204 205 206 207 208
6.8. Задачи по теме «Двумерные массивы»
6.8.1. Задачи на формирование массивов
В задачах 1—12 сформировать квадратную матрицу порядка
n
по заданному образцу:
13. Построить квадратную матрицу порядка 2n:
14. (читать далее...)
стр. 209 210 211 212 213
6.9. Задачи по теме «Работа со строками»
1. Дана строка, заканчивающаяся точкой. Подсчитать,
сколько слов в строке.
2. Дана строка, содержащая английский текст. Найти
количество слов, начинающихся с буквы b.
3. Дана строка. Подсчитать, сколько в ней букв r, k, t.
(читать далее...)
стр. 214 215 216 217
6.10. Задачи на «длинную арифметику»
1. Составить программу для сравнения двух n-значных чисел (п > 20).
2. Составить программу, суммирующую два натуральных n-значных числа, где п > 20.
3. Составить программу для вычисления степеней чисел
вида аn, если а > (читать далее...)
стр. 218 219
6.11. Задачи по теме «Множества»
1. Известны сорта роз, выращиваемых тремя цветоводами:
«Анжелика», «Виктория», «Гагарин», «Ave Maria», «Катарина», «Юбилейная». Определить те сорта,
которые имеются у каждого из цветоводов, которые есть хотя бы у одного из
цветоводов, которых нет ни у одного из цветоводов.
(читать далее...)
стр. 220 221
6.12. Задачи по теме «Записи (структуры)»
1. Распечатать список учеников, фамилии которых
начинаются на букву В, с
указанием даты их рождения.
2. Из данного списка спортсменов распечатать сведения
о тех из них, кто занимается плаванием. (читать далее...)
стр. 222 223 224
6.13. Задачи по теме «Файлы»
6.13.1. Типизированные файлы целых чисел
1. Заполнить файл последовательного доступа f
целыми числами, полученными с помощью генератора случайных чисел. Получить в
файле g те компоненты файла f, которые являются четными.
(читать далее...)
стр. 225 226 227 228
6.14. Задачи по теме «Модули»
I. Реализовать в виде модуля набор подпрограмм для
выполнения следующих операций над комплексными числами:
1) сложения;
2) вычитания;
3) умножения;
4) деления;
5) модуля комплексного числа;
(читать далее...)
стр. 229 230 231
6.15. Задачи по теме «Динамические структуры
данных»
1. Составить программу, которая вставляет в список L новый элемент F за каждым вхождением элемента Е.
2. Составить программу, которая вставляет в список L новый элемент F перед первым вхождением элемента Е, если Е
входит в L.
(читать далее...)
стр. 232 233 234
6.16. Задачи по теме «Графика»
Построить чертежи к следующим задачам.
1. В треугольной пирамиде построить сечение,
параллельное основанию.
2. В треугольной пирамиде построить сечение,
проходящее через боковое ребро и медиану основания.
(читать далее...)
стр. 235 236
6.17. Задачи по теме «Объектно-ориентированное
программирование»
1. Построить систему классов для описания плоских
геометрических фигур: круга, квадрата, прямоугольника. Предусмотреть методы для
создания объектов, перемещения на плоскости, изменения размеров и поворота на
заданный угол.
(читать далее...)
стр. 237 238 239 240 241
6.18. Большие проектные задания
1.
Волчий остров
(Ван Тассел Д. Стиль, разработка, эффективность, отладка и испытание программ.
— М.: Мир, 1981)
Волчий остров размером 20х20 заселен дикими кроликами,
волками и волчицами. (читать далее...)
стр. 242 243 244 245
ПРИЛОЖЕНИЯ
Приложение 1 Турбо Паскаль. Модуль CRT
Таблица П1.1. Константы режимов работы
Таблица П1.2. Константы цветов
Таблица П1.3. Процедуры и функции
(читать далее...)
стр. 246
Приложение 2. Турбо Паскаль. Модуль
GRAPH
Таблица П2.1. Коды драйверов графических
устройств
Таблица П2.2. Константы графических режимов
Примечание. Палитра С0 включает в себя следующие
цвета: светло-зеленый, розовый и желтый; (читать далее...)
стр. 247
Приложение 3. Си++. Константы
предельных значений
Таблица П3.1. Предельные значения для
целостных типов — файл limits.h
Таблица П3.2. Константы для вещественных
типов — файл float.h
(читать далее...)
стр. 248
Приложение 4. Библиотека функций языка Си/Си++
Таблица П4.1. Математические функции — файл math.h
Таблица П4.2. Функция проверки и
преобразования символов — файл ctype.h
Таблица П4.3. Функции ввода-вывода для
стандартных файлов — файл stdio.h (читать далее...)
стр. 249
Графическая библиотека в
C++
Таблица П4.7. Функции для управления графической
системой
Таблица П4.8. Функции для получения
изображения на экране
Таблица П4.9. Функции для получения
параметров изображения
(читать далее...)
стр. 250
СПИСОК ЛИТЕРАТУРЫ
1. Абрамов В.Г., Трифонов Н.П., Трифонова Г.Н. Введение в язык Паскаль. — М.: Наука, 1988. 2. Березин Б.И., Березин С.Б. Начальный курс С и C++. — М.: ДИАЛОГ-МИФИ, 1996. 3. Бондарев В.М (читать далее...)стр. 251 252