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

2118

.pdf
Скачиваний:
1
Добавлен:
15.11.2022
Размер:
1.18 Mб
Скачать

Модификатор 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 Основные математические функции C++

Функция

Вид

Назначение

abs

int abs(int num)

Возвращает модуль числа

acos

double acos(double x)

Возвращает арккосинус

 

 

аргумента

asin

double asin(double x)

Возвращает арксинус ар-

 

 

гумента

atan

double atan(double x)

Возвращает арктангенс

 

 

аргумента

cos

double cos(double x)

Возвращает косинус ар-

 

 

гумента

cosh

double cosh(double x)

Возвращает гиперболиче-

 

 

ский косинус аргумента

exp

double exp(double x)

Возвращает степень числа

 

 

e

log

double log (double x)

Возвращает значение на-

 

 

турального логарифма x

log10

double log10(double

Возвращает значение ло-

 

x)

гарифма x по основанию

 

 

10

pow

double pow(double x,

Функция вычисляет зна-

 

double y)

чение числа x в степени y

sin

double sin(double x)

Возвращает синус аргу-

 

 

мента

sinh

double sinh(double x)

Возвращает гиперболиче-

 

 

ский синус аргумента

sqrt

double sqrt(double x)

Вычисляет квадратный

 

 

корень

tan

double tan(double x)

Возвращает значение тан-

 

 

генса аргумента

tanh

double tanh(double x)

Возвращает значение ги-

 

 

перболического тангенса

 

 

аргумента

 

23

 

2.5. Основные операторы языка C++

Любые операторы выполняют типовые действия. Основные операторы языка С++ приведены в табл. 6 [1-3].

Таблица 6

Основные операторы

Оператор или пример

Пояснение

использования

 

Оператор вычисления выражения

i++;

Выполняется операция инкремен-

 

та (увеличения переменной на 1)

а * = b + с;

Выполняется умножение с при-

 

сваиванием

func(i, к);

Выполняется вызов функции

Операторы ветвления

if ( выражение ) опера-

Общий вид условного оператора.

тор_1; [else опера-

Если выражение истинно, то вы-

тор_2;]

полняется оператор1, иначе вы-

 

полняется оператор 2.

if (а<0) b = 1;

Если а<0, то b присваивается зна-

 

чение 1 и осуществляется переход

 

на следующий оператор. В про-

 

тивном случае сразу осуществля-

 

ется переход на следующий опера-

 

тор.

if (a<b && (a>d ||

Выражение будет истинно в том

a==0)) b++; else {b * =

случае, если выполнится одновре-

a; a = 0;}

менно условие a<b и одно из ус-

 

ловий в скобках. Если выражение

 

истинно, то переменная b увели-

 

чится на единицу. В противном

 

случае b получит значение a*b и а

 

будет присвоен 0.

 

24

Продолжение табл. 6

Оператор или пример

Пояснение

использования

 

 

 

switch (

выраже-

Оператор switch (переключатель)

ние ){

 

 

предназначен для

разветвления

 

 

 

процесса вычислений на несколь-

case

констант-

ко направлений.

 

ное_выражение_1:

 

Если выражение совпадает с кон-

[список_операторов_1]

стантным выражением 1, то вы-

case

констант-

полняется список

операторов 1.

ное_выражение_2:

 

Если выражение совпадает с кон-

[список_операторов_2]

стантным выражением 2, то вы-

case

констант-

полняется список операторов 2 и

ное_выражение

n:

т.д.

 

[список_операторов_n]

Если выражение не совпадает ни с

[default:

операто-

какими константными выраже-

ры_n*1]

 

 

ниями, то либо выполняются опе-

}раторы_n*1 (если конструкция default присутствует), либо осуществляется переход на следующий после switch оператор.

Операторы цикла

while (выражение) Цикл с предусловием. Оператор оператор; может быть простым или состав-

ным.

Если выражение истинно, то выполняется оператор. Цикл перестает повторяться, если выражение становится ложным. Пример: x = 0;

while (x <= 10) {

x = x + 1;

}

25

 

 

 

Продолжение табл. 6

Оператор или пример

 

Пояснение

 

 

использования

 

 

 

do оператор

Цикл с постусловием. Оператор

 

while выражение;

может быть простым или состав-

 

 

 

ным.

 

 

 

 

Выполняется оператор, проверяет-

 

 

 

ся выражение. Если выражение

 

 

 

ложно, то выполняют повтор цик-

 

 

 

ла. Если выражение истинно, то

 

 

 

цикл заканчивают.

 

 

 

Пример.

 

 

 

 

x = 0;

 

 

 

 

do {

 

 

 

 

x = x + 1;

 

 

 

}

 

 

 

 

while (x <= 10);

 

for

(инициализация;

Цикл с параметром.

 

выражение; модифика-

Инициализация используется для

 

ции)

объявления типа и присвоения на-

 

оператор;

чальных значений величинам, ис-

 

 

 

пользуемым в цикле. Примеры:

 

 

 

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;

сел от 1 до 100.

 

 

 

Первоначально i

присваивается

 

 

значение 1, сумма обнуляется. По-

 

 

ка i меньше или равен 100, проис-

 

 

ходит увеличение суммы на i.

 

 

При каждом повторе цикла i уве-

 

 

личивается на 1.

 

 

 

Цикл завершит свою работу, когда

 

 

i станет больше 100.

 

 

Операторы передачи управления

 

goto метка;

Оператор безусловного перехода

 

 

В тексте программы должна при-

 

 

сутствовать ровно одна конструк-

 

 

ция вида: метка: оператор;

 

 

Метка – это обычный идентифи-

 

 

катор.

 

 

break;

Оператор выхода из цикла до его

 

 

окончания

 

 

continue;

Оператор перехода

к следующей

 

 

итерации цикла до окончания те-

 

 

кущей итерации

 

 

return [ выражение ];

Оператор возврата из функции и

 

 

передачи управления в точку вы-

 

 

зова функции.

 

 

 

При возврате может передаваться

 

 

значение выражения.

 

27

3. ЛАБОРАТОРНАЯ РАБОТА № 1 ЛИНЕЙНЫЕ И РАЗВЕТВЛЯЮЩИЕСЯ ВЫЧИСЛЕНИЯ

3.1. Программирование линейных вычислительных задач

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

Общие рекомендации

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

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

Вконсольном приложении можно вывести информацию на экран и получить данные с клавиатуры несколькими способами:

- при помощи функций printf (вывод) и scanf (ввод);

- вывести информацию в поток вывода (cout), прочитать данные из потока ввода (cin).

Впримере, приведенном ниже, использован потоковый ввод-вывод. Каждый элемент вывода начинается с признака вывода в поток <<.

Конструкция endl обеспечивает перевод курсора на следующую строку.

Пример. Составить программу для вычисления функции при произвольных значениях A, X.

y(x) a* x sin2 x ln x a eax

Листинг программы приведен ниже

#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

Задание

При выполнении задания необходимо:

-составить структурную схему программы;

-написать и отладить программу в консольном режиме

всоответствии с вариантом задания;

-варианты задания приведены в табл. 7; номер варианта совпадает с порядковым номером студента в списке;

-проверить работу программы в консольном режиме.

Отчет

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 7

Варианты заданий для реализации линейных вычислений

Номер

 

 

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

варианта

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

y cos2 (x a)/

 

x a

 

sin(x a)2 (x a)

 

 

 

 

 

 

 

 

 

 

 

 

 

2

y (x a)2 ln

 

x a

 

cos(x a)2

 

 

 

 

 

 

 

 

 

3

y x

 

 

 

 

 

cos(x a)2 sin2 (x a)

 

 

x a

 

 

 

 

4y cos(x b)/ln x b 1/sin(x b)

5y (x a)2 /ln x a 1/ (x a)

6

y (x2

b)/

 

 

x2 b

 

 

 

 

 

x2 b

 

 

/cos(x2 b)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

 

x a

 

/(x a)

 

x a

 

/(x a)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

y (x2

(x a) a2 sin(x a))/

 

 

 

 

 

 

 

 

x a

 

 

 

 

 

 

 

 

 

 

 

9

y (ex a )/ln

 

x a

 

(x a)2 /sin2 (x a)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

30

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]