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

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

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

> Формирование массивов, Нужно из одного сформировать 2
Домовой
сообщение 3.04.2006 16:01
Сообщение #1


Новичок
*

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

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


Здравствуйте.
У меня такое задание:
Дан одномерный массив A. Сформировать на его основе 2 одномерных массива B и C таким образом,
чтобы в B входили четные элементы с первой половины массива А, а в массив C - нечетные элементы со второй половины массива А.
Вроде задание то и не очень сложное,
вроде все написал... но почему-то ошибка,
помогите пожалуйста.
Код

program massive_2_5;
CONST
     from=1;
     exit=10;
     half=exit DIV 2;
var
   mass: ARRAY [from..exit] OF INTEGER; {Главный массив}
   b: ARRAY [from..half] OF INTEGER; {Массив B}
   c: ARRAY [half..exit] OF INTEGER; {массив C}
   i, context, fm, posb, posc: byte;

begin
fm:=1;
writeln('‚ўҐ¤ЁвҐ ', exit, ' §­ зҐ­Ё© ¬ ббЁў : '); {сообщение чтобы пользователь ввел значение главного массива}

  for i:=from TO exit DO
    begin
      readln(context);
      mass[i]:=context;
    end;
posb:=1;
  for i:=from TO (exit DIV 2) DO {Пробегаемся по первой половине главного массива}
    begin
      if (mass[i] MOD 2)=0 then {Если его элементы делятся на 2 без остатка}
        begin
          b[posb]:=mass[i]; {То сохраняем его в массив B}
          posb:=posb+1; {И добавляем индекс}
        end;
    end;

posc:=1;

  for i:=((exit DIV 2)+1) TO exit DO {Тоже самое и с C}
    begin
      if (mass[i] MOD 2)<>0 then
        begin
          c[posc]:=mass[i];
          posc:=posc+1;
        end;
    end;


   {Вывод результата, пока только B}
  writeln;
  writeln('Њ ббЁў B: ');
  for i:=from to half DO
    begin
      write(b[i], ' ');

    end;
  writeln;
  writeln(b[2]);
readln;

end.


Но е-мое smile.gif
Ведь массивы записываются неверно!
Ну, я в плане - когда берешься его показать - выдается правильно только перый элемент массива, а другие - беспоряждочно и не удовлетворяют условию.
Причем я проверил тока массив B smile.gif
Пробовал ставить, при проверке, что-то вроде writeln
в смысле "if (mass[i] MOD 2)=0 then" и писать просто результат - работает ведь!
Подскажите, в чем проблема,
буду признаетелен ))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 

- Текстовая версия 29.07.2025 16:16
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"