Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> почему синтаксическая ошибка 
:(
    Опции темы
Samotnik
Дата 26.2.2009, 02:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: нет
Всего: 191



Код

var
x,y,z:real;
begin
write('Vvedite pervoe chislo ');
read(x);
write('Vvedite vtoroe chislo ');
read(y);
z:=abs(x-y);
if x>y
then writeln('Pervoe chislo ', x:2:0, ' bolshe vtorogo ',y:2:0, ' na ', z:2:0)
readln;
else if x<y
then writeln('Vtoroe chislo ', y:2:0, ' bloshe pervogo ', x:2:0, ' na ', z:2:0)
readln;
else if x=y
then writeln(' Dva chisla ravni ^__^  ',x:2:0, ' = ', y:2:0);
readln;
end.

PM MAIL   Вверх
Данкинг
Дата 26.2.2009, 02:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: нет
Всего: 130



А перед else точка с запятой ставится в паскале?


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Cheburek
Дата 26.2.2009, 02:53 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 26.3.2006

Репутация: нет
Всего: 1



Вы не понимаете кое-что очень важное.
Разбирайтесь для чего нужны begin и end.

Код

var
x,y,z:real;
begin
write('Vvedite pervoe chislo ');
read(x);
write('Vvedite vtoroe chislo ');
read(y);
z:=abs(x-y);
if(x>y)
then begin writeln('Pervoe chislo ', x:2:0, ' bolshe vtorogo ',y:2:0, ' na ', z:2:0);
readln;
end
else begin if(x<y)
then begin writeln('Vtoroe chislo ', y:2:0, ' bloshe pervogo ', x:2:0, ' na ', z:2:0);
readln;
end
else if x=y
then begin writeln(' Dva chisla ravni ^__^  ',x:2:0, ' = ', y:2:0);
readln;
end;
end;
end;
readln;
end.


Это сообщение отредактировал(а) Cheburek - 26.2.2009, 02:57
PM MAIL   Вверх
kemiisto
  Дата 26.2.2009, 03:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: нет
Всего: 160



Код

var
  x, y, z: real;
begin
  write('Vvedite pervoe chislo ');
  readln(x);
  write('Vvedite vtoroe chislo ');
  readln(y);
  z := abs(x - y);
  if x > y then 
    writeln('Pervoe chislo ', x:2:0, ' bolshe vtorogo ',y:2:0, ' na ', z:2:0)
  else 
    if x < y then 
      writeln('Vtoroe chislo ', y:2:0, ' bloshe pervogo ', x:2:0, ' na ', z:2:0)
    else
      writeln(' Dva chisla ravni ^__^  ',x:2:0, ' = ', y:2:0);
  readln;
end.


Почистил от очевидных глупостей, отформатировал.

Добавлено @ 03:19
Цитата(Данкинг @  26.2.2009,  00:48 Найти цитируемый пост)
А перед else точка с запятой ставится в паскале? 

 smile Не шали!

Cheburek, во-первых, форматируй код. А во-вторых, ну там очевидная глупость с readln в каждой ветке.

Добавлено через 3 минуты и 42 секунды
Эх, соскучал я по PASCAL'ю... smile 

Это сообщение отредактировал(а) kemiisto - 26.2.2009, 03:20


--------------------
PM MAIL WWW GTalk Jabber   Вверх
Cheburek
Дата 26.2.2009, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 26.3.2006

Репутация: нет
Всего: 1



kemiisto, там могло быть что-нибудь принципиально более ценное чем реадлн.
Как код был отформатирован, таким я его и оставил.
PM MAIL   Вверх
Samotnik
Дата 26.2.2009, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: нет
Всего: 191



kemiisto, пасибо, но это я  и сам сделал ^__^
проблема в том, что в этой программе, после вывода значения, черный экран с выводом пропадает !!!
А нужно чтобы не пропадал !!!  
Поэтому я и поставил readln везде в конце, тока  хз какой синтаксис у него, я паскаль последний раз в школе открывал - 5 лет назад ! 
PM MAIL   Вверх
Keeper89
Дата 7.3.2009, 01:48 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: нет
Всего: 58



Цитата(Samotnik @  26.2.2009,  09:18 Найти цитируемый пост)

проблема в том, что в этой программе, после вывода значения, черный экран с выводом пропадает !!!
А нужно чтобы не пропадал !!!  
Поэтому я и поставил readln везде в конце, тока  хз какой синтаксис у него, я паскаль последний раз в школе открывал - 5 лет назад !  

На сколько я знаю readln ставится 1 раз перед конечным end для ожидания закрытия. Если 1 readln не помогает, попробуйте поставить 2 подряд или оператор repeat until keypressed вместо readln.

Это сообщение отредактировал(а) Keeper89 - 7.3.2009, 01:49


--------------------
PM MAIL WWW   Вверх
volvo877
Дата 7.3.2009, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Цитата(Keeper89 @  7.3.2009,  00:48 Найти цитируемый пост)
Если 1 readln не помогает, попробуйте поставить 2 подряд
А если не помогают 2 - значит, ставить три! Правильно я понимаю? На самом деле все проще гораздо. Не надо пользоваться Read-ом для ввода НЕстроковых значений, пользуйся ReadLn-ом. А уж есть пользуешься - так будь добр считывать СРАЗУ же после ввода значения тот символ #13, которым обычно завершается ввод числа, из буфера клавиатуры.

Теперь понятнее, откуда возникает потребность во втором ReadLn в конце программы? Или предпочитаем гадать, почему это происходит, а не разбираться?
PM MAIL   Вверх
Keeper89
Дата 7.3.2009, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: нет
Всего: 58



Цитата(volvo877 @  7.3.2009,  12:58 Найти цитируемый пост)
А если не помогают 2 - значит, ставить три! Правильно я понимаю?

нет, больше двух, как показывает практика, уже не помогают smile
Цитата(volvo877 @  7.3.2009,  12:58 Найти цитируемый пост)
Не надо пользоваться Read-ом для ввода НЕстроковых значений, пользуйся ReadLn-ом. А уж есть пользуешься - так будь добр считывать СРАЗУ же после ввода значения тот символ #13, которым обычно завершается ввод числа, из буфера клавиатуры.

Согласен, но в последнем листинге никаких Read нет. Если смотреть первый - тогда ясно.


Это сообщение отредактировал(а) Keeper89 - 8.3.2009, 01:19


--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.1070 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.