Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Внимание! Есть замечания модератора по теме: Название темы по правилам форума должно адекватно отражать суть решаемой задачи/проблемы.
Старый 19.10.2012, 22:54   #1
G-leb
Пользователь
 
Регистрация: 17.10.2011
Сообщений: 18
По умолчанию Ввод логических (boolean, булевых) переменных в Паскаль

Код:
program Yrev2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
   x,y,z,v,max,min: integer;   p,q:boolean;

begin
  Write('x='); readln(x);
  Write('y='); readln(y);
  Write('z='); readln(z);
  Write('q='); readln(q);
  Write('p='); readln(p);



         if (p=true) and (q=false) then
            begin
              if (x>0) then
                begin
                  if (y>z) then
                    Max:=y
                  else
                    max:=z;
if (x>Max) then
V:=max
else 
V:=x;
end;
if (y>0)then
begin
if (y>z) then
Max:=y
else 
max:=z;
if (y>=Max) then
V:=max
else 
V:=y;
end;
if (z>0)then
begin
if (y>z) then
max:=y
else 
max:=z;
if (z>=Max) then
V:=max
else 
V:=y;
end;
end
else V:=(x+y+z);
writeln ('v=',v);
Readln;
end.
Write('q='); readln(q);
Write('p='); readln(p); вот тут показЫвает ошибку .. В чем проблема ?


______________
Название темы по правилам форума должно адекватно отражать суть решаемой задачи/проблемы.
На первый раз я исправил.
В последующем, темы с подобным бессмысленным названием будут закрываться или удаляться,
а автор такой темы будет получать штрафные баллы.
Учтите это на будущее.

Модератор.

Последний раз редактировалось Serge_Bliznykov; 20.10.2012 в 09:08.
G-leb вне форума Ответить с цитированием
Старый 20.10.2012, 02:41   #2
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию

Код:
p,q:boolean;
А разве не очевидно?)

Вы логические переменные пытаетесь ввести.
К типу boolean применимы значения True или False, но их можна только присвоить, не ввести !
Люблю на ты.Я человек простой
Leshii вне форума Ответить с цитированием
Старый 20.10.2012, 09:05   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Leshii абсолютно прав!

G-leb, Вам же ошибка не просто так выдаётся, там есть текст ошибки.
и он внятно, английским по белому объясняет, что не так.
Вы получаете примерно такую ошибку:
Цитата:
[Pascal Error] Yrev2.dpr(15): E2055 Illegal type in Read/Readln statement
В переводе это звучит так: "Недопустимые типы в операторе Read/Readln"

Причину Вам уже Leshii объяснил.
теперь, про то, как это обойти.
вместо:
readln(q); readln(p);
пишем примерно так:
Код:
WriteLn('Vvedite Q (1-True, 0 - False) :'); Readln(v);
if v=1 then q := true else q: false;
{кстати, короче это можно записать так:
       q := v=1; }

WriteLn('Vvedite P (1-True, 0 - False) :'); Readln(v);
p := v=1;
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хранение логических переменных в одном числе AlexanderGalkin PHP 16 10.11.2013 21:04
Как фильтровать ввод переменных? andego Общие вопросы C/C++ 8 21.04.2012 11:23
Как запретить ввод всего алфавита и логических знаков "=+-*/" prikolist Общие вопросы C/C++ 13 02.06.2010 20:47
ввод нескольких переменных в одной строке ЛЕХА_Г Помощь студентам 2 18.12.2009 01:19