- •Лабораторный практикум основы программирования
- •Содержание
- •Предисловие
- •Лабораторная работа №1. Интегрированная среда разработки Microsoft Visual Studio. Программирование алгоритмов линейной структуры
- •1. Формулировка индивидуального задания:
- •2. Листинг программы:
- •3. Результаты работы программы:
- •1. Индивидуальное задание №1:
- •1.1. Постановка задачи:
- •1.3. Листинг программы:
- •3.4. Результаты работы программы:
- •1. Индивидуальное задание №1:
- •1.1. Постановка задачи:
- •1.3. Листинг программы:
- •4.4. Результаты работы программы:
- •1. Индивидуальное задание №1:
- •1.1. Постановка задачи:
- •1.3. Листинг программы:
- •2.4. Результаты работы программы:
- •2. Индивидуальное задание №2:
- •2.1. Постановка задачи:
- •2.3. Листинг программы:
- •2.4. Результаты работы программы:
- •1. Присваивание указателю адреса существующего объекта:
- •2. Присваивание указателю адреса области памяти в явном виде:
- •3.Присваивание пустого значения:
- •4. Выделение участка динамической памяти и присваивание ее адреса указателю:
- •1. Индивидуальное задание №1:
- •1.1. Постановка задачи:
- •1.3. Листинг программы:
- •1.4. Результаты работы программы:
- •2. Индивидуальное задание №2:
- •2.1. Постановка задачи:
- •2.3. Листинг программы:
- •2.4. Результаты работы программы:
- •I. Исходные данные, результаты и промежуточные величины.
- •1. Индивидуальное задание №1:
- •1.1. Постановка задачи:
- •1.3. Листинг программы:
- •2.4. Результаты работы программы:
- •1. Индивидуальное задание №1:
- •1.1. Постановка задачи:
- •1.3. Листинг программы:
- •4. Индивидуальное задание №4:
- •4.1. Постановка задачи:
- •4.4. Листинг программы:
- •4.5. Результаты работы программы:
- •I. Исходные данные и результаты
- •II. Алгоритм решения задачи
- •III. Программа и тестовые примеры
- •I. Исходные данные и результаты
- •II. Алгоритм решения задачи
- •III. Программа и тестовые примеры
- •I. Исходные данные и результаты
- •III. Программа и тестовые примеры
- •1. Индивидуальное задание №1:
- •1.1. Постановка задачи:
- •1.3. Листинг программы:
- •1.4. Результаты работы программы:
- •I. Исходные данные, результаты и промежуточные величины
- •Программа и тестовые примеры
- •1. Индивидуальное задание №1:
- •1.1. Постановка задачи:
- •1.3. Листинг программы:
- •2.4. Результаты работы программы:
- •Список рекомендуемой литературы
1. Индивидуальное задание №1:
1.1. Постановка задачи:
Составить UML-диаграмму деятельности и программу с использованием конструкций цикла для решения задачи.
Задача: в 1985 г. урожай ячменя составил 20 ц с га. В среднем каждые 2 года за счет применения передовых агротехнических приемов, урожай увеличился на 5%. Определить, через сколько лет урожай достигнет 25 ц с га.
1.2. UML-диаграмма:
1.3. Листинг программы:
// Лабораторная работа №3
// Индивидуальное задание №1
#include "stdafx.h"
#include <iostream>
#include "conio.h"
#include "math.h"
#include "windows.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
setlocale( LC_ALL, "Russian" );
const double productivity = 20, prirost = productivity/100*2.5;
int count = 0;
cout<< "Лабораторная работа № 3\n";
cout<< "\nГорошко А.А., БАС-051\n";
cout<< "\nВариант № 6\n";
cout<< "\n\nИндивидуальное задание № 1:\n";
cout<< "\nрешить задачу с использованием конструкций цикла.\n";
cout<< "\n\nЗадача:\n";
cout<< "\nв 1985 г. урожай ячменя составил 20 ц с га. В среднем каждые 2 года за\n";
cout<< "\nсчет применения передовых агротехнических приемов урожай увеличился на 5%.\n";
cout<< "\nОпределить, через сколько лет урожай достигнет 25 ц с га.\n";
cout<< "\n\nРабота программы:\n";
while((prirost*count + 20) < 25)
{
count++;
}
cout<< "\n\nУрожай достигнет 25 ц с га через: " <<count;
// выбор формы согласования (год, года или лет)
while(count - 10 > 0)
{
count = count - 10;
}
switch (count)
{
case 1:
cout<< " год";
break;
case 2:
case 3:
case 4:
cout<<" года";
break;
default:
cout<<" лет";
break;
}
getch();
return 0;
}
1.4. Результаты работы программы:
2. Индивидуальное задание №2:
2.1. Постановка задачи:
Составить UML-диаграмму деятельности и программу для нахождения значения конечной суммы: Вводится целое число .
2.2. UML-диаграмма:
2.3. Листинг программы:
// Лабораторная работа №3
// Индивидуальное задание №2
#include "stdafx.h"
#include <iostream>
#include "conio.h"
#include "math.h"
#include "windows.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
setlocale( LC_ALL, "Russian" );
double a, S=0;
const double x=1;
int i, N;
cout<<"Лабораторная работа №3\n";
cout<<"\nГорошко А.А., БАС-051\n";
cout<<"\nВариант №6\n";
cout<<"\n\nИндивидуальное задание №2:\n";
cout<<"\nнайти значение конечной суммы S при x=1.\n";
cout<<"\n\nРабота программы:\n";
cout<<"\nВведите значение N>0\n"<<"\nN=";
cin>> N;
for(i=1; i<=N; i++)
{
a=(exp(x/i)+exp(-x/i))/(i+2)*(i+2)*(i+2)*(i+2);
S+=a;
}
cout<<"\nКонечная сумма:\n"<<"\nS=";
cout<< S;
getch();
return 0;
}
2.4. Результаты работы программы:
3. Табуляция функции:
3.1. Постановка задачи:
Составить UML-диаграмму деятельности и написать программу, позволяющую протабулировать функцию в диапазоне от до в равноудаленных точках.
3.2. UML-диаграмма:
3.3. Листинг программы:
// Лабораторная работа №3
// Табуляция функции
// Лабораторная работа №3
// Табуляция функции
#include "stdafx.h"
#include <iostream>
#include "conio.h"
#include "math.h"
#include "windows.h"
using namespace std;
const double x_min=-15;
const double x_max=20;
const int N=1000;
int _tmain(int argc, _TCHAR* argv[])
{
setlocale( LC_ALL, "Russian" );
double y, dx=(x_max-x_min / N);
cout<<"Лабораторная работа №3\n";
cout<<"\nГорошко А.А., БАС-051\n";
cout<<"\nВариант №6\n";
cout<<"\n\nЗадание:\n";
cout<<"\nпротабулировать функцию y в диапазоне от x_min=-15 до x_max=20\n";
cout<<"\nв N=1000 равноудаленных точках.\n";
cout<<"\n\nРабота программы:\n";
for (double x=x_min; x<=x_max; x+=dx)
{
if (x>3.5) y=(log(x)*cos(2*x));
else
if (x=3.5) y=(pow(x*x*x-1,1/3));
else y=(1+sin(x)*sin(x)-2*cos(2*x)*cos(2*x));
cout<< "x=";
cout<< x;
cout<< "\ny=";
cout<< y;
}
getch();
return 0;
}
3.4. Результаты работы программы:
4. Индивидуальное задание №3:
4.1. Постановка задачи:
Составить программу и произвести вычисление значения специальной функции второго интеграла Френеля: по ее разложению в ряд с точностью , аргумент функции вводится с клавиатуры.
4.2. UML-диаграмма:
4.3. Листинг программы:
// Лабораторная работа №3
// Индивидуальное задание №3
#include "stdafx.h"
#include <iostream>
#include "conio.h"
#include "math.h"
#include "windows.h"
#include <tchar.h>
using namespace std;
double fact(double number)
{
int k, i;
i = 1; k = 1;
if (number == 0 || number == 1)
return 1;
else
while (i <= number)
{
k *= i;
i++;
}
return k;
}
int _tmain(int argc, _TCHAR* argv[])
{
setlocale( LC_ALL, "Russian" );
double x, S, eps = 1e-10, a, n, pi;
char buff[256];
pi = 3,14159265358;
cout <<"Лабораторная работа № 3\n";
cout <<"\nГорошко А.А., БАС-051\n";
cout <<"\nВариант № 6\n";
cout <<"\n\nИндивидуальное задание № 3:\n";
cout <<"\nвычислить значение специальной функции второго интеграла Френеля\n";
cout <<"\nпо ее разложению в ряд с точностью eps=10^-10.\n";
cout <<"\n\nРабота программы:\n";
cout <<"\nВведите значение x\n"<< "\nx = ";
cin >> x;
a = 0;
S = x;
for(n = 1; fabs(a) < eps; n++)
{
a = pow(-1,n)*pow((pi/2),2*n+1)*pow(x,(4*n+3)) / (fact(2*n+1),(4*n+3));
S += a ;
}
cout << "\nS(" << x <<") = " << S << endl;
getch();
return 0;
}