buleckovd8724
?>

Объясните строчку ( c: =10*c+a mod 10; a : = a div 10; ) program pr36; function qwer(var a, b: integer): integer; var c: integer; begin c: =0; while a > 0 do begin c: =10*c+a mod 10; a : = a div 10; end; qwer: = c; end; var a, b: integer; begin writeln('vvedite chislo'); readln(a); writeln(qwer(a, b)); end.

Информатика

Ответы

bykotatyana
c:=10*c+a mod 10;
ответ: переменной "с" целочисленного типа присваивается значение 10 умножить на ту же переменной "с" целочисленного типа (без учета текущих расчетов) плюс остаток от деления переменной "а" целочисленного типа на 10 при операции mod.

a := a div 10;
ответ: переменной "a" целочисленного типа присваивается целая часть от деления переменной "а" до текущего шага на цифру 10.
xarfagr
1) Начало
2) Ввод матрицы A(5, 10)
3) Цикл по i от 1 до 5 // по строкам
3.1) max = A(i, 1); min = A(i, 1); nmax = 1; nmin = 1;
3.2) Цикл по k от 1 до 10 // по столбцам
3.2.1) Если A(i, k) > max, то // находим максимум в строке и его номер
3.2.1.1) max = A(i, k); nmax = k;
3.2.1.2) Конец Если
3.2.2) Если A(i, k) < min, то // находим минимум в строке и его номер
3.2.2.1) min = A(i, k); nmin = k;
3.2.2.2) Конец Если
3.2.3) Конец цикла по k // по столбцам
3.2.4) A(i, nmin) = max; A(i, nmax) = min // меняем их местами
3.3) Конец цикла по i // по строкам
4) Вывод массива A(5, 10)
5) Конец.
Сложность такой программы - 1 (очень простая).
Всего лишь два цикла в цикле и два сравнения чисел.
sv-opt0076
7. Произведение двух матриц - это матрица, каждый член которой есть
c(i, j) = Summa(1, k) a(i, k)*b(k, j)
То есть надо три цикла друг в друге, а внутри эта формула.
for i:=1 to 3 do
begin
for j:=1 to 3 do
begin
C[i,j]:=0;
for k:=1 to 3 do C[i,j] := C[i,j] + A[i,k]*B[k,j];
end;
end;
9. Номера максимальных элементов в каждой строке А(3, 4) сами образуют
массив B(3). Цикл такой:
for i:=1 to 3 do
begin
Max = A[i, 1];
for j:= 1 to 4 do
if A[i,j] > Max then Max := A[i,j]; B[i]:= j;
end;

10. Тоже самое, как в 9
for i:=1 to 3 do
begin
B[i] = 0;
for j:= 1 to 4 do if (A[i,j] mod 3 = 0) then B[i] := B[i] + A[i,j];
end;

11. Сначала заполним массив B[i] средними ариф. по строкам
for i:=1 to 3 do
begin
B[i] = 0;
for j:= 1 to 4 do B[i] := B[i] + A[i,j];
B[i] := B[i] / 4;
end;
А потом найдем в каждой строке A[i,j], сколько элементов больше B[i].
Посчитаем их в счетчике с и запишем обратно в массив B[i].
for i:=1 to 3 do
begin
c:=0;
for j:= 1 to 4 do if A[i,j] > B[i] then c:=c+1;
B[i] := c;
end;

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Объясните строчку ( c: =10*c+a mod 10; a : = a div 10; ) program pr36; function qwer(var a, b: integer): integer; var c: integer; begin c: =0; while a > 0 do begin c: =10*c+a mod 10; a : = a div 10; end; qwer: = c; end; var a, b: integer; begin writeln('vvedite chislo'); readln(a); writeln(qwer(a, b)); end.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

myrisik2490
Никита
Garifovich Greshilova791
istok11
Vasilevskii
Liliya1106
Матвеев
flerbuket332
annashaykhattarova1
Aleksandrovich-Yurevna1421
Барскова1943
oskina3
kristina1989
Tatyana-Sergeevna108
Михайловна991