Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторный практикум

.pdf
Скачиваний:
50
Добавлен:
15.06.2021
Размер:
3 Mб
Скачать

Ниже приведена краткая запись последовательности действий при создании консольного приложения.

1.Запуск Visual Studio 2015: «Пуск->Программы->Visual Studio

2015».

2.Создание проекта: «Файл->Создать проект->Project->Win32->

Консольное приложение Win32->Имя: имя файла-> OK».

3.Установка опции простого проекта: «Далее->Пустой проект-

>Готово».

4.Создание файла с кодом программы: «Обозреватель решений->

правая кнопка мыши->Добавить->Создать элемент->Файл С++-> Имя: имя файла -> Добавить».

5.Ввод текста программы.

6.Построение проекта: «Сборка->Собрать решение или нажатием клавиши F7».

7.Выполнение приложения «Отладка->Запуск без отладки или нажатием комбинации клавиш Ctrl+F5».

Порядок выполнения работы

1.Разработать и выполнить программу в соответствии с вариантом задания.

2.Показать результаты работы преподавателю.

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

4.Подготовить отчет.

Требования к отчету

Отчет должен содержать:

1)наименование лабораторной работы;

2)формулировку задания;

3)текст программы для варианта задания;

4)результат выполнения программы (скриншот).

23

Варианты заданий

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

Задание

п/п

 

1Разработать программу для вычисления площади треугольника по введенным сторонам a и b и углу С между ними.

S = 12 absinC

2Разработать программу для вычисления расстояния от точки

М (x1 ,y1) до прямой ax + by + c = 0.

L | ax1 by1 c | a2 b2

3Разработать программу для вычисления объема пирамиды по введенным площади основания S0 и высоте H.

 

V

1

HS0

 

3

 

 

 

 

 

 

 

4

Разработать программу для вычисления полной энергии реляти-

 

вистской частицы:

 

 

 

 

 

E

 

 

mc2

 

 

 

 

 

,

 

 

 

 

 

 

 

 

 

 

 

1 (v / c)2

где m - масса покоя частицы; c - скорость света в вакууме; v - скорость движения

5Разработать программу для вычисления площади треугольника по введенным длине стороны a и высоте ha.

S 12 aha

6Разработать программу для вычисления объема правильного тетраэдра по введенной длине грани a.

V a3 2 12

24

Продолжение

Задание

п/п

 

7Разработать программу для вычисления площади треугольника по введенным длинам сторон a, b, c (формула Герона).

 

 

 

 

1

 

S

p( p a)( p b)( p c) ,

p

(a b c)

2

 

 

 

 

 

8Разработать программу для вычисления объема усеченной пирамиды по введенным площадям оснований S, s и высоте H.

V 13 H (S S s s)

9Разработать программу для вычисления площади прямоугольного треугольника по введенным длинам катетов a и b .

S 12 ab

10Разработать программу для вычисления объема октаэдра по введенной длине грани a.

V a3 2 3

11Разработать программу для вычисления кинетической энергии релятивистской частицы.

T mc 2 (

 

1

 

1) ,

 

 

 

 

 

 

1 (v / c)2

где m - масса покоя частицы; c - скорость света в вакууме; v - скорость движения

12Разработать программу для вычисления площади правильного треугольника.

S a2 3 4

13Разработать программу для вычисления объема икосаэдра по введенной длине грани a.

V 125 a3 (3 5)

25

Продолжение

Задание

п/п

 

14Разработать программу для вычисления площади параллелограмма по сторонам a и b и углу α между ними.

S = ab sin

15Разработать программу для вычисления объема додекаэдра по введенной длине грани a.

 

a3

 

 

 

V

(15 7 5)

 

4

 

 

 

16Разработать программу для вычисления площади ромба по введенным длинам диагоналей d1 и d2.

S 12 d1d2

17Разработать программу для вычисления объема цилиндра по введенным радиусу основания R и высоте Н.

V πR2 H

18Разработать программу вычисления объема конуса по введенным радиусу основания R и высоте Н.

V 13 πR2 H

19Разработать программу для вычисления площади поверхности сферы и объема шара радиусом R.

S R2 , V R3

3

20Разработать программу для вычисления объема шарового сектора по введенным радиусу R и высоте H.

V 23 πR2 H

21Разработать программу для вычисления площади полной поверхности шарового сектора по введенным радиусу R и высоте

H.

S πR(2H 2RH H 2 )

26

Окончание

Задание

п/п

 

22Разработать программу для вычисления расстояния между двумя точками: (x1, y1) и (x2, y2).

L (x2 x1)2 ( y2 y1)2

23Разработать программу для вычисления объема усеченного конуса по введенным высоте H и радиусам оснований R и r .

V 13 πH (R2 rR r 2 )

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

S 6R2 2 sin 26π

25 Разработать программу для вычисления силы притяжения F между телами массы M1 и M2, находящимися на расстоянии R

друг от друга, если F β M1 M 2 , где гравитационная посто-

R2

янная

β = 6,673·10-8 см2/(г с2)

27

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

Программирование ветвящихся алгоритмов

