Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Программирование на языке высокого уровня. Лабораторный практикум
.pdf
Модификатор const показывает, что значение перемен-
ной изменять нельзя. Такую переменную называют имено-
ванной константой, или просто константой.
При описании можно присвоить переменной начальное
значение, это называется инициализацией. Инициализатор
можно записывать в двух формах:
- со знаком равенства, например, = значение;
- в круглых скобках, например, (значение).
Константа должна быть инициализирована при объяв-
лении. В одном операторе можно описать несколько переменных одного типа, разделяя их запятыми.
Примеры описания типов переменных и констант приве-
дены ниже:
short int а = 1; // целая переменная а со значением 1
const char С = ‘C’; // символьная константа С со зна-
чением символа ‘С’
char s, sf = ‘f’; // символьные переменные s, sf; ини-
циализация относится только к sf
float с = 0.22, x(3), sum; // переменные вещественного
типа c, x, sum; переменная с получает значение 0.22; переменная х получает значение 3
Имя переменной должно быть уникальным в своей об-
ласти действия (например, в одном блоке не может быть двух
переменных с одинаковыми именами).
Выражения
Выражения используют для вычисления некоторого зна-
чения определенного типа. Выражения состоят из операндов,
знаков операций и скобок. Каждый операнд, в свою очередь,
может быть выражением или его частью, например, константой или переменной.
Примеры выражений:
(b + 0.15)/7
(r * sin(x)-1.05e4)/((3 * k + 5) * (2 * k + 4))
21

Основные операции языка С++ приведены в табл. 4.
Таблица 4
Основные операции языка C++
Операция Краткое описание
Унарные операции
++
увеличение на 1
-- уменьшение на 1
! логическое отрицание
- арифметическое отрицание (унарный минус)
Бинарные операции
*
умножение
/ деление
%
+
остаток от деления
сложение
- вычитание
<
<=
меньше
меньше или равно
> больше
>==
больше или равно
Равно
!= не равно
&& логическое И
| | логическое ИЛИ
= присваивание
* = умножение с присваиванием
/ * деление с присваиванием
% = остаток отделения с присваиванием
+ = сложение с присваиванием
- = вычитание с присваиванием
В C++ существуют математические функции, приведен-
ные в табл. 5 (их описание содержится в файле math.h).
22

Таблица 5
Функция
Вид
Назначение
abs int abs(int num
) Возвращает модуль чи
сла
acos
double acos(double x)
Возвращает арккосинус
asin double asin(double x)
Возвращает арксинус а
р-
atan
doub
le atan(double x)
Возвращает арктангенс
аргумента
cos double cos(double x)
Возвращает косинус а
р-
cosh
double cosh(double x)
Возвращает гиперболич
е-
ский косинус аргуме
нта
exp double exp(double x)
Возвращает степень числа
log double log (double x
) Возвращает значение н
а-
log10
double log10(double
Возвращает значение л
о-
pow
double pow(double x,
Функция вычисляет зн
а-
sin double sin(double x)
Возвращает синус арг
у-
sinh double sinh(double x)
Возвращает гиперболич
е-
sqrt double sqrt(double x)
Вычисляет квадратный
tan double tan(double x)
Возвращает значение та
н-
t
anh double tanh(double x)
Возвращает значение г
и-
Основные математические функции C++
аргумента
гумента
гумента
e
турального логарифма x
x)
double y)
гарифма x по основанию
10
чение числа x в степени y
мента
ский синус аргумента
корень
генса аргумента
перболического тангенса
аргумента
23

2.5. Основные операторы языка C++
Любые операторы выполняют типовые действия. Ос-
новные операторы языка С++ приведены в табл. 6 [1-3].
Таблица 6
Основные операторы
Оператор или пример
использования
Оператор вычисления выражения
i++; Выполняется операция инкремен-
та (увеличения переменной на 1)
а * = b + с; Выполняется умножение с при-
сваиванием
func(i, к); Выполняется вызов функции
Операторы ветвления
if ( выражение ) оператор_1; [else оператор_2;]
if (а<0) b = 1;
if (a<b && (a>d ||
a==0)) b++; else {b * =
a; a = 0;}
Общий вид условного оператора.
Если выражение истинно, то выполняется оператор1, иначе выполняется оператор 2.
Если а<0, то b присваивается значение 1 и осуществляется переход
на следующий оператор. В противном случае сразу осуществляется переход на следующий оператор.
Выражение будет истинно в том
случае, если выполнится одновременно условие a<b и одно из условий в скобках. Если выражение
истинно, то переменная b увеличится на единицу. В противном
случае b получит значение a*b и а
будет присвоен 0.
Пояснение
24

Оператор или пример
switch
использования
switch ( выраже-
ние ){
case константное_выражение_1:
[список_операторов_1]
case константное_выражение_2:
[список_операторов_2]
case константное_выражение n:
[список_операторов_n]
[default: операторы_n*1]
}
Операторы цикла
while (выражение)
оператор;
Продолжение табл. 6
Пояснение
Оператор
предназначен для разветвления
процесса вычислений на несколько направлений.
Если выражение совпадает с константным выражением 1, то выполняется список операторов 1.
Если выражение совпадает с константным выражением 2, то выполняется список операторов 2 и
т.д.
Если выражение не совпадает ни с
какими константными выражениями, то либо выполняются операторы_n*1 (если конструкция
default присутствует), либо осуществляется переход на следующий
после switch оператор.
Цикл с предусловием. Оператор
может быть простым или составным.
Если выражение истинно, то выполняется оператор. Цикл перестает повторяться, если выражение становится ложным. Пример:
x = 0;
while (x <= 10) {
x = x + 1;
}
(переключатель)
25

