Программное определение математических функций

Лабораторная работа №1. Вычисление по формулам



Задание: Вычислить площадь правильного n-угольника (внимательно отнеситесь к выбору исходных данных).

Ход работы: Задача состоит в вычислении результата по формуле при известных данных. Напишем программу так, чтобы вычислить результат для любых возможных исходных данных. Для этого будем вводить исходные данные с клавиатуры в процессе выполнения программы.

Обсудим решение задачи по вышеуказанному плану.

В программе участвуют следующие данные: исходные – длина одной из стороны правильного n-угольника, количество сторон правильного n-угольника, радиус вписанной окружности, результирующие – площадь правильного n-угольника.

Типы данных определяем по смыслу задачи: исходные данные хотя и задаются целыми числами, в общем случае могут быть и дробными, поэтому тип данных – float (или double).

Имена переменных выбираем произвольно, заботясь лишь о том, чтобы они были «говорящими» (для лучшего понимания текста программы). Пусть dlina — длина одной из стороны правильного n-угольника, storona — количество сторон правильного n-угольника, radius — радиус вписанной окружности, S — результат.

Используем потоки ввода-вывода поэтому необходимо подключить заголовочный файл iostream.h.

Полный текст программы будет выглядеть так:



#include<iostream.h>	

#include "Rus.h"

void main(void)	

{

float dlina, storona, radius, S;

cout<<Rus("\nВведите длину одной из сторон правильного n-угольника ");

cin >> dlina;

cout<<Rus("\nВведите количество сторон ");

cin >> storona;

cout <<Rus("\nВведите радиус вписанной окружности ");

cin >> radius;

S=(dlina*storona*radius)/2;

cout <<Rus("\nПлощадь правильного n-угольника ") << S << " sm\n";

return;

}



Выполнение программы: Программа выполняется правильно



Лабораторная работа №2. Математические функции



Задание: Вычислить: 







Ход работы: Задача состоит в вычислении результата по формуле при известных данных. Напишем программу так, чтобы вычислить результат для любых возможных исходных данных. Для этого будем вводить исходные данные с клавиатуры в процессе выполнения программы.

Обсудим решение задачи по вышеуказанному плану.

В программе участвуют следующие данные: исходные – аргумент функции е, результирующие – результат выражения a. 

Типы данных определяем по смыслу задачи: аргумент функций и результата должен быть типа double, поэтому тип данных – double.

Имена переменных выбираем произвольно, заботясь лишь о том, чтобы они были «говорящими» (для лучшего понимания текста программы). Пусть исходное данное будет е, результат - rezult.

Используем потоки ввода-вывода поэтому необходимо подключить заголовочный файл iostream.h.

Полный текст программы будет выглядеть так:



#include<iostream.h>	

#include<math.h> 

#include "Rus.h"

void main(void)	

{

double e, rezult;

cout << Rus("\nВведите число e ");

cin >> e;

rezult=sqrt(4.2013*sqrt(0.1)+2-((e*e)/3)); 

cout << Rus("\nЗначение выражения равно ") << rezult <<endl;

return;

}



Выполнение программы: Программа выполняется правильно



Лабораторная работа №3. Использование оператора if



Задание: Расценки, назначаемые за коммунальные услуги, зависят от количества потребляемой энергии:

Первые 200 кВт.ч стоят 54 копейки за 1кВт.ч.

Следующие 300 кВт.ч стоят 70 копеек за 1кВт.ч.

Свыше 500 кВт.ч стоят 91 копеек за 1кВт.ч.

Вычислить стоимость энергии по ее введенному количеству. Например, для 600кВт.ч расчет будет следующим: 200*54+300*70+100*91. Результат выразить в рублях.

Ход работы: Возможны лишь один исход решения задачи, но ход решения будет разным в зависимости от введенного количества потраченной электроэнергии, поэтому используем оператор if-else. Напишем программу так, чтобы вычислить результат для любых возможных исходных данных. Для этого будем вводить исходные данные с клавиатуры в процессе выполнения программы.

Обсудим решение задачи по вышеуказанному плану.

В программе участвуют следующие данные: исходные – количество потраченной электроэнергии (а) и n, результат не выражен значением, им будет сообщение о стоимости потраченной электроэнергии. 

Типы данных определяем по смыслу задачи: из условия задачи следует, что исходные числа целые – тип int.

