Аватар для prem1era
0 / 0 / 0
Регистрация: 30.11.2009
Сообщений: 94

Все четные положительные элементы массива А перенести в начало, а все остальные в конец

25.01.2012, 13:12. Показов 1668. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
дан одномерный целочисленный массив А состоящий из N элементов, N-заданное натуральное число. Все четные положительные элементы массива А перенести в начало, а все остальные в конец, сохраняя взаимное расположение как среди четных полож. элементов так и среди остальных
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.01.2012, 13:12
Ответы с готовыми решениями:

Все четные положительные элементы массива А перенести в начало, а все остальные в конец
дан одномерный целочисленный массив А состоящий из N элементов, N-заданное натуральное число. Все четные положительные элементы массива А...

Все отрицательные элементы массива перенести в начало, а все остальные — в конец
Преобразовать массив Х по следующему правилу: все отрицательные элементы массива перенести в начало, а все оствальные - в конец, сохраняя...

Все отрицательные элементы массива перенести в начало, а все остальные в конец
Здраствуйте, помогите пожалуйста написать программу Нужно преобразовать массив Х по следующему правилу: все отрицательные элементы...

11
 Аватар для Фаер
792 / 398 / 260
Регистрация: 09.12.2011
Сообщений: 786
Записей в блоге: 53
25.01.2012, 14:29
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
cls: randomize timer: k=1
input "n=";n
dim A(n)
 
for i=1 to n
   A(i)=fix(rnd*51-25): print A(i);
   If A(i)>0 and A(i) mod 2=0 then t(k)=A(i): k=k+1
next
print: color 2
if k=1 then goto 1
  for i=1 to k-1
    print t(i);
  next
1 for i=1 to n
   if A(i)>0 and A(i) mod 2=0 then
     while A(i)>0 and A(i) mod 2=0
        i=i+1
     wend
   end if
print A(i);
next 
end
0
Платежеспособный зверь
 Аватар для кот Бегемот
8964 / 4387 / 1654
Регистрация: 28.10.2009
Сообщений: 11,645
25.01.2012, 18:48
Использование второго массива, когда легко можно обойтись одним - нерациональный путь решения. Тем более, что объявить второй массив Вы забыли.

PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
INPUT "n=", n
DIM a(n)
RANDOMIZE TIMER
FOR i = 1 TO n
a(i) = INT(RND * 21) - 10
NEXT
PRINT "ishodnyj massiv"
FOR i = 1 TO n
PRINT a(i);
NEXT
PRINT
FOR i = 1 TO n
 IF a(i) > 0 AND a(i) MOD 2 = 0 THEN
   m = a(i)
   t = t + 1
    FOR j = i TO t + 1 STEP -1
     a(j) = a(j - 1)
    NEXT
a(t) = m
END IF
NEXT
PRINT "novyj massiv"
FOR i = 1 TO n
PRINT a(i);
NEXT
0
Кормпилятор
 Аватар для Quiet Snow
5043 / 1717 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
25.01.2012, 19:27
кот Бегемот, думаю я бы с тобой согласился если бы не было вот этой вставочки,
которая двигает кусок массива много много много раз:

Code
1
2
3
    FOR j = i TO t + 1 STEP -1
     a(j) = a(j - 1)
    NEXT
Если программа будет работать допустим в 2 раза быстрее и кушать в 2 раза больше памяти
- это будет более чем рационально, нежели наоборот. Объясняю почему:
Память и процессор это ресурсы. Прошли времена, когда было мало памяти, сейчас почти любая
прога может запросто себе выделить 500 Мб ОЗУ и даже больше. А вот с ЦП не всё так гладко,
по прежнему чаще всего весь ботлнек в нехватке проц времени или в черезмерной жручести
программ. В DOS'е да - там по другому, там память чуть больший ботлнек, хотя и этот вопрос
решаем посредством видеопамяти, EMS, XMS и Flat-режима.

Не хочу сказать что мне импонирует прога от юзера КиберПёс, ибо я себе весь мозг сломаю, если
попытаюсь в ней разобраться, но говорить о якобы рациональности в твоей программе тоже не
приходится. Тут одно из двух, либо экономится проц, либо ОЗУ.

P.S: Только вот мы ТС забыли спросить надо оно ему или нет.
1
Платежеспособный зверь
 Аватар для кот Бегемот
8964 / 4387 / 1654
Регистрация: 28.10.2009
Сообщений: 11,645
25.01.2012, 20:01
>Quiet Snow<, я всё же склонен к своему решению по одной причине: традиция. во времена оные, когда создавался бейсик памяти под прогу выделялось примерно 38 Кбайт, а массив, скажем, из 10000 чисел требует одной памяти, а два массива - уже вдвое большей.
А обработать такой массив любому процессору несложно ( у КиберПёс там вложенный цикл, это тоже геморрой). Впрочем, не настаиваю - на любителя.
0
1255 / 705 / 359
Регистрация: 20.02.2010
Сообщений: 1,035
25.01.2012, 21:09
а если использовать дополнительный массив только для промежуточного хранения например "остальных" элементов?
переместить в начало четные положительные, затем вернуть остальные элементы из дополнительного массива.
набросок
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
RANDOMIZE TIMER
INPUT "vvedite n: ", n
DIM a(n)
FOR i = 1 TO n
    a(i) = INT(RND * 21) - 5
