![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Алексей_Рыженко |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 23 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Здрасти!!! Я здесь человек новый, но вы меня пожалуйста не игнаируете! Я самостоятель учусь программировать на Паскале. По учебникам... У меня возникла проблема. Надо написать программу которая читает массив чисел, а потом выводит в парядке возрастания. При этом сортировку мы ещё не учили. Помогите!! Мучиюсь уже неделю!
|
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Ну, то, что вы не учили сортировку, не значит, что без нее тут можно обойтись... В любом случае - тебе надо СОРТИРОВАТЬ массив по возрастанию, так?
Здесь: FAQ: Методы сортировок |
Алексей_Рыженко |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 23 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
В том-то и дело монимаете что я просмотрел весь учебник и там через несколько уроков приводится алгоритм пузырьковой сортировки. Но это только через несколько уроков. А так как учебник хороший (может кто знает Уроки от Дмитриева Эдуарда) и я немогу поверить что нет никакого другого решения. Я вот тут одну фишку придумал... Может конечно бред, но всё же..... Если числа вводить из какого-то определённого промежутка, например от 1 до 100? А массив у нас типа integer. Тогда ищем в массиве минимальный элемент, выводим его на экран, а потом значение этого элемента увеличиваем на 100 и снова ищем мин элемент. Как мне кажется таким способом можно вывести этот массив в порядке возрастания, не сортируя его. Если кто считает что я не прав объясните в чем. Если же мой алгаритм имеет место быть подскажите как его реализовать!
|
Zxzc |
![]()
Сообщение
#4
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 58 Пол: Мужской Реальное имя: Максим Репутация: ![]() ![]() ![]() |
Твой алгоритм верен, хотя и немного глуповат
![]() ![]() |
RaV |
![]()
Сообщение
#5
|
Новичок ![]() Группа: Пользователи Сообщений: 26 Пол: Мужской Реальное имя: Владимир Репутация: ![]() ![]() ![]() |
Если не использовать второго массива , то значения элементов исходного массива изменяться(в твоем случае на +100).Если использовать второй массив, то это уже первый массив в отсортированном виде записанный во второй массив.
Сообщение отредактировано: RaV - 27.05.2006 9:49 |
Алексей_Рыженко |
![]()
Сообщение
#6
|
Новичок ![]() Группа: Пользователи Сообщений: 23 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Извиняюсь за тупой вопрос но я с этим ещё не сталкивался. Как присваивать MaxInt и надо ли её объявлять?
|
RaV |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Пользователи Сообщений: 26 Пол: Мужской Реальное имя: Владимир Репутация: ![]() ![]() ![]() |
Можно добавить массив из булевых значений, тогда можно решить задачу.
MaxInt является предопределенной константой (MaxInt=32 767).Объявлять её не надо.; А использовать его вот так: a[i]:=maxInt; Сообщение отредактировано: RaV - 27.05.2006 10:19 |
Алексей_Рыженко |
![]()
Сообщение
#8
|
Новичок ![]() Группа: Пользователи Сообщений: 23 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Понимаете, ребят. я присваиваю MaxInt элементу массива М М[Min], но почему-то
минимальный у меня всегда один и тот же. Что я не так делаю? |
zZz |
![]()
Сообщение
#9
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 55 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Код var a:array[1..10]of integer; i,j,n:integer; begin writeln('размерность массива'); readln(n); for i:=1 to n do readln(a[i]); for i:=1 to n do for j:=1 to n do if (a[i]>a[j]) and (i<j) then begin {прога просто сравнивает разные элементы массива с учетом их порядка} a[i]:=a[i]+a[j]; a[j]:=a[i]-a[j]; a[i]:=a[i]-a[j]; end; for i:=1 to n do writeln(a[i]); end. примерно так выглядит самая простая для понимания и объяснения сортировка, что-то похожее нам и писала учительница на доске (когда-то давно...) Цитата a[i]:=a[i]+a[j]; a[j]:=a[i]-a[j]; a[i]:=a[i]-a[j]; это просто перестановка двух переменных без использования третьей... PS/насколько я понимаю, автору темы и нужен примерно такой алгоритм, так что вот... Сообщение отредактировано: zZz - 27.05.2006 10:22 |
pascal65536 |
![]()
Сообщение
#10
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 62 Пол: Мужской Репутация: ![]() ![]() ![]() |
Прикольно, я в своё время до такого не додумался. Пришлось пузырьковую сортировку разбирать.
А парень сам почти до неё добрался. Можно чуть усложнить, и будет почти как "пузырёк" 1. найти в массиве 1..n минимальный элемент. 2. поменять минимальный элемент с первым (это чтобы второй массив не заводить) 3. теперь "укоротить" массив на единицу и искать минимальный уже в диапазоне 2..n |
RaV |
![]()
Сообщение
#11
|
Новичок ![]() Группа: Пользователи Сообщений: 26 Пол: Мужской Реальное имя: Владимир Репутация: ![]() ![]() ![]() |
Алексей_Рыженко, Покажи свой код
|
Алексей_Рыженко |
![]()
Сообщение
#12
|
Новичок ![]() Группа: Пользователи Сообщений: 23 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Program DomZadUr12; Тегами пользуемся! Сообщение отредактировано: volvo - 2.11.2006 17:53 |
RaV |
![]()
Сообщение
#13
|
Новичок ![]() Группа: Пользователи Сообщений: 26 Пол: Мужской Реальное имя: Владимир Репутация: ![]() ![]() ![]() |
Program DomZadUr12; Сравни со воей программой, какие сделаны изменения. Файл с кодом ![]() |
volvo |
![]()
Сообщение
#14
|
Гость ![]() |
RaV, если тебе доставляет удовольствие делать в программах лишние и никому не нужные циклы - тогда, боюсь, ты ошибся ресурсом...
Все гораздо проще: { ... } { Ввод массива } |
Алексей_Рыженко |
![]()
Сообщение
#15
|
Новичок ![]() Группа: Пользователи Сообщений: 23 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Всё работает! Спасибо, ребята, выручили!
|
![]() ![]() |
![]() |
Текстовая версия | 12.08.2025 15:20 |