Решение олимпиадных задач по информатике
В результате приведенной программы на Паскале на экран выводится:
Приведенная программа на Паскале реализует алгоритм …
const m=…;var a, rez: array [1..m] of byte; i, n, x, k: integer; stroka: string;begin readln (stroka); readln (x); n:= length (stroka); for i:=1 to n do val (copy(stroka, i, 1), a[i], k); for i:=1 to n do rez[i]:= a[i] * x; for i:=n downto 2 do begin rez[i-1]:= rez[i-1]+rez[i] div 10; rez[i]:= rez[i] mod 10; end for i:=1 to n do write (rez[i]);end.
Приведенная программа на Паскале реализует алгоритм поразрядного умножения числа на число от 0 до 9, вводимых с клавиатуры приведена с ошибкой. Найдите ее.
const m=…;var a, rez: array [1..m] of byte; i, n, x, k: integer; stroka: string;begin readln (stroka); readln (x); n:= length (stroka); for i:=1 to n do val (copy(stroka, i, 1), a[i], k); for i:=1 to n do rez[i]:= a[i] * x; for i:=n downto 2 do begin rez[i-1]:= rez[i-1]+rez[i] mod 10; rez[i]:= rez[i] div 10; end for i:=1 to n do write (rez[i]);end.
Что выведется на экран в результате работы программы, фрагмент которой приведен ниже:
… stroka:='(5+y)*(x-4)'; n:=length (stroka); s:=0; for i:=1 to n do begin a[i]:=copy(stroka, i, 1); flag[i]:=0; end; for i:=1 to n do begin if a[i]="(" then flag [i]:=1; if a[i]=")" then flag [i]:=-1; end; for i:=1 to n do begin s:=s+flag [i]; if s<0 then x:=1; end; if (s=0) and (x=0) then writeln ('верно') else writeln ('неверно');…
В результате работы программы, фрагмент которой приведен ниже, идет проверка правильности расстановок скобок в арифметическом выражении. Что будет результатом работы программы, если в данном выражении (например: ) избыточное количество скобок:
… n:=length (stroka); s:=0; for i:=1 to n do begin a[i]:=copy(stroka, i, 1); flag[i]:=0; end; for i:=1 to n do begin if a[i]="(" then flag [i]:=1; if a[i]=")" then flag [i]:=-1; end; for i:=1 to n do begin s:=s+flag [i]; if s<0 then x:=1; end; if (s=0) and (x=0) then writeln ('верно') else writeln ('неверно');…
В результате работы программы, фрагмент которой приведен ниже, идет проверка правильности расстановок скобок в арифметическом выражении. Что будет результатом работы программы, если в данном выражении (например: избыточное количество скобок:
… n:=length (stroka); s:=0; for i:=1 to n do begin a[i]:=copy(stroka, i, 1); flag[i]:=0; end; for i:=1 to n do begin if a[i]="(" then flag [i]:=1; if a[i]=")" then flag [i]:=-1; end; for i:=1 to n do begin s:=s+flag [i]; if s<0 then x:=1; end; if (s=0) and (x=0) then writeln ('верно') else writeln ('неверно');…
Предскажите результат выполнения программы на Паскале (фрагмент ниже):
…a:='1234'; n:=length(a);while (n>1) do begin s:=0; for i:=1 to n do begin val (copy(a,i,1),x,k); s:=s+x; end; str(s,a); n:=length(a); end;writeln (s);…
В приведенной ниже программе организован ввод предложения и вывод…
var a: array [1..20] of string;s: string;i, n, j,k:integer;beginreadln (s); n:=length(s); j:=1;for i:=1 to n doif copy(s,i,1)=' ' then j:=j+1else a[j]:=a[j]+copy(s,i,1);for i:=1 to j do write (a[i]);end.
Каков будет результат выполнения программы на Паскале, если с клавиатуры вводится слово "Ротор":
var a:string; k,n,i: integer;begin readln (a); k:=0; n:=length(a); for i:=1 to n do if copy(a,i,1) <> copy(a,n-i+1,1) then k:=k+1;writeln (k);end.
Каков будет результат выполнения программы, если с клавиатуры вводится слово "Ротор":
var a:string; k,n,i: integer;begin readln (a); k:=0; n:=length(a); for i:=1 to n div 2 do if copy(a,i,1) <> copy(a,n-i+1,1) then k:=k+1;writeln (k);end.