База ответов ИНТУИТ

Решение олимпиадных задач по информатике

<<- Назад к вопросам

Найдите ошибки в приведенной ниже программе на Паскале, которая выполняет перевод числа a из 10-тичной в b-ричную систему счисления (b<10):

var a, b, s, x: real;beginreadln (a); readln (b); s:=0;while (a<>0) dobeginx:=a mod b; s:=s+x; a:=a div b;end;writeln (s);end.

(Ответ считается верным, если отмечены все правильные варианты ответов.)

Варианты ответа
неверен порядок следования команд в теле цикла. Правильно: a:=a div b; x:=a mod b; s:=s+x;
неверно выбран тип данных для переменных. В программе используются целочисленные переменные(Верный ответ)
условие выполнения тела цикла While неверно. Правильно: while (a>=0) do
накапливание сумы цифр неверно: s:=s+x. Правильно: s:=s*10 +x(Верный ответ)
Похожие вопросы

Найдите ошибки в приведенной ниже программе на Паскале, которая выполняет перевод числа a из b-ричной системы счисления (b<10) в 10-тичную:

var a: string;b, i, st, n, s, x, k:integer;beginreadln (a); readln(b); n:=length(a); s:=0; for i:=1 to n dobeginval (copy(a,i,1),x,k); s:=s+x*st; st:=st*b;end;writeln (s);end.

Для организации перевода числа а из десятичной в n-ричную систему счисления, программа на Паскале (начальный фрагмент которой приведен ниже)

…readln (a, n); i:=0;while (a<>0) dobegini:=i+1;x[i]:=a mod n;a:=a div n;end; …

должна быть продолжена так:

В результате выполнения программы на Паскале, фрагмент которой приведен ниже, в массив Х вводятся N натуральных чисел. Массив У будет содержать:

…j:=1; k:=0;for i:=1 to n do if x[i] mod 2=0 then  begin  y[j]:=i; j:=j+1;  end;…
Метод определения пересечения двух отрезков AB и CD: "Если сумма площадей треугольников ABC и ABD равна сумме площадей треугольников CDA и CDB, то отрезки пересекаются (иначе - нет)" имеет исключение:
Перевод чисел из десятичной системы счисления в n-ричную предполагает:

В результате выполнения программы на Паскале, фрагмент которой приведен ниже, в массив Х вводятся числа: 1, 2, 1, 2, 1, 2. Массив У будет содержать значения:

. . . for i:=1 to n do  begin readln (x[i]); y[i]:=i; end;for j:=n downto 2 do  for i:=1 to j-1 do  if x[i]>x[i+1] then     begin	m:=x[i]; x[i]:= x[i+1]; x[i+1]:=m;	g:=y[i]; y[i]:= y[i+1]; y[i+1]:=g;	end; . . . 

В результате выполнения программы на Паскале, фрагмент которой приведен ниже, в массив Х вводятся числа: 5, 4, 3, 2, 1. Массив У будет содержать значения:

. . . for i:=1 to n do  begin readln (x[i]); y[i]:=i; end;for j:=n downto 2 do  for i:=1 to j-1 do  if x[i]>x[i+1] then     begin	m:=x[i]; x[i]:= x[i+1]; x[i+1]:=m;	g:=y[i]; y[i]:= y[i+1]; y[i+1]:=g;	end; . . . 

В результате выполнения программы на Паскале, фрагмент которой приведен ниже, значение переменной s будет равно:

…n:=3; s:=0; k:=1;for i:=1 to n dofor j:=1 to n dobeginx[i,j]:=k; k:=k+1;endfor i:=1 to n dofor j:=1 to n doif (i<=n-j+1) then s:=s+x[i,j];…

Приведенная программа на Паскале позволяет …

var a, b, s, x: integer;beginreadln (a); readln (b); s:=0;while a<>0 dobeginx:=a mod b; s:=s*10 +x; a:=a div b;end;writeln (s);end.

В результате выполнения программы на Паскале, фрагмент которой приведен ниже, произойдет выборка элементов из исходного массива А=\{1, 2, 3\}. На печать выйдет:

… for i:=1 to n-1 dofor j:=i+1 to n do writeln (A[i], A[j]); …