Смекни!
smekni.com

Основы программирования на языке Си (стр. 1 из 27)

А.А. Богуславский, С.М. Соколов

Основы программирования

на языкеСи++

Часть 1. Введение в программирование

на языке Си++

(длястудентовфизико-математическихфакультетов

педагогических институтов)

Коломна, 2002

2

ББК 32.97я73 Рекомендовано кизданию

УДК 681.142.2(075.8) редакционно-издательскимсоветом

Б 73 Коломенскогогосударственного

педагогического института

Богуславский А.А., СоколовС.М.

Б73 ОсновыпрограммированиянаязыкеСи++: Длястудентовфизико-

математических факультетовпедагогическихинститутов. –Коломна: КГПИ,

2002. – 490 с.

Пособие предназначенодляобучениястудентов, обладающих навыкамиполь-

зовательской работынаперсональномкомпьютере, основнымпонятиямиметодам

современного практическогопрограммирования. Предметомизучениякурсаявляется

объектно-ориентированноепрограммированиенаязыкеСи++ всредесовременных

32-хразрядныхоперационныхсистемсемейства Windows. Программакурсаразбита

на 4 части: (1) ВведениевпрограммированиенаязыкеСи++; (2) Основыпрограмми-

рования трехмернойграфики; (3) Объектно-ориентированное программированиена

языке Си++ и (4) Программированиедля Microsoft Windows сиспользованием Visual

C++ ибиблиотекиклассов MFC.

После изучениякурсастудентполучаетдостаточнополноепредставлениео

содержании современногообъектно-ориентированногопрограммирования, обуст-

ройстве современныхоперационныхсистем Win32 иособытийно-управляемомпро-

граммировании. Напрактическихзанятияхвырабатываютсянавыкипрограммирова-

ния наСи++ винтегрированной средеразработки Microsoft Visual C++ 5.0.

Рецензенты:

И.П. Гиривенко–к.т.н., доцент, зав. кафедройинформатикиивычислительнойтех-

ники Рязанскогогосударственногопедагогическогоуниверситета

им. С.А. Есенина.

А.А. Шамов–к.х.н., доценткафедрытеоретическойфизикиКоломенскогогосу-

дарственного педагогическогоинститута.

3

СОДЕРЖАНИЕ

КРАТКОЕ ОПИСАНИЕ УЧЕБНОГО КУРСА "ОСНОВЫ ПРОГРАММИРОВАНИЯ

НА ЯЗЫКЕ СИ++" ..........................................................................................................................5

ЛЕКЦИЯ 1. ОСНОВЫ СИ++.........................................................................................................7

1. НЕСКОЛЬКО ЗАМЕЧАНИЙОНАЗНАЧЕНИИПРОГРАММИРОВАНИЯ................................................7

2. ПРОИСХОЖДЕНИЕ ЯЗЫКАСИ++...................................................................................................9

3. СТАНДАРТ ANSI СИ++ ................................................................................................................9

4. СРЕДА РАЗРАБОТКИMICROSOFT DEVELOPER STUDIO VISUAL С++...........................................10

5. ПРИМЕР ПРОГРАММЫНАСИ++ .................................................................................................10

6. ВЫПОЛНЕНИЕ ВВОДА/ВЫВОДА ДАННЫХИПРИСВАИВАНИЕЗНАЧЕНИЙ....................................12

7. УПРАВЛЕНИЕ ПОРЯДКОМВЫПОЛНЕНИЯКОМАНДСПОМОЩЬЮОПЕРАТОРА IF ........................13

8. ОФОРМЛЕНИЕ ИСХОДНОГОТЕКСТА...........................................................................................15

9. СВОДКА РЕЗУЛЬТАТОВ...............................................................................................................15

10. УПРАЖНЕНИЯ ...........................................................................................................................15

ЛЕКЦИЯ 2. ПЕРЕМЕННЫЕ, ТИПЫ ДАННЫХ И ВЫРАЖЕНИЯ....................................18

1. ИДЕНТИФИКАТОРЫ ....................................................................................................................18

2. ТИПЫ ДАННЫХ...........................................................................................................................18