Оператор или пример
использования
do оператор
while выражение;
for (инициализация;
выражение; модификации)
оператор;
Продолжение табл. 6
Пояснение
Цикл с постусловием. Оператор
может быть простым или составным.
Выполняется оператор, проверяется выражение. Если выражение
ложно, то выполняют повтор цикла. Если выражение истинно, то
цикл заканчивают.
Пример.
x = 0;
do {
x = x + 1;
}
while (x <= 10);
Цикл с параметром.
Инициализация используется для
объявления типа и присвоения начальных значений величинам, используемым в цикле. Примеры:
1) for (int i = 0, j = 2; ...
2) int k, m;
for (k = 1, m = 0; ...
Выражение определяет условие
выполнения цикла: если его результат, приведенный к типу bool,
равен true, цикл выполняется.
Модификации выполняются после
каждой итерации цикла и служат
обычно для изменения параметров
цикла.
26

Окончание табл. 6
for (int i = 1, s = 0;
i<=100; i++)
s += i;
Операторы передачи управления
goto метка; Оператор безусловного перехода
break; Оператор выхода из цикла до его
continue; Оператор перехода к следующей
return [ выражение ];
Пример выполнения цикла. Оператор цикла вычисляет сумму чисел от 1 до 100.
Первоначально i присваивается
значение 1, сумма обнуляется. Пока i меньше или равен 100, происходит увеличение суммы на i.
При каждом повторе цикла i увеличивается на 1.
Цикл завершит свою работу, когда
i станет больше 100.
В тексте программы должна присутствовать ровно одна конструкция вида: метка: оператор;
Метка – это обычный идентификатор.
окончания
итерации цикла до окончания текущей итерации
Оператор возврата из функции и
передачи управления в точку вызова функции.
При возврате может передаваться
значение выражения.
27

3. ЛАБОРАТОРНАЯ РАБОТА № 1
ЛИНЕЙНЫЕ И РАЗВЕТВЛЯЮЩИЕСЯ ВЫЧИСЛЕНИЯ
3.1. Программирование линейных вычислительных
задач
Цель работы - приобретение практических навыков на-
писания и отладки программ, реализующих линейные вычислительные задачи.
Общие рекомендации
Общие рекомендации содержат пример программы, реа-
лизующей линейную вычислительную задачу.
В программе, реализующей линейную вычислительную
задачу, операторы выполняются в той последовательности, в
которой они записаны.
В консольном приложении можно вывести информацию
на экран и получить данные с клавиатуры несколькими способами:
- при помощи функций printf (вывод) и scanf (ввод);
- вывести информацию в поток вывода (cout), прочитать
данные из потока ввода (cin).
В примере, приведенном ниже, использован потоковый
ввод-вывод. Каждый элемент вывода начинается с признака
вывода в поток <<.
Конструкция endl обеспечивает перевод курсора на следующую строку.
Пример. Составить программу для вычисления функции
при произвольных значениях A, X.
2
ax
eaxxxaxy lnsin*)(
Листинг программы приведен ниже
#include "stdafx.h" // Добавлен в 2010 по умолчанию
28

#include <iostream> //Подключение заголовочного файла
// с функциями ввода-вывода
using namespace std; // Определение пространства имен
int _tmain(int argc, _TCHAR* argv[]) // По умолчанию
{
setlocale(LC_ALL, "Russian"); //Установка
//соответствующей
//кодовой страницы
float a, x, y, y1, y2; //Объявление переменных
cout << "Введите a" << endl; //Вывод фразы
cin >> a; // Ввод а
cout << "Введите x" << endl; //Вывод фразы
cin >> x; // Ввод х
y1 = sqrt(abs(a * x)) + sin(x) * sin(x);//1-я часть формулы
y2 = -log(abs(x + a)) + exp(x * a); //2-я часть формулы
y = y1 + y2; //формула целиком
cout << "Результат = " << y << endl; //Вывод надписи
// и результата (y)
system("pause"); //Функция ожидания
// нажатия клавиши
return 0;
}
Результат работы программы приведен на рис. 11.
Рис. 11. Результат вычисления линейной функции
29

Задание
Номер
Математическое выражение
1
2
3
4
5
6
7
8
9
При выполнении задания необходимо:
- составить структурную схему программы;
- написать и отладить программу в консольном режиме
в соответствии с вариантом задания;
- варианты задания приведены в табл. 7; номер варианта
совпадает с порядковым номером студента в списке;
- проверить работу программы в консольном режиме.
Отчет
Отчет должен содержать титульный лист, вариант задания, структурную схему алгоритма, текст программы с комментариями, скриншот результатов работы программы.
Таблица 7
Варианты заданий для реализации линейных вычислений
варианта
22
)ax()axsin(ax/)ax(cosy
22
)axcos(axln)ax(y
22
)ax(sin)axcos(axxy
)bxsin(/1bxln/)bxcos(y
2
)ax(/1axln/)ax(y
2222
)bxcos(/bxbx/)bx(y
)ax/(ax)ax/(axy
22
22ax
30
ax/))axsin(a)ax(x(y
)ax(sin/)ax(axln/)e(y
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
