Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Реализация линейного алгоритма




Пример 5.1. Даны числа a =2, b =7. Вычислить сумму S и разность R чисел a и b.

Рис. 5.1 Блок-схема для примера 5.1   Код программы (Visual Studio): // proga10.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> using namespace std; int main() { double a, b, S, R; a=2; b=7; S=a+b; R=a-b; cout<<"S="<<S<<endl; cout<<"R="<<R<<endl; return 0; }
Результат выполнения программы(Visual Studio):
Код программы (Borland C++): #include <iostream.h> #include <conio.h>   int main(){ clrscr(); double a, b, S, R; a=2; b=7; S=a+b; R=a-b; cout<<"S="<<S<<endl; cout<<"R="<<R<<endl; return 0; }
Результат выполнения программы (Borland C++):

 

Пример 5.2. Составить блок-схему и программу для вычисления значений функций и при x, который считывается с экрана (клавиатуры).

 

Рис. 5.2 Блок-схема для примера 5.2 Код программы (Visual Studio): // proga11.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> #include <math.h> using namespace std; int main(){ double x, y, z; cout<<"vvedi x="; cin>>x; y=sin(x); z=log(x); cout<<"pri x="<<x<<" y="<<y<<" z="<<z<<endl; return 0; }
Ручной счет: x =1.5 y =sin(1.5)=0.997495 z =ln(1.5)=0.405465 Результат выполнения программы (Visual Studio):
Ручной счет: x =0.2 y =sin(0.2)=0.198669 z =ln(0.2)=-1.609438 Результат выполнения программы (Visual Studio):
Ручной счет: x =-2 y =sin(-2)=-0.909297 z =ln(-2)=не существует, что соответствует результату на экране. Результат выполнения программы(Visual Studio):

 

Код программы (Borland C++):

#include <iostream.h>

#include <math.h>

int main(){

double x, y, z;

cout<<"vvedi x=";

cin>>x;

y=sin(x);

z=log(x);

cout<<"pri x="<<x<<" y="<<y<<" z="<<z<<endl;

return 0;

}

Результат выполнения программы(Borland C++):

 

Примечание. Чтобы не возникало ошибок при вычислении логарифма, надо поставить условие на аргумент х, поэтому данная задача будет рассмотрена ниже при реализации разветвляющегося алгоритма.

Когда требуется записать программно сложную математическую функцию, ее мысленно разбивают на внутреннюю и внешнюю. Например, если дано выражение , то внешней функцией будет возведение в квадрат, а внутренней – тангенс от х. Поэтому сначала начинают писать функцию возведения в степень: pow(, 2.0), а потом вписывают на первое место тангенс: pow(tan(x), 2.0).

Когда требуется записать дробь, то ее мысленно разбивают на числитель и знаменатель. если в числителе или знаменателе стоит выражение, а не одно число или одна переменная, то все выражение берут в скобки: будет выглядеть в программе как (a+3.0)/(a-1.0). Но дробь будет записана в виде a/(a-1.0).

 

Пример 5.3. Составить блок-схему и программу для вычисления значений функций и при различных значениях аргументов x, y. Переменные x, y считать с клавиатуры.

 

 

Рис. 5.3 Блок-схема для примера 5.3 Код программы (Visual Studio): // proga12.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> #include <math.h> using namespace std; int main(){ double x, y, U, V; cout<<"vvedi x="; cin>>x; cout<<"vvedi y="; cin>>y; U=pow(x, 2.0)+(y+3.0)/(x-1.0); V=1.0/pow(y, exp(1.0))*pow(sin(sqrt(x)+1.5), 2.0); cout<<"pri x="<<x<<" y="<<y<<endl; cout<<"U="<<U<<" V="<<V<<endl; return 0; }
Проверка результатов (в программе MathCad): Результат выполнения программы (Visual Studio):
Проверка результатов (в программе MathCad): Результат выполнения программы (Visual Studio):  
Код программы (Borland C++): #include <iostream.h> #include <math.h> int main(){ double x, y, U, V; cout<<"vvedi x="; cin>>x; cout<<"vvedi y="; cin>>y; U=pow(x,2.0)+(y+3.0)/(x-1.0); V=1.0/pow(y,exp(1.0))*pow(sin(sqrt(x)+1.5),2.0); cout<<"pri x="<<x<<" y="<<y<<endl; cout<<"U="<<U<<" V="<<V<<endl; return 0; }
Результат выполнения программы (Borland C++):

Пример 5.4. Найти длину окружности и площадь круга, если известен радиус.

Решение. Введем обозначения: r – радиус, который будет считываться с клавиатуры (т.к. он не задан конкретным числом); C – длина окружности, вычисляемая по формуле ; S – площадь круга, вычисляемая по формуле .

Рис. 5.4 Блок-схема для примера 5.4 Код программы (Visual Studio): // proga13.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> #include <math.h> using namespace std; int main(){ double r, C, S; cout<<"vvedi r="; cin>>r; C=2.0*3.141593*r; S=3.141593*pow(r, 2.0); cout<<"r="<<r<<" C="<<C<<" S="<<S<<endl; return 0; }
Проверка результата (в программе MathCad): Результат выполнения программы (Visual Studio):
Код программы (Borland C++): #include <iostream.h> #include <math.h>   int main(){ double r, C, S; cout<<"vvedi r="; cin>>r; C=2.0*M_PI*r; S=M_PI*pow(r, 2.0); cout<<"r="<<r<<" C="<<C<<" S="<<S<<endl; return 0; }  
Результат выполнения программы (Borland C++):  



Поделиться с друзьями:


Дата добавления: 2017-01-13; Просмотров: 305; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.