СДАМ ГИА: РЕШУ ОГЭ
Образовательный портал для подготовки к экзаменам
Информатика
информатика
сайты - меню - вход - новости


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

В таблице 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 Все

Прототип задания ·