Как я учился программировать на языке С++ >> Глава 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

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

Колебания маятника

Рассмотрим следующую задачу. Маятник совершает колебания по закону x(t)=Asin(ωt+φ0). Частота колебаний ω известна. Известно также, что в начальный момент координата маятника положительна и в k раз меньше амплитуды А, а в момент времени t1 значение координаты маятника равно А1. Напишем программу, в которой определяется амплитуда колебаний А.

Амплитуда колебаний определяется из соотношений A/k=Asin(φ0)(что дает sin(φ0)=1/k) и A1=Asin(ωt10). Можно найти точное аналитическое решение, но в данном случае в этом необходимости нет. Сначала по формуле φ0=arcsin(1/k) вычисляем начальную фазу φ0, а затем по формуле A=A1/sin(ωt10) вычисляем амплитуду А. Программный код приведен в листинге 1.13.

==========>Листинг 1.13 Колебания маятника

#include<iostream>
#include <cmath>
using namespace std;
int main(){
//Частота колебаний:
double omega=0.2;
//Параметры задачи:
double A1,t1,k;
//Амплитуда и начальная фаза:
double A,phi0;
//Ввод параметров:
cout<<"Известны:\n Частота колебания маятника, \n Координата маятника в начальный момент, \n Соотношение начальной координаты и амплитуды(k), \n Координаты маятника в момент времени, \nВведите момент времени(с) t1 = ";
cin>>t1;
cout<<"Введите значение координаты маятника в момент времени t1 - A1 = ";
cin>>A1;
cout<<"Введите коэффициент k = ";
cin>>k;
phi0=asin(1/k);
A=A1/sin(omega*t1+phi0);
cout<<"Амплитуда маятника A = "<<A<<"\n";
cout << "Конец задания для самостоятельной работы!" << endl;
    system ("pause");              // ожидаем нажатия кнопки
return 0;
}


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

В программе для вычисления арксинуса использована встроенная функция asin(). Результат выполнения программы может иметь вид.

Введите момент времени(с) t1 = 10
Введите значение координаты маятника в момент времени t1 - A1 = 20
Введите коэффициент k = 4
Амплитуда маятника A = 25.7604

Жирным шрифтом, как и ранее, выделены вводимые пользователем значения.





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