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

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

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

> Одномерный массив - нужна ПОМОЩЬ, сортировка элементов массива
сообщение
Сообщение #1





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

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


Задали написать программу при помощи массива. Я что-то "похимичил", дальше не могу сообразить что надо делать.

Вот: дана последовательность a1, a2, ..., a20. Расположить положительные элементы последовательности, стоящие на нечётных местах, по возрастанию.


У меня вот такое вот начало получилось:

program Elementy;
uses crt;
var
M: array [1..20] of integer;
I: integer;

begin
RANDOMIZE;
clrscr;
WriteLn('Исходный массив:');
for i:=1 to 20 do
begin
M[i]:=random(40)-20;
Write(M[I]:3,' ');
end;
WriteLn;




Это всё, что я смог сделать. Ну, в начале название проги пишем, потом объявляем массив и сам индекс (i). Заполнять массив будем случайным методом - Рандомайс. Взял я так, что колебаться он будет в пределах 40 чисел, т.е. будет любое из сорока, а 20 будет отниматься всегда, в независимости от того, отрицательное ли число будет случайным из 40 либо ли оно будет положительным. Тем самым мы добъёмся того, что сам массив будет состоять как из положительных так и отрицательных элементов. Как я понял, сначала нам нужно вывести на экран наш исходный массив, который получится случайным методом, далее (ниже) будет массив конечный, который будет состоять из положительных элементов, которые стоят в исходном массиве на нечётных местах, т.е. 1, 3, 5, 7 и так далее. Значит нам нужно проверить и должны выполнять два условия одновременно: число положительно, т.е. больше нуля и оно стоит на нечётном месте в массиве. А нечётное место мы можем проверить так - берём число и делим на два, если при делении в остатке получается единичка, то место - нечётное. mod 2 = 1. Вообще, в условии сказано, что прогу нужно писать модифицированным методом выбора. Т.е. нужно просматривать весь массив, отыскивается наименьшее число (ведь нам же нужно расположить их по возрастанию), помещаем это число на первую позицию, тем самым обменивая его с элементом, который до этого занимал эту самую первую позицию. Но опять же мы просматриваем лишь только положительные элементы последовательности, которые стоят только на нечётных местах - остальные в расчёт и перестановку не берём, они, возможно, останутся на прежних местах.

Помогите... может быть я неправильно рассуждаю...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 





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