- •Отчет о практике
- •II Простые действия со строками, 12.
- •III Сложные действия со строками, 12.
- •Int main() {
- •IV Преобразование символов в числа, 12.
- •Int main() {
- •Функции
- •I Разработка нерекурсивных функций, 12.
- •Int main(){
- •II Разработка рекурсивных функций, возвращающих значение, 12.
- •Int main() {
- •III Разработка рекурсивных функций, не возвращающих значений, 12.
- •Int main() {
- •IV Механизм перегрузки функций, 12.
- •Int main() {
- •V Функции-шаблоны, 12.
- •Int main() {
- •Организация файлового ввода/вывода
- •I Работа с текстовыми файлами, 12.
- •Int main() {
- •II Работа с текстовыми файлами, 12.
- •Int main() {
- •III Работа с двоичными файлами, 12.
- •Int main() {
- •Структуры
- •I Использовать структуру point для хранения координат точки, 12.
- •Int main() {
- •II Использовать структуру, содержащую члены-данные и члены-функции, 12.
- •Int main() {
- •Сортировки
- •Int main() {
- •Int main() {
- •Класс-контейнер вектор
- •Int main() {
- •Int main() {
- •Исключения
- •Int main() {
- •Список использованных источников
Int main() {
float x, y;
cin >> x;
F(x, y);
F(x);
cout << y;
cout<< endl;
cout << F(x);
return 0;
}
Результат работы программы:
V Функции-шаблоны, 12.
Использовать функции-шаблоны для работы с двумерными массивами арифметических типов данных.
Разработать шаблоны ввода и вывода массива, а также шаблон для решения основной задачи:
Подсчитать сумму элементов, расположенных на побочной диагонали.
Исходный код программы:
#include <iostream>
using namespace std;
template <typename T>
void inArr(int n, int m, T **a) {
for(int i = 0; i < n; i++) {
for(int j = 0; j < m; j++) {
cin >> a[i][j];
}
}
cout << endl;
}
template <typename T>
void printArr(int n, int m, T **a) {
for(int i = 0; i < n; i++) {
for(int j = 0;j < m; j++) {
cout << a[i][j] << " ";
}
cout << endl;
}
cout << endl;
}
template <typename T>
T f(int n, int m, T **a) {
int sum = 0;
for (int i = 0, j = m - 1; i < n && j >= 0 ; i++, j--) {
sum += a[i][j];
}
return sum;
}
Int main() {
int n, m;
int** a;
cin >> n >> m;
a = new int*[n];
for(int i = 0; i < n; i++)
a[i] = new int[m];
inArr(n, m, a);
printArr(n, m, a);
cout << f(n, m, a) << endl;
return 0;
}
Результат работы программы:
Организация файлового ввода/вывода
I Работа с текстовыми файлами, 12.
Дан текстовый файл. Напечатать все строки, длина которых равна данному числу.
Исходный код программы:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
Int main() {
ifstream in("input.txt");
ofstream out("output.txt");
int n;
cin >> n;
string s = "";
while(!in.eof()) {
char symbol;
in.get(symbol);
if(symbol == ' ') {
if(s.size() == n) {
out << s << endl;
}
s = "";
}
else s += symbol;
}
return 0;
}
Результат работы программы:
II Работа с текстовыми файлами, 12.
Даны два файла с одинаковым количеством компонент, компонентами которых являются символы. Выяснить, совпадают ли попарно их компоненты. Если нет, получить номер первого элемента, в котором эти файлы отличаются.
Исходный код программы:
#include <iostream>
#include <fstream>
using namespace std;
Int main() {
ifstream in1("input1.txt");
ifstream in2("input2.txt");
ofstream out("output.txt");
int l = 0, k = 0;
while(!in1.eof()) {
char symbol1, symbol2;
in1 >> symbol1;
in2 >> symbol2;
k++;
if(symbol1 != symbol2) {
out << k << endl;
l++;
break;
}
}
if(l == 0) {
out << "Vse sovpadaet";
}
return 0;
}
Результат работы программы:
первый тест
второй тест
III Работа с двоичными файлами, 12.
Создать файл, состоящий из n вещественных чисел. Вывести на экран все числа данного файла с четными порядковыми номерами, меньшие заданного числа.
Исходный код программы:
#include <iostream>
#include <fstream>
using namespace std;