Turbo и ABC - не работает программа.

Форум для изучающих FPC и их учителей.

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

Turbo и ABC - не работает программа.

Сообщение deka47 » 11.10.2012 00:24:22

Ребят, реально уже крыша едет, либо поздно и я уже, проверив 50-й раз не могу найти ошибку, либо я даже уже не знаю к чему придраться.
ABC работает исправно, показывает когда ошибка, когда правильно, нормально завершает работу.
Turbo прикол, он на все значение пишет мне "Bad!", хотя я правильно умножаю числа.
Как по мне программы идентичны, капелька в капельку, разны лишь тем, что в ABC - strtoint, а в Turbo - str.
Все остальное одинаковое. Так почему Turbo не работает? При запуске на правильные ответы пишет "Bad!", я уже час смотрю на два компилятора и не могу найти в чем проблема. Помогите.

Код проргаммы для ABC:
Код: Выделить всё
var a, b, c : integer;
r: boolean;
q: string;
begin
Randomize;
repeat
A:= 1+ Random(10); B:= 1+ Random(10);
Write(A,' x ',B, ' = ');
readln (q);
if q='Stop' then break else c:= strtoint(q);
r:=c=a*b;
if r
then Writeln ('Молодец правильно!')
else Writeln ('Ошибка, повтори таблицу умножения!');
until false;
writeln ('Good bye!');
end.


Turbo:
Код: Выделить всё
var a, b, c : integer;
r: boolean;
q: string;
begin
Randomize;
repeat
A:= 1+ Random(10); B:= 1+ Random(10);
Write(A,' x ',B, ' = ');
readln (q);
if q='Stop' then break else str (c,q);
r:=c=a*b;
if r
then Writeln ('Good!')
else Writeln ('Bad!');
until false;
writeln ('Good bye!');
end.
Вложения
1.jpg
deka47
новенький
 
Сообщения: 33
Зарегистрирован: 07.10.2012 22:43:26

Re: Turbo и ABC - не работает программа.

Сообщение Максим » 11.10.2012 00:42:33

Вы вообще документацию читать будете?

Вот это вот:
Код: Выделить всё
str (c,q);
что делает?
Аватара пользователя
Максим
энтузиаст
 
Сообщения: 598
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Re: Turbo и ABC - не работает программа.

Сообщение deka47 » 11.10.2012 01:12:36

Максим, конвертирует тип string в integer. Аналог c:= strtoint(q), потому что в Turbo такой комманды нету.
Это я такое нашел на просторах интернета.

По-ходу последнее предложение сыграло роль в моей ошибке, верно, Максим?
Вложения
4.jpg
deka47
новенький
 
Сообщения: 33
Зарегистрирован: 07.10.2012 22:43:26

Re: Turbo и ABC - не работает программа.

Сообщение Максим » 11.10.2012 01:57:15

deka47 писал(а):Максим, конвертирует тип string в integer.

Понятия не имею, откуда вы это взяли. На приведённом вами скриншоте про Str всё написано правильно (за исключением ереси про модуль Crt). Читайте снова и медленнее.

А ещё лучше, читайте не мурзилки в Интернете, а официальную документацию.
Аватара пользователя
Максим
энтузиаст
 
Сообщения: 598
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Re: Turbo и ABC - не работает программа.

Сообщение Oleg_D » 11.10.2012 08:39:09

deka47 писал(а):Ребят, реально уже крыша едет

На свежую голову в хелпах можно найти это:
Код: Выделить всё
Procedure Val(S; Var V; Var Code : Integer);

Где:
  S    - переменная со строковым типом. Должна представлять
         последовательность символов, формирующих знаковое целое число.
  V    - переменная типа Real или Integer.
  Code - переменная типа Integer.

Замечания:
-------------
Преобразовывает строковое значение (S) в его числовое представление, как это
происходит при чтении из текстового файла с помощью Read. Code - позиция, в
которой произошла ошибка при преобразовании, или нуль, если ошибки не было.

{ Пример программы для процедуры Val }

Var I, Code : Integer;
    S : string;
Begin
   Readln(S);
   Val(S, I, Code);
   { Была ошибка при преобразовании ? }
   If Code<>0
      Then WriteLn('Ошибка при преобразовании в позиции : ', Code)
      Else WriteLn('Число = ', I);
End.
Oleg_D
постоялец
 
Сообщения: 391
Зарегистрирован: 09.05.2011 11:28:36


Вернуться в Обучение Free Pascal

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

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

Рейтинг@Mail.ru