NEXT
PRINT "ishodnyj massiv:"
FOR i = 1 TO n
    PRINT a(i);
NEXT
FOR i = 1 TO n
    IF a(i) < 0 OR a(i) MOD 2 THEN k = k + 1
NEXT
DIM b(k)
FOR i = 1 TO n
    IF a(i) < 0 OR a(i) MOD 2 THEN j = j + 1: b(j) = a(i)
NEXT
FOR i = 1 TO n
    IF a(i) >= 0 AND a(i) MOD 2 = 0 THEN
        q = q + 1
        SWAP a(i), a(q)
    END IF
NEXT
FOR i = q + 1 TO n
       a(i) = b(k - n + i)
NEXT
PRINT STRING$(80, 196)
PRINT "novyj massiv:"
FOR i = 1 TO n
    PRINT a(i);
NEXT

чуть больше трата памяти, но меньше повторений
0
Платежеспособный зверь
 Аватар для кот Бегемот
8964 / 4387 / 1654
Регистрация: 28.10.2009
Сообщений: 11,645
25.01.2012, 21:41
И это имеет право на существование.
Я всего лишь ориентировался на то, как меня учили:
если возможно решение с одним массивом - не надо заводить второй
если возможен однопроходный алгоритм - не надо делать вложенных циклов или повторных проходов
и т.д.
Кстати, в ЕГЭ тоже придерживаются такого подхода
0
Кормпилятор
 Аватар для Quiet Snow
5043 / 1717 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
26.01.2012, 00:52
Цитата Сообщение от кот Бегемот Посмотреть сообщение
Кстати, в ЕГЭ тоже придерживаются такого подхода
ЕГЭ не показатель вообще, он ресурсы как таковые не учитывает, как я уже говорил программа с 2-мя
проходами может работать существенно быстрее программы с 1-м проходом, это конечно не означает,
что любая прога будет так работать, но в целом этот подход используется часто...

Банально, если программа считает какую-либо сложную формулу и часть этой формулы,
содержащую ресурсоёмкие для процессора вычисления можно представить в табличном виде.
Это, кстати, если кто не знает самый наистандартнейший приём оптимизации и вскрыв всякие
современные проги вы на 90% увидите код, нашпигованный такими оптимизациями.
0
Платежеспособный зверь
 Аватар для кот Бегемот
8964 / 4387 / 1654
Регистрация: 28.10.2009
Сообщений: 11,645
26.01.2012, 01:38
Цитата Сообщение от >Quiet Snow< Посмотреть сообщение
ЕГЭ не показатель вообще, он ресурсы как таковые не учитывае
Увы, приходят ученики из школ, просят помочь с заданиями С, говорят, что им требуется именно это, хотя, я согласен, далеко не всегда это оптимально.
0
1255 / 705 / 359
Регистрация: 20.02.2010
Сообщений: 1,035
26.01.2012, 09:26
не уверен что ЕГЭ хоть что-то учитывает. правильность задания больше зависит от того как сильно отличается решения от рекомендуемого, и того насколько преподаватель разбирается в своем предмете.
часто из-за ЕГЭ не полностью проходят основной курс, пропускают темы(все равно мол этого на ЕГЭ нет).
не раз слышал от преподавателей в универе, что ЕГЭнутые курсы куда слабее предыдущих.

ну это уже отходим от темы. а если по теме: в задание требуется изменить массив, а не создать новый. под условие задачи больше всего подходит решение представленное в 3 посте.
1
Кормпилятор
 Аватар для Quiet Snow
5043 / 1717 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
26.01.2012, 17:44
что ЕГЭнутые курсы куда слабее предыдущих.

Не по теме:

Куда ещё слабее?)))) Какой кошмар...

0
Платежеспособный зверь
 Аватар для кот Бегемот
8964 / 4387 / 1654
Регистрация: 28.10.2009
Сообщений: 11,645
26.01.2012, 19:15
ну, не сказать. В этом году ЕГЭ приличное. вот пример:
Вложения
Тип файла: doc егэ.doc (23.0 Кб, 7 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.01.2012, 19:15
Помогаю со студенческими работами здесь

Все отрицательные элементы массива перенести в начало, а все остальные - в конец
помогите пожалуйста))) преобразовать массив по следующему правилу (воспользовавшись массивом у как вспомогательным):все отрицательные...

Все отрицательные элементы массива перенести в начало, а все остальные - в конец
Задать массив случайных чисел из диапазона . Воспользовавшись вспомогательным массивом, все отрицательные элементы перенести в начало, а...

Все отрицательные элементы заданного массива перенести в начало, а все остальные – в конец
Помогите пожайлуста написать код . задание такое. желательно как можно проще и с коментариями Задан массив из k чисел. Преобразовать...

Все отрицательные элементы массива X перенести в его начало, а все остальные — в конец
1) Дано натуральное n. Написать программу вычисления значений (1/(1*2))+(1/(2*3))+...+(1/((n-1)*1)) где n больше или равен 2. ...

Все отрицательные элементы массива X перенести в его начало, а все остальные - в конец
преобразовать массив x по следующему правилу(воспользовавшись массивом y как вспомогательным): Все отрицательные элементы массива x...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru