PDA

Просмотр полной версии : [Помогите!] ГИА :D


belgarddima
04.05.2012, 16:30
Здравствуйте, добрые люди. Мне в этом годy сдавать ГИА по информатике, а я никак не готовился /dgs Помогите мне пожалуйста разобраться с этим заданием:
В таблице A хранятся данные о количестве учеников опоздавших на занятия за неделю (A[1] – данные за понедельник, A[2] – за вторник и т.д.). Определите, что будет напечатано в результате выполнения следующего алгоритма, записанного на трёх алгоритмических языках.

Алгоритмический язык
алг
нач
цел таб A[1:6]
цел k, m, day
A[1]:= 3; A[2]:= 1
A[3]:= 4; A[4]:= 2
A[5]:= 4; A[6]:= 2
day := 1; m := A[1]
нц для k от 2 до 6
если A[k] >= m то
m := A[k]; day := k
все
кц
вывод day
кон

Бейсик
DIM day, m, k AS INTEGER
DIM A(6) AS INTEGER
A(1)=3: A(2)=1
A(3)=4: A(4)=2
A(5)=4: A(6)=2
day = 1: m = A(1)
FOR k = 2 TO 6
IF A(k) >= m THEN
m = A(k)
day = k
END IF
NEXT k
PRINT day

Паскаль
var k, m, day: integer;
A: array[1..6] of integer;
Begin
A[1]:= 3; A[2]:= 3;
A[3]:= 4; A[4]:= 2;
A[5]:= 4; A[6]:= 2;
day := 1; m := A[1];
for k := 2 to 6 do
begin
if A[k] >= m then
begin
m := A[k];
day := k;
end;
end;
write(day);
end.

Сразу скажу - ответ 5. [Задание с сайта с заданиями ГИА, там решил, ответил естественно неверно, но там выдало верный ответ] Помогите разобраться Кааак это сделать???

R.A.Z.O.R.
04.05.2012, 17:51
Выводится день, в который опоздало наибольшее количество учеников. В случае, если в некоторые дни опоздало одинаковое количество, то учитывается последний день, прошедший через массив. /problem

belgarddima
04.05.2012, 18:10
Выводится день, в который опоздало наибольшее количество учеников. В случае, если в некоторые дни опоздало одинаковое количество, то учитывается последний день, прошедший через массив.
Большое спасибо! Теперь я сдам ГИА :D

VeTaL_UA
04.05.2012, 18:31
var
k,m,day:integer;
A:array[1..6] of integer;
begin
A[1]:=3;
A[2]:=3;
A[3]:=4;
A[4]:=2;
A[5]:=4;
A[6]:=2;
day:=1;
m:=A[1];
{ну до этого момента всё понятно}
for k:=2 to 6 do
{обрати внимание, что 1 элемент массива не трогается}
begin
if A[k]>=m then
{m=3, то есть в цикле будут работать только элементы
массива, которые больше или равны 3, тоесть 2,3 и 5,
при обороте цикла m приравнивается до значения
текущего элемента, а так как цикл идёт по порядку,
то в конечном итоге сквозь фильтр условия пройдут
только 3 и 5 элементы, так как последний элемент
носит номер 5, то в day запишется именно его значение}
begin
m:=A[k];
day:=k;
end;
end;
write(day);
end.
Ну как-то так.