Как я учился программировать на языке С++ >> Глава 1 >> Примеры решения задач

Главная
Портфолио
Создание Windows приложений
Полезные ссылки
Справочник
Карта сайта
Контакты
"Нет ничего более раздражающего,
 чем хороший пример
"
  Марк Твен.




Рассмотрим некоторые достаточно простые задачи, которые могут решаться в С++ с применением минимальных программных ресурсов. В этих программах создаются и используются константы и переменные, а также применяются операторы ввода-вывода. Задачи предназначены для закрепления изложенного в Главе 1 материала.

Содержание


Главная

Часть I
Процедурное программирование в С++

Глава 1
Глава 2
Глава 3
Глава 4
Глава 5
Глава 6

Часть II
Объективно- ориентированное  программирование в С++
 
Глава 7
Глава 8
Глава 9
Глава 10
Глава 11
Глава 12






Часть I - Процедурное программирование в С++
Глава 1 - Основы языка С++
Примеры решения задач
Раздел 1 Раздел 2 Раздел 3 Раздел 4 Раздел 5 Раздел 6
Раздел 7 Раздел 8 Раздел 9 Раздел 10 Раздел 11 Раздел 12
Примеры решения задач к Главе 1
Резюме к Главе 1
Контрольные вопросы к Главе 1
Задачи для самостоятельного решения к Главе 1
Примечания


* Математическое выражение вида (х)1/2 - "х в степени одна вторая" эквивалентно выражению "квадратный корень из х", здесь применяется запись такого вида поскольку в Html нет символа выражающего корень энной степени в привычном школьном выражении.



Примеры решения задач к Главе 1

Координаты брошенного под углом тела
Средняя скорость движения мотоциклиста
Высота орбиты спутника
Колебания маятника
  • Комплексные числа
Прыгающий мячик
Умножение на два в степени
Решение простого уравнения
Атака подводной лодки

Комплексные числа

Наппомним, что любое комплексное число может быть представлено в виде z = x + iy, где x - действительная часть комплексного числа, y - мнимая часть комплексного числа, i - мнимая единица (i2 = -1). Такое представление комплексного числа называется алгебраическим. Существует тригонометрическое представление z = | z | exp(iφ), где модуль комплексного числа | z | = (x2 + y2)1/2, а аргумент φ такой, что | z | cos(φ) = x  и | z | sin(φ) = y

Напишем программу, которой вычисляется целочисленная степень комплексного числа, т.е. значение выражения zn. При этом воспользуемся соотношением zn = | z |n exp(inφ) = | z |n cos(nφ) + i | z |n sin(nφ)

Таким образом, действительной частью числа zn является | z |n cos(nφ), а комплексной - | z |n sin(nφ).

Программный код, в котором реализовано вычисление степени комплексного числа , приведен в листинге 1.14

==========>Листинг 1.14 Комплексные числа

#include<iostream>
#include <cmath>
using namespace std;
int main(){
//Действительная и мнимая часть:
double x,y,X,Y;
//Модуль и аргумент:
double r,phi,R,Phi;
//Показатель степени:
int n;
//Ввод параметров:
cout<<"Действительная часть комплексного числа x = ";
cin>>x;
cout<<"Мнимая часть комплексного числа y = ";
cin>>y;
cout<<"Степень n = ";
cin>>n;
//Вычисление результата:
phi=atan2(y,x);
r=sqrt(x*x+y*y);
R=pow(r,n);
Phi=n*phi;
X=R*cos(Phi);
Y=R*sin(Phi);
cout<<"Результат равен:\n";
cout<<"Действительная часть "<<X<<"\n";
cout<<"Мнимая часть "<<Y<<"\n";
system ("pause");              // ожидаем нажатия кнопки
return 0;
}

==========>Конец Листинга 1.14  Компилированный исполняемый файл листинга 1.14(120Кб, rar)


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

Действительная часть комплексного числа x = 1
Мнимая часть комплексного числа y = -2
Степень n = 3
Результат равен:
Действительная часть -11
Мнимая часть 2

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

От алгебраического представления переходим к тригонометрическому, для чего вычисляется модуль числа и аргумент. Аргумент вычисляется с помощью встроенной функции atan2(), аргументами которой передаются комплексная и действительная части комплексного числа, а результатом является аргумент (угол на соответствующую точку на плоскости). Корень квадратный при вычислении модуля вычисляется с помощью встроенной функции sqrt().

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


В основу сайта положена информация из книги
"Самоучитель C++ с примерами и задачами. Книга + CD", СПб, Наука и Техника, 2010. - 480с.: ил.(+CD)
2010 - 2011 Все авторские права сохранены
Hosted by uCoz