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

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

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

 
 Ответить  Открыть новую тему 
> Бинарный поиск, ошибко
abacus
сообщение 17.05.2010 20:15
Сообщение #1





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

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


Значит, задача, надо было:
Сформировать целочисленный массив A[20], таким образом, что бы элементы массива принадлежали отрезку [-50, 50].
Выполнить в нём линейный поиск введенного с клавиатуры элемента.
Отсортировать массив методом вставки.
Выполнить бинарный поиск элемента.
В общем-то с заданием мне всё понятно, смущает лишь последняя ошибка над которой выносил мозги долгое время. Возникает в * ошибка 3 'неправильный тип',
я думаю что из-за d:=(i+j) div 2;

Прошу подскажите я знаю вы тут все добрые smile.gif .
Цитата
program labasem;
uses crt;
var a: array[1..20] of integer;
i,j,k,x,z,f: integer;
nl,nll,d: real;
begin
randomize;
for i:=1 to 20 do
a[i]:= random(50)-50;
readln(i);
while (i<=20) and (a[i]<>x) do inc(i);
writeln(a[i]);
for i:=2 to 20 do
begin
z:=a[i]; j:=1;
while (z>=a[j]) and (j<i) do inc(j);
for k:=i-1 downto j do a[k+1]:=a[k];
a[j]:=z;
end;
i:=1;
j:=20;
for f:=1 to 4 do
begin
d:=(i+j) div 2;
d:=round(d);
if * a[d]=x then writeln(d); else begin
if a[d]>x then i:=d; else j:=d; end;
end;
readkey;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Ozzя
сообщение 18.05.2010 9:13
Сообщение #2


Гуру
*****

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

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


a[d]=x 
и
d: real;

blink.gif
Вы шутите?
Индекс массива не может быть вещественного типа!

Добавлено через 6 мин.
nl,nll,d: real;

Замените на integer;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
abacus
сообщение 18.05.2010 17:19
Сообщение #3





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

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


оух, прошу прощенье, unsure.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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