Персональная страничка
Диканева Тараса
Викторовича

Главная \ Преподавательское \ Программирование для начинающих

10. Массивы

Предыдущий раздел:

Следующий раздел:

Контрольная работа №9

1. Пусть имеется массив с элементами x[0] = 2, x[1] = 7, x[2] = 5, x[3] = 2, x[4] = 3. Что выведет программа:

(а)
  N:=5;
  for i:=0 to N-1 do
  begin
    y[i]:=0;
    for k:=0 to N-1 do
      if x[k] = x[i] then
        y[i]:=y[i] + 1;
      if y[i]>1 then
        writeln(x[i]);
  end;
(б)
  N:=5;
  for i:=0 to N-1 do
  begin
    y[i]:=0;
    for k:=i+1 to N-1 do
      if x[k] = x[i] then
        y[i]:=y[i] + 1;
    if y[i] = 0 then
      writeln(x[i]);
  end;
(в)
  N:=5;
  for i:=0 to N-1 do
    y[i]:=N-1-i;
  for i:=0 to N-1 do
    writeln(x[y[i]]);
(г)
  N:=5;
  for i:=1 to N do
    y[i-1]:=N-i;
  for i:=0 to N-1 do
    writeln(y[y[i]]);
(д)
  N:=5;
  for i:=0 to N-1 do
  begin
    y[i]:=0;
    for k:=0 to N-1 do
      if x[i]>x[k] then
        y[i]:=y[i]+1;
  end;
  for i:=0 to N-1 do
    z[i]:=0;
  for i:=0 to N-1 do
  begin
    c:= y[i];
    while (c<N)and(z[c]>0) do
      c:=c+1;
    z[c]:=x[i];
  end;
  for i:=0 to N-1 do
    writeln(z[i]);

2. Пусть имеется массив с элементами x[0] = 2, x[1] = 7, x[2] = 5, x[3] = 2. Что выведет программа:

  N:=4;
  for i:=0 to N-1 do
    y[i]:=i;
  repeat
    n:=0;
    for i:=0 to N-2 do
      if x[i]>x[i+1] then
      begin
        c:=x[i];
        x[i]:=x[i+1];
        x[i+1]:=c;
        d:=y[i];
        y[i]:=y[i+1];
        y[i+1]:=d;
        n:=n+1;
      end;
  until n=0;
  for i:=0 to N-1 do
    writeln(x[y[i]]);

Следующий раздел:

Предыдущий раздел:

2 комментария

  1. АленА

    Мне кажется, что во второй задаче пропущена строчка после until n=0; нужно присвоить n значение, например, 4, потому что в предыдущей операции мы свели n к нулю.

  2. Аноним

    Ответы дайте

Добавить комментарий