Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
отчет по летней практике за 1 курс (Аленка).docx
Скачиваний:
0
Добавлен:
09.11.2019
Размер:
922.33 Кб
Скачать

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, заголовки которых выглядят следующим образом:

  1. float F(float x);

  2. 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);

}

}