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

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

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

 
 Ответить  Открыть новую тему 
> Помогите решить ошибку., Выдает ошибку
сообщение
Сообщение #1





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

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


Выдает ошибку Program1.pas(18) : Встречено '.', а ожидалось ';',не знаю как решить:
Собственно задача: Разработать рекурсивную процедуру двоичного поиска элемента массива, равного данному числу.
type mas =array[1..20] of integer;
Procedure bin(m:mas;first,last,x:integer;var i:integer);
var c : integer;
begin
if first>last then
begin
write('Числа ',x,' в массиве нет');
exit;
end;
begin
i:=0;
c:=(first + last) div 2;
if m[c]=x then i:=c
else if m[c]>x then bin(m,first,c,x,i)
else bin(m,last,c,x,i);
if i<>0 then write('Номер числа ',x,' в массиве=',i);
end;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Знаток
****

Группа: Пользователи
Сообщений: 481
Пол: Мужской
Реальное имя: Федосеев Павел

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


type
mas = array[1..20] of integer;

procedure bin(m: mas; First, last, x: integer; var i: integer);
var
c: integer;
begin
if First > last then
begin
Write('Числа ', x, ' в массиве нет');
exit;
end;
begin
i := 0;
c := (First + last) div 2;
if m[c] = x then
i := c
else if m[c] > x then
bin(m, First, c, x, i)
else
bin(m, last, c, x, i);
if i <> 0 then
Write('Номер числа ', x, ' в массиве=', i);
end;
end;

begin
end.


Сообщение отредактировано: Федосеев Павел -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





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

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


Спасибо,конечно,но почему-то сам код не запускается,нажимаю и он сразу завершается,через shift+F9 тоже самое,можете подсказать что не так?

Сообщение отредактировано: lekosa -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Знаток
****

Группа: Пользователи
Сообщений: 481
Пол: Мужской
Реальное имя: Федосеев Павел

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


Потому, что программа
begin
end.

А все остальные строки - подпрограмма.

Т.е. сама программа - пустая, ничего не делает.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





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

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


Цитата(Федосеев Павел @ 5.12.2016 23:21) *

Потому, что программа
begin
end.

А все остальные строки - подпрограмма.

Т.е. сама программа - пустая, ничего не делает.


Ясно,я все понял,но можете дополнить программу что-бы она работала,я все по инструкции делал,дальше не знаю как.Спасибо заранее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Знаток
****

Группа: Пользователи
Сообщений: 481
Пол: Мужской
Реальное имя: Федосеев Павел

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


program lekosa;

type
mas = array[1..20] of integer;

procedure bin(var m: mas; First, last, x: integer; var i: integer);
var
c: integer;
begin
if First >= last then
begin
i := 0;
exit;
end;
begin
i := 0;
c := (First + last) div 2;
if m[c] = x then
i := c
else if m[c] > x then
bin(m, First, c - 1, x, i)
else
bin(m, c + 1, last, x, i);
end;
end;

var
a: mas;
i: integer;
x: integer;
begin
writeln('Массив:');
for i := 1 to 20 do
begin
a[i] := 7 + 17 * i;
Write(a[i]: 4);
end;
writeln;

x := 228;
bin(a, 1, 20, x, i);
if i <> 0 then
writeln('Номер числа ', x, ' в массиве=', i)
else
writeln('Числа ', x, ' в массиве нет');
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 24.04.2024 21:14
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name