3. ВЫВОД ВЕЩЕСТВЕННЫХЧИСЕЛНАЭКРАН................................................................................22

4. ОПИСАНИЯ, КОНСТАНТЫ ИПЕРЕЧИСЛЕНИЯ..............................................................................24

5. ПРИСВАИВАНИЕ ИВЫРАЖЕНИЯ.................................................................................................26

6. СВОДКА РЕЗУЛЬТАТОВ...............................................................................................................28

7. УПРАЖНЕНИЯ .............................................................................................................................28

8. ПРИЛОЖЕНИЯ .............................................................................................................................29

ЛЕКЦИЯ 3. ФУНКЦИИ И ПРОЦЕДУРНАЯ АБСТРАКЦИЯ .............................................31

1. НАЗНАЧЕНИЕ ПОДПРОГРАММ.....................................................................................................31

2. ОПРЕДЕЛЕНИЕ НОВЫХФУНКЦИЙ...............................................................................................31

3. СПОСОБЫ ПЕРЕДАЧИПАРАМЕТРОВВНУТРЬФУНКЦИЙ..............................................................33

4. ПОЛИМОРФИЗМ ИПЕРЕГРУЗКАФУНКЦИЙ..................................................................................35

5. ПРОЦЕДУРНАЯ АБСТРАКЦИЯИ"ХОРОШИЙ" СТИЛЬ ПРОГРАММИРОВАНИЯ...............................36

6. МОДУЛЬНОЕ ПРОГРАММИРОВАНИЕ...........................................................................................36

7. СВОДКА РЕЗУЛЬТАТОВ...............................................................................................................38

8. УПРАЖНЕНИЯ .............................................................................................................................39

ЛЕКЦИЯ 4. ТЕКСТОВЫЕ ФАЙЛЫ И ПОТОКИ ВВОДА/ВЫВОДА ................................41

1. НАЗНАЧЕНИЕ ФАЙЛОВ................................................................................................................41

2. ПОТОКИ ВВОДА/ВЫВОДА ...........................................................................................................41

3. ПРОВЕРКА ОШИБОКВЫПОЛНЕНИЯФАЙЛОВЫХОПЕРАЦИЙ.......................................................43

4. СИМВОЛЬНЫЙ ВВОД/ВЫВОД ......................................................................................................44

5. ПРОВЕРКА ДОСТИЖЕНИЯКОНЦАФАЙЛАПРИОПЕРАЦИЯХВВОДА............................................45

6. ПЕРЕДАЧА ПОТОКОВ ФУНКЦИЯМВКАЧЕСТВЕПАРАМЕТРОВ.....................................................47

7. ОПЕРАТОРЫ ВВОДА/ВЫВОДА ">>" И "<<" .................................................................................48

8. СВОДКА РЕЗУЛЬТАТОВ...............................................................................................................50

9. УПРАЖНЕНИЯ .............................................................................................................................50

ЛЕКЦИЯ 5. ОПЕРАТОРЫ ВЕТВЛЕНИЯ И ЦИКЛЫ ...........................................................52

1. ЛОГИЧЕСКИЕ ЗНАЧЕНИЯ, ВЫРАЖЕНИЯ ИФУНКЦИИ...................................................................52

2. ЦИКЛЫ "FOR", "WHILE" И "DO...WHILE" .....................................................................................53

3. МНОЖЕСТВЕННОЕ ВЕТВЛЕНИЕИОПЕРАТОР"SWITCH" ..............................................................55

4. БЛОКИ ИОБЛАСТЬВИДИМОСТИПЕРЕМЕННЫХ..........................................................................56

4

5. ЗАМЕЧАНИЕ ОВЛОЖЕННЫХЦИКЛАХ.........................................................................................59

6. СВОДКА РЕЗУЛЬТАТОВ...............................................................................................................59

7. УПРАЖНЕНИЯ .............................................................................................................................60

ЛЕКЦИЯ 6. МАССИВЫ И СИМВОЛЬНЫЕ СТРОКИ.........................................................63

1. НАЗНАЧЕНИЕ МАССИВОВ...........................................................................................................63

2. ПЕРЕДАЧА МАССИВОВВКАЧЕСТВЕПАРАМЕТРОВФУНКЦИЙ....................................................66

