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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.10.2010, 23:20   #1
WitaliG
Пользователь
 
Регистрация: 17.08.2010
Сообщений: 75
По умолчанию Задача на Паскаль

Здравствуйте! Решаю задачи по Programming Taskbook М. Э. Абрамяна. Предыдущие две темы мне дались без особых затруднений, а вот первую задачу новой темы никак не могу сообразить как написать в Паскале код. Спросить мне некого, вся надежда на вас братцы!
С уважением Виталий.
Boolean1°. Дано целое число A. Проверить истинность высказывания: «Чис¬ло A является положительным».
WitaliG вне форума Ответить с цитированием
Старый 21.10.2010, 23:25   #2
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию

if A > 0 then // высказывание истинно
ICQ: 593-013-807
Don Karleone вне форума Ответить с цитированием
Старый 21.10.2010, 23:25   #3
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

Чтобы вам было понятней, решил изложить код к этому заданию таким образом:
Код:
program bool;
var f:boolean;
a:integer;
begin
writeln('введите a');
readln(a);
if a>=0 then f:=true
else f:=false;
If f then writeln('оно положительное')
else writeln('оно отрицательное');
end.
Базиля вне форума Ответить с цитированием
Старый 21.10.2010, 23:30   #4
Sam Gold
Форумчанин
 
Аватар для Sam Gold
 
Регистрация: 26.03.2010
Сообщений: 538
По умолчанию

Если я правильно понял, то если А положительно, то некоторая логическая переменная равна TRUE, то можно так:
Код:
program bool;
var A:integer;
IsAPos:boolean;
begin

readln(A);

if  ( A<=0) then IsAPos:=false    else IsAPos:=true   ;

if  IsAPos = true  then writeln('positive') else writeln('not positive');
end.
Единственный способ стать умнее - играть с более умным противником.
Sam Gold вне форума Ответить с цитированием
Старый 21.10.2010, 23:57   #5
WitaliG
Пользователь
 
Регистрация: 17.08.2010
Сообщений: 75
По умолчанию

Cпасибо братцы, что откликнулись.
Я только учусь, но мне кажется, что задачу надо решать каким-то иным способом без применения условного оператора. Этому свидетельствует тот факт, что тема(40 задач) «Условный оператор» следующая за темой «Логические выражения».
Хотя я могу и ошибаться…
С уважением Виталий.
WitaliG вне форума Ответить с цитированием
Старый 22.10.2010, 00:02   #6
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

WitaliG
Здесь не в этом суть) Без условного оператора ты не обойдешься. Просто здесь суть в том, чтобы ты понял как используются переменные логического типа в задачах.
Базиля вне форума Ответить с цитированием
Старый 22.10.2010, 00:07   #7
sergey.d
Пользователь
 
Регистрация: 23.08.2010
Сообщений: 98
По умолчанию

Господа! Усли уж вы взялись писать код, можно делать это по человечески?
Вот это
Код:
if  ( A<=0) then IsAPos:=false    else IsAPos:=true   ;
не лучше ли сделать так:
Код:
IsAPos := A > 0;
???
А это
Код:
if  IsAPos = true  then writeln('positive') else writeln('not positive');
так:
Код:
if  IsAPos  then writeln('positive') else writeln('not positive');
???

И почему кое-кто считает, что 0 -- положительное число?

Последний раз редактировалось sergey.d; 22.10.2010 в 00:10.
sergey.d вне форума Ответить с цитированием
Старый 22.10.2010, 00:14   #8
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

sergey.d
Цитата:
И почему все кодописатели считают, что 0 -- положительное число?
а что оно по вашему отрицательное? Если человек введет 0 то программа выведет что оно отрицательное, судя по вашей логики.

Цитата:
Господа! Усли уж вы взялись писать код, можно делать это по человечески?
Конечно хотелось бы высказать свое мнение по этому высказыванию, но воздержусь
Базиля вне форума Ответить с цитированием
Старый 22.10.2010, 00:29   #9
WitaliG
Пользователь
 
Регистрация: 17.08.2010
Сообщений: 75
По умолчанию

Братцы, простите меня за настойчивость, но я только что написал код:
var
a :integer;
rez :boolean;
begin
write(a);
readln(a);
rez:=(a>0) or (a<0);
writeln('Результат : ',rez);
readln
end.
Тут если ввожу положительное число, программа пишет True, но если ввожу -5, то по ее мнению все-равно True/
Вопрос: насколько корректно я написал код, и почему в случае с отрицательным числом True/
WitaliG вне форума Ответить с цитированием
Старый 22.10.2010, 00:45   #10
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

замени на:
Код:
a :integer;
rez :boolean;
begin
write(a);
readln(a);
rez:=(a>0); 
writeln('Результат : ',rez);
readln
end.
просто у тебя в обоих случаях условие будет истинно Поэтому и выводит что и при -5 true что и при 5 true
Базиля вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на паскаль St1fler92 Помощь студентам 2 27.05.2009 00:19
Задача на паскаль St1fler92 Помощь студентам 4 26.05.2009 16:21
Задача на Паскаль Julia86 Помощь студентам 1 08.03.2009 11:44
Задача по паскаль. aleksandr_dss Помощь студентам 1 31.12.2008 00:09