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

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

 

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

алг

нач

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

цел  k, m, day

Dat[1] := 14;

Dat[2] := 10

Dat[3] := 0; Dat[4] := 15

Dat[5] := 0;  Dat[6] := 15

Dat[7] := 10

day := 1; m := Dat[1]

нц для k от 2 до 7

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

m := Dat[k]

day := k

все

кц

вывод day

кон

Бей­сик

Пас­каль

DIM Dat(7) AS INTEGER

Dat(1) = 14:  Dat(2) = 10

Dat(3) = 0: Dat(4) = 15

Dat(5) = 0:  Dat(6) = 15

Dat(7) = 10

day = 1: m = Dat(1)

FOR k = 2 TO 7

IF Dat(k) > m THEN

m = Dat(k)

day = k

END IF

NEXT k

PRINT day

END

var k, m, day: integer;

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

begin

Dat[1] := 14;  Dat[2] := 10;

Dat[3] := 0; Dat[4] := 15;

Dat[5] := 0;  Dat[6] := 15;

Dat[7] := 10; 

day := 1; m := Dat[1];

for k := 2 to 7 do

if  Dat[k] > m then

 begin

m := Dat[k];

day := k

 end;

write(day);

end.


 

 

Ре­ше­ние.

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


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

Бей­сикPython

DIM Dat(10) AS INTEGER

DIM k, n, d AS INTEGER

Dat(1) = 140: Dat(2) = 130

Dat(3) = 135: Dat(4) = 150

Dat(5) = 120: Dat(6) = 150

Dat(7) = 110: Dat(8) = 140

Dat(9) = 150: Dat(10) = 135

d = Dat(1); n = 1

FOR k = 2 TO 10

IF Dat(k) >= d THEN

d = Dat(k)

n = k

ENDIF

NEXT k

PRINT n

Dat = [140, 130, 135, 150, 120, 150, 110, 140, 150, 135]

d = Dat[0]

n = 1

for k in range(1,10):

    if Dat[k] >= d:

        d = Dat[k]

        n = k + 1

print (n)

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

Var k, n, d: integer;

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

Begin

   Dat[1]:=140; Dat[2]:=130;

   Dat[3]:=135; Dat[4]:=150;

   Dat[5]:=120; Dat[6]:=150;

   Dat[7]:=110; Dat[8]:=140;

   Dat[9]:=150; Dat[10]:=135;

   d := Dat[1];

   n := 1;

   for k := 2 to 10 do

     if Dat[k] >= d then

      begin

        d := Dat[k];

        n := k;

      end;

   writeln(n);

End.

   алг

   нач

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

   цел k, n, d

   Dat[1] := 140

   Dat[2] := 130

   Dat[3] := 135

   Dat[4] := 150

   Dat[5] := 120

   Dat[6] := 150

   Dat[7] := 110

   Dat[8] := 140

   Dat[9] := 150

   Dat[10] := 135

   d := Dat[1]

   n := 1

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

      если Dat[k] >= d то

         d := Dat[k]

         n := k

      все

   кц

   вывод n

   кон

С++

#include <iostream>

using namespace std;

int main() {

    int Dat[10] = {140, 130, 135, 150, 120, 150, 110, 140, 150, 135};

    int d = Dat[0];

    int n = 1;

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

        if (Dat[k] >= d) {

            d = Dat[k];

            n = k + 1;

        }

    cout << n;

    return 0;

}



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

 

Ответ: 9.


Аналоги к заданию № 4949: 5785 6373 Все