Цель работы: изучение работы операторов ветвления при программировании ветвящихся алгоритмов; получение практических навыков программирования ветвящихся алгоритмов.

Теоретические сведения

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

Операторы ветвления. Оператор ветвления if. Реализовать ветвление на языке С++ можно с использованием оператора if.

Общий вид оператора:

if (логическое выражение) оператор1; else оператор2;

Можно использовать сокращенную форму записи:

if (логическое выражение) оператор1;

Работает оператор следующим образом. Если логическое выражение истинно, то будет выполнен оператор1, в противном случае, т.е. если логическое выражение ложно, выполнится оператор2, стоящий после ключевого слова else.

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

Если необходимо выполнение нескольких операторов при истинном или ложном значении логического выражения, то эти операторы заключаются в операторные скобки { } или между ними ставится запятая.

Например:

{ cout << "Верхняя формула" << endl;

28

y = sqrt(pow(tan(log(a*b*b)), 2) + a*a*pow(sin(exp(2 * x + 5)), 2));}

или

cout << "Верхняя формула" << endl,

y = sqrt(pow(tan(log(a*b*b)), 2) + a*a*pow(sin(exp(2 * x + 5)), 2));

Примеры программирования с использованием оператора if

Пример 1. Рассчитать заработную плату рабочего. Если он отработал более 40 ч., то увеличить в 1,5 раза оплату за каждый час перевыполнения.

Решение. Условие задачи можно записать следующим образом:

ЗП почасоваяоплата * количество часов,

если количество часов 40

 

1,5* (почасоваяоплата *

ЗП почасоваяоплата * 40

 

 

 

 

(количество часов 40)), иначе

 

где ЗП – заработная плата. Текст программы:

#include <iostream> #include <math.h> using namespace std; int main()

{

setlocale(LC_CTYPE,"Russian");

float

zp,

//заработная

плата

 

hp;

// почасовая

оплата

int

kh;

// количество часов

cout<<"Почасовая оплата>";cin>>hp; cout<<"Количество часов>";cin>>kh;

if(kh>40) zp=hp*40+1.5*hp*(kh-40); else zp=hp*kh; cout<<"Зарплата="<<zp<<endl; return 0;

}

По я сн е н ия к пр о гр ам м е . В программе использована полная форма записи оператора if. Если количество часов kh больше 40, то заработная плата zp будет вычислена по нижней формуле, в противном случае - по верхней формуле.

29

Результаты выполнения программы при различных данных представлены на рис. 1, а, б.

а

б

Рис.1. Результат выполнения программы при вычислении по нижней формуле (а) и по верхней формуле (б)

Пример 2. Определить состояние здоровья. Если температура тела < 37,1 - нормальная, если температура > 38 - жар, в других случаях - повышенная.

Решение. Запишем условие задачи в виде системы неравенств.

t 37,1

нормальная ,

 

38 повышенная,

37,1 t

t 38

жар.

 

 

Схема алгоритма решения данной задачи представлена на рис.2.

30

Пуск

 

 

Ввод t

 

 

 

Нет

 

t < 37,1

 

 

Да

 

 

Нормальная

 

Нет

 

t ≥ 38

 

 

Да

Жар

Повышенная

Останов

Рис.2. Схема алгоритма к примеру 2

Текст программы:

#include <iostream> #include <math.h>

using namespace std; int main()

{

setlocale(LC_CTYPE,"Russian"); double t;

cout<<"Температура>"; cin>>t;

if(t<37.1) cout<<"Нормальная"; else if(t>=38) cout<<"Жар";

else cout<<"Повышенная"; cout<<endl;

return 0;

}

31

По я сн е н ия к пр о гр ам м е . Здесь использовано два оператора if, причем один «вложен» в другой. Если значение переменной t меньше, чем 37,1, то на экран будет выведено сообщение «Нормальная» (рис.3). Если значение t больше или равно 37,1, то будет проведено еще одно сравнение, и если значение t окажется больше 38, то на экране появится сообщение «Жар», в противном случае, т.е. если значение t находится в интервале от 37,1 до 38, то будет выведено сообщение «Повышенная».

Рис.3. Результат выполнения программы при значении t < 37,1

Пример 3. Вычислить значение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

tg

2

ln ab

2

a

2

sin

2

e

2x 5

, при x ab,

 

 

 

 

 

 

 

 

 

Y

 

 

 

ax2

b4

 

arctg a b

 

 

tg2 ln

 

, при x ab.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Здесь условие задачи уже формализовано.

Текст программы:

 

 

 

 

 

 

 

 

 

 

 

 

#include <iostream>

 

 

 

 

 

 

 

 

 

#include <math.h>

 

 

 

 

 

 

 

 

 

 

using

namespace std;

 

 

 

 

 

 

int main()

{

setlocale(LC_CTYPE,"Russian"); doublea,b,x,y;

cout<<"a>";cin>>a; cout<<"b>";cin>>b; cout<<"x>"; cin>>x;

if(x<a*b) y = sqrt(pow(tan(log(a*b*b)),2) + a* a* pow(sin(exp(2*x+5)),2));

else y=pow(tan(log(fabs(a*x*x+pow(b,4)))),2) + atan(a+b);

32