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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.01.2018, 22:35   #1
AntonAr
 
Регистрация: 08.01.2018
Сообщений: 7
По умолчанию Pascal ABC, выдаёт ошибку

Дан массив N(чётное число). Поменять местами 1 и 2 половину массива.

Код:
program zamena;
    const N=8;
Var A: Array [1..N] of integer; 
    C, x, i, K : integer; 
begin 
 writeln ('Введите массив С:  '); 
 readln (C); 
 for i:=1 to N do 
begin 
 x[i]:=Random(20);
 writeln (' ', x[i]);
end; 
 writeln;
 for i := 1 to N do
 begin 
   c:=x[i]; 
   x[i]:=x[n+i]; 
   x[n+i]:=c;
 end;
 writeln('Полученный массив :   ');
 for i:= 1 to N do 
 writeln(' ', x[i]);
 readln;
end.
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 09.01.2018 в 09:56.
AntonAr вне форума Ответить с цитированием
Старый 08.01.2018, 22:52   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Код:
x[i]:=x[n+i]; 
x[n+i]:=c;
Как думаешь, откуда прочитаешь и куда запишешь например при i=1? Учитывая объявленную размерность массива
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.01.2018, 10:02   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

предложу такой вариант:
Код:
 for i := 1 to (N div 2) do
 begin 
   c:=x[i]; 
   x[i]:=x[n+1-i]; 
   x[n+1-i]:=c;
 end;
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Pascal ABC.NET] Найдите ошибку. Почему программа при любых значениях выводит в ответ 0? HackYou Паскаль, Turbo Pascal, PascalABC.NET 2 11.06.2017 19:36
Помогите найти ошибку - StrToFloat выдаёт ошибку EConvertError для ячеек StringGrid (Delphi) Artsiom Помощь студентам 10 18.12.2013 14:10
Pascal при компиляции любой программы выдаёт ошибку : Poltish Паскаль, Turbo Pascal, PascalABC.NET 12 09.04.2013 18:51
Выдаёт ошибку: acos DOMAIN error,полсе нажатия окей,ещё одну ошибку pow OWERFLAW ERROR prikolist Общие вопросы C/C++ 4 10.04.2009 20:27