Лабораторная работа Си++_1_ПИ

Лабораторная работа 1
С/C++: ПРОГРАММЫ ЛИНЕЙНОЙ СТРУКТУРЫ
Цель и содержание работы: Освоение процесса ввода, отладки и выполнения программ в интегрированной визуальной среде Builder C++6.0. Изучение основных математических операций и стандартных функций языка С/C++; освоение функций ввода и вывода данных, приобретение навыков составления алгоритмов и программ линейной структуры.
Теоретическое обоснование
Язык Си использует технологию структурного программирования, в основе которого лежит модульный принцип создания программ и использование базовых структур программирования. Язык С++ был разработан как объектно-ориентированное расширение языка Си и спроектирован в близком соответствии между его типами, операциями и операторами.
Интегрированная визуальная среда Builder C++ является одной из версий языка, упрощающих процедуру ввода, отладки и выполнения программ на С и С++. Среда Builder визуально реализуется в виде нескольких окон, одновременно раскрытых на экране монитора. Количество, расположение, размер и вид окон может меняться пользователем в зависимости от поставленной задачи. Меню среды Builder может иметь вид, представленный на рис. 1.1.
13 EMBED Word.Picture.8 1415Главное окно предназначено для управления процессом создания программы. Основное меню содержит все необходимые средства для управления проектом. Пиктограммы облегчают доступ к наиболее часто применяемым командам основного меню. Через меню компонент осуществляется доступ к набору стандартных сервисных программ среды, которые описывают некоторый визуальный элемент (компоненту), помещенный программистом в окно формы. Каждая компонента имеет определенный набор свойств, которые задаются Пользователем, например, заголовок окна, надпись на кнопке, стиль выводимого текста и т.п.
Окно инспектора объектов (вызывается нажатием клавиши F11) предназначено для изменения свойств выбранных компонент и состоит из двух страниц. Страница Properties (свойства) предназначена для изменения необходимых свойств компоненты, страница Events (события) – для определения реакции компоненты на то или иное событие, например, нажатие определенной клавиши или щелчок кнопкой мыши.
Окно формы представляет собой проект Windows-окна программы, в которое помещаются необходимые компоненты для решения поставленной задачи, причем при выполнении программы помещенные компоненты будут иметь тот же вид, что и на этапе проектирования.
Окно текста (имя Unit1.cpp), предназначено для написания, редактирования и просмотра текста программы. При первоначальной загрузке в окне текста программы находится текст, содержащий минимальный набор операторов для нормального функционирования пустой формы в качестве Windows-окна.
Программа в среде Builder составляется из функций, которые необходимо выполнить, если возникает определенное событие, связанное с формой, например, щелчок кнопкой мыши – событие OnClick, создание формы – OnCreate.
Для каждого обрабатываемого в форме события с помощью страницы Events инспектора объектов или двойным щелчком кнопкой мыши по выбранной компоненте в текст программы вставляется функция-обработчик, между символами { и } в которой записываются соответствующие действия. Переключение между окном формы и окном текста программы осуществляется с помощью клавиши F12.
Алгоритмы и программы линейной структуры
Алгоритм линейной структуры – это алгоритм, в котором блоки выполняются последовательно друг за другом. Программа линейной структуры реализует линейный алгоритм.
Чаще всего линейные алгоритмы используются для программирования вычислений по формулам, которые записываются в виде выражений. Выражения состоят из констант, переменных, операций, функций и круглых скобок, определяющих последовательность выполнения действий.
Организация ввода-вывода данных
Для форматного ввода-вывода данных скалярных типов и строк используются стандартные функции ввода/вывода, описанные в библиотеке stdio.h.
Для ввода используется стандартная функция scanf(), её синтаксис:
scanf (“форматная строка”, список параметров ввода);
Форматная строка заключается в кавычки и может содержать символы трех типов:
обычные символы, которые должны вводиться с клавиатуры в том же виде, в каком они содержатся в форматной строке;
спецификации преобразования, задающие формат ввода, которые начинаются с символа «%» и заканчиваются символом преобразования. Символы преобразования задают тип вводимой переменной: c’ символ; «d», «i» – десятичное целое типа int; «D», «I» – десятичное целое типа long; «e», «E» – вещественное число в экспоненциальной форме, например, 5.12E–02; «f», «g», «G» – вещественное число с плавающей точкой; «o» («O») – восьмеричное число типа int (long); «x» («X») – 16-ричное число типа int (long); «u» («U») – беззнаковое целое типа int (long); «s» – строка символов; «lf» – вещественное число удвоенной точности;
управляющие символьные константы (например, \n’ – переход к следующей строке).
Список параметров ввода отделяется от форматной строки запятой и содержит перечисление параметров ввода через запятые. В качестве параметров ввода используются адреса переменных, которые обозначается знаком символом &’, стоящим перед именем вводимой переменной.
Количество спецификаций в форматной строке должно совпадать с числом выводимых параметров.
Пример 1.1. Даны две строки, содержащие функции форматного ввода:
scanf (“%f %f %f”, &a, &b, &c);
scanf (“%s%d%lf”, &simb1, &n, &x);
В первой строке вводятся три вещественных (%f) числа a, b, c, разделяемые при вводе с клавиатуры пробельными символами, ввод заканчивается нажатием клавиши [Enter]. Во второй строке вводятся: строка символов(%s) simb1, целое (%d) число n и вещественное число x с удвоенной точностью (%lf).
Для вывода используется функция printf(), её синтаксис:
printf (“форматная строка”, список параметров вывода);
Форматная строка вывода аналогична форматной строке ввода.
Список параметров вывода отделяется от форматной строки запятой и содержит перечисление параметров вывода через запятые.
Пример 1.2. Дан фрагмент программы на языке С, С++, содержащий функции форматного вывода:
printf(“Введите стороны треугольника”);
printf(“Результат: a=%9.4f b=% 3d \n”,a,b);
В первой строке в форматной части отсутствуют параметры вывода, на экран выводится фраза «Введите стороны треугольника», курсор остается на той же строке, в следующей позиции после последнего выведенного символа.
Во второй строке выводится результат вычисления: фраза «Результат:», имя переменной и знак равенства «a=», значение переменной a в формате 9.4f (9 общая ширина поля вывода позиций, из них 4 позиции на десятичные цифры после точки, одна позиция на десятичную точку, остальные 4 позиции на знак числа и его целую часть), имя следующей переменной и знак равенства «b=», значение переменной b в формате d, с шириной поля – три. Если значение a=4.23, а значение b=3, на экране появится строка:
Результат: a= 4.2300 b=3
После вывода данной строки, курсор перейдет в начало следующей строки, так как в конце форматной строки стоит управляющий символ \n’.
В языке С++ ввод-вывод может осуществляться не только с помощью функций, но и с помощью операций. Операция вывода <<, операция ввода >>.
Синтаксис вывода на экран: cout << выражение.
Синтаксис ввода с клавиатуры: cin>>переменная.
При использовании операций ввода-вывода необходимо включить в программу файл iostream.h.
Пример 1.3. Дана программа на языке С, С++.
#include
int i;
main(){
cout << "Введите целое число ";
cin >> i;
cout << " Квадрат числа: " << i*i << "\n";
return 0; }
В результате работы программы на экран выводится фраза: «Введите целое число », далее с клавиатуры должно вводиться целое число (например, 3), значение которого присвоится переменной i.
Экран, после выполнения программы имеет вид:
Введите целое число 3
Квадрат числа: 9
Аппаратура и материалы: персональный компьютер не ниже Pentium–4, OC семейства Windows, интегрированная среда Builder C++.
Порядок выполнения работы
Создайте папку на указанном преподавателем диске или на флеш-носителе, для хранения исходных текстов программ на языке С++.
Отладим и выполним эту программу в среде Borland C++Builder 6. Для этого запустите Builder C++, нажав соответствующий значок на рабочем столе или (Пуск\Все программы\Builder C++). После нажатия откроется основная рабочая область инструмента, представленная на рисунке 1.1. Ознакомьтесь с средой C++Builder 6, описание которой приведено в теоретической части работы.
3. Для запуска проекта консольного приложения необходимо выполнить следующее действие: выбрать пункт меню File->New->Other, далее в открывшемся окне проектов, необходимо выбрать пункт Console Wizard.