Имена переменных выбираем произвольно, заботясь лишь о том, чтобы они были «говорящими» (для лучшего понимания текста программы). Пусть исходные данные называются как в условии задачи.

Используем потоки ввода-вывода поэтому необходимо подключить заголовочный файл iostream.h.

Полный текст программы будет выглядеть так:



#include <iostream.h>

#include"Rus.h"

void main(void)

{

int a, n;

cout <<Rus("\n Введите количество потребляемой энергии: ");

cin >> a;

if(a>=500)

{

n=(200*54+300*70+(a-500)*91)/100;

cout << Rus("\nСтоимость энергии в рублях: ") << n << endl;

}

if(a>=200&&a<500)

{

n=(200*54+(a-200)*70)/100;

cout << Rus("\nСтоимость энергии в рублях: ") << n <<endl;

}

If(a<200)

{

n=a*54/100;

cout << Rus("\nСтоимость энергии в рублях: ") << n << endl;

}

return;

}



Выполнение программы: Программа выполняется правильно



Лабораторная работа №4. Использование оператора switch



Задание: Выполнить непредусмотренные правилами языка Си арифметические операции ‘х’ – умножить и ‘:’ - разделить. В качестве исходных данных вести два числа и символ – знак операции.

Ход работы: В программе участвуют следующие данные: исходные – два числа и символ-знак операции, результат выражается в произведении или в разности чисел. 

Типы данных определяем по смыслу задачи: из условия задачи следует, что исходное данное – два числа и знак операции. Определяем тип как int (можно unsigned). 

Имена переменных выбираем произвольно, заботясь лишь о том, чтобы они были «говорящими» (для лучшего понимания текста программы). Пусть два числа будут а, b, а результат произведения или разности – с, знак операции – znak.

Используем потоки ввода-вывода поэтому необходимо подключить заголовочный файл iostream.h.

Полный текст программы будет выглядеть так:



#include <iostream.h> 

#include "Rus.h"

#include<conio.h> 

void main(void)	

{

int a,b,c; 

char znak; 

cout << endl << Rus("\nВведите 2 числа через пробел ");

cin >> a >> b;

cout << Rus("\nВведите знак операции (: или x) ")<< flush;

znak=getche();

switch(znak)

{

case ':':

{

c=a/b;

cout << endl << Rus("\nОтвет: ") << c << endl;

}

break;

case 'x':

{

c=a*b;

cout << endl << Rus("\nОтвет: ") << c << endl;

}

break;

default:

cout <<Rus("\nЗнак введен не правильно")<< endl;

cout <<Rus("\nПопробуйте еще раз!")<< endl;

}

return;

}



Выполнение программы: Программа выполняется правильно



Лабораторная работа №5. Циклы



Задание: Вычислить:



, где n!=1*2*3*…*n;



Ход работы: В программе участвуют следующие данные: исходные – промежуточное – переменная цикла, результат – сумма ряда чисел. 

Типы данных определяем по смыслу задачи: из условия задачи следует, что исходное данное – целое число небольшого диапазона. Определяем тип как int (можно unsigned). Результат – сумма дробей – double. Переменная цикла – int.

Имена переменных выбираем произвольно, заботясь лишь о том, чтобы они были «говорящими» (для лучшего понимания текста программы). Пусть результат – summa, переменная цикла i.

Используем потоки ввода-вывода поэтому необходимо подключить заголовочный файл iostream.h.

Алгоритм накопления суммы можно описать так:

summa=0;

Пока условие цикла истинно:

Вычислить очередную дробь.

Добавить дробь к сумме.

В качестве оператора цикла выбираем оператор for. 

Полный текст программы будет выглядеть так:



#include<iostream.h> 

#include "Rus.h"

#include<conio.h> 

void main(void)	 

{

int i, j; 

double summa=0.0; 

double f=1.0; 

cout << Rus("\nВычисление ряда суммы чисел 1/1!+1/3!+1/5!+1/7!+1/9!\n");

summa=1/f;

for(i=1; i<5; i++)

{

f=1.0;

for(j=1; j<=(i*2+1); j++) f*=j; 

summa=summa+1/f;

cout << summa << endl;

}

cout << Rus("\nСумма = ") << summa <<endl;

return;

}

Выполнение программы: Программа выполняется правильно