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

Дан фраг­мент про­грам­мы, об­ра­ба­ты­ва­ю­щий двух­мер­ный мас­сив A раз­ме­ром nxn.

 

Бей­сикPython

FOR i = 1 TO n-1

    FOR j = i+1 TO n

        IF A[i,1] < A[j,1] THEN

            k=A(i,1)

            A(i,1)=A(j,1)

            A(j,1)=k

    NEXT j

NEXT i

for i in range(1, n):

    for j in range(i+1, n+1):

        if A[i,1] < A[j,1]:

            k=A[i,1]

            A[i,1]=A[j,1]

            A[j,1]=k

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

for i:= 1 to n-1 do

    for j:=i+1 to n do

        if A[i,1] < A[j,1] then begin

            k:=A[i,1];

            A[i,1]:=A[j,1];

            A[j,1]:=k;

        end;

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

    нц для j от i+1 до n

        если A[i,1] < A[j,1] то

            k:=A[i,1]

            A[i,1]:=A[j,1]

            A[j,1]:=k

    кц

кц

Си++

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

    for (j = i+1; j <= n; j++) {

        if (A[i][1] < A[j][1]){

            k=A[i][1];

            A[i][1]=A[j][1];

            A[j][1]=k;

        }

    }

}

 

В этом фраг­мен­те:

 

1)  упо­ря­до­чи­ва­ет­ся пер­вая стро­ка мас­си­ва по убы­ва­нию

2)  упо­ря­до­чи­ва­ет­ся пер­вый стол­бец мас­си­ва по убы­ва­нию

3)  за­ме­ня­ют­ся эле­мен­ты k-ого столб­ца таб­ли­цы

4)  за­ме­ня­ют­ся эле­мен­ты k-ой стро­ки таб­ли­цы

Спрятать решение

Ре­ше­ние.

Об­ра­тим вни­ма­ние, что в двой­ном цикле пе­ре­мен­ная i из­ме­ня­ет­ся от 1 до n-1, а j – от 1 до n (на 1 шаг боль­ше). Это озна­ча­ет, что с эле­мен­том a[j,1] будут по оче­ре­ди срав­ни­вать­ся все эле­мен­ты столб­ца 1, кроме по­след­не­го. Они вы­строт­ся от са­мо­го боль­шо­го до са­мо­го ма­лень­ко­го свер­ху вниз, т. е. по убы­ва­нию.

 

Но чтобы вы­брать пра­виль­ный ответ, можно было рас­смот­реть дан­ный фраг­мент про­грам­мы:

...k:=A[i,1];

A[i,1]:=A[j,1];

A[j,1]:=k;

...

Эта опе­ра­ция ме­ня­ет ме­ста­ми два эле­мен­та пер­во­го столб­ца, а зна­чит все из­ме­не­ния про­ис­хо­дят толь­ко в нём. Ва­ри­ант от­ве­та, в ко­то­ром фи­гу­ри­ру­ет толь­ко пер­вый стол­бец, ука­зан под но­ме­ром 2.

 

Пра­виль­ный ответ ука­зан под но­ме­ром 2.