Бағдарламалау үйірмесі мектеп турнирі үшін бағдарлама әзірлеп жатыр. Қатысушылардың нәтижелері results.txt мәтіндік файлында сақталады, әр қатысушыға бір жол, пішімі «Тегі;сынып;ұпай», мысалы «Ахметов;9;72». Жол «;» таңбасы бойынша бөліктерге бөлінеді. len функциясы жолдағы барлық таңбалардың, соның ішінде «;» таңбасының да санын қайтарады. Файлда алты жазба бар: «Ахметов;9;72», «Беков;10;85», «Ким;9;85», «Сулейменова;11;64», «Дюсенов;10;90», «Омарова;9;58». Қатысушыларды ретке келтіру үшін ұпайлары бойынша кему ретімен көпіршікті сұрыптау қолданылады: өту тізімнің басынан соңына дейін бір рет орындалады, көрші элементтер кезекпен салыстырылады және солдағысы оңдағысынан кіші болса, олардың орындары ауыстырылады. Нәтиженің бақылау санын табу үшін sum_digits(n) рекурсивті функциясы қолданылады: егер n < 10 болса, нәтиже n-ге тең; әйтпесе нәтиже (n mod 10) + sum_digits(n div 10), мұндағы mod — бөлгендегі қалдық, ал div — бөлгендегі бүтін бөлік. Файлды әртүрлі режимде ашуға болады: «r» — тек оқу, «w» — жазу, бұл кезде файлдың бұрынғы мазмұны өшіріледі, «a» — файлдың соңына жазу. Турнирден кейін қатысушылар A пунктінен E пунктіне барады. A, B, C, D, E пункттері екі жақты жолдармен жалғасқан: A–B 4 км, A–C 2 км, B–C 1 км, B–D 5 км, C–D 8 км, D–E 3 км. Бағдарлама бұл жол желісін граф ретінде сақтайды: пункттер — төбелер, жолдар — ұзындығы бар қабырғалар.
«Ким;9;85» жолы үшін len(«Ким;9;85») мәні неге тең, егер жолдың барлық таңбалары, соның ішінде «;» да есептелсе?
Жауап пен талдауды көрсетуЖауап пен талдауды жасыру
Дұрыс жауап
- B8 таңба
Талдау
«Ким;9;85» жолында тегінің үш әрпі, «9» цифры, «85» екі цифры және «;» екі таңбасы бар. Барлығы 3 + 1 + 2 + 2 = 8 таңба. «6 таңба» «;» таңбаларын санамағанда шығады, ал «3 таңба» — тек тегінің ұзындығы.