![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
В небоскребе N этажей и всего один подъезд; на каждом этаже по 3 квартиры; лифт может останавливаться только на нечетных этажах. Человек садится в лифт и набирает номер нужной ему квартиры М. На какой этаж должен доставить лифт пассажира?
|
|
#2
|
||||
|
||||
накалякал что то:Код:
var
nujnaya_kvartira:integer;
etajey_v_dome:integer;
nujnuy_etaj:integer;
begin
etajey_v_dome:=23;
nujnaya_kvartira:=14;
nujnuy_etaj:=nujnaya_kvartira div 3;
if nujnuy_etaj mod 2<>0 then
ShowMessage('Нужно выйти на '+inttostr(nujnuy_etaj)+' этаже')
else
ShowMessage('Нужно выйти на '+inttostr(nujnuy_etaj-1)+' этаже');
end; |
|
#3
|
||||
|
||||
|
Цитата:
|
|
#4
|
||||
|
||||
|
так в условии задачи... лифт на четных не останавливается?
![]() если нужна пятая квартира как говорится дуй пешком)Последний раз редактировалось eXplorer, 19.03.2011 в 16:24. |
|
#5
|
||||
|
||||
|
а если 6-я)))))))))))
|
|
#6
|
||||
|
||||
|
дак а разница какая 6-ая или 5-ая (этаж то один... и топать что с третего что с первого одинаково)
![]() да и в условии задачи об этом не было сказано ![]() и теоритически мне кажется проще и быстрее пешком подняться на второй этаж, чем доехать на лифте до третьего и спуститься на второй ![]() Последний раз редактировалось eXplorer, 19.03.2011 в 16:36. |
|
#7
|
||||
|
||||
|
.................................
5 div 3 =1 6 div 3 =2 то есть квартиры находятся на одном этаже, но если ты все таки поедешь на 5 то тебе программка скажет, молодой человек выйди на 1-ом этаже. )))) |
|
#8
|
||||
|
||||
|
Цитата:
у меня (смотри внимательнее) стоит условие что если при челочисленном делении (div) в ответе получается четное число ты я вычитаю 1)))... тоесть если ты нажмешь на 6 тоже лифт тебе скажет выйти на первом если уж не нравиться то что при нажатии на квартиру второго этажа выводится сообщение что нужно выйти на первом тогда можно сделать ещё одно условие... что если получается в результате "1" выводить сообщение что "нужно пройтись пешком" ... зачем в этом случае на третий этаж ехать непойму? ![]() |
|
#9
|
||||
|
||||
|
Мля, у меня щас рак мозга будет)) после синьки голова не варит вообще
НО... допустим ты живешь в 14 кв. а я в 15-ой. лифт в этом случае будет останавливаться на 3 и на 5 соответственно. То есть тебе не повезло с номером квартиры, хотя живем на одном и том же этаже) |
|
#10
|
||||
|
||||
я лох... одна всё таки ошибка есть (((((((((((((((((( извеняюсь...вот рабочий код: Код:
var
nujnaya_kvartira:integer;
etajey_v_dome:integer;
nujnuy_etaj:real;
begin
etajey_v_dome:=23;
nujnaya_kvartira:=7;
nujnuy_etaj:=nujnaya_kvartira/3;
if frac(nujnuy_etaj)<>0 then
nujnuy_etaj:=nujnuy_etaj+1;
if trunc(nujnuy_etaj) mod 2<>0 then
ShowMessage('Нужно выйти на '+inttostr(trunc(nujnuy_etaj))+' этаже')
else
ShowMessage('Нужно выйти на '+inttostr(trunc(nujnuy_etaj))+' этаже');
end; |
|
#11
|
||||
|
||||
|
Цитата:
вот теперь правильно всё ![]() |
|
#12
|
||||
|
||||
|
перемудрил с кодом))
я бы просто это nujnuy_etaj:=nujnaya_kvartira div 3; заменил на nujnuy_etaj:=round(nujnaya_kvartira / 3) что собственно я самом начале и говорил.... |
|
#13
|
||||
|
||||
|
мляяяяяя.... короче у меня бошка не варит, простите, всё что я давал неправильно... в последнем вообще бред
![]() |
|
#14
|
||||
|
||||
|
Прошу не бить
бошка просто сегодня не о том наверно думает:код отладил всё исправил... незнаю... обошелся без Raund'a теперь то уж точно работает проверил через цикл от 1 до последнего этажа:Код:
var
nujnaya_kvartira:integer;
etajey_v_dome:integer;
nujnuy_etaj:integer;
begin
etajey_v_dome:=23;
nujnaya_kvartira:=6;
nujnuy_etaj:=nujnaya_kvartira div 3;
if nujnaya_kvartira mod 3<>0 then
nujnuy_etaj:=nujnuy_etaj+1;
if nujnuy_etaj mod 2=0 then
ShowMessage('Нужно выйти на '+inttostr((nujnuy_etaj)-1)+' этаже')
else
ShowMessage('Нужно выйти на '+inttostr(nujnuy_etaj)+' этаже');
end; |
|
#15
|
|||
|
|||
|
Код:
var e,m:integer;
begin
writeln('vvedite kvartiry');
readln(m);
e:=m div 3;
if (m mod 3)<>0 then e:=e+1;
if ((e mod 2)=0) then begin e:=e+1;
writeln(e); end
else writeln(e);
readln;
end.м - номер квартиры получается если квартира на четном этаже, например 8, тогда лифт подвезет тебя на 9 этаж)) короче поднимет выше, чтобы потом спуститься)) Последний раз редактировалось Row, 20.03.2011 в 21:11. |