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*
Комментарий*

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

det-skazka55
Петренко1852
ti2107
krylova-natali
elenalukanova
nadnuriewa8110
Matveevanastya0170
rusmoney92
alekseisamohvolov7
katdavidova91
master-lamaster
pryvalovo48
sargisyan
maksim1lssah575
demakova1969