Решение на задача: "Учебна зала"
Условие на задачата: Учебна зала има правоъгълен размер 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)}")