IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Помогите с boolean, comp, char
сообщение
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 227
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  3  +


Задание:
Написать программу, использующую при своей работе не меньше 3х переменных boolean.
То же самое для comp и char. То есть три разных программы. Натолкните хотя бы на мысль - не представляю, что это должны быть за программы - сами проги уже попытаюсь написать сам.


--------------------
Само знание есть сила
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Знаток
****

Группа: Пользователи
Сообщений: 346
Пол: Мужской
Реальное имя: Иван

Репутация: -  7  +


Цитата(Вячеслав Людской @ 10.10.2009 18:00) *

Задание:
Написать программу, использующую при своей работе не меньше 3х переменных boolean.
То же самое для comp и char. То есть три разных программы. Натолкните хотя бы на мысль - не представляю, что это должны быть за программы - сами проги уже попытаюсь написать сам.



if Dojd=True then zontik:=true else plyag:=true;
{или}
if (dojd=false) and (sonce=true) then plyag:=true;
write('plyag = ',plyag);


идея понятна? smile.gif

З.Ы. можна развить идею, добавив - comp - температура, а char - дни недели например smile.gif
Получишь програму определяющую стоит тебе сидеть дома, или пойти на пляж, при заданых температуре, дне недели и состоянии погоды smile.gif

Сообщение отредактировано: RathaR -


--------------------
Считающий себя единственым здравомыслящим человеком сумасшедший? Если да, возможно я псих...
Пусть умолкнет всякий критик!
Я - системный аналитик!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Цитата
идея понятна?
Нет, не понятна... Зачем сравнивать сами по себе логические значения еще с чем-то?
Цитата
if (dojd=false) and (sonce=true) then plyag:=true;
должно звучать так:
if (not dojd) and sonce then plyag:=true; { скобки необязательны, но приветствуются }
или вообще:
plyag := (not dojd) and sonce;
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


А лучше

Beach := (not Rain) and Sun;



--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Знаток
****

Группа: Пользователи
Сообщений: 346
Пол: Мужской
Реальное имя: Иван

Репутация: -  7  +


Цитата(volvo @ 10.10.2009 19:26) *

Нет, не понятна... Зачем сравнивать сами по себе логические значения еще с чем-то?

Так то оно так, но зачем заставлять человека сразу розсматривать оператор not,если он еще даже булевый тип не разсмотрел толком и путать выражением
 and sonce
, если можна пояснить, и записать
 and (sonce=true)
...
Говорю по себе, ибо как только начинал програмировать я сам несразу понял что переменные булевого типа можно сравнивать именно так
 and sonce
, а не
 and (sonce=true)


Сообщение отредактировано: RathaR -


--------------------
Считающий себя единственым здравомыслящим человеком сумасшедший? Если да, возможно я псих...
Пусть умолкнет всякий критик!
Я - системный аналитик!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


var
i : array[0..2]of integer;
b : array[0..2]of boolean;
c : array[0..2]of comp;
d : array[0..2]of char;
begin
for i[0] := 0 to 2 do
b[i[0]] := i[0] = 1;
for i[1] := 0 to 2 do
c[i[1]] := i[1];
for i[2] := 0 to 2 do
d[i[2]] := char(byte('0') + i[2]));
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(RathaR @ 10.10.2009 21:15) *
я сам несразу понял что переменные булевого типа можно сравнивать именно так
 and sonce
, а не
 and (sonce=true)
Ну, и зачем вводить другого человека в ту же ошибку? Чем раньше он поймет, тем лучше. А надо бы (при условии хороших преподавателей или достаточной собственной сообразительности) просто сразу. Мне кажется, в любом учебнике при вводе boolean именно так и делается. Я неправ?


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


if (BoolVar1 = TRUE) and ((not BoolVar1) = FALSE) then
BoolVar2 := TRUE
else
BoolVar2 := FALSE;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Бывалый
***

Группа: Пользователи
Сообщений: 227
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  3  +


Мне лично более всего понравилась запись:
plyag := (not dojd) and sonce;
Имхо, кажется, наиболее логичной и понятной.

Я понял, что мне надо попробовать для начала написать прогу, определяющую надо ли идти на пляж в зависимости от dojd и sonce. Получилось что-то такое:
var
dojd,sonce,plyag:boolean;
begin
read(dojd);
read(sonce);
plyag := (not dojd) and sonce;
write('plyag = ',plyag);
end.
Появляется "ошибка:нельзя вводить данные этого типа". Где я неправ?