3. СОРТИРОВКА МАССИВОВ...........................................................................................................68

4. ДВУМЕРНЫЕ МАССИВЫ..............................................................................................................69

5. СИМВОЛЬНЫЕ СТРОКИ...............................................................................................................70

6. СВОДКА РЕЗУЛЬТАТОВ...............................................................................................................73

7. УПРАЖНЕНИЯ .............................................................................................................................73

ЛЕКЦИЯ 7. УКАЗАТЕЛИ............................................................................................................75

1. НАЗНАЧЕНИЕ УКАЗАТЕЛЕЙ........................................................................................................75

2. ПЕРЕМЕННЫЕ ТИПА"МАССИВ". АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИСУКАЗАТЕЛЯМИ....................79

3. ДИНАМИЧЕСКИЕ МАССИВЫ.......................................................................................................81

4. АВТОМАТИЧЕСКИЕ ИДИНАМИЧЕСКИЕПЕРЕМЕННЫЕ................................................................82

5. СВЯЗНЫЕ СПИСКИ......................................................................................................................82

6. СВОДКА РЕЗУЛЬТАТОВ...............................................................................................................86

7. УПРАЖНЕНИЯ .............................................................................................................................87

ЛЕКЦИЯ 8. РЕКУРСИЯ...............................................................................................................89

1. ПОНЯТИЕ РЕКУРСИИ...................................................................................................................89

2. ПРОСТОЙ ПРИМЕРРЕКУРСИИ.....................................................................................................89

3. КАК ВЫПОЛНЯЕТСЯРЕКУРСИВНЫЙВЫЗОВ................................................................................90

4. ЕЩЕ ТРИПРИМЕРАРЕКУРСИИ....................................................................................................92

5. РЕКУРСИЯ ИЦИКЛЫ....................................................................................................................93

6. РЕКУРСИЯ ВСТРУКТУРАХДАННЫХ............................................................................................94

7. РЕКУРСИВНАЯ РЕАЛИЗАЦИЯАЛГОРИТМАБЫСТРОЙСОРТИРОВКИ.............................................94

8. СВОДКА РЕЗУЛЬТАТОВ...............................................................................................................97

9. УПРАЖНЕНИЯ .............................................................................................................................97

ЛЕКЦИЯ 9. СОСТАВНЫЕ ТИПЫ ДАННЫХ.......................................................................100

1. НАЗНАЧЕНИЕ СОСТАВНЫХТИПОВДАННЫХ............................................................................100

2. ОПИСАНИЕ ИИНИЦИАЛИЗАЦИЯСТРУКТУР..............................................................................100

3. ДОСТУП ККОМПОНЕНТАМСТРУКТУРЫЧЕРЕЗУКАЗАТЕЛЬ......................................................103

4. МАССИВЫ ИСТРУКТУРЫ..........................................................................................................104

5. ПЕРЕГРУЗКА ОПЕРАТОРОВ........................................................................................................105

6. ПРИМЕНЕНИЕ СТРУКТУРДЛЯРЕАЛИЗАЦИИСТЕКА ..................................................................107

7. СВОДКА РЕЗУЛЬТАТОВ.............................................................................................................111

8. УПРАЖНЕНИЯ ...........................................................................................................................112

ПРИЛОЖЕНИЕ. КРАТКОЕ РУКОВОДСТВО ПО СРЕДЕ РАЗРАБОТКИ DEVELOPER

STUDIO VISUAL C++..................................................................................................................113

1. СОЗДАНИЕ НОВОГОПРОЕКТА...................................................................................................113

2. ДОБАВЛЕНИЕ ВПРОЕКТНОВОГОИСХОДНОГОФАЙЛА.............................................................114

3. СБОРКА ПРОЕКТА.....................................................................................................................115

4. ЗАПУСК НОВОГОПРИЛОЖЕНИЯ................................................................................................116

ЛИТЕРАТУРА.............................................................................................................................117

5

Краткое описание учебного курса "Основы программиро-

вания на языке Си++"

Развитие современныхтехнологийпрограммированияпредполагаетвладение

программистом широкимнаборомпрактическихнавыков, средикоторыходнимииз