Решение олимпиадных задач по информатике - ответы
Для выбора элементов из исходного множества двоичным перебором необходимо получать последовательные двоичные коды. Способ получения нового двоичного кода (на единицу больше предыдущего):
Программа на Паскале, фрагмент которой приведен ниже, выводит индексы положительных элементов двумерного массива, произведение индексов которых четно. Какое логическое выражение вместо вопросительного знака в ветвлении необходимо указать:
…for i:=1 to n dofor j:=1 to m doif ? then writeln (i,j);…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, на экран выведутся:
…readln (n);for i:=1 to n do a[i]:=i;for i:=2 to n div 2 do if flag[i]=0 then for j:=i+1 to n do if (a[j] mod a[i]=0) then flag[j]:=1;for i:=2 to n do if flag[i]=0 then writeln (a[i])…
Назначение программы на Паскале, фрагмент которой приведен ниже:
…readln (x1, y1); readln (x2, y2); readln (x3, y3);a:= sqrt (sqr(x1-x2)+sqr(y1-y2));b:= sqrt (sqr(x2-x3)+sqr(y2-y3));c:= sqrt (sqr(x3-x1)+sqr(y3-y1));p:=(a+b+c) / 2;writeln (sqrt (p*(p-a)*(p-b)*(p-c)));…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, в переменной M будет находиться:
…j:=0; m:=1; n:=10;for i:=1 to n do x[i]:=i;for i:=1 to n do begin if x[i] mod 3=0 then begin j:=j+1; y[j]:=i; end; end;for i:=1 to j do m:=m*x[y[i]]; …
Определите результат работы фрагмента программы на Паскале:
…for i:=1 to 10 do a[i]:=i-1;z:=0; d:=0; h=1;for i:=1 to 10 do beginif i mod 2 <> 0 then z:=z+a[i]; if a[i] mod 3 = 0 then d:=d*a[i];if a[i] <= 0 then h:=h+1; end; write (z, ' ', d, ' ', h);…
Предположим, что есть программа на Паскале, реализующая заполнение Арифметического квадрата порядка nxn. В какой части этого массива находится "Треугольник Паскаля"?
Что делает приведенная ниже программа на Паскале:
var a: string;b, i, j, st, n, s, x, k: integer;beginwriteln ('введите число'); readln (a); n:=length(a); s:=0; for i:=1 to n do begin val (copy(a,n-i+1,1),x,k); st:=1; for j:=1 to n do st:=st*x; s:=s+st; end; val (a, x, k); if s=x then writeln ('+') else writeln ('-');end.
Треугольник на плоскости задан координатами своих вершин. Каким образом можно определить, прямоугольный ли это треугольник?
Три населенных пункта
и
соединены дорогами. Стоимость бавтобусного билета зависит от расстояния между населенными пунктами
. К какому типу комбинаторных групп принадлежат эти выбранные населенные пункты
Использование дополнительного массива флажков ("отмечающих" выбранные элементы в соответствующих флажкам позициях исходного массива) предполагает, что:
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, двумерный массив будет заполнен так:
…for i:=1 to 4 dofor j:=1 to 5 do x[i,j]:=i;…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, произойдет выборка элементов из исходного массива . На печать выйдет:
… for i:=1 to n dofor j:=1 to n do if i<>j then write (A[i], A[j]);…
Установите, как будет заполнен двумерный массив в результате выполнения программы на Паскале, фрагмент которой приведен ниже:
…for k:=1 to (n div 2 +1) do for i:=k to n-k+1 do for j:=k to n-k+1 do a[i,j]:= k;…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, произойдет выборка элементов из исходного массива . На печать выйдет:
… for i:=1 to n dofor j:=1 to n do writeln (A[i], A[j]); …
В результате выполнения программы, фрагмент которой приведен ниже
…n=5;for i:=1 to n do write (n-i+1);…
выводится ряд чисел:
Установите, как будет заполнен двумерный массив в результате выполнения программы на Паскале, фрагмент которой приведен ниже:
…x:=1;for i:=1 to n do for j:=1 to n do begin if i mod 2=0 then a[i,n-j+1]:=x else a[i,j]:=x; x:=x+1; end;…
Приведенная программа на Паскале реализует алгоритм …
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.
Для реализации алгоритма заполнения Магического квадрата размерностью
методом "Террас" необходимо заполнить двумерный массив размерностью:
Найдите ошибки в приведенной ниже программе на Паскале, которая выполняет перевод числа a из -ричной системы счисления (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.
Для получения переноса в соседний разряд в результате арифметических операций с "цифрами", хранящимися в элементах массива (при работе со "сверхбольшими" числами) используют арифметическую операцию:
Приведенный ниже фрагмент программы на Паскале реализует алгоритм заполнения Арифметического квадрата.
…for i:=1 to n do for j:=1 to n do begin a[i,j]:=1; a[i,j]:=1; end;for i:=2 to n do for j:=2 to n do a[i,j]:=a[i-1,j]+a[i,j-1];…
Что в нем стоит изменить?
Выберите фрагменты программ на Паскале, реализующие алгоритм сортировки одномерного массива "Пузырьком":
В результате работы программы, фрагмент которой приведен ниже, идет проверка правильности расстановок скобок в арифметическом выражении. Что будет результатом работы программы, если в данном выражении (например: ) избыточное количество скобок:
… 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 ('неверно');…
К каким основным типам формирования комбинаторных групп относятся выборки точек по условию такой задачи: "На плоскости
точек заданы своими координатами. Найти 2 наиболее удаленные друг от друга точки".
Найдите ошибки в приведенной ниже программе на Паскале, которая выполняет перевод числа из 10-тичной в
-ричную систему счисления (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.
В результате выполнения программы, фрагмент которой приведен ниже
…n=5;for i:=0 to n-1 do write (n-i);…
выводится ряд чисел:
В результате выполнения программы, фрагмент которой приведен ниже
…n:=5;for i:=n downto 1 do write (n-i+1);…
выводится ряд чисел:
Каков будет результат выполнения программы на Паскале, если с клавиатуры вводится слово "Ротор":
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.
Фрагмент программы на Паскале проверяет - простое ли число n, введенное с клавиатуры, он не правильный. Укажите возможные правильные варианты.
…...k:=0;for i:=1 to n-1 do if n mod i=0 then k:=k+1;if k=2 then writeln ('число простое')else writeln ('число составное');…
Укажите, какой фрагмент программы на Паскале проверяет - совершенное ли число n, введенное с клавиатуры:
Определите результат работы фрагмента программы на Паскале:
…for i:=1 to 10 do a[i]:=i-1;z:=0; d:=1; h:=1;for i:=1 to 10 do beginif i mod 2 <> 0 then z:=z+a[i]; if a[i] mod 3 = 0 then d:=d*a[i];if a[i] <= 0 then h:=h+1; end; write (z, ' ', d, ' ', h);…
Определите содержимое переменной в результате работы программы на Паскале, фрагмент которой приведен ниже:
… for i:=1 to 5 do a[i]:=i-5;m:=a[1];for i:=1 to 5 do if a[i]<m then m:=a[i];…
В результате выполнения программы, фрагмент которой приведен ниже, элементы одномерного массива примут значения …
const n=10; k=5;var a: array [1..n+1] of integer;…for i:=1 to n do a[i]:=i;for i:=k to n do a[i+1]:=a[i];a[k]:=0;…
В приведенной ниже программе организован ввод предложения и вывод…
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;b, i, st, n, s, x, k:integer;beginreadln (a); readln(b); n:=length(a); s:=0; st:=1;for i:=1 to n dobeginval (copy(a,n-i+1,1),x,k); s:=s+x*st; st:=st*b;end;writeln (s);end.
Приведенная программа на Паскале позволяет …
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.
При совершении арифметических операций с "цифрами", хранящимися в строковых переменных используют процедуру (функцию) преобразования данных:
Приведенная программа на Паскале реализует алгоритм поразрядного умножения числа на число от 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.
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, в переменной К будет находиться…
. . . n:=5; k:=0;for i:=1 to n do a[i]:=i;for j:=n downto 2 do for i:=1 to j-1 do if a[i]<a[i+1] then begin x:=a[i]; a[i]:= a[i+1]; a[i+1]:=x; k:=k+1; 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; . . .
Для сортировки различных частей одномерного массива, выбранных по определенному правилу (так, чтобы "невыбранные" элементы оставались стоять на своих местах), необходимо:
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, в массив Х вводятся числа: 1, 8, 12, 3, 5, 4. Сумма элементов массива У будет равна:
…j:=1; k:=0; n:=6;for i:=1 to n do if x[i] mod 2=0 then begin y[j]:=i; j:=j+1; end;…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, в переменной будет находиться:
…j:=0; m:=1;for i:=1 to n do begin read (x[i]); if x[i] mod 3<>0 then begin j:=j+1; y[j]:=i; end; end;for i:=1 to j do m:=m*x[y[i]]; …
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, переменная будет содержать:
…n:=8; k:=n div 2;for i:=1 to n do begin x[i]:=i; j:=i div 2 + 1; y[j]:=j*2; end;for i:=1 to k do s:=s+x[y[i]]; …
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, произойдет следующее:
… j:=1; k:=0; for i:=1 to n do if x[i] mod 2=0 then begin y[j]:=i; j:=j+1; k:=k+1; end; for j:=k downto 2 do for i:=1 to j-1 do if x[y[i]]>x[y[i+1]] then begin z:=x[y[i]]; x[y[i]]:=x[y[i+1]]; x[y[i+1]]:=z; end;…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, двумерный массив будет заполнен так:
…for i:=1 to 4 dofor j:=1 to 5 do x[i,j]:=j;…
В программе на Паскале все значения элементов двумерного массива равны "2". Что будет выведено на экран монитора в результате выполнения программы, фрагмент которой приведен ниже:
…n:=5; x[2,3]:=5; x[4,1]:=1; max:=x[1,1]; min:=x[1,1];for i:=1 to n dofor j:=1 to n doif x[i,j]>max then max:=x[i,j]else min:=x[i,j];writeln (max, ' ', min);…
Программа на Паскале, фрагмент которой приведен ниже, выводит…
…n:=3; y:=-1;for i:=1 to n dofor j:=1 to n do x[i,j]:=y*(-2); y:=x[i,j];for i:=1 to n dofor j:=1 to n doif (x[i,j]>0) and (i*j mod 2 =0) then writeln (i+j);…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, в переменной будет:
…d:=0; n:=3;for j:=1 to n dofor i:=1 to n do x[i,j]:=i+j;for j:=1 to n dobeginm[j]:=x[1,j];for i:=1 to n dobeginif x[i,j]>m[j] then m[j]:=x[i,j];end;d:=d+m[j]; end…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, буден найдено:
…s:=0;for i:=1 to n dofor j:=1 to n doif (i>n-j+1) then s:=s+x[i,j];…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, квадратный массив будет заполнен таким образом:
…for i:=1 to n dofor j:=1 to i do x[i,j]:=1;…
Ниже приведен фрагмент программы
…for i:=(n div 2 + 1) to n dofor j:=??? x[i,j]:=1;…
выполнение которой приведет к такому заполнению квадратного массива:

Укажите, что должно стоять вместо вопросительных знаков в заголовке внутреннего цикла:
В решениях приведенных ниже задач:
А."В строке, содержащей арифметическое выражение проверить, правильно ли расставлены скобки";
В."В картинной галерее работают сторожа. Для каждого сторожа известно время прихода на работу и время ухода. Определить, всегда ли галерея охраняется";
С."N отрезков на координатной прямой заданы координатами своих концов. Определить количество связных областей"
элементы массива флажков, отмечающих наступление-окончание события, на этапе заполнения начальных значений примут такие значения:
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, массив Flag будет содержать:
…for i:=1 to 10 do begin a[i]:=i; flag[i]:=0;endfor i:=2 to 10 div 2 do if flag[i]=0 then for j:=i+1 to 10 do if (a[j] mod a[i]=0) then flag[j]:=1;…
В решениях приведенных ниже задач:
А."В строке, содержащей арифметическое выражение проверить, правильно ли расставлены скобки";
В."В картинной галерее работают сторожа. Для каждого сторожа известно время прихода на работу и время ухода. Определить, всегда ли галерея охраняется";
С."N отрезков на координатной прямой заданы координатами своих концов. Определить количество связных областей"
используются типовые алгоритмы:
В результате работы программы, фрагмент которой приведен ниже, идет проверка правильности расстановок скобок в арифметическом выражении. Что будет результатом работы программы, если в данном выражении (например: избыточное количество скобок:
… 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 (временем прихода и ухода сторожа), массива flag ("1" и "-1")…//сортировка массива а с перестановкой элементов массива flag (в соответствии с перестанавливаемыми элементами массива а) …for i=1 to 2*n do begin s:=s+flag [i]; if s=0 then k:=k+1; end;if k=1 then writeln ('галерея всегда охранялась')else writeln ('галерея оставалась без охраны', k-1,'раз');
Каков будет результат работы программы, если время ухода одного из сторожей совпадает с временем прихода его сменщика?
Какие шаги необходимо включить в словесный алгоритм для решения задачи: "N отрезков на координатной прямой заданы координатами своих концов. Определить количество связных областей" из предложенного набора:
Приведенный ниже фрагмент программы на Паскале реализует алгоритм заполнения Арифметического квадрата.
…for i:=1 to n dobegin a[i,1]:=1; a[1,i]:=1;end;for i:=1 to n do for j:=1 to n do a[i,j]:=a[i-1,j]+a[i,j-1];…
Найдите в нем ошибку:
Предположим, что есть программа на Паскале, реализующая заполнение Арифметического квадрата порядка nxn. Для вывода на экран "Треугольника Паскаля" в программу дописали фрагмент:
…for i:=1 to n do begin for j:=1 to ? do write (a[i,j]); writeln; end;…
Какое значение необходимо написать в заголовке внутреннего цикла вместо знака вопроса?
Какое тело цикла по i необходимо создать (вместо вопросительных знаков), чтобы двумерный массив в результате выполнения программы (фрагмент ниже)…
… for k:=1 to (n div 2 +1) do ??? for j:=k to n-k+1 do a[i,j]:= k;…
был заполнен так:

В каком направлении идет заполнение двумерного массива в 2-ом вложенном цикле по i, в результате выполнения программы на Паскале, фрагмент которой приведен ниже:
… x:=1;for k:=1 to n div 2 do begin for i:=k to n-k do begin a[k,i]:=x; x:=x+1; end; for i:=k to n-k do begin a[i,n-k+1]:=x; x:=x+1; end; for i:=k to n-k do begin a[n-k+1,n-i+1]:=x; x:=x+1; end; for i:=k to n-k do begin a[n-i+1,k]:=x; x:=x+1; end;end; …
Какая команда должна стоять вместо вопросительных знаков в ветвлении, чтобы двумерный массив в результате выполнения программы на Паскале (фрагмент ниже)…
…x:=1;for i:=1 to n do for j:=1 to n do begin if i mod 2=o then a[i,j]:=x else ??? x:=x+1; end;…
был заполнен так:

Для заполнения Магического квадрата размерностью
методом "Террас" необходимо заполнять двумерный массив размерностью
:
Установите, как будет заполнен двумерный массив в результате выполнения программы на Паскале, фрагмент которой приведен ниже:
… x:=1;for j:=1 to n do for i:=1 to j do begin a [i, j-i+1]:=x; x:=x+1; end; …
Метод определения пересечения двух отрезков
и
: "Если сумма площадей треугольников
и
равна сумме площадей треугольников
и
, то отрезки пересекаются (иначе - нет)" имеет исключение:
Многоугольник задан координатами своих последовательных вершин. Внутренний угол одной из вершин многоугольника - тупой. Каким образом можно найти эту вершину?
Правила формирования комбинаторных групп:

соответствуют основным типам комбинаторных групп:
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, произойдет выборка элементов из исходного массива, соответствующая размещениям с повторениями. Что нужно изменить в алгоритме, чтобы из набора выбираемых элементов исключить повторяющиеся:
…for i:=1 to n dofor j:=1 to n do if i<>j then writeln (A[i], A[j]);…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, произойдет выборка элементов (пазмещения без повторений) из исходного массива . Какой логический знак должен стоять вместо знака вопроса в логическом выражении:
… for i:=1 to n dofor j:=1 to n do if i ? j then write (A[i], A[j],',');…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, произойдет выборка элементов из исходного массива . Что напечатается на экране монитора (введите строку без пробелов)
...for i:=1 to n-1 dofor j:=i+1 to n do writeln (A[j], A[i]); …
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, произойдет выборка элементов из исходного массива, соответствующая такому основному типу комбинаторных групп:
…for i:=1 to n dofor j:=1 to n do writeln (A[i], A[j]);…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, произойдет выборка элементов из исходного массива А={1, 2, 3}.
… for i:=1 to n dofor j:=i to n do writeln (A[i], A[j]); …Введите результат вывода программы без пробелов:
Ниже приведен фрагмент программы, реализующий алгоритм формирования комбинаторных групп двоичным перебором ( - количество элементов в исходном множестве):
…st:=1;for i:=1 to n do st:=st*2;for i:= 1 to (st-1) do begin for j:= 1 to n do if y[j]= 0 then x:= j; for z:= x to n do y[z]:=0; y[x]:=1;…
Назначение данного фрагмента:
Решение задачи: "Даны гири массами
. Как можно взвесить предмет массой
, при чем гири можно класть на разные чашы весов" возможно методом:
Результат работы программы на Паскале, фрагмент которой приведен ниже:
…a:=100; n:=5; i:=0;while (a<>0) dobegini:=i+1;write (a mod n);a:=a div n;end; …
Многоугольник задан координатами своих последовательных вершин. Внутренний угол одной из вершин (назовем ее
) многоугольника - тупой (вершина, у которой образуется тупой угол известна). Каким образом можно найти площадь многоугольника?
В переменную n с клавиатуры вводится значение n=137. Предскажите результат работы программы (что выведется на экран):…k:=0;for i:=2 to n-1 do if n mod i=0 then k:=k+1;if k=2 then writeln ('простое')else writeln ('составное');…
В результате выполнения программы, фрагмент которой приведен ниже
…n=5;for i:=n-1 downto 0 do write (n-i);…
выводится ряд чисел:
Предскажите результат выполнения программы на Паскале (фрагмент ниже):
…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);…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, произойдет выборка элементов из исходного массива . На печать выйдет:
… for i:=1 to n-1 dofor j:=i+1 to n do writeln (A[i], A[j]); …
Найдите ошибки в программе, реализующей алгоритм сортировки одномерного массива "Пузырьком", фрагмент которой приведен ниже:
…for j:=2 to n do for i:=1 to j do if x[i]>x[i+1] then beginy:=x[i]; x[i]:= x[i+1]; x[i+1]:=y;end;…
В результате выполнения программы, фрагмент которой приведен ниже:
…st:=1;for i:=1 to 5 do st:=st*2;st:=st-1;…
в переменной будет находиться:
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, переменная К будет содержать значение…
. . . n:=5; k:=0;for i:=1 to n do a[i]:=n-i+1;for j:=n downto 2 do for i:=1 to j-1 do if a[i]>a[i+1] then begin x:=a[i]; a[i]:= a[i+1]; a[i+1]:=x; k:=k+1; end;…
Даны координаты n точек на плоскости. За исключением одной точки все остальные образуют выпуклый многоугольник (при этом координаты точек вводятся в порядке обхода вершин многоугольника. "Лишняя" точка вводится в любом месте). Как можно определить эту "лишнюю" точку?
Три населенных пункта
и
соединены дорогами, по которым курсируют такие автобусные маршруты
. К какому типу комбинаторных групп принадлежат эти маршруты:
Для организации перевода числа а из десятичной в -ричную систему счисления, программа на Паскале (начальный фрагмент которой приведен ниже)
…readln (a, n); i:=0;while (a<>0) dobegini:=i+1;x[i]:=a mod n;a:=a div n;end; …
должна быть продолжена так:
В результате выполнения программы, фрагмент которой приведен ниже, элементы одномерного массива примут значения …
const n=10; k=5;… for i:=1 to n do a[i]:=i;for i:=k to (n-1) do a[i]:= a[i+1];…
В результате выполнения программы, фрагмент которой приведен ниже
…n=5;for i:=0 to n-1 do write (n-i+1);…
выводится ряд чисел:
В результате выполнения программы, фрагмент которой приведен ниже
…n=5;for i:=n-1 downto 0 do write (n-i+1);…
выводится ряд чисел:
Каков будет результат выполнения программы, если с клавиатуры вводится слово "Ротор":
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:=1;writeln (k);end.
Фрагмент программы на Паскале проверяет - совершенное ли число n, введенное с клавиатуры. Выберите все варианты, которые помогут исправить в нем ошибку:
…for i:=1 to n do if n mod i=0 then k:=k+i;if k=n then writeln ('число совершенное')else writeln ('число несовершенное');…
Определите содержимое переменной в результате работы программы на Паскале, фрагмент которой приведен ниже:
… for i:=1 to 5 do a[i]:=i;m:=0;for i:=1 to 5 do if a[i]<m then m:=a[i];…
Предскажите, какое содержимое будет находится в переменной s в результате работы программы на Паскале:
var a, b, s, x: integer;begina:=25; b:=5; s:=0;while a<>0 dobeginx:=a mod b; s:=s*10 +x; a:=a div b;writeln (s);end;end.
Предскажите результат выполнения программы на Паскале:var a: string;b, i, st, n, s, x, k:integer;begina:='25'; b:=5; s:=0; st:=1;n:=length(a);for i:=1 to n dobeginval (copy(a,n-i+1,1),x,k); s:=s+x*st; st:=st*b;end;writeln (s);end.
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, переменная К будет содержать значение…
. . . n:=5; k:=0;for i:=1 to n do a[i]:=i;for j:=n downto 2 do for i:=1 to j-1 do if a[i]>a[i+1] then begin x:=a[i]; a[i]:= a[i+1]; a[i+1]:=x; k:=k+1; end;…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, в массив вводятся числа: 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; . . .
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, в массив Х вводятся N натуральных чисел. Массив У будет содержать:…j:=0; k:=0; n:=9;for i:=1 to n do x[i]:=i;for i:=1 to n do if x[i] mod 2<>0 then begin j:=j+1; y[j]:=i; end;…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, массив будет содержать такие значения:
…n:=5; j:=1; k:=0;for i:=1 to n do x[i]:=i;for i:=1 to n do if x[i] mod 2=0 then begin y[j]:=i; j:=j+1; k:=k+1; end;for j:=k downto 2 do for i:=1 to j-1 do if x[y[i]]>x[y[i+1]] then begin z:=x[y[i]]; x[y[i]]:=x[y[i+1]]; x[y[i+1]]:=z; end;…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, двумерный массив будет заполнен так:
…for j:=1 to 4 dofor i:=1 to 5 do x[i,j]:=i;…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, буден найдено:
…d:=0;for j:=1 to n dobeginm[j]:=x[1,j];for i:=1 to n dobeginif x[i,j]>m[j] then m[j]:=x[i,j];end;d:=d+m[j]; end…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, буден найдено:
…s:=0;for i:=1 to n dofor j:=1 to n doif (i<=n-j+1) then s:=s+x[i,j];…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, квадратный массив будет заполнен таким образом:
…for i:=1 to n dofor j:=1 to (n-i+1) do x[i,j]:=1;…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, массив Flag будет содержать:
…readln (n);for i:=1 to n do a[i]:=i;for i:=2 to n div 2 do if flag[i]=0 then for j:=i+1 to n do if (a[j] mod a[i]=0) then flag[j]:=1;…
Что выведется на экран в результате работы программы, фрагмент которой приведен ниже:
… 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 ('неверно');…
Какие шаги необходимо включить в словесный алгоритм для решения задачи: "В строке, содержащей арифметическое выражение проверить, правильно ли расставлены скобки" из предложенного набора:
A. исходные данные вводим в массив
B. массив Flag заполняется "1" (если имеющий такой же порядок элемент массива исходных данных соответствует началу события, связанного с этим данным), "-1" (соответствует окончанию события)
C. сортируем массив исходных данных, одновременно переставляя элементы массива Flag
D. суммируем элементы массива Flag. Анализируем сумму.
Ниже приведен фрагмент программы, реализующий алгоритм решения задачи: "В картинной галерее работают сторожа. Для каждого сторожа известно время прихода на работу и время ухода. Определить, всегда ли галерея охраняется":
…//заполнение массива a (временем прихода и ухода сторожа), массива flag ("1" и "-1")…//сортировка массива а с перестановкой элементов массива flag (в соответствии с перестанавливаемыми элементами массива а) …for i=1 to 2*n do begin s:=s+flag [i]; if s=0 then k:=k+1; end;writeln ('количество случаев неохраняемости галереи')writeln (k-1);…
Какое количество случаев неохраняемости галереи выдаст программа, если время ухода одного из сторожей совпадает с временем прихода его сменщика?
Укажите количество связных областей для n (n вводится с клавиатуры) отрезков, пары координат которых также вводятся с клавиатуры. Входные данные:

Дан двумерный массив А, размерностью 3х4. Сколько "путей" ведет из элемента А[1,1] в элемент А[3,4], с условием, что "двигаться" можно в порядке увеличения номера строки или в порядке увеличения номера столбца?
Приведенный ниже фрагмент программы на Паскале реализует алгоритм заполнения Арифметического квадрата.
…for i:=1 to n dobegin a[i,1]:=i; a[1,i]:=i;end;for i:=2 to n do for j:=2 to n do a[i,j]:=a[i-1,j]+a[i,j-1];…
Найдите в нем ошибку:
Какие значения примут элементы первой строки двумерного массива, размерностью 5x5, в результате выполнения программы на Паскале, фрагмент которй приведен ниже (введите числа через пробел)
… for k:=1 to (n div 2 +1) do for i:=k to n-k+1 do for j:=k to n-k+1 do a[i,j]:= k;…
В каком направлении идет заполнение двумерного массива в 3-ем вложенном цикле по i, в результате выполнения программы на Паскале, фрагмент которой приведен ниже:
… x:=1;for k:=1 to n div 2 do begin for i:=k to n-k do begin a[k,i]:=x; x:=x+1; end; for i:=k to n-k do begin a[i,n-k+1]:=x; x:=x+1; end; for i:=k to n-k do begin a[n-k+1,n-i+1]:=x; x:=x+1; end; for i:=k to n-k do begin a[n-i+1,k]:=x; x:=x+1; end;end; …
Какое тело цикла необходимо создать, чтобы двумерный массив в результате выполнения программы на Паскале (фрагмент ниже)…
…x:=1;for j:=1 to n do for i:=1 to j do begin ??? end;…
… заполнялся так:

Треугольник на плоскости задан координатами своих вершин: (1,7), (9,13), (9,1). Найдите его периметр:
Для определения вхождения одной фигуры в другую (например, треугольника в выпуклый многоугольник) необходимо:
Фрагменты программ на Паскале реализуют алгоритмы формирования таких комбинаторных групп, как:
...for i:=1 to n-1 dofor j:=i+1 to n do writeln (A[i], A[j]);
...for i:=1 to n dofor j:=i to n do writeln (A[i], A[j]);
…for i:=1 to n dofor j:=1 to n do if i<>j then writeln (A[i], A[j]);
…for i:=1 to n dofor j:=1 to n do writeln (A[i], A[j]);
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, произойдет выборка элементов из исходного массива, соответствующая такому основному типу комбинаторных групп:
...for i:=1 to n-1 dofor j:=i+1 to n do writeln (A[i], A[j]); …
К каким основным типам формирования комбинаторных групп относятся выборки точек по условию такой задачи: "На плоскости
точек заданы своими координатами. Найти "центральную" точку (точку, сумма расстояний от которой до остальных точек максимальна)".
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, произойдет выборка элементов из исходного массива, соответствующая такому основному типу комбинаторных групп:
...for i:=1 to n dofor j:=i to n do writeln (A[i], A[j]); …
Решение задачи: "Необходимо представить число 40 в виде суммы неповторяющихся слагаемых (одинаковые по значению, противоположные по знаку слагаемые считаются разными" возможно методом:
Для сортировки различных частей одномерного массива, выбранных по определенному правилу (так, чтобы "невыбранные" элементы оставались стоять на своих местах), необходимо:
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, буден найдет:
…max:=x[1,1]; min:=x[1,1];for i:=1 to n dofor j:=1 to m doif x[i,j]>max then max:=x[i,j]else min:=x[i,j];…
Определите содержимое переменной в результате работы программы на Паскале, фрагмент которой приведен ниже:
… for i:=1 to 5 do a[i]:=i-6;m:=a[1];for i:=1 to 5 do if a[i]>m then a[i]:=m;…
В результате выполнения какой программы на Паскале (фрагменты приведены ниже) из исходного массива
произойдет такая выборка элементов: 11 12 13 22 23 33
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, буден найдено:
…d:=0;for j:=1 to n dobeginm[j]:=x[1,j];for i:=1 to n dobeginif x[i,j]<m[j] then m[j]:=x[i,j];end;d:=d+m[j]; end…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, квадратный массив будет заполнен таким образом:
…for i:=1 to n dofor j:=i to n do x[i,j]:=1;…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, в массив вводятся
натуральных чисел. Массив
будет содержать:
…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;…
В переменную n с клавиатуры вводится значение (n=6). Предскажите результат работы программы (что выведется на экран):
…k:=0;for i:=1 to n-1 do if n mod i=0 then k:=k+i;if k=n then writeln ('совершенное')else writeln ('несовершенное');…
Сколько путей ведет из клетки (1, 1) в клетку (n, 1) двумерного массива, если двигаться можно только вниз и вправо?
В результате выполнения программы, фрагмент которой приведен ниже
…n=5;for i:=n downto 1 do write (n-i);…
выводится ряд чисел:
Каков будет результат выполнения программы, если с клавиатуры вводится слово "Ротор":
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.
В результате приведенной программы на Паскале на экран выводится:const m=…;var a, rez: array [1..m] of byte; i, n, x, k: integer; stroke: string;begin stroke:='1234'; x:=5; 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.
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, переменная будет содержать:
…n:=10; k:=n div 2;for i:=1 to n do begin x[i]:=i; j:=i div 2 + 1; y[j]:=j*2; end;for i:=1 to k do s:=s+x[y[i]]; …
Типовой алгоритм поиска максимального и минимльного элемента двумерного массива на Паскале, фрагмент которого приведен ниже, содержит ошибку. Найдите ее:
…m1:=x[1,1]; m2:=x[1,1];for i:=1 to n dofor j:=1 to m doif x[i,j]<m1 then m1:=x[i,j]else m2:=x[i,j];…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, значение переменной будет равно:
…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];…
Можно ли "отмечать" начало и конец какого-либо события (пример задачи: "В картинной галерее работают сторожа. Для каждого сторожа известно время прихода на работу и время ухода. Определить, всегда ли галерея охраняется") не флажками "1" и "-1", а любыми символами (например, "*" и "/")?
Какие шаги необходимо включить в словесный алгоритм для решения задачи: "В картинной галерее работают сторожа. Для каждого сторожа известно время прихода на работу и время ухода. Определить, всегда ли галерея охраняется" из предложенного набора:
В результате выполнения какой программы на Паскале (фрагменты приведены ниже) из исходного массива
произойдет такая выборка элементов: 11 12 13 21 22 23 31 32 33
Решение задачи: "В игре имеется набор фишек, достоинством
. Требуется в конце игры представить количество набранных очков набором фишек" возможно методом:
Результат работы программы, фрагмент которой ниже, содержимое массива А станет (введите в поле ввода в строку без пробелов):
…n:=9;for i:= 1 to n do a[i]:=i;j:=1; k:=0;for i:=1 to n do if a[i] mod 3=0 then begin b[j]:=i; j:=j+1; k:=k+1; end;for j:=k downto 2 do for i:=1 to j-1 do if a[b[i]]<a[b[i+1]] then begin x:=a[b[i]]; a[b[i]]:=a[b[i+1]]; a[b[i+1]]:=x; end;
Для решения приведенных ниже задач:
- В строке, содержащей арифметическое выражение проверить, правильно ли расставлены скобки;
- В картинной галерее работают сторожа. Для каждого сторожа известно время прихода на работу и время ухода. Определить, всегда ли галерея охраняется;
- N отрезков на координатной прямой заданы координатами своих концов. Определить количество связных областей.
необходимо воспользоваться типовыми алгоритмами:
Для реализации алгоритма заполнения Магического квадрата размерностью
методом "Террас" необходимо заполнить двумерный массив размерностью
, где
равно:
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, в переменной будет находиться:
…j:=0; m:=1;for i:=1 to n do begin read (x[i]); if x[i] mod 3=0 then begin j:=j+1; y[j]:=i; end; end;for i:=1 to j do m:=m*x[y[i]]; …
В результате выполнения программы, фрагмент которой приведен ниже
…n:=5;for i:=1 to n do write (n-i);…
выводится ряд чисел:
В результате выполнения программы на Паскале, фрагмент которой приведен ниже заполняется квадратный массив:
… for i:=1 to (?) dofor j:=1 to i do x[i,j]:=1;…
Укажите выражение, которое должно стоять вместо вопросительного знака в заголовке цикла, чтобы квадратный массив заполнится таким образом:

Какие значения примут элементы последней строки двумерного массива, размерностью 4x4, в результате выполнения программы на Паскале, фрагмент которй приведен ниже (введите числа через пробел)
…x:=1;for i:=1 to n do for j:=1 to n do begin if i mod 2=o then a[i,j]:=x else a[i,n-j+1]:=x; x:=x+1; end;…
Какие значения примут элементы первой строки двумерного массива, размерностью 4x4, в результате выполнения программы на Паскале, фрагмент которй приведен ниже (введите числа через пробел)
…x:=1;for j:=1 to n do for i:=1 to j do begin a [i, j-i+1]:=x; x:=x+1; end;…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, произойдет выборка элементов из исходного массива, соответствующая такому основному типу комбинаторных групп:
…for i:=1 to n dofor j:=1 to n do if i<>j then writeln (A[i], A[j]);…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, произойдет выборка элементов из исходного массива, соответствующая такому основному типу комбинаторных групп:
...k:=1;for j:=k to m-k dofor i:=j+k to m do writeln (A[i], '-', A[j]); …
Предскажите, какие значения будет содержать массив х, в результате выполнения программы на Паскале, фрагмент которой приведен ниже, если первоначально в массиве соделжались значения . Ответ дайте в поле ввода без пробелов:
. . . for i:=1 to 5 do readln (x[i]);for j:=5 downto 2 do for i:=1 to j-1 do if x[i]>x[i+1] then beginy:=x[i]; x[i]:= x[i+1]; x[i+1]:=y;end;…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, произойдет следующее:
… j:=1; k:=0; for i:=1 to n do if x[i] >0 then begin y[j]:=i; j:=j+1; k:=k+1; end; for j:=k downto 2 do for i:=1 to j-1 do if x[y[i]]<x[y[i+1]] then begin z:=x[y[i]]; x[y[i]]:=x[y[i+1]]; x[y[i+1]]:=z; end;…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, массив Flag будет содержать:…n:=5;for i:=1 to n do a[i]:=i;for i:=2 to n div 2 do if flag[i]=0 then for j:=i+1 to n do if (a[j] mod a[i]=0) then flag[j]:=1;…
Ниже приведен фрагмент программы, реализующий алгоритм решения задачи: "N отрезков на координатной прямой заданы координатами своих концов. Определить количество связных областей":
…//заполнение массива a (координаты концов отрезка), массива flag ("1" и "-1")…//сортировка массива а с перестановкой элементов массива flag (в соответствии с перестанавливаемыми элементами массива а) …for i=1 to 2*n do begin s:=s+flag [i]; if s=0 then k:=k+1; end;writeln ('количество связных областей', k);…
Сколько связных областей дадут два отрезка, имеющие одну общую координату (начало одного совпадает с концом другого)?
На побочной диагонали Арифметического квадрата располагаются элементы, которые являются коэффициентами для слагаемых при разложени целой неотрицательной степени суммы двух переменных в Биноме Ньютона (например,
). Массив какой размерности необходимо заполнить, чтобы получить коэффициенты для слагаемых при разложении суммы двух переменных в шестой степени?
В каком направлении идет заполнение двумерного массива в 1-ом вложенном цикле по i, в результате выполнения программы на Паскале, фрагмент которой приведен ниже:
… x:=1;for k:=1 to n div 2 do begin for i:=k to n-k do begin a[k,i]:=x; x:=x+1; end; for i:=k to n-k do begin a[i,n-k+1]:=x; x:=x+1; end; for i:=k to n-k do begin a[n-k+1,n-i+1]:=x; x:=x+1; end; for i:=k to n-k do begin a[n-i+1,k]:=x; x:=x+1; end;end; …
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, произойдет вывод ряда чисел. Укажите этот ряд чисел (через пробел):
. . . n:=5;for i:=1 to n do begin x[i]:=n-i+1; 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 g:=x[i]; x[i]:= x[i+1]; x[i+1]:=g; g:=y[i]; y[i]:= y[i+1]; y[i+1]:=g; end;for i:=1 to n do write (x[i]+y[i]); . . .
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, переменная S будет содержать:
…n:=8; k:=n div 2; s:=1;for i:=1 to n do begin x[i]:=i; j:=i div 2 + 1; y[j]:=j*2; end;for i:=1 to k do s:=s*x[y[i]]; …
Программа на Паскале, фрагмент которой приведен ниже, выводит…
…for i:=1 to n dofor j:=1 to m doif (x[i,j]>0) and (i*j mod 2 =0) then writeln (i,j);…