Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Praktikum-S__wofp.pdf
Скачиваний:
166
Добавлен:
11.02.2015
Размер:
22.69 Mб
Скачать

СОДЕРЖАНИЕ

 

I. ПРОЦЕДУРНОЕ ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ С++

......................7

Лабораторная работа № 1

 

Линейные алгоритмы...............................................................................................

7

Лабораторная работа № 2

 

Циклы и ветвления.................................................................................................

20

Лабораторная работа № 3

 

Одномерные массивы и строки.............................................................................

33

Лабораторная работа № 4

 

Двумерные массивы и матрицы............................................................................

46

Лабораторная работа № 5

 

Функции..................................................................................................................

62

Лабораторная работа № 6

 

Определение типов данных. Перечисляемый тип. Структуры..........................

82

II. ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ

 

ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ С++......................................................

110

Лабораторная работа № 1

 

Понятие класса. Инкапсуляция...........................................................................

110

Лабораторная работа № 2

 

Организация и обработка списков......................................................................

139

Лабораторная работа № 3

 

Наследование. Полиморфизм..............................................................................

165

Лабораторная работа № 4

 

Перегрузка функций и операций........................................................................

200

Лабораторная работа № 5

 

Файловые функции. Работа с файлами..............................................................

225

III. ВИЗУАЛЬНОЕ ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ С++...................

244

Лабораторная работа № 1

 

Современный С++................................................................................................

244

Лабораторная работа № 2

 

Стандартная библиотека шаблонов С++............................................................

274

Лабораторная работа № 3

 

Визуальная библиотека VCL...............................................................................

289

3

Лабораторная работа № 4

 

Графические средства..........................................................................................

308

Лабораторная работа № 5

 

Доступ к базам данных........................................................................................

338

Лабораторная работа № 6

 

Модульное программирование...........................................................................

353

IV. ОФОРМЛЕНИЕ ОТЧЁТОВ..........................................................................

375

Структура отчёта по лабораторной работе........................................................

375

Требования к структурным элементам отчёта..................................................

375

Правила оформления отчёта...............................................................................

378

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

383

4

ВВЕДЕНИЕ

Постигайте основу информатики: алгоритмы, архитектуру машин, структуры данных. Не занимайтесь бездумным копированием фрагментов кода из чужих программ. Понимайте, что вы делаете, как и почему это работает. Пишите как можно более чистый и правильный код. Работайте над тем, чтобы программирование для вас из "хакерства" превратилось в ремесло. Учитесь у классиков и читайте серьёзные книги; брошюрки типа "программирование на C++ за семь дней для идиотов" годятся только для идиотов.

Б. Страуструп

Предлагаемый в учебном пособии перечень заданий предназначен для обучения основам промышленного подхода к построению программных продуктов на базе современных моделей данных и алгоритмов. В основу курса положено изучение языка программирования C++, отличительными особенностями которого являются мультипарадигменность, высокая выразительность и широкая популярность. Предполагается, что освоение всего представленного курса даёт обучающемуся достаточный объём знаний и навыков как для решения базовых текущих задач предметной области, так и для дальнейшего совершенствования в области информатики.

Освоение курса предполагает базовые знания в области прикладной математики. Целевой аудиторией учебного пособия являются студенты и аспиранты соответствующих специальностей, а также профессорскопреподавательский состав. Пособие может быть полезно для лиц, занимающихся самообразованием.

Предполагается последовательное освоение учебных заданий курса.

5

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

Серьёзное внимание при разработке настоящего пособия уделялось представлению наиболее характерных для реальной работы программиста типовых задач, таких как сортировка последовательностей или работа с файлами.

Курс не накладывает каких-либо жёстких ограничений на состав и характер используемых источников, литературы, инструментальных средств. Однако программирование — это в первую очередь дисциплина; обучающийся не должен бездумно повторять в своих программах готовые фрагменты кода, но обязан иметь чёткое представление об используемой им методологии.

6

I. ПРОЦЕДУРНОЕ ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ С++

Лабораторная работа № 1 Линейные алгоритмы

Лабораторная работа посвящена основам составления алгоритмов и базовым понятиям языка программирования С++. Затрагиваются такие понятия как программа, переменная, тип данных, операции консольного ввода и вывода, простейшие математические операции.

7

ОБРАЗЕЦ ОТЧЁТА ПО ЛАБОРАТОРНОЙ РАБОТЕ

8

9

10

11

12

13

14

15

Задачи

1.С горы начинают скатываться сани с ускорением 0,5 м/с2. Какой путь проходят сани, если скорость их в конце горы 36 км/ч.

2.Даны два числа. Найти среднее арифметическое их квадратов и среднее арифметическое их модулей.

3.Дана длина ребра куба. Найти площадь грани, площадь полной поверхности и объём этого куба.

4.Парашютист раскрыл свой парашют на высоте 1 км от поверхности Земли и далее двигался прямолинейно со скоростью 7 м/с по вертикали вниз. На каком расстоянии от поверхности Земли он находился через 1 минуту после раскрытия парашюта.

5.Найти длину окружности и площадь круга заданного радиуса r.

6.Найти площадь кольца, внутренний радиус которого равен r1, а внешний радиус равен r2 (r1 < r2).

