Вопрос № 78858: Здравствуйте!
Помогите решить задачи. Только мне если можно блок схему, текст я и сам напишу, ну если не получится, то можно и текстом.
1.Дан массив, проверить упорядочен ли он по убыванию.
2.Дан массив упорядоченный по убыван. преобразов...
Вопрос № 78.858
Здравствуйте!
Помогите решить задачи. Только мне если можно блок схему, текст я и сам напишу, ну если не получится, то можно и текстом.
1.Дан массив, проверить упорядочен ли он по убыванию.
2.Дан массив упорядоченный по убыван. преобразовать его так, чтобы он был упорядочен по возростанию.
3.Преобразовать дан. массив из 2 n эл-ов обменять значение каждой пары сосед. эл-ов.
4. Организовать циклический сдвиг на 1 эл-т влево.
5. Даны 2 мас. упоряд. по возрост. исключить из 1 эл. встречающиеся во втором (вспомогат. мас. не использовать)
6. Найти номер 1 - го эл. в массиве.
Отправлен: 18.03.2007, 23:03
Вопрос задал: Hades (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Gh0stik
Здравствуйте, Hades!
Держите первые четыре задачи (разобраться я думаю будет не сложно):
1) ============== const n=10;
a:array[1..n] of integer=(9,8,7,6,5,4,3,2,1,0);
var
i:integer;
k:boolean;
begin
k:=true;
for i:=1 to n-1 do k:=k and (a[i]>=a[i+1]);
write(k); {если выводиться TRUE - значит упорядочен по убыванию, в противном случае - FALSE}
end.
2) ============== const n=10;
type ms=array [1..n] of integer;
var
i,k:integer;
a:ms;
begin
for i:=1 to n do begin a[i]:=10-i; end;
for i:=1 to n div 2 do
begin
k:=a[i];
a[i]:=a[n-i+1];
a[n-i+1]:=k;
end;
for i:=1 to n do write(a[i]:3);
readln;
end.
3) ============== const n=5;
type ms=array [1..2*n] of integer;
var
i,k:integer;
a:ms;
begin
randomize;
for i:=1 to 2*n do begin a[i]:=random(44); write(a[i]:3);end; {генерируем произвольный массив и сразу его выводим}
writeln;
i:=1;
while i<=2*n-1 do
begin
k:=a[i]; a[i]:=a[i+1];
a[i+1]:=k; inc(i,2);
end;
for i:=1 to 2*n do write(a[i]:3);
readln;
end.
4) ============== const n=10;
type ms=array [1..n] of integer;
var
i,k:integer;
a:ms;
begin
randomize;
for i:=1 to n do begin a[i]:=random(44); write(a[i]:3);end;
writeln;
k:=a[1];
for i:=1 to n-1 do a[i]:=a[i+1];
a[n]:=k;
for i:=1 to n do write(a[i]:3);
readln;
end.
Остальные я думаю Вы и сами сможете, только вот с 6-м пунктом что-то не то, задание какое то тривиальное.. :)
Good Luck!!!
--------- Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессионал) Украина, Славянск Организация: Славянский государственный педагогический университет (Кафедра алгебры) ICQ: 289363162 ---- Ответ отправлен: 19.03.2007, 01:13
Отвечает: Яна
Здравствуйте, Hades!
5) Цикл по второму массиву
Во вложенном цикле по первому ищем текущий элемент второго массива
Если найдено совпадение, то элемент нужно удалить.
Помечаем удаляемый элемент каким-то специфическим значений, доходим цикл до конца.
Во внешнем цикле делаем еще один цикл по первому массиву с удалением помеченных элементов.
Ответ отправила: Яна (статус: Студент)
Ответ отправлен: 19.03.2007, 08:39
Отвечает: Nazar_D
Здоров, Hades!
Поможу, чим можу.
Першу задачу можна розв'язати так:
якщо масив розміром 1..n, то так
for i:=1 to n-1 do
if a[i] < a[i+1]
then flag:=1;
Тоді, після виходу з циклу, якщо flag=1, то масив невідсортований, інакше - відсортований. Змінна flag виступає тут міткою.
Друга задача
Алгоритм: вводите дві змінні i, j. однією проходите від початку масиву до середини з кроком 1, другою з кінця до середини (відповідно крок -1). На кожному кроці замінюєте через буфер і-ий елемент на j-ий
buf:=a[i];
a[i]:=a[j];
a[j]:=buf;
Третя задача
Аналогічно. Проходите масив з кроком 2, замінюючи через буфер і-ий елемент з і+1-им.
Задача 4.
Записуєте в якусь змінну знінну значення першого елемента масиву, тоді проходите циклом від другого елемента до кінця масиву, присвоюючи:
a[i-1]:=a[i];
тоді в кінці присвоїти a[n]:=buf, де buf - згадана вище змінна.
Щодо 5 і 6 задач, я не дуже розумію умови. Якщо можете, поясніть детальніше
Ответ отправил: Nazar_D (статус: Заблокирован)
Ответ отправлен: 19.03.2007, 20:05