Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Pascal

Выпуск № 325
от 24.03.2007, 21:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 236, Экспертов: 54
В номере:Вопросов: 1, Ответов: 3


Вопрос № 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


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
ООО "Мастер-Эксперт Про", Москва, 2007
Авторские права | Реклама на портале
Версия системы: 4.46 от 18.03.2007
Яндекс Rambler's Top100

В избранное