Пример 1. Написать программу, запрашивающую N целых чисел и выводящих в текстовый файл все цифры этих чисел через запятую в обратном порядке.
#include <iostream>
#include <fstream>
using namespace std;
ofstream f;
void vyvod(int n) //данные передаются по значению
{
int k;
while (n!=0)
{
k=n%10;
f<<k;
n=n/10;
if (n!=0) f<<",";
}
f<<endl;
}
int main ()
{
int x, i,n;
f. open("a. txt",ios::out);
cin>>n;
for (i=1;i<=n;i++)
{
cin>>x;
vyvod(x);
}
f. close();
system ("pause");
return 0;
}
Пример 2. Найти наибольший общий делитель (НОД) для значений x, y, x+y.
Идея решения состоит в следующем математическом факте: если х, у, z — три натуральных числа, то НОД(х, у, z) = НОД(НОД(х, у), z) – иначе говоря, нужно найти НОД двух величин, а затем НОД полученного значения и третьего числа.
#include <iostream>
using namespace std;
int evklid(int m, int n) //данные передаются по значению
{
while (m!=n)
if (m>n) m=m-n;
else n=n-m;
return (m);
}
int main ()
{
int x, y,nod;
cin>>x>>y;
nod=evklid(evklid(x, y),x+y);
cout<<"NOD="<<nod<<"\n";
system ("pause");
return 0;
}
Пример 3. Что будет выведено в результате выполнения программы?
#include <iostream>
#include <iomanip>
using namespace std;
void One(int x, int y, int& z)
{
x=y+2;
y=z*3;
z=5;
cout<<x<<y<<z<<endl;
}
void Two(int x, int& z, int& y)
{
x=y+z; y=y+10;
cout<<x<<y<<z<<endl;
}
void main()
{
int a=1, b=2,c=3;
Two(b, a,c);
cout<<b<<a<<c<<endl;
One(a, b,c);
cout<<a<<b<<c<<endl;
}
Решение
в функции main | в функции Two | в функции One | команды | |||||
a | b | C | x | z | y | x | y | z |
1 | 2 | 3 | a=1; b=2; c=3; | |||||
1 | 2 | 3 | 2 | Two(b, a,c) | ||||
4 | X=y+z | |||||||
13 | Y=y+10 | |||||||
cout<<x<<y<<z {выводим 4 13 1} | ||||||||
cout<<b<<a<<c {выводим 2 1 13} | ||||||||
1 | 2 | 13 | 1 | 2 | Оne(a, b,c) | |||
4 | x=y+2 | |||||||
39 | y:=z*3 | |||||||
5 | z:=5 | |||||||
cout<<x<<y<<z {выводим 4 39 5} | ||||||||
cout<<a<<b<<c {выводим 1 2 5} |
Ответ:
4 13 1
2 1 13
4 39 5
1 2 5


