Alt linux Программирование на языке С++ в среде Qt Creator Е. Р. Алексеев, Г. Г. Злобин, Д. А. Костюк, О. В. Чеснокова, А. С. Чмыхало Москва alt linux 2015



Download 5,27 Mb.
Pdf ko'rish
bet97/193
Sana24.02.2022
Hajmi5,27 Mb.
#227496
1   ...   93   94   95   96   97   98   99   100   ...   193
Bog'liq
Book-qtC


Глава 6. Статические и динамические матрицы







8.2x
1
− 3.2x
2
+ 14.2x
3
+ 14.8x
4
= −8.4
5.6x
1
− 12x
2
+ 15x
3
− 6.4x
4
= 4.5
5.7x
1
+ 3.6x
2
− 12.4x
3
− 2.3x
4
= 3.3
6.8x
1
+ 13.2x
2
− 6.3x
3
− 8.7x
4
= 14.3
.
Вычислить H = E − XX
T
.
13. Решить СЛАУ A
2
X = Y
T
, где A =




2
1 5
2
5
2 2
6
2
2 1
2
1
3 3
1




, Y = |3 1 2 1|.
14. Решить СЛАУ 2(A
T
)
2
X = Y , где A =




2 1
5 2
5 2
2 6
2 2
1 2
1 3
3 1




, Y =




3
1
2
1




.
15. Заданы матрицы A(n × n) и B(n × n).
Найти определитель матрицы C = B
T
· A.
16. Задан массив C(n). Сформировать матрицы A(n × n) и B(n × n) по фор-
мулам:
A
ij
= C
i
· C
j
, B
ij
=
A
ij
n
P
i=1
A
ii
. Найти определитель |2E − A · B|.
17. Для матрицы I = 2P − E, где E — единичная матрица, а
P =


−26 −18 −27
21
15
21
12
8
13


проверить свойство I
2
= E. При помощи метода Гаусса решить СЛАУ Ix =
|1 1 1|
T
.
18. Квадратная матрица A(n × n) является симметричной, если для неё вы-
полняется свойство A
T
= A. Проверить это свойство для матрицы




1
0.42
0.54
0.66
0.42
1
0.32
0.44
0.54
0.32
1
0.22
0.66
0.44
0.22
1




.
Вычислить A
−1
. Убедиться, что A · A
−1
= E.
19. Ортогональная матрица обладает следующими свойствами:
• модуль определителя ортогональной матрицы равен 1;
• сумма квадратов элементов любого столбца ортогональной матрицы
равна 1;
• сумма произведений элементов любого столбца ортогональной матри-
цы на соответствующие элементы другого столбца равна 0.
Проверить эти свойства для матриц:




−2
3.01
0.12
−0.11
2.92
−0.17
0.11
0.22
0.66
0.52
3.17
2.11
3.01
0.42
−0.27 −0.15




,




−2
2.92
0.66
3.01
2.92
−2
0.11
0.22
0.66
0.11
−2
2.11
3.01
0.22
2.11
−2




.
Программирование на языке С++ в среде Qt Creator


6.5. Задачи для самостоятельного решения
225
20. Проверить, образуют ли базис векторы
f
1
=




0.25
0.333
0.2
0.1




, f
2
=




0.33
0.25
0.167
0.143




, f
3
=




1.25
−0.667
2.2
3.1




, f
4
=




−0.667
1.333
1.25
−0.75




.
Если образуют, то найти координаты вектора x = [1 1 1 1]
T
в этом бази-
се. Для решения задачи необходимо показать, что определитель матрицы F
со столбцами f
1
, f
2
, f
3
, f
4
отличен от нуля, а затем вычислить координаты
вектора x в новом базисе, решив СЛАУ F · y = x.
21. Решить СЛАУ:




0.42
0.26
0.33
−0.22
0.74
−0.55
0.28
−0.65
0.88
0.42
−0.33
0.75
0.92
0.82
−0.62
0.75




· X =




1
1
1
0




.
Для матрицы C = X · X
T
проверить условия ортогональности: C · C
T
=
E и C
T
· C = E.
22. Найти kAk
1
= max
m
P
j=1
|a
ij
| и kAk
11
= max
m
P
i=1
|a
ij
| для матрицы




0.75
0.18
0.63
−0.32
0.92
0.38
−0.14
0.56
0.63
−0.42
0.18
0.37
−0.65
0.52
0.47
0.27




−1
.
23. Найти kAk
111
=
r
P
i,j
a
2
i,j
для матрицы




