понедельник, 9 марта 2020 г.

10 класс

1. В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 6, 7, 5, 8, 3, 2, 0, 1, 9, 4 соответственно, т. е. A[0] = 6, A[1] = 7 и т. д. Определите значение переменной c после выполнения следующего фрагмента этой программы (записанного ниже на пяти языках программирования).



БейсикPython
c = 0
FOR i = 1 TO 9
  IF A(i) < A(0) THEN
    c = c + 1
    t = A(i)
    A(i) = A(0)
    A(0) = t
  END IF
NEXT i
c = 0
for i in range(1,10):
  if A[i] < A[0]:
    c = c + 1
    t = A[i]
    A[i] = A[0]
    A[0] = t
ПаскальАлгоритмический язык
c := 0;
for i := 1 to 9 do
  if A[i] < A[0] then
  begin
    c := c + 1;
    t := A[i];
    A[i] := A[0];
    A[0] := t;
end;
c := 0
нц для i от 1 до 9
  если A[i] < A[0] то
    c := c + 1
    t := A[i]
    A[i] := A[0]
    A[0] := t
  все
кц
Си++
c = 0;
for (i = 1;i < 10;i++)
  if (A[i] < A[0])
  {
    c++;
    t = A[i];
    A[i] = A[0];
    A[0] = t;
  }

2. В программе описан одномерный целочисленный массив с индексами от 0 до 12. Ниже представлен записанный на разных языках программирования фрагмент одной и той же программы, обрабатывающей данный массив:





БейсикПаскаль
s = 0
n = 12
FOR i = 0 TO n
    IF A(n–i) – A(i) = A(i) THEN
        s = s+3*A(i)
    END IF
NEXT i
s := 0;
n := 12;
for i:=0 to n do begin
    if A[n–i] – A[i] = A[i] then
        s:=s+3*A[i];
end;
Си++Алгоритмический язык
s = 0;
n = 12;
for (i = 0; i <= n; i++) {
    if (A[n–i] – A[i] == A[i])
        s = s+3*A[i];
}
s := 0
n := 12
нц для i от 0 до n
    если A[n–i] – A[i] = A[i]
        то s := s+3*A[i]
    все
кц
Python
s = 0
n = 12
for i in range(0, n+1):
    if A[n–i] – A[i] == A[i]:
        s = s+3*A[i]



В начале выполнения этого фрагмента в массиве находились числа 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24 т. е. A[0] = 0, A[1] = 2 и т. д. Чему будет равно значение переменной s после выполнения данной программы?
3. Представленный ниже фрагмент программы обрабатывает элементы одномерного целочисленного массива A с индексами от 1 до 10. Перед началом выполнения данного фрагмента эти элементы массива имели значения 2, 3, 5, 3, 10, 7, 4, 6, 12, 9 (т. е. A[1] = 2, A[2] = 3, …, A[10] = 9). Определите значение переменной s после выполнения фрагмента, записанного ниже на пяти языках программирования.




БейсикPython
n = 10
s = 0
FOR i = 2 TO n
    IF A(i-1) < A(i) THEN
        A(i) = A(i) - A(i-1)
        s = s + A(i)
    END IF
NEXT i

n = 10
s = 0
for i in range(2,n+1):
    if A[i-1] < A[i]:
        A[i] = A[i] - A[i-1]
        s = s + A[i]



ПаскальАлгоритмический язык

n := 10;
s := 0;
for i:=2 to n do begin
    if A[i-1] < A[i] then begin
        A[i] := A[i] - A[i-1];
        s := s + A[i]
    end
end;

n := 10
s := 0
нц для i от 2 до n
    если A[i-1] < A[i] то
        A[i] := A[i] - A[i-1]
        s := s + A[i]
    все
кц
С++
n = 10;
s = 0;
for (i = 2; i <= n; ++i) {
    if (A[i-1] < A[i]) {
        A[i] = A[i] - A[i-1];
        s = s + A[i];
    }
}

4. Значения элементов двухмерного массива A[1..10,1..10] сначала равны 4. Затем выполняется следующий фрагмент программы:






БейсикPython
FOR i = 1 TO 4
    FOR j = 1 TO 5
        A(i,j) = A(i,j)+4
        A(j,i) = A(j,i)+5
    NEXT j
NEXT i
for i in range(1, 5):
    for j in range(1, 6):
        A[i,j] = A[i,j]+4
        A[j,i] = A[j,i]+5
ПаскальАлгоритмический язык
for i:= 1 to 4 do
    for j:=1 to 5 do begin
        A[i,j]:=A[i,j]+4;
        A[j,i]:=A[j,i]+5;
    end;
нц для i от 1 до 4
    нц для j от 1 до 5
        A[i,j]:=A[i,j]+4
        A[j,i]:=A[j,i]+5
    кц
кц
Си++
for (i = 1; i <= 4; i++) {
    for (j = 1; j <= 5; j++) {
        A[i][j]=A[i][j]+4;
        A[j][i]=A[j][i]+5;
    }
}


Сколько элементов массива будут равны 9?
5. Ниже представлен записанный на разных языках программирования фрагмент одной и той же программы. В программе описан одномерный целочисленный массив A; в представленном фрагменте обрабатываются элементы массива с индексами от 1 до 10.



