Задание: Написать программу, использующую при своей работе не меньше 3х переменных boolean. То же самое для comp и char. То есть три разных программы. Натолкните хотя бы на мысль - не представляю, что это должны быть за программы - сами проги уже попытаюсь написать сам.
RathaR
10.10.2009 22:27
Цитата(Вячеслав Людской @ 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);
идея понятна?
З.Ы. можна развить идею, добавив - comp - температура, а char - дни недели например Получишь програму определяющую стоит тебе сидеть дома, или пойти на пляж, при заданых температуре, дне недели и состоянии погоды
volvo
10.10.2009 23:26
Цитата
идея понятна?
Нет, не понятна... Зачем сравнивать сами по себе логические значения еще с чем-то?
Цитата
if (dojd=false) and (sonce=true) then plyag:=true;
должно звучать так:
if (not dojd) and sonce then plyag:=true; { скобки необязательны, но приветствуются }
или вообще:
plyag := (not dojd) and sonce;
TarasBer
10.10.2009 23:39
А лучше
Beach := (not Rain) and Sun;
RathaR
11.10.2009 0:15
Цитата(volvo @ 10.10.2009 19:26)
Нет, не понятна... Зачем сравнивать сами по себе логические значения еще с чем-то?
Так то оно так, но зачем заставлять человека сразу розсматривать оператор not,если он еще даже булевый тип не разсмотрел толком и путать выражением
and sonce
, если можна пояснить, и записать
and (sonce=true)
... Говорю по себе, ибо как только начинал програмировать я сам несразу понял что переменные булевого типа можно сравнивать именно так
and sonce
, а не
and (sonce=true)
andriano
11.10.2009 1:36
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
11.10.2009 8:26
Цитата(RathaR @ 10.10.2009 21:15)
я сам несразу понял что переменные булевого типа можно сравнивать именно так
and sonce
, а не
and (sonce=true)
Ну, и зачем вводить другого человека в ту же ошибку? Чем раньше он поймет, тем лучше. А надо бы (при условии хороших преподавателей или достаточной собственной сообразительности) просто сразу. Мне кажется, в любом учебнике при вводе boolean именно так и делается. Я неправ?
andriano
11.10.2009 12:33
if (BoolVar1 = TRUE) and ((not BoolVar1) = FALSE) then BoolVar2 := TRUE else BoolVar2 := FALSE;
Вячеслав Л.
11.10.2009 12:34
Мне лично более всего понравилась запись:
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
11.10.2009 12:52
Цитата(Вячеслав Людской @ 11.10.2009 9:34)
Еще вопрос, что это за программа такая? Поясните, пожалуйста, что она делает и как работает (прокомментируйте короче )?
Ничего она не делает. Она даже не скомпилируется..
2 andriano: нельзя ли поответственее? Зачем вводить начинающего в заблуждение? Это шутка такая была?..
andriano
11.10.2009 14:06
Цитата(Вячеслав Людской @ 11.10.2009 9:34)
Еще вопрос, что это за программа такая? Поясните, пожалуйста, что она делает и как работает (прокомментируйте короче )?
Программа ничего ПОЛЕЗНОГО не делает, а служит лишь для иллюстрации использования по 3 штуки переменных каждого из типов: integer, boolean, char и comp одновременно. Все три переменные каждого типа объединены в массив. Что же касается компилируемости, то мне кажется странной сама постановка такого вопроса: данная программа служит для иллюстрации, а не для того, чтобы быть откомпилированной. Она может быть написана, например, на псевдокоде, как и любая другая программа, написанная в иллюстративных целях. Никто ведь не требует компилируемости от псевдокода! Если же всерьез рассматривать компилируемость, то следует сразу отметить, что любой вменяемый компилятор не оставит от этой программы в буквальном смысле ничего. Скорее всего, не выделит даже память под переменные.
Lapp
11.10.2009 14:15
Цитата(andriano @ 11.10.2009 11:06)
Что же касается компилируемости, то мне кажется странной сама постановка такого вопроса: ...
А мне кажется странной постановка ответа. -1
И впредь попрошу обращать более пристальное внимание на замечания модераторов/администраторов.
Вячеслав Л.
13.10.2009 19:34
Так, все таки... Что с вот этим. Мне сдавать уже скоро, а дело не продвигается.
Цитата
Понял, что мне надо попробовать для начала написать прогу, определяющую надо ли идти на пляж в зависимости от dojd и sonce. Получилось что-то такое:
var dojd,sonce,plyag:boolean; begin read(dojd); read(sonce); plyag := (not dojd) and sonce; write('plyag = ',plyag); end.
Появляется "ошибка:нельзя вводить данные этого типа". Где я неправ?
Цитата
З.Ы. можна развить идею, добавив - comp - температура, а char - дни недели например Получишь програму определяющую стоит тебе сидеть дома, или пойти на пляж, при заданых температуре, дне недели и состоянии погоды
Как это сделать я незнаю (за 40 мин в неделю мы не много успеваем ), напишите примерный алгоритм, пожалуйста.
volvo
13.10.2009 22:54
Цитата
Так, все таки... Что с вот этим.
А что с этим? Правильно компилятор тебе говорит: не вводятся значения логического типа напрямую с клавиатуры. Вводи "окольными путями", например запрашивай "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.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.