−1.09
7.56
3.45
0.78
3.33
4.45
−0.21 3.44
2.33
−4.45
0.17
2.21
4.03
1
3.05
0.11




−1
.
24. Решить СЛАУ методом Гаусса







8.2x
1
− 3.2x
2
+ 14.2x
3
+ 14.8x
4
= −8.4
5.6x
1
− 12x
2
+ 15x
3
− 6.4x
4
= 4.5
5.7x
1
+ 3.6x
2
− 12.4x
3
− 2.3x
4
= 3.3
6.8x
1
+ 13.2x
2
− 6.3x
3
− 8.7x
4
= 14.3
.
Выполнить проверку A · x = b.
25. Задан массив H(k). Сформировать матрицы B(k × k) и G(k × k) по форму-
лам
(B
ij
= H
i
· H
j
), G
ij
=
B
ij
min(B)
.
Решить матричное уравнение (G + E) ·X = 5B
T
− E, где E — единичная
матрица.
© 2015 Алексеев Е. Р., Злобин Г. Г., Костюк Д. А., Чеснокова О. В., Чмыхало А. С.


Глава 7
Организация ввода-вывода в C++
7.1
Форматированный ввод-вывод в C++
В этом параграфе мы вернёмся к рассмотренным ранее конструкциям cin и
cout
, и рассмотрим возможности их использования для организации формати-
рованного ввода
-вывода.
Для управления вводом-выводом в C++ используются:
• флаги форматного ввода-вывода;
• манипуляторы форматирования.
7.1.1
Использование флагов форматного ввода-вывода
Флаги
позволяют включить или выключить один из параметров вывода на
экран. Для установки флага вывода используется следующая конструкция языка
C++
:
cout.setf(ios::flag)
Для снятия флага применяют конструкцию
cout.unsetf(ios::flag)
здесь flag — имя конкретного флага.
Если при выводе необходимо установить несколько флагов, то можно вос-
пользоваться арифметической операцией «или» (|). В этом случае конструкция
языка C++ будет такой:
cout.setf(ios::flag1|ios::flag2|ios::flag3)
В данном случае flag1, flag2, flag3 — имена устанавливаемых флагов вы-
вода.
В таблице 7.1 приведены некоторые флаги форматного вывода с примерами
их использования.


7.1. Форматированный ввод-вывод в C++
227
Таблица 7.1: Некоторые флаги форматного вывода
Флаг
Описание
Пример использования
1
Результат
right
Выравнивание по правой
границе
int r=
−25;
cout. setf ( ios :: right ) ;
cout.width(15);
cout<<"r="<r=-25
left
Выравнивание по левой
границе (по умолчанию)
double r=
−25.45;
cout. setf ( ios :: left ) ;
cout.width(50);
cout<<"r="<r=-25.45
boolalpha
Вывод логических
величин в текстовом виде
(true, false)
bool a=true;
cout<cout. setf ( ios :: boolalpha);
cout<1
true
dec
Вывод величин в
десятичной системе
счисления (по
умолчанию)
int r=
−25;
cout<<"r="<r=-25
oct
Вывод величин в
восьмеричной системе
счисления
int p=23;
//Отменить, установленный
по умолчанию, вывод в
десятичной системе счисления
cout.unsetf( ios :: dec);
//Установить вывод в
восьмеричной системе счисления
cout. setf ( ios :: oct) ;
cout<<"p="<
p=27
hex
Вывод величин в
шестнадцатеричной
системе счисления
int p=23;
//Отменить, установленный
по умолчанию, вывод в
десятичной системе счисления
cout.unsetf( ios :: dec);
//Установить вывод
в шестнадцатеричной
системе счисления
cout. setf ( ios :: hex);
cout<<"p="<
p=17
showbase
Выводить индикатор
основания системы
счисления
int p=23;
cout.unsetf( ios :: dec);
cout. setf ( ios :: hex| ios :: showbase);
cout<<"p="<
p=0x17
uppercase
Использовать прописные
буквы в
шестнадцатеричных
цифрах
int p=29;
cout.unsetf( ios :: dec);
cout. setf ( ios :: hex| ios :: uppercase);
cout<<"p="<
p=1D
showpos
Выводить знак «+» для
положительных чисел
int p=29;
cout. setf ( ios :: showpos);
cout<<"p="<
p=+29
scientific
Экспоненциальная форма
вывода вещественных
чисел
double p=146.673;
cout. setf ( ios :: scientific ) ;
cout<<"p="<
p=1.466730e+002
© 2015 Алексеев Е. Р., Злобин Г. Г., Костюк Д. А., Чеснокова О. В., Чмыхало А. С.