БейсикPython
n = 10
d = 6
FOR j = 1 TO d
  s = A(1)
  FOR i = 1 TO n-1
    A(i) = A(i+1)
  NEXT i
  A(10) = s
NEXT j
n = 10
d = 6
for j in range(1,d+1):
  s = A[1]
  for i in range(1,n):
    A[i] = A[i+1]
  A[10] = s
ПаскальАлгоритмический язык
n := 10;
d := 6;
for j:=1 to d do begin
  s := A[1];
  for i:=1 to n-1 do begin
    A[i] := A[i+1];
  end;
  A[10] := s;
end;
n := 10
d := 6
нц для j от 1 до d
  s := A[1]
  нц для i от 1 до n-1
    A[i] := A[i+1]
  кц
  A[10]:= s
кц
Си++
n = 10;
d = 6;
for (j = 1; j <= d; j++) {
  s = A[1];
  for (i = 1; i <= n-1; i++) {
    A[i] = A[i+1];
  }
  A[10] = s;
}


Перед началом выполнения программы эти элементы массива имели значения 0, 1, 4, 9, 6, 5, 6, 8, 4, 1 (т.е. A[1] = 0; A[2] = 1; …; A[10] = 1).
Значение какого из этих элементов массива будет наибольшим после выполнения фрагмента программы? В ответе укажите индекс элемента – число от 1 до 10.

Примечание. В языках Python и C++ нулевой элемент массива может принимать любое значение, элементы массива с индексами от 1 до 10 объявлены так, как указано в условии.
6. В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 7; 5; 3; 4; 8; 8; 9; 7; 6; 2 соответственно, т.е. A[0] = 7; A[1] = 5 и т.д. Определите значение переменной c после выполнения следующего фрагмента программы, записанного ниже на разных языках программирования.



БейсикPython
c = 0
FOR i = 1 TO 9
    IF A(i - 1) < A(i) THEN
         t = A(i)
        A(i) = A(i - 1)
        A(i - 1) = t
    ELSE
        c = c + 1
    ENDIF
NEXT i
c = 0
for i in range(1, 10):
    if A[i - 1] < A[i]:
        t = A[i]
        A[i] = A[i - 1]
        A[i - 1] = t
    else:
         = c + 1
ПаскальАлгоритмический язык
c := 0;
for i := 1 to 9 do
    if A[i - 1] < A[i] then
        begin
            t := A[i];
            A[i] := A[i - 1];
            A[i - 1] := t
        end
    else
            c := c + 1;
c := 0
нц для i от 1 до 9
если A[i - 1] < A[i] то
    t := A[i]
    A[i] := A[i - 1]
    A[i - 1] := t
иначе
    c := c + 1
все
кц
Си++
c = 0;
for (i = 1; i <= 9; i++)
    if (A[i - 1] < A[i])
    {
        t = A[i];
        A[i] = A[i - 1];
        A[i - 1] = t;
    }
    else
        c++;

7. В программе описан одномерный целочисленный массив с индексами от 0 до 10. Ниже представлен записанный на разных языках программирования фрагмент одной и той же программы, обрабатывающей данный массив.





БейсикПаскаль
s = 0
n = 10
FOR i = 0 TO n-1
    s = s+A(i)-A(i+1)
NEXT i
s:=0;
n:=10;
for i:=0 to n-1 do begin
    s:=s+A[i]-A[i+1];
end;
Си++Алгоритмический язык
s = 0;
n=10;
for (i = 0; i <= n-1; i++) {
    s=s+A[i]-A[i+1];
}
s:=0
n:=10
нц для i от 0 до n-1
    s:=s+A[i]-A[i+1]
кц
Python
s = 0
n = 10
for i in range(0, n):
    s=s+A[i]-A[i+1]


В начале выполнения этого фрагмента в массиве находились числа 15, 10, 5, 0, 5, 10, 15, 10, 5, 0, 5, т. е. A[0]=15, A[1]=10 и т. д. Чему будет равно значение переменной s после выполнения данной программы?
8. Представленный ниже на пяти языках программирования фрагмент программы обрабатывает элементы одномерного целочисленного массива A с индексами от 0 до 9. Перед началом выполнения данного фрагмента эти элементы массива имели значения 3, 1, 1, 5, 2, 9, 4, 3, 2, 1 (т. е. A[0] = 3, A[1] = 1, …, A[9] = 1). Определите значение переменной s после выполнения фрагмента.




БейсикPython
N = 10
s = 0
FOR i = 1 TO N − 1
    IF A(i-1) > 2*A(i) THEN
        A(i) = 2*A(i)
        s = s + A(i)
    END IF
NEXT i

n = 10
s = 0
for i in range(1,n):
    if A[i-1] > 2*A[i]:
        A[i] = 2*A[i]
        s = s + A[i]



ПаскальАлгоритмический язык
N := 10;
s := 0;
for i:=1 to N-1 do begin
    if A[i-1] > 2*A[i] then begin
        A[i] := 2*A[i];
        s := s + A[i];
    end;
end;

N := 10
s := 0
нц для i от 1 до N-1
    если A[i-1] > 2*A[i] то
        A[i] := 2*A[i]
        s := s + A[i]
    все
кц
С++
n = 10;
s = 0;
for (i = 1; i < n; ++i) {
    if (A[i-1] > 2*A[i]) {
        A[i] = 2*A[i];
        s = s + A[i];
    }
}

Комментариев нет:

Отправить комментарий