![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
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 - |
Алексей_Рыженко |
![]()
Сообщение
#6
|
Новичок ![]() Группа: Пользователи Сообщений: 23 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Извиняюсь за тупой вопрос но я с этим ещё не сталкивался. Как присваивать MaxInt и надо ли её объявлять?
|
RaV |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Пользователи Сообщений: 26 Пол: Мужской Реальное имя: Владимир Репутация: ![]() ![]() ![]() |
Можно добавить массив из булевых значений, тогда можно решить задачу.
MaxInt является предопределенной константой (MaxInt=32 767).Объявлять её не надо.; А использовать его вот так: a[i]:=maxInt; Сообщение отредактировано: RaV - |
Алексей_Рыженко |
![]()
Сообщение
#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 - |
pascal65536 |
![]()
Сообщение
#10
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 62 Пол: Мужской Репутация: ![]() ![]() ![]() |
Прикольно, я в своё время до такого не додумался. Пришлось пузырьковую сортировку разбирать.
А парень сам почти до неё добрался. Можно чуть усложнить, и будет почти как "пузырёк" 1. найти в массиве 1..n минимальный элемент. 2. поменять минимальный элемент с первым (это чтобы второй массив не заводить) 3. теперь "укоротить" массив на единицу и искать минимальный уже в диапазоне 2..n |
RaV |
![]()
Сообщение
#11
|
Новичок ![]() Группа: Пользователи Сообщений: 26 Пол: Мужской Реальное имя: Владимир Репутация: ![]() ![]() ![]() |
Алексей_Рыженко, Покажи свой код
|
Алексей_Рыженко |
![]()
Сообщение
#12
|
Новичок ![]() Группа: Пользователи Сообщений: 23 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Program DomZadUr12; Тегами пользуемся! Сообщение отредактировано: volvo - |
RaV |
![]()
Сообщение
#13
|
Новичок ![]() Группа: Пользователи Сообщений: 26 Пол: Мужской Реальное имя: Владимир Репутация: ![]() ![]() ![]() |
Program DomZadUr12; Сравни со воей программой, какие сделаны изменения. Файл с кодом ![]() |
volvo |
![]()
Сообщение
#14
|
Гость ![]() |
RaV, если тебе доставляет удовольствие делать в программах лишние и никому не нужные циклы - тогда, боюсь, ты ошибся ресурсом...
Все гораздо проще: { ... } { Ввод массива } |
Алексей_Рыженко |
![]()
Сообщение
#15
|
Новичок ![]() Группа: Пользователи Сообщений: 23 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Всё работает! Спасибо, ребята, выручили!
|
![]() ![]() |
![]() |
Текстовая версия | 21.03.2025 21:49 |