Автор | Помогите. Информатика |
пусть в доме k этажей и m квартир на этаже. Дано R номер квартиры. Определите на каком она этаже и в каком подьезде. Екран, должен иметь вид:
Введіте исходные данные:
Количество этажей в доме –> 4
Количество квартир на этаже–> 4
Номер квартиры –> 17
Квартира 17 в 2 подъезде на 1 этаже
Нужно решит с помощью mod и div. Я так понимаю, подьезд надо найти сначала, а потом уже этаж.
Вообщем, помогите;) |
там одну матрицу и тупо строку и столбец... |
P/S/ изходные k,m,r вводятся в самом начале - так что нужно создать общую формулу. |
А номер квартиры которую нужно найти? |
тоже самое проходить стали, этож через массив вроде... |
для MaXiMmm:
изходные k,m,r вводятся в самом начале - Readln(k,m,R); |
для Skorpis:
Да я так, хотел решить подручными средствами ) |
для MaXiMmm:
5 10
4 9
3 8
2 7
1 6
ты указываешь подъезд т.е. столбец и этаж т.е. строку. |
Тут даже матрицу не надо.
с помощью mod и div - вот с помощью этих операторов целочисленного деления.
Сначало делишь искомую квартиру на число квартир в подъезде - находишь подъезд. А потом аналогично находишь этаж |
для Йопсель:
нет. Допустим что нам данно - 5 этажей, по 3 квартиры на каждом, найти квартиру 1- (1 div 15)+1 ,НО если квартира 15- (15 div 15)+1 =2? что не соответсвует действительности. так и для последей квартиры в каждом этаже.. |
тут ваще нужен оператор if . |
var k,m,r,a,b,c: integer;
Begin
readln(k, m, r);
a:=k*m;
b:=(r div a)+1; //подъезд
r:=r mod a;
c:=(r div m)+1; //этаж
End.
Вродь так =) |
для REWesker:
я сначала тоже так)но - Допустим что нам данно - 5 этажей, по 3 квартиры на каждом, найти квартиру 1- (1 div 15)+1 ,НО если квартира 15- (15 div 15)+1 =2? что не соответсвует действительности.
9
тут ваще нужен оператор if . - правильно;) только вот, я не знаю куда его всунуть;( |
что не соответсвует действительности. так и для последей квартиры в каждом этаже..
ах да..
тогда так:
var k,m,r,a,b,c: integer;
Begin
readln(k, m, r);
a:=k*m;
If r div a=0 then b:=r div a else b:=(r div a)+1;
If r mod a=0 then r:=a else r:=r mod a;
If r div m=0 then c:=r div m else c:=(r div m)+1;
End. |
тьфу, ночь, мозги совсем не варят, да и паскаля под рукой нет =) в общем, 14ый пост неверный =) |
для REWesker:
огромное спасибо..Только, не мог бы ты написать где этаж и квартира?;) |
для REWesker:
эм..пишет - успешно выполнен)только вот проверить нет возможности - я запутался в коде и не могу разобраться где что;) |
If r mod a=0 then b:=r div a else b:=(r div a)+1; /подъезд
If r mod a=0 then r:=a else r:=r mod a;
If r mod m=0 then c:=r div m else c:=(r div m)+1; /этаж
Во, это кажется правдоподобнее =) проверь сам =) |
УРЯЯ!! Спасибо большущее;) Можете прилепить скрепку для потомков) |
тема закрыта by Skorpis (2010-10-05 21:10:01) |
---|