C++ Дана прямоугольная матрица размерности MxN и заданное значение. Составить и вывести новый одномерный массив со значениями элементов исходной матрицы, не равных заданному значению А, введенному с клавиатуры.
Возьмем произвольное число n. Оно будет иметь ровно два знака в шестнадцатеричной записи тогда и только тогда, когда 15 < n < 256. Таким образом, задача сводится к нахождению количества элементов массива находящихся в промежутке (15; 256). Первую цифру числа в шестнадцатеричной записи можно найти как N div 16, а вторую - N mod 16 Программа на языке Pascal:
const N = 2017; // Количество элементов в массиве
var a: array[1..N] of integer; i, c: integer;
begin // Генерация массива (можно изменить на ввод с клавиатуры) for i := 1 to N do a[i] := Random(10000) + 1; // Подсчет количества элементов массива, удовлетворяющим неравенству c := 0; for i := 1 to N do if (a[i] > 15) and (a[i] < 256) and (a[i] div 16 > a[i] mod 16) then c += 1; write(c); end.
Begin
B:=A*A;
C:=B*A;
D:=C*A;
End;
Var
A,B,C,D:real;
Begin
Write('A = ');ReadLn(A);
ABCD(A,B,C,D);
WriteLn(A,' ',B,' ',C,' ',D);
End.
Пример вычислений для 10-ти разных чисел:
A = 1
1 1 1 1
A = 2
2 4 8 16
A = 3
3 9 27 81
A = -10
-10 100 -1000 10000
A = 3.141592
3.141592 9.869600294464 31.0062573282858 97.4090099724839
A = 111
111 12321 1367631 151807041
A = 6.66
6.66 44.3556 295.408296 1967.41925136
A = -2.718121812
-2.718121812 7.38818618487016 -20.0819900202127 54.5852951023063
A = 789456123
789456123 6.23240970142191E+17 4.92021399983213E+26 3.8842930686378E+35
A = 123456789
123456789 1.52415787501905E+16 1.88167637178915E+24 2.32305722798259E+32
Первую цифру числа в шестнадцатеричной записи можно найти как N div 16, а вторую - N mod 16
Программа на языке Pascal:
const
N = 2017; // Количество элементов в массиве
var
a: array[1..N] of integer;
i, c: integer;
begin
// Генерация массива (можно изменить на ввод с клавиатуры)
for i := 1 to N do
a[i] := Random(10000) + 1;
// Подсчет количества элементов массива, удовлетворяющим
неравенству
c := 0;
for i := 1 to N do
if (a[i] > 15) and (a[i] < 256) and (a[i] div 16 > a[i] mod 16) then
c += 1;
write(c);
end.