Образовательный портал Павла Добряка

8.1. Программы с прогрессиями

Задача 8.1.1. Определите, что будет напечатано в результате выполнения программы, записанной ниже на разных языках программирования.

 

Бейсик

Python

DIM N, S AS INTEGER

 N = 1

 S = 0

 WHILE N <= 1000

    S = S + 30

    N = N * 2

 WEND

 PRINT S

n = 1

s = 0

while n <= 1000:

    s = s + 30

    n = n * 2

print(s)

Паскаль

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

var n, s: integer;

begin

    n := 1;

    s := 0;

    while n <= 1000 do

    begin

        s := s + 30;

        n := n * 2

    end;

    write(s)

end.

алг

нач

цел n, s

n := 1

s := 0

нц пока n <= 1000

    s := s + 30

    n := n * 2

кц

вывод s

кон

Си++

#include <iostream>

using namespace std;

int main()

{

    int n, s;

    n = 1;

    s = 0;

    while (n <= 1000)

    {

        s = s + 30;

        n = n * 2;

    }

    cout « s « endl;

}

 

Задача 8.1.2. Определите, что будет напечатано в результате работы следующего фрагмента программы:

 

Бейсик

Python

DIM K, S AS INTEGER

 S = 0

 K = 1

 WHILE S < 1000

    K = K + 3

    S = S + K

WEND

PRINT K

s = 0

k = 1

while s < 1000:

    k += 3

    s += k

print(k)

Паскаль

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

var k, s: integer;

begin

       s:=0;

       k:=1;

      while s < 66 do begin

             k:=k+3;

            s:=s+k;

       end;

      write(k);

end.

алг

нач

    цел k, s

    s := 0

    k := 1

    нц пока s < 66

        k := k + 3

        s := s + k

    кц

    вывод k

кон

Си++

#include <iostream>

using namespace std;

int main() {

    int s, k;

    s = 0, k = 1;

    while (s < 1000)  {

        k = k + 3;

        s = s + k;

    }

    cout << k << endl;

    return 0;

}

 

Задача 8.1.3. Определите, что будет напечатано в результате работы следующего фрагмента программы:

 

Бейсик

Python

DIM K, S AS INTEGER

 S = 0

 K = 1

 WHILE S < 1000

    K = K * 3

    S = S + K

WEND

PRINT K

s = 0

k = 1

while s < 1000:

    k *= 3

    s += k

print(k)

Паскаль

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

var k, s: integer;

begin

       s:=0;

       k:=1;

      while s < 66 do     

      begin

             k:=k*3;

            s:=s+k;

       end;

      write(k);

end.

алг

нач

    цел k, s

    s := 0

    k := 1

    нц пока s < 66

        k := k * 3

        s := s + k

    кц

    вывод k

кон

Си++

#include <iostream>

using namespace std;

int main() {

    int s, k;

    s = 0, k = 1;

    while (s < 1000)  {

        k = k * 3;

        s = s + k;

    }

    cout << k << endl;

    return 0;

}



Задача 8.1.4. Определите, что будет напечатано в результате работы следующего фрагмента программы:

 

Бейсик

Python

DIM K, S AS INTEGER

 S = 1

 K = 0

 WHILE S < 1000

    K = K + 1

    S = S * K

WEND

PRINT K

s = 1

k = 0

while s < 1000:

    k += 1

    s *= k

print(k)

Паскаль

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

var k, s: integer;

begin

       s:=1;

       k:=0;

      while s < 1000 do   

begin

             k:=k+1;

            s:=s*k;

       end;

      write(k);

end.

алг

нач

    цел k, s

    s := 1

    k := 0

    нц пока s < 1000

        k := k + 1

        s := s * k

    кц

    вывод k

кон

Си++

#include <iostream>

using namespace std;

int main() {

    int s, k;

    s = 1, k = 0;

    while (s < 1000)  {

        k = k + 1;

        s = s * k;

    }

    cout << k << endl;

    return 0;

}

 

Задача 8.1.5. Определите, что будет напечатано в результате работы следующего фрагмента программы:

 

Бейсик

Python

DIM K, S, p AS INTEGER

 P = 1

 S = 0

 K = 0

 WHILE S < 100

    K = K + 1

    P = P * K

    S = S + P

WEND

PRINT s

s = 0

k = 0

p = 1

while s < 100:

    k += 1

    p *= k

    s += p

print(s)

Паскаль

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

var k, s: integer;

begin

       s:=0;

       p:=1;

       k:=0;

      while s < 100 do 

begin

             k:=k+1;

            p:=p*k;

            s:=s+p;

       end;

      write(s);

end.

алг

нач

    цел k, s

    s := 0

    k := 0

    p := 1

    нц пока s < 100

        k := k + 1

        p := p * k

        s := s + p

    кц

    вывод s

кон

Си++

#include <iostream>

using namespace std;

int main() {

    int s, k, p;

    s = 0, p = 1, k=0;

    while (s < 100)  {

        k = k + 1;

        p = p * k;

        s = s + p;

    }

    cout << s << endl;

    return 0;

}

 

Задача 8.1.6. Определите, что будет напечатано в результате работы следующего фрагмента программы:

 

Бейсик

Python

DIM a, b, c, i AS INTEGER

 a = 1

 b = 1

 c = 1

 i = 2

 WHILE i < 10

    i = i + 1

    a = b + c

    c = b

    b = a

WEND

PRINT a

a = 1

b = 1

c = 1

i = 2

while i < 10:

    i += 1

    a = b + c

    c = b

    b = a

   print(a)

Паскаль

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

var a, b, c, i: integer;

begin

   a := 1

   b := 1

   c := 1

   i := 2

  while i < 10 do    

begin

    i := i + 1

    a := b + c

    c := b

    b := a

end;

      write(a);

end.

алг

нач

    цел a, b, c, i

   a := 1

   b := 1

   c := 1

   i := 2

нц пока i < 10

    i := i + 1

    a := b + c

    c := b

    b := a

кц

    вывод a

кон

Си++

#include <iostream>

using namespace std;

int main() {

    int a, b, c, i;

    a = 1;

    b = 1;

    c = 1;

    i = 2;

    while (i < 10)     {

        i = i + 1;

        a = b + c;

        c = b;

        b = a;

    }

    cout << a << endl;

    return 0;

}

 

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

 

Бейсик

Паскаль

A(1) = 1

A(2) = 1

FOR i= 3 TO 10

   A(i)=A(i-1)+A(i-2)

NEXT i

A[1]:=1;

A[2]:=1;

for i:=3 to 10 do

    A[i] := A[i-1]+A[i-2];

Си++

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

A[1]=1;

A[2]=1;

for (i=3;i<=10;i++) {

    A[i] = A[i-1]+A[i-2];

}

A[1]:=1

A[2]:=1

нц для i от 3 до 10

      A[i] := A[i-1]+A[i-2]

    кц

кц

Python

A[1]=1

A[2]=1 

for i in range(3, 11):

    A[i] = A[i-1]+A[i-2]

 

Чему равно значение А[10] после выполнения фрагмента программы?

 

Задача 8.1.8. Массив А заполнен одними нулями. Далее значения элементов массива A[1..10] задаются с помощью следующего фрагмента программы: 

 

Бейсик

Паскаль

A(1) = 1

FOR i= 1 TO 9

   A(i+1)=A(i+1)+A(i)

   A(i+2)=A(i+2)+A(i)

NEXT i

A[1]:=1;

for i:=1 to 9 do

begin

    A[i+1] := A[i+1]+A[i];

    A[i+2] := A[i+2]+A[i];

end;

Си++

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

A[1]=1;

for (i=1;i<=9;i++) {

    A[i+1] = A[i+1]+A[i];

    A[i+2] = A[i+2]+A[i];

 

}

A[1]:=1

нц для i от 1 до 9

      A[i+1] := A[i+1]+A[i]

      A[i+2] := A[i+2]+A[i]

    кц

кц

Python

A[1]=1

for i in range(1, 10):

    A[i+1] = A[i+1]+A[i]

    A[i+2] = A[i+2]+A[i]

 

Чему равно значение А[10] после выполнения фрагмента программы?

 

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

 

Бейсик

Python

s = 27

n = 10

 FOR i = 0 TO n-1

    s = s+A(i)-A(i+1)+2

 NEXT i

s = 27

n = 10

for i in range(0,n):

    s = s + A[i] - A[i+1]+2

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

Паскаль

s := 27

n := 10

нц для i от 0 до n-1

    s:=s+A[i]-A[i+1]+2

кц

s := 27;

n := 10;

for i:=0 to n-1 do begin

    s:=s+A[i]-A[i+1]+2

end;

Си++

s = 27;

n = 10;

for (i = 0; i <= n-1; i++) {

    s=s+A[i]-A[i+1]+2;

}

 

Известно, что в начале выполнения этого фрагмента в массиве находилась возрастающая последовательность чисел, то есть A[0] < A[1] < … < A[10]. 

Какое наибольшее значение может иметь переменная s после выполнения данной программы?

 

Задача 8.1.10. Значения элементов двумерного массива A[1..100,1..100] задаются с помощью следующего фрагмента программы: 

 

Бейсик

Паскаль

FOR i= 1 TO 100

    FOR k=1 TO 100

    IF i > k THEN A(i,k) = i

    ELSE

        A(i,k) = -k

    NEXT k

 NEXT i

for i:=1 to 100 do

    for k:=1 to 100 do

        if i > k then

        A[i,k] := i

    else A[i,k] := -k;

Си++

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

for (i=1;i<=100;i++) {

    for (k=1;k<=100;k++) {

        if (i > k) {

            A[i,k] = i;

        }

        else A[i,k] = -k;

    }

}

нц для i от 1 до 100

    нц для k от 1 до 100

        если i > k

        то A[i,k] := i

        иначе A[i,k] := -k

    кц

кц

Python

 

for i in range(1, 101):

    for k in range(1, 101):

        if i > k:

            A[i][k] = i

        else:

            A[i][k] = -k

 

Задача 8.1.11. Массив А заполнен следующими значениями, как показано в таблице:

Индекс i

0

1

2

3

4

5

А[i]

1

3

5

0

4

2

 

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

 

Бейсик

Python

j=0

 FOR i = 1 TO 100

    j=a[j]

 NEXT i

j=0

for i in range(1,101):

    j=a[j]

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

Паскаль

j=0

нц для i от 1 до 100

    j=a[j]

кц

j=0;

for i:=1 to 100 do begin

    j=a[j];

end;

Си++

j = 0;

for (i = 1; i <= 100; i++) {

    j=a[j];

}

 

Чему равно значение j после выполнения фрагмента программы?

 

Задача 8.1.12. Массив А заполнен следующими значениями, как показано в табличке:

Индекс i

0

1

2

3

4

5

А[i]

1

3

5

0

4

2

 

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

 

Бейсик

Python

j=0

 FOR i = 1 TO 100

    j=a[a[a[j]]]

 NEXT i

j=0

for i in range(1,101):

    j=a[a[a[j]]]

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

Паскаль

j=0

нц для i от 1 до 100

    j=a[a[a[j]]]

кц

j=0;

for i:=1 to 100 do begin

    j=a[a[a[j]]];

end;

Си++

j = 0;

for (i = 1; i <= 100; i++) {

    j=a[a[a[j]]];

}

 

Чему равно значение j после выполнения фрагмента программы?