Объяснение:
procedure F(n: integer);
begin
if n>0 then begin
Write (n);
F(n-2);
F(n div 4);
end
end;
F(9);
end.
На выходе будет 97531112
Если нужна трассировка, её можно сделать примерно так:
Writeln('Вход');
Writeln ('В выходную строку: ',n);
Writeln('Вызов F(n-2)');
Writeln('Вызов F(n div 4)');
Writeln('Выход')
Результат трассировки:
Вход
В выходную строку: 9
Вызов F(n-2)
В выходную строку: 7
В выходную строку: 5
В выходную строку: 3
В выходную строку: 1
Выход
Вызов F(n div 4)
В выходную строку: 2
#include <iostream>
using namespace std;
int main() {
setlocale(LC_ALL, "");
int N = 10;
int max = -9999999;
int sum = 0;
int choise = 0;
int arr[N] = {0};
cout << "Введите 10 значений: ";
for(int i = 0; i<N; ++i) {
cin >> arr[i];
}
cout << "Введите действие (1 - +, 2 - макс. значение, 3 - колво отр. значений)";
cin >> choise;
if(choise==1) {
sum+=arr[i];
cout << endl << "Сумма: " << sum;
if(choise==2) {
if(arr[i]>max) {
max = arr[i];
cout << endl << "Макс. знач: " << max;
if(choise==3) {
if(arr[i]<0) {
++sum;
cout << "Колво отр. знач: " << sum;
if(choise!=1&&choise!=2&&choise!=3) {
cout << "Введите корректное значение.";
return 0;
Объяснение:
procedure F(n: integer);
begin
if n>0 then begin
Write (n);
F(n-2);
F(n div 4);
end
end;
begin
F(9);
end.
На выходе будет 97531112
Если нужна трассировка, её можно сделать примерно так:
procedure F(n: integer);
begin
Writeln('Вход');
if n>0 then begin
Writeln ('В выходную строку: ',n);
Writeln('Вызов F(n-2)');
F(n-2);
Writeln('Вызов F(n div 4)');
F(n div 4);
end;
Writeln('Выход')
end;
begin
F(9);
end.
Результат трассировки:
Вход
В выходную строку: 9
Вызов F(n-2)
Вход
В выходную строку: 7
Вызов F(n-2)
Вход
В выходную строку: 5
Вызов F(n-2)
Вход
В выходную строку: 3
Вызов F(n-2)
Вход
В выходную строку: 1
Вызов F(n-2)
Вход
Выход
Вызов F(n div 4)
Вход
Выход
Выход
Вызов F(n div 4)
Вход
Выход
Выход
Вызов F(n div 4)
Вход
В выходную строку: 1
Вызов F(n-2)
Вход
Выход
Вызов F(n div 4)
Вход
Выход
Выход
Выход
Вызов F(n div 4)
Вход
В выходную строку: 1
Вызов F(n-2)
Вход
Выход
Вызов F(n div 4)
Вход
Выход
Выход
Выход
Вызов F(n div 4)
Вход
В выходную строку: 2
Вызов F(n-2)
Вход
Выход
Вызов F(n div 4)
Вход
Выход
Выход
Выход
#include <iostream>
using namespace std;
int main() {
setlocale(LC_ALL, "");
int N = 10;
int max = -9999999;
int sum = 0;
int choise = 0;
int arr[N] = {0};
cout << "Введите 10 значений: ";
for(int i = 0; i<N; ++i) {
cin >> arr[i];
}
cout << "Введите действие (1 - +, 2 - макс. значение, 3 - колво отр. значений)";
cin >> choise;
if(choise==1) {
for(int i = 0; i<N; ++i) {
sum+=arr[i];
}
cout << endl << "Сумма: " << sum;
}
if(choise==2) {
for(int i = 0; i<N; ++i) {
if(arr[i]>max) {
max = arr[i];
}
}
cout << endl << "Макс. знач: " << max;
}
if(choise==3) {
for(int i = 0; i<N; ++i) {
if(arr[i]<0) {
++sum;
}
}
cout << "Колво отр. знач: " << sum;
}
if(choise!=1&&choise!=2&&choise!=3) {
cout << "Введите корректное значение.";
}
return 0;
}