Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2008, 14:03   #1
Sabber
Пользователь
 
Регистрация: 21.10.2008
Сообщений: 23
По умолчанию Помогите пожалуйста решить задачу

Господа, помогите решить пожалуйста, если можно, а то я вообще что то не могу.
Дан массив А(n ), nЈ 12, целого типа. Получить вектор М, расположив в нем вначале все четные элементы массива А, затем - все нечетные. Порядок следования друг за другом положительных элементов не менять, то же - для отрицательных.

Заранее спасибо!
Sabber вне форума Ответить с цитированием
Старый 17.11.2008, 14:15   #2
programer_tang
 
Регистрация: 27.08.2008
Сообщений: 6
По умолчанию

А что тут сложного. вот варианта решения:

создаеш новий масив А1(n), поочереди делиш все елементы масива А(n) на 2 и смотриш остаток, за первым проходом масива А(n) записываеш в масив А1(n)только те елеенты в которых остаток = 0 (четные) за второй те в которых остаток !=0.

конешно можно поигратся с перестановками елементов масива А(n) в самом масиве, но ИМХО это дольше и больше проблем.
programer_tang вне форума Ответить с цитированием
Старый 17.11.2008, 14:22   #3
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Цитата:
конешно можно поигратся с перестановками елементов масива А(n) в самом масиве,
Да это и по условию не требуется, нужен новый массив, так что однозначно первый вариант..
puporev вне форума Ответить с цитированием
Старый 17.11.2008, 14:35   #4
Sabber
Пользователь
 
Регистрация: 21.10.2008
Сообщений: 23
По умолчанию

Вот в этом то и проблема, я не зная как код написать
Sabber вне форума Ответить с цитированием
Старый 17.11.2008, 15:32   #5
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Код:
uses crt;
const n=12;
var a,m:array[1..n]of integer;
    i,j:integer;
begin
clrscr;
writeln('Введите в строку через пробел 12 элементов массива: ');
for i:=1 to n do
read(a[i]);
readln;
j:=0; //счетчик нового массива=0
for i:=1 to n do
if a[i] mod 2 =0 then //сначала звписываем все четные
   begin
    j:=j+1; //увеличиваем счетчик
    m[j]:=a[i];
   end;
for i:=1 to n do  //сейчас счетчик уже не равен 0
if a[i] mod 2<>0 then //записываем все нечетные
   begin
    j:=j+1;
    m[j]:=a[i];
   end;
writeln('Массив М:');
for i:=1 to n do
write(m[i],' ');
readln
end.
puporev вне форума Ответить с цитированием
Старый 17.11.2008, 15:55   #6
Sabber
Пользователь
 
Регистрация: 21.10.2008
Сообщений: 23
По умолчанию

Спасибо огромное вы меня очень выручили! Я начинал правильно, а дальше никак не мог понять что делать, сейчас немного разобрался.
Sabber вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить задачу, пожалуйста! Elizaveta Паскаль, Turbo Pascal, PascalABC.NET 1 10.11.2008 02:29
Помогите решить задачу пожалуйста Никитка89 Паскаль, Turbo Pascal, PascalABC.NET 3 29.05.2008 08:35
Помогите, пожалуйста, решить задачу по файлах sheva_ser Паскаль, Turbo Pascal, PascalABC.NET 1 27.03.2008 19:36
Помогите, пожалуйста решить задачу по ООП M_Yuri Помощь студентам 2 10.02.2008 20:12