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

Программирование на языке высокого уровня. Лабораторный практикум

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
Модификатор 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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]