Как исправить ошибки при компиляции в Lazarus?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Как исправить ошибки при компиляции в Lazarus?

Сообщение Анна Бак » 03.03.2014 18:23:36

В учебнике Алексеев Е. Р., Чеснокова О. В., Кучер Т. В. - Free Pascal и Lazarus(2010), есть такой пример программы:
Код: Выделить всё
var i,N:integer; max,X: real; S: string;begin
//Ввод количества элементов последовательности.
S:=InputBox ('Ввод',
'Введите_количество_элементов_в_последовательности. ','0');
N:=StrToFloat(S);
//Ввод первого элемента последовательности.
S:=InputBox ('Ввод_элементов_последовательности',
'Введите_число.','0');
X:=StrToFloat(S);
//Предположим, что первый элемент максимальный - Max=X.
max:=X;
//Параметр цикла принимает стартовое значение i=2,
//т.к. первый элемент уже введён.
for i:=2 to N do
begin
//Ввод следующих элементов последовательности.
S:=InputBox ('Ввод_элементов_последовательности',
'Введите_число.','0');
X:=StrToInt(S);
//Если найдётся элемент, превышающий максимум,
//записать его в ячейку Max -
//теперь он предполагаемый максимум.
if X>max then max:=X;
end;
//Ввыод наибольшего элемента последовательности.
MessageDlg (’Значение_наибольшего_элемента_-_’
+FloatToStr(max),MtInformation,[mbOk],0);
end;

Но при компиляции выходит такое сообщение:
unit1.pas(36,4) Error: Wrong number of parameters specified for call to "InputBox"
messagedialogs.inc(249,10) Hint: Found declaration: InputBox(const AnsiString,const AnsiString,const AnsiString):AnsiString;
unit1.pas(38,4) Error: Incompatible types: got "Double" expected "LongInt"
Подскажите как исправить ошибки?
Анна Бак
новенький
 
Сообщения: 13
Зарегистрирован: 11.02.2014 13:23:09

Re: Как исправить ошибки при компиляции в Lazarus?

Сообщение SSerge » 03.03.2014 19:43:14

Анна Бак писал(а):unit1.pas(38,4) Error: Incompatible types: got "Double" expected "LongInt"


Написано же, где именно и что. То есть, результат функции, возвращающей LongInt, присваивается переменной типа Double. Алсо, это как бы ненавязчиво намекает, что давным-давно нет больше такого типа как Real.
Как устранить? Гм, по тексту выше совершенно правильное выражение X:=StrToFloat(S);

и вместо N:=StrToFloat(S) должно быть N:=StrToInt(S);

Анна Бак писал(а):unit1.pas(36,4) Error: Wrong number of parameters specified for call to "InputBox"


Насколько могу судить по приведенному фрагменту, вы совершенно беспорядочно используете разные знаки апострофов для ограничения текстовых констант.
Значки ' ` " и встречающийся у вас в тексте уникодный косой апостроф - это не равноценные заменители друг другу. Сказано - прямой апостроф - то что расположено на русской букве "э" - значит он, а не что то другое.
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Как исправить ошибки при компиляции в Lazarus?

Сообщение Анна Бак » 03.03.2014 21:27:37

Благодарю за помощь!!!! :D
Анна Бак
новенький
 
Сообщения: 13
Зарегистрирован: 11.02.2014 13:23:09


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 237

Рейтинг@Mail.ru