228
Глава 7. Организация ввода-вывода в C++
Таблица 7.1 — продолжение
Флаг
Описание
Пример использования
Результат
fixed
Фиксированная форма
вывода вещественных
чисел (по умолчанию)
double p=146.673;
cout. setf ( ios :: fixed ) ;
cout<<"p="<
p=146.673
Флаги удобно использовать в тех случаях, когда следует изменить параметры
всех последующих операторов ввода-вывода. Использование большого количе-
ства флагов для управления одним или несколькими операторами ввода-вывода
не совсем удобно, потом все установленные флаги придётся отключать.
Ещё одним способом форматирования является использование манипулято-
ров непосредственно в конструкциях cin и cout.
7.1.2
Использование манипуляторов форматирования
Манипуляторы
встраиваются непосредственно в операторы ввода-вывода. C
одним из манипуляторов (endl) читатель уже встречался начиная с первой главы
книги. В таблице 7.2 приведены основные манипуляторы форматирования с при-
мерами их использования. Для корректного использования всех манипуляторов
необходимо подключить библиотеку:
#include 
Таблица 7.2: Некоторые манипуляторы форматирования
Манипулятор Описание
Пример использования
Результат
setw(n)
Определяет ширину
поля вывода в n
символов
int r=253;
cout. setf ( ios :: fixed ) ;
cout<<"r="<r=
253
setprecision(n)
Определяет
количество цифр
(n − 1) в дробной
части числа
double h=1234.6578;
cout. setf ( ios :: fixed ) ;
cout<<"h="<cout<cout<h=1234.658
dec
Перевод числа в
десятичную систему
(по умолчанию)
int r=0253;
cout<<"r="<r=171
oct
Перевод числа в
восьмеричную
систему
int r=253;
cout<<"r="<r=375
hex
Перевод
числа
в
шестнадцатеричную
систему
int r=253;
cout<<"r="<p=fd
right
Выравнивание по
правой границе
int r=
−25;
cout.width(15);
cout<<"r="<cout<r=-25
1
cout.width(n)
устанавливает ширину поля вывода, подробнее об этом в п. 7.1.2
Программирование на языке С++ в среде Qt Creator


7.1. Форматированный ввод-вывод в C++
229
Таблица 7.2 — продолжение
Манипулятор Описание
Пример использования
Результат
left
Выравнивание по
левой границе (по
умолчанию)
int r=
−25;
cout.width(15);
cout<<"r="<cout<2
r=-25
boolalpha
Вывод логических
величин в текстовом
виде (true, false)
bool a=true;
cout<true
noboolalpha
Вывод логических ве-
личин в числовом ви-
де (1, 0)
bool a=true;
cout<1
showpos
Выводить знак «+»
для
положительных
чисел
int p=29;
cout<<"p="<endl;
p=+29
noshowpos
Не
выводить
знак
«+»
для
положи-
тельных чисел
int p=29;
cout<<"p="<<
noshowpos<
p=29
uppercase
Использовать
про-
писные
буквы
в
шестнадцатеричных
цифрах
int p=253;
cout<<"p="<uppercase<
p=FD
nouppercase
Использовать строч-
ные буквы в шестна-
дцатеричных цифрах
int p=253;
cout<<"p="<cout<
p=fd
showbase
Выводить индикатор
основания
системы
счисления
int p=253;
cout<<"p="<<p=0XFD
noshowbase
Не выводить индика-
тор основания систе-
мы счисления
int p=253;
cout<<"p="<cout<p=FD
setfill(c)
Установить символ с
как заполнитель
cout<<"x="<setw(10)<cout<cout<<(float)1/7<cout<<"x="<cout<cout<cout<<(float)1/7<x=!!!!0.1429
x=0.1429!!!!
scientific
Экспоненциальная
форма вывода веще-
ственных чисел
double p=146.673;
cout<<"p="<endl;
p=1.466730e+002
fixed
Фиксированная
форма вывода
вещественных чисел
(по умолчанию)
cout<<"p="<<fixed<
p=146.673
Кроме того, управлять шириной поля вывода можно с помощью операторов:
• cout.width(n) — устанавливает ширину поля вывода — n позиций;
• cout.precision(m) — определяет m цифр в дробной части числа.
2
Ещё один пример приведён при использовании манипулятора setfill
© 2015 Алексеев Е. Р., Злобин Г. Г., Костюк Д. А., Чеснокова О. В., Чмыхало А. С.


230
Download 5,27 Mb.

Do'stlaringiz bilan baham:
1   ...   93   94   95   96   97   98   99   100   ...   193




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish