Задания
Версия для печати и копирования в MS Word
Тип Д9 № 5170
i

В таб­ли­це Dat хра­нят­ся дан­ные о ко­ли­че­стве сде­лан­ных уче­ни­ка­ми за­да­ний (Dat[1] за­да­ний сде­лал пер­вый уче­ник, Dat[2] − вто­рой и т. д.). Опре­де­ли­те, какое число будет на­пе­ча­та­но в ре­зуль­та­те ра­бо­ты сле­ду­ю­щей про­грам­мы. Текст про­грам­мы при­ве­ден на трех язы­ках про­грам­ми­ро­ва­ния.

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

алг

нач

  цел­таб Dat[1:10]

  цел  k, m

  Dat[1] := 7; Dat[2] := 9

  Dat[3] := 10; Dat[4] := 5

  Dat[5] := 6; Dat[6] := 7

  Dat[7] := 9; Dat[8] := 8

  Dat[9] := 6; Dat[10] := 9

  m := 0

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

    если Dat[k] > 7  то

     m := m + Dat[k]

    все

  кц

  вывод m

кон

Бей­сик

Пас­каль

DIM Dat(10) AS INTEGER

DIM k,m AS INTEGER

Dat(1) = 7:  Dat(2) = 9

Dat(3) = 10: Dat(4) = 5

Dat(5) = 6:  Dat(6) = 7

Dat(7) = 9:  Dat(8) = 8

Dat(9) = 6:  Dat(10) = 9

m = 0 

FOR k = 1 TO 10

 IF Dat(k) > 7 THEN

  m = m + Dat(k)

 END IF

NEXT k

PRINT m

END

var k, m: integer;

 Dat: array[1..10] of integer;

begin

  Dat[1] := 7;  Dat[2] := 9;

  Dat[3] := 10; Dat[4] := 5;

  Dat[5] := 6;  Dat[6] := 7;

  Dat[7] := 9;  Dat[8] := 8;

  Dat[9] := 6;  Dat[10] := 9;

  m := 0;

  for k := 1  to 10 do

    if  Dat[k] > 7 then

      m := m + Dat[k];

  writeln(m)

end.


 

Ре­ше­ние.

Это за­да­ние ещё не ре­ше­но, при­во­дим ре­ше­ние про­то­ти­па.


В таб­ли­це Dat хра­нят­ся дан­ные о ко­ли­че­стве сде­лан­ных уче­ни­ка­ми за­да­ний (Dat[1] за­да­ний сде­лал пер­вый уче­ник, Dat[2]  — вто­рой и т. д.). Опре­де­ли­те, какое число будет на­пе­ча­та­но в ре­зуль­та­те ра­бо­ты сле­ду­ю­щей про­грам­мы. Текст про­грам­мы при­ве­ден на пяти язы­ках про­грам­ми­ро­ва­ния.

Бей­сикPython

DIM Dat(10) AS INTEGER

DIM k, m, n AS INTEGER

Dat(1) = 7: Dat(2) = 9

Dat(3) = 10: Dat(4) = 5

Dat(5) = 6: Dat(6) = 7

Dat(7) = 5: Dat(8) = 8

Dat(9) = 6: Dat(10) = 9

m = 10; n = 0

FOR k = 1 TO 10

IF Dat(k) <= m THEN

m = Dat(k)

n = k

ENDIF

NEXT k

PRINT n

Dat = [7, 9, 10, 5, 6, 7, 5, 8, 6, 9]

m = 10

n = 0

for k in range(0,10):

    if Dat[k] <= m:

        m = Dat[k]

        n = k + 1

print (n)

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

Var k, m, n: integer;

Dat: array[1..10] of integer;

Begin

   Dat[1] := 7; Dat[2] := 9;

   Dat[3] := 10; Dat[4] := 5;

   Dat[5] := 6; Dat[6] := 7;

   Dat[7] := 5; Dat[8] := 8;

   Dat[9] := 6; Dat[10] := 9;

   m := 10;

   n := 0;

   for k := 1 to 10 do

     if Dat[k] <= m then

      begin

        m := Dat[k];

        n := k;

      end;

   writeln(n);

End.

   алг

   нач

   цел­таб Dat[1:10]

   цел k, m, n

   Dat[1] := 7

   Dat[2] := 9

   Dat[3] := 10

   Dat[4] := 5

   Dat[5] := 6

   Dat[6] := 7

   Dat[7] := 5

   Dat[8] := 8

   Dat[9] := 6

   Dat[10] := 9

   m := 10

   n := 0

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

      если Dat[k] <= m то

         m := Dat[k]

         n := k

      все

   кц

   вывод n

   кон

С++

#include <iostream>

using namespace std;

int main() {

    int Dat[10] = {7, 9, 10, 5, 6, 7, 5, 8, 6, 9};

    int m = 10;

    int n = 0;

    for (int k = 0; k < 10; k++)

        if (Dat[k] <= m) {

            m = Dat[k];

            n = k + 1;

        }

    cout << n;

    return 0;

}



Про­грам­ма пред­на­зна­че­на для на­хож­де­ния но­ме­ра уче­ни­ка, ко­то­рый сде­лал мень­ше всего за­да­ний. Про­ана­ли­зи­ро­вав вход­ные дан­ные, при­хо­дим к вы­во­ду, что ответ 7.

 

Ответ: 7.


Аналоги к заданию № 4792: 4936 5044 5102 ... Все