7.Лодка движется перпендикулярно берегу реки. Её скорость относительно воды равна 2 м/с. Определите время движения лодки к другому берегу, если ширина реки 80 м, а скорость течения 1,5 м/с.

8.Дана длина окружности. Найти площадь круга, ограниченного этой окружностью.

9.Дана сторона равностороннего треугольника. Найти площадь этого треугольника, радиусы вписанной и описанной окружностей.

10.Найти периметр и площадь равнобедренной трапеции с основаниями a и b (a > b) и углом β при большем основании (угол задан в градусах).

11.Какую скорость приобретает после прохождения пути 200 м электропоезд, начинающий равноускоренное прямолинейное движение с ускорением 1,25 м/с2.

12.Найти расстояние между двумя точками с заданными координатами (x1, y1) и (x2, y2).

13.Найти решение системы уравнений вида: a1x + b1y = c1,

16

a2x + b2y = c2

заданной своими коэффициентами a1, b1, c1, a2, b2, c2, если известно, что данная система имеет единственное решение.

14.Скорость первого автомобиля v1 км/ч, второго — v2 км/ч, расстояние между ними s км. Определить расстояние между ними через t часов, если автомобили первоначально движутся навстречу друг другу.

15.Человек переплывает реку шириной 100 м по прямой, перпендикулярной её берегам. Скорость пловца относительно берега 0,3 м/с, скорость течения 0,4 м/с. Какое расстояние преодолевает пловец относительно воды.

16.Скорость лодки в стоячей воде v км/ч, скорость течения реки u км/ч (u < v). Время движения лодки по озеру t1 ч, а по реке (против течения)

t2 ч. Определить путь s, пройденный лодкой.

17.Найти длину грани a правильного 12-угольника вписанного в

окружность радиусом r ( r=

a

 

).

2sin /24

 

 

 

18.После удара о поверхность Земли мяч движется вертикально вверх со скоростью 15 м/с. Найдите координату мяча над поверхностью Земли через 1 секунду и через 2 секунды после начала движения.

19.Определить число сторон правильного n-угольника со стороной a,

описанного вокруг окружности радиусом r ( r=

 

a

).

2tg

/2 n

 

 

20.Определить центральный угол δ , соответствующий длине дуги l

окружности радиусом r ( l= 2 r ).

21.Прямоугольный треугольник задан координатами вершин (x1, y1), (x2, y2), (x3, y3). Найти значение синуса острого угла.

22.Прямоугольный треугольник задан координатами вершин (x1, y1), (x2, y2), (x3, y3). Найти значение тангенса острого угла.

23.Прямоугольный треугольник задан координатами вершин (x1, y1), (x2, y2),

17

(x3, y3). Найти значение косинуса острого угла.

24.Дана сторона a и два угла треугольника, например β и γ . Найти третий угол и остальные две стороны. Использовать теорему о сумме углов треугольников и теорему синусов.

25.Даны две стороны, например a и b, и угол γ между ними. Найти остальные два угла и третью сторону. Для решения использовать теорему косинусов и/или теорему синусов.

26.Найти угол параллелограмма α , если известны его стороны a и b , а также его площадь S, если формула вычисления площади: S=a b sin α .

27.Вычислить значения функций:

y=

ex1 ex2

и z=

a

x1

b

x2

 

,

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

c

 

 

 

 

 

 

 

 

 

b

 

 

 

 

 

 

b

 

 

 

где

x1=

b2

4 ac

, x2=

b24 ac

.

 

 

 

 

 

 

 

 

 

 

 

2a

 

 

 

 

 

 

2a

 

28.Вычислить площадь кругового сегмента, не равного полукругу по

формуле: S= r2 S ,

 

 

 

 

 

 

360

 

 

где r – радиус круга; - градусная мера центрального угла ( <1800),

который содержит дугу этого кругового сегмента;

S

- площадь

треугольника с вершинами в центре круга и в концах радиусов,

ограничивающих соответствующий сектор.

 

 

29. Вычислить

координаты точки, делящей отрезок a1 a2

в

отношении

n1 : n2 , по формулам:

 

 

x= x1 x2

,

 

 

 

1

 

 

 

 

 

y= y1 y2

,

 

 

 

1

 

 

 

 

где =n1 . n2

30. Вычислить координаты центра тяжести трёх материальных точек с массами m1 , m2 , m3 и координатами x1 , y1 , x2 , y2 , x3 , y3 по

18

формулам:

xc= m1 x1 m2 x2 m3 x3 / m1 m2 m3 ,

xc= m1 y1 m2 y2 m3 y3 / m1 m2 m3 .

31.Вычислить медианы треугольника со сторонами a, b, c по формулам:

ma=0,5 2b2 2c2a2 ;

mb=0,5 2a2 2c2b2 ;

mc=0,5 2a2 2b2c2 .

32.Вычислить значение функции y=aeax sin ωx при x= π /2ϕ /ω .

33. Вычислить площадь поверхности S=π R r l π R2 π r2 и объём

V = 13 π R2 r2 Rr h усечённого конуса.

34.Вычислить высоты треугольника со сторонами a, b, c по формулам:

ha= 2/a p pa pb pc ;

hb= 2/b p pa pb pc ;

hc = 2/c p pa pb pc ,

где p= a b c /2 .

35.Определить высоту треугольника, если его площадь равна S, а основание больше высоты на величину a.

19