const
AOper: array [0..3] of string = ('+', '-', '*', '/');
var
a, b, Oper: Integer;
r: Real;
begin
Randomize; // инициализация датчика случайных чисел
a := Random (1001);
b := Random (1001);
Oper := Random (4);
case Oper of
0: r := a + b;
1: r := a - b;
2: r := a * b;
3:if b <> 0 then begin
r := a / b;
end else begin
WriteLn ('Произошла ошибка при делении на ноль');
Exit;
end
else r := -1;
end;
WriteLn (a);
WriteLn (b);
WriteLn (Aoper [Oper]);
if (r >= 0) and (r - Trunc (r) = 0) then begin // если в результате получилось положительное целое число
WriteLn ('yes');
WriteLn (r :6 :0);
end else
WriteLn (' no');
ReadLn;
end.
Объяснение:
r - Trunc (r) // это выделение дробной части числа
#include <iomanip>
#include <ctime>
int main()
{
setlocale(LC_ALL, "RUSSIAN");
const int N = 5;
int matrix[N][N];
int A[(N*N) / 2], B[(N*N)/2];
int k = 0;
srand(time(NULL));
for (int i = 0; i < N; i++)
{
std::cout << std::endl;
for (int j = 0; j < N; j++)
{
matrix[i][j] = rand() % 100;
std::cout << std::setw(3) << matrix[i][j] << " ";
}
}
for (int i = 0; i < N; i++)
for (int j = 0; j < N; j++)
if (i >= j)
{
A[k] = matrix[i][j];
k++;
}
std::cout << std::endl;
std::cout << "Массив, содержащий элементы, лежащие на главной диагонали и ниже ее:" << std::endl;
for (int i = 0; i < k; i++)
std::cout << A[i] << " ";
k = 0;
std::cout << std::endl;
for(int i=0; i<N; i++)
for (int j = N - i-1; j < N; j++)
{
B[k] = matrix[i][j];
k++;
}
std::cout << "Массив, содержащий элементы, лежащие на побочной диагонали и ниже ее:" << std::endl;
for (int i = 0; i < k; i++)
std::cout << B[i] << " ";
std::cout << std::endl;
system("pause");
}