![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Вячеслав Л. |
![]()
Сообщение
#1
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 227 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
Задание:
Написать программу, использующую при своей работе не меньше 3х переменных boolean. То же самое для comp и char. То есть три разных программы. Натолкните хотя бы на мысль - не представляю, что это должны быть за программы - сами проги уже попытаюсь написать сам. -------------------- Само знание есть сила
|
RathaR |
![]()
Сообщение
#2
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 346 Пол: Мужской Реальное имя: Иван Репутация: ![]() ![]() ![]() |
Задание: Написать программу, использующую при своей работе не меньше 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);
идея понятна? ![]() З.Ы. можна развить идею, добавив - comp - температура, а char - дни недели например ![]() Получишь програму определяющую стоит тебе сидеть дома, или пойти на пляж, при заданых температуре, дне недели и состоянии погоды ![]() Сообщение отредактировано: RathaR - 10.10.2009 18:32 -------------------- Считающий себя единственым здравомыслящим человеком сумасшедший? Если да, возможно я псих...
Пусть умолкнет всякий критик! Я - системный аналитик! |
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
Цитата идея понятна? Нет, не понятна... Зачем сравнивать сами по себе логические значения еще с чем-то?Цитата if (dojd=false) and (sonce=true) then plyag:=true;
if (not dojd) and sonce then plyag:=true; { скобки необязательны, но приветствуются }
или вообще:plyag := (not dojd) and sonce;
|
TarasBer |
![]()
Сообщение
#4
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
А лучше
Beach := (not Rain) and Sun;
-------------------- |
RathaR |
![]()
Сообщение
#5
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 346 Пол: Мужской Реальное имя: Иван Репутация: ![]() ![]() ![]() |
Нет, не понятна... Зачем сравнивать сами по себе логические значения еще с чем-то? Так то оно так, но зачем заставлять человека сразу розсматривать оператор not,если он еще даже булевый тип не разсмотрел толком и путать выражением and sonce
, если можна пояснить, и записать
and (sonce=true)
...Говорю по себе, ибо как только начинал програмировать я сам несразу понял что переменные булевого типа можно сравнивать именно так and sonce
, а не
and (sonce=true)
Сообщение отредактировано: RathaR - 10.10.2009 20:17 -------------------- Считающий себя единственым здравомыслящим человеком сумасшедший? Если да, возможно я псих...
Пусть умолкнет всякий критик! Я - системный аналитик! |
andriano |
![]()
Сообщение
#6
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: ![]() ![]() ![]() |
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.
|
Lapp |
![]()
Сообщение
#7
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
я сам несразу понял что переменные булевого типа можно сравнивать именно так
Ну, и зачем вводить другого человека в ту же ошибку? Чем раньше он поймет, тем лучше. А надо бы (при условии хороших преподавателей или достаточной собственной сообразительности) просто сразу. Мне кажется, в любом учебнике при вводе boolean именно так и делается. Я неправ? and sonce
, а не
and (sonce=true)
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
andriano |
![]()
Сообщение
#8
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: ![]() ![]() ![]() |
if (BoolVar1 = TRUE) and ((not BoolVar1) = FALSE) then
BoolVar2 := TRUE
else
BoolVar2 := FALSE;
|
Вячеслав Л. |
![]()
Сообщение
#9
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 227 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
Мне лично более всего понравилась запись:
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 мин в неделю мы не много успеваем Получишь програму определяющую стоит тебе сидеть дома, или пойти на пляж, при заданых температуре, дне недели и состоянии погоды ![]() Еще вопрос, что это за программа такая? Цитата 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.
![]() -------------------- Само знание есть сила
|
Lapp |
![]()
Сообщение
#10
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Еще вопрос, что это за программа такая? Ничего она не делает. Она даже не скомпилируется..Поясните, пожалуйста, что она делает и как работает (прокомментируйте короче ![]() 2 andriano: нельзя ли поответственее? Зачем вводить начинающего в заблуждение? Это шутка такая была?.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
andriano |
![]()
Сообщение
#11
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: ![]() ![]() ![]() |
Еще вопрос, что это за программа такая? Программа ничего ПОЛЕЗНОГО не делает, а служит лишь для иллюстрации использования по 3 штуки переменных каждого из типов: integer, boolean, char и comp одновременно.Поясните, пожалуйста, что она делает и как работает (прокомментируйте короче ![]() Все три переменные каждого типа объединены в массив. Что же касается компилируемости, то мне кажется странной сама постановка такого вопроса: данная программа служит для иллюстрации, а не для того, чтобы быть откомпилированной. Она может быть написана, например, на псевдокоде, как и любая другая программа, написанная в иллюстративных целях. Никто ведь не требует компилируемости от псевдокода! Если же всерьез рассматривать компилируемость, то следует сразу отметить, что любой вменяемый компилятор не оставит от этой программы в буквальном смысле ничего. Скорее всего, не выделит даже память под переменные. |
Lapp |
![]()
Сообщение
#12
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Что же касается компилируемости, то мне кажется странной сама постановка такого вопроса: ... А мне кажется странной постановка ответа. -1И впредь попрошу обращать более пристальное внимание на замечания модераторов/администраторов. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Вячеслав Л. |
![]()
Сообщение
#13
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 227 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
Так, все таки... Что с вот этим. Мне сдавать уже скоро, а дело не продвигается.
Цитата Понял, что мне надо попробовать для начала написать прогу, определяющую надо ли идти на пляж в зависимости от dojd и sonce. Получилось что-то такое: var
dojd,sonce,plyag:boolean;
begin
read(dojd);
read(sonce);
plyag := (not dojd) and sonce;
write('plyag = ',plyag);
end.
Появляется "ошибка:нельзя вводить данные этого типа". Где я неправ?Цитата З.Ы. можна развить идею, добавив - comp - температура, а char - дни недели например Получишь програму определяющую стоит тебе сидеть дома, или пойти на пляж, при заданых температуре, дне недели и состоянии погоды -------------------- Само знание есть сила
|
volvo |
![]()
Сообщение
#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.
|
![]() ![]() |
![]() |
Текстовая версия | 26.07.2025 12:18 |