IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Последоватеоьность и процедура., Помогите кто чем сможет...=)
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 8
Пол: Мужской

Репутация: -  0  +


Ввести неупорядоченную последовательность из 20 элементов.Написать процедуры упорядочивания последовательности и вставки К новых элементов на правильное место в упорядоченную последовательность.Вывести результаты всех обработок последовательности.

Заранее спасибо.=)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2





Группа: Пользователи
Сообщений: 1
Пол: Мужской

Репутация: -  -1  +


<censored>
WebMoney или Яндекс.Деньги
100рублей
 ! 
Здесь не доска объявлений! Уважаем правила...
-- мисс_граффити



 ! 
И не Задачи На Заказ! -1.
--Lapp



Сообщение отредактировано: Lapp -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 8
Пол: Мужской

Репутация: -  0  +


Ну так что,идей нет? unsure.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(DLF @ 30.11.2007 9:33) *

Ну так что,идей нет? unsure.gif
А у тебя?..
Или задание не тебе?

А идеи тут не нужны. Стандартные методы, тысячу раз было на Форуме. Используй поиск..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





Группа: Пользователи
Сообщений: 8
Пол: Мужской

Репутация: -  0  +


У меня идея сначала создать массив,в нём сделать сортировку,а потом всё это запихать в процедуру,вот такие мои мысли...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


а как ты в массив будешь вставлять произвольное количество элементов?
имхо, нужен список


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7





Группа: Пользователи
Сообщений: 8
Пол: Мужской

Репутация: -  0  +


мисс_граффити
Дело просто в том,что списки у нас только через две темы,и мне кажется,что препод не стал бы давать задачку на ту тему,которую мы ещё не проходили...воть... cool.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Если предполагать, что размер массива взят с большим запасом, то есть он заведомо больше 20+К, то, имхо, можно не заморачиваться со списками.

DLF, мысли твои в целом правильные. Начинай писать программу. Для действий, предусмотренных в задании, можешь использовать примерно такие фрагменты:

1. Упорядочивание методом пузырька:
for j:=2 to n do for i:=n downto j do if a[i-1]>a[i] then begin
b:=a[i];
a[i]:=a[i-1];
a[a-1]:=b
end;

2. Вставка числа b на правильное место:
i:=1;
while (i<=n) and (a[i]<=b) do begin
for j:=n downto i do a[j+1]:=a[j];
a[j]:=b;
Inc(n)
end;


Здесь n - реальное количество чисел в последовательности. Предполагается, что оно всегда меньше размерности массива a[1..m]. То есть если, скажем, в начале n=20, а K=10, то в конце работы программы n увеличится до 30. Если взять m=100, то все будут довольны smile.gif.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Цитата
Если предполагать, что размер массива взят с большим запасом, то есть он заведомо больше 20+К
Коли уж тут прозвучали высказывания, что тусуются на форуме в основном школьники и студенты, то для них этот подход неприменим! Не надо учить начинающих программистов выделять массивы "с большим запасом". Потом от этой привычки очень сложно избавиться... (Администратор форума программистов - это не только закрытие, удаление и перемещение тем, но и обдумывание вот таких вопросов тоже, не так ли?)

const K = 5;
Var Arr = array[1 .. 20 + K] of integer; { <--- тип менять по желанию }
...

если K известно заранее, или
type 
pArrType = ^arrType;
arrType = array[1 .. 1] of integer;
var
K: integer;
arr: pArrType;
...
readln(K);
getmem(arr, 20 + K * sizeof(integer));
...

если его надо вводить по ходу выполнения программы.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(volvo @ 1.12.2007 11:05) *

но и обдумывание вот таких вопросов тоже, не так ли?)

Верно, но только я их обдумываю по-своему, не всегда как ты. И если ты считаешь, что такой подход неприменим, то это (простите за тавтологию) твое имхо.
Предлагаешь свой способ - и предлагай.
-1


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11





Группа: Пользователи
Сообщений: 8
Пол: Мужской

Репутация: -  0  +


Попробую написать,гляну,что получится... smile.gif по +1 вам за помощь=))Спасибо.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Я считаю, что все задачи так или иначе решаются в каких-то ограничениях, условиях.
Если условия известны точно, или могут быть точно определены какими-либо действиями, то решение может быть жестко привязано к этим условиям.
Если условия точно не известны, решение должно быть более гибким.

В данном случае в задаче ограничения не указаны на размер параметра K.
Значит решение должно быть гибким.
Вариант volvo использует указатели. Если студент уже изучил их, то однозначно стоит применить этот метод.
Но если нет, получается, что студенту придется одновременно изучать более сложную тему "указатели" кроме темы "массивы" и сложность задачи возрастет.

Цитата
Не надо учить начинающих программистов выделять массивы "с большим запасом"

Вообще - согласен.


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Altair @ 1.12.2007 15:04) *

Вообще - согласен.
Ведь ничего не бывает само по себе, все в определенных условиях. И ограничения есть всегда. Когда решается задача про текст и слова, никто особо не протестует против использования строк, не акцентируя внимания на том, что их лимит 255 символов. И в данном случае "с запасом" означает фактически "думай сам, поскольку точные условия не даны". Отсутствие знаний об указателях не значит, что все задачи, подобные этой, не решаются. Да, нужно брать запас, НО нужно это делать разумно. Я не понимаю, слов о привычке, от которой "очень сложно избавиться". Ко всему нужно подходить с разумных позиций в данных условиях. И если сейчас они проходят простые вещи, не нужно лишних усложнений. "Нельзя объять необъятное" © Козьма Прутков. Если бы при объяснении законов Ньютона начинали говорить про Общуюю теорию относительности Эйнштейна - то что бы это было? Нет, уж путь лучше появится привычка к законам Ньютона, а потом, кому понадобится - разберется и с ОТО, и искоренит привычку делить силу на массу (простите за пример, который мне близок).
А тот, кто не пробьется через законы Ньютона (читай: не поймет, как упорядочивать массив) - тому стоит ли вообще думать об ОТО (читай: динамической памяти).

PS
Интересно было бы все же узнать, какое решение предполагалось преподавателем smile.gif.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 15:19
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name