Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
высшего образования
«Кубанский государственный университет»

Факультет компьютерных технологий и прикладной математики
Кафедра информационных технологий

ОТЧЕТ

ПО УЧЕБНОЙ ПРАКТИКЕ 
(практика по получению первичных профессиональных умений и навыков)

Работу выполнил ________________________________  Э.М. Кюлян
студент ФКТиПМ, 1 курса, 11 гр., 
направление 01.03.02 «Прикладная математика и информатика»

Руководитель учебной практики
(практика по получению
первичных профессиональных 
умений и навыков) ____________________________  Лукащик Е.П.  доцент кафедры информационных технологий 
факультета компьютерных технологий
и прикладной математики, к.ф.-м.н., доцент  

Краснодар 2019

•	Условие задачи
На ускорителе для большого числа частиц производятся замеры скорости каждой из них. Скорость частицы задается натуральным числом. Характеристикой серии частиц считается число, равное минимальной чётной сумме из всех сумм пар скоростей различных частиц. Если чётная сумма отсутствует, то характеристикой будет являться просто минимальная сумма. 
Написать программу, которая будет обрабатывать результаты эксперимента, находя искомую величину. 
•	Описание алгоритма решения и структур хранения данных 
Будем проверять считаную скорость на то, что является ли она четной и минимальной или же нечетной  и минимальной.Дальше мы будем складывать наши минимумы со следующей скоростью и записывать их в ответ, если при сложении получилась четная сумма, которая меньше предыдущей.
Изначальным значением минимума нечетных чисел(m1)возьмем значение 100000001, такое же значение присвоим минимуму четных чисел(m2), минимальной сумме(minp) присвоим значение 200000002.
Так как каждая скорость является натуральным числом, используем тим int. 
Минимум четных чисел, минимум нечетных чисел и минимальная сумма также имеют тип int.
Таким образом используются следующие переменные и типы:
•	minp - минимальная сумма целочисленного типа.
•	path-текстовый файл, из которого будет происходить считывание данных.
•	fin – типа ifstream для переписи и работы со скоростями частиц.
•	m1,m2  - целочисленного типа для фиксации минимальных значений четных и нечетных велечин.
•	x1,x2 –целочисленного типа для работы со скоростями.
     
•	Описание входных и выходных данных
Ввод данных будем осуществлять из текстового файла( file.txt), в котором указаны скорости серии частиц.
В основной программе происходит считывание каждой строки текстового файла, занесение значений в соответствующие поля записи(x1,x2) и вывод ответа.

•	Текст программы
#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main()
{
	setlocale(LC_ALL, "ru");
	string path = "file.txt";
	ofstream fout;
	fout.open(path);
	int n,x;
	cout << "Количество скоростей: ";
	cin >> n;
	cout << "\n" << "Введите скорости: ";
	for (int i = 0; i < n-1; i++) {
		cin >> x;
		fout << x <<"\n";
	}
	cin >> x;
	fout << x;
	fout.close();
	int minp = 200000002,m1 = 100000001, m2 = 100000001, x1, x2;
	ifstream fin;
	fin.open(path);
	if (!fin.is_open()) {
		cout << "Ошибка открытия файла!" << "\n";
		exit(0);
	}
	fin >> x1;
	while (!fin.eof()) {
		fin >> x2;	
		if (x1 % 2 != 0 && x1 < m1) {
			m1 = x1;
		}
		if (x1 % 2 == 0 && x1 < m2) {
			m2 = x1;
		}
		if (m1 + x2 <minp && (m1 + x2) % 2 == 0 && m1<100000001) {
			minp = m1 + x2;
		}
		if (m2 + x2 <minp && (m2 + x2) % 2 == 0 && m2<100000001) {
			minp = m2 + x2;
		}
		x1 = x2;
	}
	fin.close();
	if (minp != 200000002) {
		cout <<"Результат: "<<minp<<"\n";
	}
	else if(m2 == 100000001 || m1 == 100000001) {
		if(m2 == 100000001) cout <<"Результат: "<<m1 + x1 << "\n";
		else cout << "Результат: " << x1 + m2 << "\n";
	}
	else {
		cout << "Результат: " << m1 + m2 << "\n";
	}
}

•	 Тестовый запуск программы и вывод результатов работы.

  1.
В файле file.txt содержатся скорости 15 частиц: 35, 89, 96, 18, 45, 98, 72, 49, 32, 89, 83, 35, 67, 38, 93 . Программа должна вывести 50.

Программа работает корректно.
2.
В файле file.txt содержатся скорости 10 частиц: 93, 84, 89, 28, 12, 57, 42, 31, 92, 77, 93 . Программа должна вывести 40.

Программа работает корректно.
3.
В файле file.txt содержатся скорости 2 частиц: 1, 2.     Программа должна вывести 3.

Программа работает корректно.