Цитата
З.Ы. можна развить идею, добавив - comp - температура, а char - дни недели например
Получишь програму определяющую стоит тебе сидеть дома, или пойти на пляж, при заданых температуре, дне недели и состоянии погоды
Как это сделать я незнаю (за 40 мин в неделю мы не много успеваем smile.gif ), напишите примерный алгоритм, пожалуйста.

Еще вопрос, что это за программа такая?
Цитата
var
i : array[0..2]of integer;
b : array[0..2]of boolean;
c : array[0..2]of comp;
d : array[0..2]of char;
begin
for i[0] := 0 to 2 do
b[i[0]] := i[0] = 1;
for i[1] := 0 to 2 do
c[i[1]] := i[1];
for i[2] := 0 to 2 do
d[i[2]] := char(byte('0') + i[2]));
end.

Поясните, пожалуйста, что она делает и как работает (прокомментируйте короче smile.gif )?


--------------------
Само знание есть сила
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Вячеслав Людской @ 11.10.2009 9:34) *
Еще вопрос, что это за программа такая?
Поясните, пожалуйста, что она делает и как работает (прокомментируйте короче smile.gif )?
Ничего она не делает. Она даже не скомпилируется..

2 andriano: нельзя ли поответственее? Зачем вводить начинающего в заблуждение? Это шутка такая была?..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Цитата(Вячеслав Людской @ 11.10.2009 9:34) *
Еще вопрос, что это за программа такая?
Поясните, пожалуйста, что она делает и как работает (прокомментируйте короче smile.gif )?
Программа ничего ПОЛЕЗНОГО не делает, а служит лишь для иллюстрации использования по 3 штуки переменных каждого из типов: integer, boolean, char и comp одновременно.
Все три переменные каждого типа объединены в массив.
Что же касается компилируемости, то мне кажется странной сама постановка такого вопроса: данная программа служит для иллюстрации, а не для того, чтобы быть откомпилированной. Она может быть написана, например, на псевдокоде, как и любая другая программа, написанная в иллюстративных целях. Никто ведь не требует компилируемости от псевдокода!
Если же всерьез рассматривать компилируемость, то следует сразу отметить, что любой вменяемый компилятор не оставит от этой программы в буквальном смысле ничего. Скорее всего, не выделит даже память под переменные.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(andriano @ 11.10.2009 11:06) *
Что же касается компилируемости, то мне кажется странной сама постановка такого вопроса: ...
А мне кажется странной постановка ответа. -1

И впредь попрошу обращать более пристальное внимание на замечания модераторов/администраторов.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Бывалый
***

Группа: Пользователи
Сообщений: 227
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  3  +


Так, все таки... Что с вот этим. Мне сдавать уже скоро, а дело не продвигается.

Цитата
Понял, что мне надо попробовать для начала написать прогу, определяющую надо ли идти на пляж в зависимости от dojd и sonce. Получилось что-то такое:

var
dojd,sonce,plyag:boolean;
begin
read(dojd);
read(sonce);
plyag := (not dojd) and sonce;
write('plyag = ',plyag);
end.
Появляется "ошибка:нельзя вводить данные этого типа". Где я неправ?


Цитата

З.Ы. можна развить идею, добавив - comp - температура, а char - дни недели например
Получишь програму определяющую стоит тебе сидеть дома, или пойти на пляж, при заданых температуре, дне недели и состоянии погоды
Как это сделать я незнаю (за 40 мин в неделю мы не много успеваем ), напишите примерный алгоритм, пожалуйста.



--------------------
Само знание есть сила
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Гость






Цитата
Так, все таки... Что с вот этим.
А что с этим? Правильно компилятор тебе говорит: не вводятся значения логического типа напрямую с клавиатуры. Вводи "окольными путями", например запрашивай "Y/N":
var
dojd,sonce,plyag:boolean;
ans: char;
begin
write('дождь?'); readln(ans); dojd := (ans = 'Y');
write('солнце?'); readln(ans); sonce := (ans = 'Y');

plyag := (not dojd) and sonce;
write('plyag = ',plyag); { А вот выводить - можно }
end.
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 0:36
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name