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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 24.03.2012, 12:19   #1
sashmedv
Пользователь
 
Регистрация: 07.10.2011
Сообщений: 23
Сообщение Не могу найти ошибку в коде

Условие такое:
Дан массив A из N элементов. Если в массиве есть хотя бы одна пара совпадающих элементов то упорядочить по неубыванию, иначе инвертировать (расположить элементы в обратном порядке)
Написал , но при компиляции не выполняет своих функций. Заранее спасибо.
Код:
var
a:array [1..100] of integer;
n,i,j:integer;
x:integer;
f:boolean;
begin
writeln('HI');
readln(n);
for i:=1 to n do
readln(a[i]);
for i:=1 to n-1 do
for j:=i+1 to n do
begin
if a[i]=a[j] then
f:=true;

break;
end;
if f=true then
for i:=1 to n do
if a[i]>=a[i+1] then
begin
x:=a[i];
a[i]:=a[i+1];
a[i+1]:=x;
end;
if f=false then
begin
for j:=n downto 1 do
for i:=1 to n do
begin
a[i]:=a[j];
end;
end;
for i:=1 to n do
writeln(a[i]);
end.

Последний раз редактировалось sashmedv; 24.03.2012 в 12:29.
sashmedv вне форума
Старый 24.03.2012, 14:57   #2
user125
 
Регистрация: 07.03.2012
Сообщений: 4
По умолчанию

Ошибки исправил, проверил код, вроде все работает.
Код:
var
   a:array[1..100] of integer;
   n,j,i,x:integer;
   f:boolean;
begin
   readln(n);
   for i:=1 to n do readln(a[i]);
   for i:=1 to n-1 do
      for j:=i+1 to n do
         if a[i]=a[j] then f:=true;
   if f=true then
   for i:=1 to n do
      for j:=1 to n-1 do
         if a[j]>a[j+1] then begin
            x:=a[j];
            a[j]:=a[j+1];
            a[j+1]:=x;
         end;
   i:=n;
   if f=false then
   for j:=1 to (n div 2) do begin   {Если не понимаешь, то на листке сам проделай этот цикл и сравни с тем что ты хотел сделать.}                                          
      x:=a[j];                         
      a[j]:=a[i];
      a[i]:=x;
      dec(i);
   end;
   for i:=1 to n do writeln(a[i]);
   readln;
end.
user125 вне форума
Старый 25.03.2012, 08:31   #3
sashmedv
Пользователь
 
Регистрация: 07.10.2011
Сообщений: 23
По умолчанию

user125, спасибо! все работает. там где div 2 все понял.
sashmedv вне форума
Закрытая тема


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Легкая задача в C++, не могу найти ошибку в коде. Aaaaaa111 Помощь студентам 3 20.02.2012 14:07
Паскаль, строки. Не могу найти ошибку в коде. Liam_ Помощь студентам 6 11.05.2011 19:29
Не могу найти ошибку в коде написанном на FASM Devil21RUS Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 8 12.12.2010 04:52
не могу найти ошибку в коде pavelstraut Общие вопросы C/C++ 5 24.07.2009 23:20
Не могу найти ошибку в коде! Natasha666 Помощь студентам 1 20.05.2009 09:27