Конспект лекций по программированию для начинающих. Гладков В.П. - 188 стр.

UptoLike

Составители: 

190
двумерному, поэтому можно представить вахтенный журнал в виде двумерного
массива, где строки будут изображать десятидневки, а столбцы - номера дней в
текущей десятидневке. Получаем следующее решение:
Решение 5.
d=0; {номер десятидневки}
p:=0; {максимальное пройденное расстояние}
for i:=1 to 3 do
begin s:=0;
for j:=1 to 10 do s:=s+a[i,j];
if p<s then begin p:=s; d:=i end
end.
Пример 11.49. Заданы два одномерных массива. Нужно получить третий
массив, в который переписать те элементы из первых двух, которые имеются как в
первом, так и во втором массиве, при условии, что элементы как в первом массиве,
так и во втором массиве не повторяются.
Решение. Пусть массив а содержит n элементов, для обращения к которым
будем использовать индекс i, массив b содержит m элементов, для обращения к
которым будем использовать индекс j. В этом случае в массиве с может оказаться
min(n,m) элементов. Для обращения к элементам массива с будем использовать
индекс k. Для решения используем следующую идею. Просмотрим массив а. Для
каждого
выбранного элемента попытаемся отыскать совпадающий с ним элемент
массива b. Если такой элемент в массиве b будет найден, то запишем его в массив
с.
k:=0; {пока массив с пуст}
for i:=1 to n do {просматриваем массив а поэлементно}
begin j:=1; f:=false; {начальные значения для поиска в массиве b}
while (j<=m) and not f do
if a[i]=b[j]
then begin k:=k+1; c[k]:=b[j]; f:=true end
else j:=j+1
end.
Упражнения:
1. Какой массив с получится, если в предыдущем фрагменте заменить
логическое выражение в условном операторе на a[i]<>b[j]?
2. Решает ли приведенный ниже фрагмент задачу примера 11.48? В чем его
недостатки и достоинства?
k:=0;
for i:=1 to n do
begin p:=0;
for j:=1 to m do
if a[i]=b[j] then p:=1;
if p=1 then begin k:=k+1; c[k]:=a[i] end;
end.
3. Почему размерность массива c должена быть размерности не меньше
min(n,m)?
                                      190

двумерному, поэтому можно представить вахтенный журнал в виде двумерного
массива, где строки будут изображать десятидневки, а столбцы - номера дней в
текущей десятидневке. Получаем следующее решение:
    Решение 5.
    d=0; {номер десятидневки}
    p:=0; {максимальное пройденное расстояние}
    for i:=1 to 3 do
    begin      s:=0;
               for j:=1 to 10 do s:=s+a[i,j];
               if pb[j]?
    2. Решает ли приведенный ниже фрагмент задачу примера 11.48? В чем его
недостатки и достоинства?
    k:=0;
    for i:=1 to n do
    begin      p:=0;
               for j:=1 to m do
                       if a[i]=b[j] then p:=1;
               if p=1 then begin k:=k+1; c[k]:=a[i] end;
    end.
    3. Почему размерность массива c должена быть размерности не меньше
min(n,m)?