- •Отчет о практике
- •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(){
int a;
cin >> a;
int kol = div_count(a);
for (int i = 1; i < a; i++){
if (div_count(i) == kol){
cout << i << endl;
}
}
return 0;
}
Результат работы программы:
II Разработка рекурсивных функций, возвращающих значение, 12.
Разработать рекурсивную функцию, возвращающую значение для вычисления суммы цифр в строке; с помощью данной функции определить, в каком из двух предложений сумма цифр больше.
Исходный код программы:
#include <iostream>
#include <string>
using namespace std;
int f(string s) {
if (s.length() == 1) {
return (s[0]-'0');
}
return (s[0] - '0') + f(s.substr(1, s.size() - 1));
}
Int main() {
string s1,s2;
cin >> s1 >> s2;
cout << (f(s1) > f(s2) ? "sum in first string" : "sum in second string") << endl;
return 0;
}
Результат работы программы:
III Разработка рекурсивных функций, не возвращающих значений, 12.
Дано натуральное четное число n. Разработать рекурсивную функцию для вывода на экран следующей картинки:
* * (n пробелов между звездочками) ** ** (n-2 пробела) *** *** (n-4 пробела) ... ... ***** ***** (2 пробела) ********** (0 пробелов) ***** ***** (2 пробела) ... ... *** *** (n-4 пробела) ** ** (n-2 пробела) * * (n пробелов)
Исходный код программы:
#include <iostream>
using namespace std;
int n;
void F(int probely) {
if (probely <= 0) {
for (int i = 0; i < n + 2; ++i)
cout << '*';
cout<<endl;
}
else {
for ( int i = 0; i < n + 2; i++) {
if (( i >= ((n + 2) - probely) / 2) && ( i < (n + 2) - ((n + 2) - probely) / 2)) {
cout << ' ';
}
else cout<< '*';
} //for
cout << endl;
F(probely - 2);
for (int i = 0; i < n + 2; i++) {
if (( i >= ((n + 2) - probely) / 2) && ( i < (n + 2) - ((n + 2) - probely) / 2)) {
cout << ' ';
}
else cout << '*';
}
cout << endl;
} // else
}
Int main() {
cout << "n=";
cin >> n;
F(n);
return 0;
}
Результат работы программы:
IV Механизм перегрузки функций, 12.
Используя механизм перегрузки функций, разработайте две версии функции F, заголовки которых выглядят следующим образом:
float F(float x);
void F(float x. float &y);
Продемонстрируйте работу данных функций на примере.
Исходный код программы:
#include <iostream>
using namespace std;
void F(float x, float &y) {
if (x < 0){
y = 0;
}
else if ((x >= 0) && (x != 1)) {
y = x*x + 1;
}
else if (x == 1) {
y = 1;
}
}
float F(float x){
if (x < 0){
return (0);
}
else if ((x >= 0) && (x != 1)) {
return (x*x + 1);
}
else if (x == 1) {
return (1);
}
}