Рис. 1.2. Выбор типа проекта
После выбора консольного проекта, откроется окно, в котором надо указать на каком языке будет код программы: С или С++. Выберите С++ и нажмите Ок. В результате открывается окно с шаблоном для ввода, куда записывается код контрольного примера лабораторной работы. Некоторые заголовочные файлы автоматически подключаются для работы программы в виде шаблона при входе в консольное приложение. Они выделены зеленым цветом и их нельзя удалять. Вид кода консольного приложения в среде C++Builder 6 представлен на рисунке 1.3.

Рис 1.3. Вид кода консольного приложения в среде C++Builder 6


4. Составим алгоритм решения следующей задачи: Вычислить длину окружности, площадь круга и объем шара, имеющих радиус R (любое целое число):
Для вычислений используем формулы L=2
·R, S=
·R2, V=
·R3(4/3= RS( 4/3.
Блок-схема решения задачи представлена на рисунке 1.4, из которого видно, что алгоритм имеет линейную структуру.
5. Реализуем построенный алгоритм на языке программирования С++. Программа на С++ имеет вид:
#include //включение заголовочного файла ввода-вывода
const float Pi =3.14; //описание константы
·
int main(int argc, char* argv[]) //главная функция
{ /*описание переменных: целого типа и
вещественного типа*/
int R; float L, S, V;
cout <<" Enter R="; // вывод на экран комментария
cin >>R; //ввод значения радиуса
L=2*Pi*R; // вычисление значений
S= Pi*R*R;
V=4./3* Pi*R*R*R;
//вывод значений
cout <<'\n'<<" L="<< L <<" S="< cout <<'\n'<<" V ="< return 0;
}

6. Наберите программу в окне редактирования C++ Builder, используя «заготовку» (комментарий, написанный после // можно не вводить, он поясняет строки программы) (рисунок 1.5).

Рис 1.5. Вид кода консольного приложения в среде C++Builder 6 с контрольным примером

7. Сохраните программу, используя команду File\Save или щелчком по одноименному инструменту (рисунок 1.1). В диалоговом окне выберите диск, с которыми Вы работаете и папку, созданную в п.1. В строке имя файла введите имя программы Lab1. Автоматически к имени файла будет добавлено расширение .cpp, которое для компилятора является признаком того, что программа составлена на языке С++ (расширение .c – признак программы написанной на языке Си).
8. Для запуска программы необходимо нажать клавишу F9 или кнопку запуска в инструментах. При этом выполняется компиляция программы. Если в программе есть ошибки, то появятся соответствующие сообщения. Надо вернуться в программу, исправить их, сохранить программу с тем же именем и запустить на выполнение клавишей F9.
9. После чего откроется консоль приложения, как показано на рисунке 1.6.

Рис. 1.6. Результат работы программы
10. В открывшемся окне введите исходные данные (целое число – значение радиуса R), нажмите [Enter]. На экране появится результаты решения задачи L, S и V, но они быстро исчезнут. Для задержки экрана вывода результатов вернитесь в программу, перед return добавьте команду cin>>R; и заново запустите программу.
11. Для возврата в интегрированную среду, нажмите любую клавишу. Запустите программу с другими исходными данными.
12. Эта программа написана с использованием потокового ввода-вывода данных, что характерно для С++. Видоизменим программу в стиле С, используя форматный ввод и вывод. Для этого замените строки программы и сохраните под именем Lab1_1:
cout <<" Vvedite R=";
cin >>R;
на строки:
printf(" Vvedite\n R=");
scanf(“%d”, &R);
13. Замените строки программы:
cout <<'\n'<<" L="<< L <<" S="<cout <<'\n'<<" V ="<на строку:
printf("\n L= %8.3f S=%10.4f \n\n\n V =%7.2f\n", L,S,V);
14. Сохраните файл под этим же именем и откомпилируйте программу.
В результате компиляции выявится ошибка. В программе необходимо заменить библиотеку iostream.h на stdio.h (т. к. используются функции форматного ввода и вывода). Исправьте ошибку. Сохраните исправленный текст программы. Запустите программу на выполнение.
15. Сравните вид результатов работы программ Lab1 и Lab1_1.
16. Выполнить согласно варианту, выданному преподавателем, задание 1 (таблица 1.1), задание 2 (таблица 1.2) и задание 3 (таблица 1.3). Примечание: для заданий 1 и 2 программу писать не надо!
Таблица 1.1 – Условие и исходные данные задания 1
Задание 1. Записать на языке С++ математические выражения 1 и 2


вар.
Математическое
выражение 1
Математическое
выражение 2

1
2
3

1
13 EMBED Equation.DSMT4 1415
13 EMBED Equation.3 1415

2
13 EMBED Equation.3 141513 EMBED Equation.DSMT4 1415
13 EMBED Equation.3 1415


3
13 EMBED Equation.DSMT4 1415
13 EMBED Equation.3 1415

4
13 EMBED Equation.3 1415
13 EMBED Equation.3 1415

5
13 EMBED Equation.DSMT4 1415
13 EMBED Equation.3 1415

6
13 EMBED Equation.3 1415
13 EMBED Equation.DSMT4 1415

7
13 EMBED Equation.3 1415
13 EMBED Equation.3 1415

8
13 EMBED Equation.3 1415
13 EMBED Equation.3 1415

9
13 EMBED Equation.3 1415
13 EMBED Equation.3 1415

10
13 EMBED Equation.3 1415
13 EMBED Equation.3 1415







Продолжение таблицы 1.1

11
13 EMBED Equation.3 1415
13 EMBED Equation.3 1415

12
13 EMBED Equation.3 1415
13 EMBED Equation.3 1415

13
13 EMBED Equation.3 1415
13 EMBED Equation.3 1415

14
13 EMBED Equation.3 1415
13 EMBED Equation.3 1415

15
13 EMBED Equation.DSMT4 1415
13 EMBED Equation.3 1415

16
13 EMBED Equation.3 1415
13 EMBED Equation.3 1415

17
13 EMBED Equation.3 1415
13 EMBED Equation.3 1415

18
13 EMBED Equation.3 1415
13 EMBED Equation.3 1415

19
13 EMBED Equation.3 1415
13 EMBED Equation.3 1415

20
13 EMBED Equation.3 1415
13 EMBED Equation.3 1415

Таблица 1.2 – Условие и исходные данные задания 2
Задание 2. Вычислить значения выражений, записанных на Си: A/B; C/D;  C%D; C++; D--. (для вычисления A/B воспользуйтесь калькулятором).

№ варианта
А
В
С
D
№ варианта
А
В
С
D

1
30,2
1,9
100
23
2
15,2
16,9
150
24

3
29,3
2,8
95
30
4
14,3
17,8
140
33

5
28,4
3,7
77
15
6
13,4
18,7
122
52

7
27,5
4,6
86
30
8
12,5
19,6
117
25

9
26,1
5,5
80
25
10
11,1
20,5
117
30

11
25,2
6,9
77
23
12
10,2
21,9
125
32

13
24,3
7,8
100
24
14
9,3
22,8
134
31

15
23,4
8,7
81
23
16
8,4
23,7
155
27

15
23,4
8,7
81
23
16
8,4
23,7
155
27

17
22,5
9,6
79
33
18
7,5
24,6
146
31

19
21,1
10,5
64
25
20
6,1
25,5
127
77

Таблица 1.3 – Задание 3
№ вар.
Условия заданий

1
С клавиатуры вводятся: длины катета прямоугольного треугольника АВ и гипотенузы АС. Вычислить длину катета ВС и периметр треугольника.

2
С клавиатуры вводятся: величины углов треугольника а, в, с и радиусом описанной окружности R. Вычислить стороны треугольника.

3
С клавиатуры вводятся: целые числа А и В выражающие объем информации в килобайтах. Перевести А в байты, В в мегабайты.

4
С клавиатуры вводится сторона равностороннего треугольника А. Вычислить радиус вписанной r и описанной R окружностей этого треугольника.

5
С клавиатуры вводятся числа A, B, C. Вычислить среднее арифметическое и среднее геометрическое этих чисел.

6
С клавиатуры вводятся: длины катетов прямоугольного треугольника АВ и ВС. Вычислить гипотенузу и площадь треугольника.

7
С клавиатуры вводятся: высота конуса H и радиус основания R. Вычислить площадь боковой поверхности и объем конуса.

8
С клавиатуры вводятся: координаты вершин треугольника X1,Y1, X2, Y2 и X3, Y3. Вычислить периметр этого треугольника.

9
С клавиатуры вводятся: основания равнобокой трапеции А, В и угол при большем основании В – АВ. Вычислить площадь трапеции.

10
С клавиатуры вводятся: первый член геометрической прогрессии b1 и знаменатель q. Вычислить третий член и сумму первых трёх членов этой прогрессии.

11
С клавиатуры вводятся: координаты концов отрезка X1,Y1 и X2, Y2. Вычислить координаты середины отрезка.

12
С клавиатуры вводится коэффициент b. Решить уравнение ах = b, где а = cos(b) + 5* b.

13
С клавиатуры вводятся числа A, B, C. Вычислить среднее арифметическое и среднее геометрическое этих чисел.

14
С клавиатуры вводятся: длины сторон треугольника А, В и С. Вычислить площадь треугольника, используя формулу Герона.

15
С клавиатуры вводится длина окружности L, найти площадь круга и радиус.

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

17
С клавиатуры вводятся: высота цилиндра H и радиус основания R. Вычислить площадь боковой поверхности и объем цилиндра.

18
С клавиатуры вводится сторона квадрата А. Вычислить радиус вписанной r и описанной R окружностей квадрата.

19
С клавиатуры вводятся: внутренний радиус кольца R1 и внешний – R2. Вычислить площадь кольца.

20
Даны два момента времени в часах и минутах. Найти разность между ними в часах и минутах

Содержание отчета и его форма
Выполните все описанные пункты задания, письменно оформите отчет, который должен содержать:
– название и цель лабораторной работы;
– условие и результат выполнения задания 1;
– условие и результат выполнения задания 2;
– условие задания 3, блок–схему алгоритма, отлаженную программу, вводимые исходные данные и результаты выполнения программы;
– ответы на контрольные вопросы.
Отчет предоставляется в письменной или печатной форме в тетради или на листах формата А4.
Контрольные вопросы и защита работы
Что такое редактирование и компиляция программы?
Как записывается комментарий в программах на Си?
Что такое заголовочные файлы? Пример.
Как объявляются переменные в программах?
Структура программы на языке C/С++.
Что такое алгоритм и программа линейной структуры?
Основные операции, используемые в C/C++ и их приоритет.
Какие операции ввода/вывода данных в C/С++ известны Вам?
Защита лабораторной работы включает в себя демонстрацию выполненных программ, подготовленный отчет и устный ответ на вопросы.
Рис. 1.4 – Блок -схема алгоритма

НАЧАЛО

ВВОД R

ВЫВОД
L, S, V

КОНЕЦ

V=SR(4/3

S=
·R2


·=3.14

L=2
·R

Enter R=



Рисунок 1Root EntryEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation Native

Приложенные файлы

  • doc 1440086
    Размер файла: 720 kB Загрузок: 0

Добавить комментарий