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

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

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

Восстановить пароль

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 22.12.2013, 15:51   #1
Enerdgazer
 
Регистрация: 18.12.2013
Сообщений: 7
По умолчанию найдите ошибку

Код:
uses crt;

const SIZE=10;

type am=array[1..SIZE] of integer; // в тушке программы у Вас нет обращения к 0-му элементу массива, поэтому я поставил 1
var a:am; x,m:integer; i,j,f:byte; ch : Char;
begin
clrscr;
randomize;
Write ('Do you prefer to input digits automatically? Y/N')
ReadLn (ch);
if UpCase (ch) = 'Y' then begin
          n := SIZE;
          for i:=1 to n do a[i]:=random(10) // Заполняем 
end
else begin
       ReadLn (n);
       for i := 1 to n do
              Read (a[i]);
end;

Write ('What elem do you want to look for in this array ? ');
ReadLn (m); // не ахти имя..

          for i:=2 to n do                          //сортирует
          for j:=n downto i do                    //сортирует
              if a[j-1]<a[j] then begin
                 x:=a[j-1];
                 a[j-1]:=a[j];
                 a[j]:=x;
                 end;                                 //сортирует

          write ('отсортированный начальный массив= ');
          for i:=1 to n do write (a[i],'  ');
          writeln;

 count := 0;
  First := 1;
  Last := n;
  Found := False; {Элемент не найден}
  
  repeat {Повторять поиск}
  i := (First + Last) div 2; {Разделить на две части}
  if a[i] = m then Found:=True
    else
      begin
        if a[i] > m then First := i+1 {Искать элемент в правой части}
        else Last := i-1; {Искать элемент в левой части}
      end;
  count := count+1; {Увеличить счетчик числа итераций}
  until (Found) or (First>Last); {Завершить, если найдется искомый элемент или будет просмотрен весь массив}
  
  if Found then Writeln('Искомый элемент ', m,' в массиве занимает ',I,'-ю позицию')
  else
  Writeln('В массиве нет искомого элемента ',m);
  Writeln('Поиск выполнен За ',count,' итераций');
  Writeln('Завершить>');
  Readln
          
end.

Последний раз редактировалось Stilet; 22.12.2013 в 16:22.
Enerdgazer вне форума
Старый 22.12.2013, 16:17   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

я нашёл.
Причём даже ТРИ ошибки!
Точнее, нарушение правил форума!

1) Название темы не соответствует правилам форума

Название темы по правилам форума должно адекватно отражать суть решаемой задачи/проблемы.

2) Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)

3) в тексте сообщения нужно сообщать о решаемой задаче и возникших проблемах.

Для начала просто закрываю тему!
Для профилактики...

Модератор
Serge_Bliznykov вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
найдите ошибку:3 romasss Общие вопросы C/C++ 2 03.04.2013 19:07
Найдите ошибку #Sharp# Паскаль, Turbo Pascal, PascalABC.NET 7 23.12.2010 14:35
Найдите ошибку dyusha2006 Помощь студентам 7 23.11.2010 16:48
Найдите ошибку St1fler92 Помощь студентам 4 26.05.2009 15:23