Loading...
Stanislava_Vasileva avatar Stanislava_Vasileva 0 Точки

Решение на задача: "Учебна зала"

Условие на задачата: Учебна зала има правоъгълен размер l на w метра, без колони във вътрешността си. Залата е разделена на две части – лява и дясна, с коридор - приблизително по средата. В лявата и в дясната част има редици с бюра. В задната част на залата има голяма входна врата. В предната част на залата има катедра с подиум за преподавателя. Едно работно място заема 70 на 120 cm (маса с размер 70 на 40 cm + място за стол и преминаване с размер 70 на 80 cm). Коридорът е широк поне 100 cm. Изчислено е, че заради входната врата (която е с отвор 160 cm) се губи точно 1 работно място, а заради катедрата (която е с размер 160 на 120 cm) се губят точно 2 работни места. Напишете програма, която въвежда размери на учебната зала и изчислява броя работни места в нея при описаното разположение (вж. фигурата).

 

Здравейте,

Има ли алтернативен начин за решаване на задачата, освен показания начин с редовете и бюрата? Мисля, че логиката на предложеното от мен по-долу решение е вярна, но резултатът е (138) с 9 работни места повече от решението (129). Разбирам, че тънкит момент е в определянето на типа данни като цели числа ( integer)  и целочислено деление, но къде точно бъркам? 

 

l_m = float(input("Enter the length of the room in meters: "))
w_m = float(input("Enter the width of the room in meters: "))

w_cm = w_m * 100
l_cm = l_m * 100
print(f"Conversion of the width of the room in centimeters, 'w_cm': {w_cm} cm")
print(f"Conversion of the length of the room in centimeters, l_cm: {l_cm} cm")

area_room_cm = (l_cm * w_cm)

print(f"The area of the room is: {int(area_room_cm)} cm")
desk_cm = 70 * 40
print(f"desk_cm = {desk_cm}")

place_cm = 70 * 80
print(f"place_cm = {place_cm}")

work_place_cm = desk_cm + place_cm
print (f"work_place_cm = {work_place_cm}")

effective_area_room = area_room_cm - (100*1500) - 3*(work_place_cm)
print (f"effective area of the room_cm = {int(effective_area_room)}")
number_workplaces = effective_area_room // work_place_cm
print (f"number of workplaces = {int(number_workplaces)}")

 

Тагове:
0
Python 14/12/2020 22:42:52
MartinBG avatar MartinBG 4803 Точки
Best Answer

Този ред изглежда съмнителен (какво точно представлява числото 1500?):

effective_area_room = area_room_cm - (100*1500) - 3*(work_place_cm)

 

1
Stanislava_Vasileva avatar Stanislava_Vasileva 0 Точки

(100*1500) :  Това е изчислената площ на коридора в сm (или : 1 m * 1.5m), която също не се включва в полезната площ т.е. там няма работи места. 

 

0
15/12/2020 09:41:56
MartinBG avatar MartinBG 4803 Точки

@Stanislava_Vasileva

В такъв случай, трябва да умножите 1000 по дължината на стаята в cm а не по 100 (което е 1м):

effective_area_room = area_room_cm - l_cm * 1000 - 3*(work_place_cm)
0
15/12/2020 21:45:18
boykostoyanoff avatar boykostoyanoff 15 Точки

Тънкият момент е че не ни интересува площ нито на залата нито на пътеката

Интересува ни само колко места стават по дължина (в цяло число закръглено към по малкото)

и колко места стават в ширина(в цяло число закръглено към по малкото), като точно тук преди да пресмяташ трябва да извадиш 1м от ширината на залата заради пътеката.

след което умножаваш двете стойности и вадиш 3 те места който се губят

в един ред решението

1,2 е дължината на едно място

0,7 е ширината му

а вадим едно от ширината заради пътеката

seats = (length // 1.2) * ((width - 1) // 0.7) - 3

 

1
Dimitar93 avatar Dimitar93 0 Точки
length = float(input())
width = float(input())
coloumns = (width * 100 - 100) // 70
rows = length * 100 // 120
result = coloumns * rows - 3
print(result)
0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.