Informatika1-2010/Hazi4

A MathWikiből
(Változatok közti eltérés)
(hf4 kitűz)
 
(Informatika 1, 2010 ősz, 4. házi feladat: vonatút)
7. sor: 7. sor:
 
Két állomás közti menetrend egy listával van megadva, aminek minden eleme egy járatot ír le.  Egy járatot egy kételemű lista ír le, aminek az első eleme az indulási ideje, a második az érkezés ideje.  Az összes időpontot az adott napon éjféltől eltelt percek számával adjuk meg, tehát például a 420 szám jelenti a reggel 7 órát.   
 
Két állomás közti menetrend egy listával van megadva, aminek minden eleme egy járatot ír le.  Egy járatot egy kételemű lista ír le, aminek az első eleme az indulási ideje, a második az érkezés ideje.  Az összes időpontot az adott napon éjféltől eltelt percek számával adjuk meg, tehát például a 420 szám jelenti a reggel 7 órát.   
  
A menetrend csak egy adott napra vonatkozik, minden vonat ezen az egy napon indul, és még aznap meg is érkezik.  Minden időpont egész szám, tehát csak egész percekkel dolgozunk.  Feltesszük, hogy az átszállás nem telik időbe, vagyis ha az első vonat ugyanakkor ér B városba, mint amikor a második B-ből indul, akkor József még pont eléri.  Az lehetséges, hogy van olyan vonat, amely egy másiknál később indul, de korábban érkezik, így Józsefnek C-ben nem muszály az első olyan vonatra fölszállnia, amit elérne.  A vonatok mindig pontosan a menetrend szerint járnak.  Végül felteheti, hogy tényleg el lehet jutni C-be legkésőbb a megadott időre.
+
A menetrend csak egy adott napra vonatkozik, minden vonat ezen az egy napon indul, és még aznap meg is érkezik.  Minden időpont egész szám, tehát csak egész percekkel dolgozunk.  Feltesszük, hogy az átszállás nem telik időbe, vagyis ha az első vonat ugyanakkor ér B városba, mint amikor a második B-ből indul, akkor József még pont eléri.  Az lehetséges, hogy van olyan vonat, amely egy másiknál később indul, de korábban érkezik, így Józsefnek C-ben nem muszáj az első olyan vonatra fölszállnia, amit elérne.  A vonatok mindig pontosan a menetrend szerint járnak.  Végül felteheti, hogy tényleg el lehet jutni C-be legkésőbb a megadott időre.
  
 
Írjon egy Sage függvényt <code>atszall</code> néven, amelyet három argumentummal kell meghívni, mégpedig az első az A-ból B-be menő vonatok menetrendje, a második a B-ből C-be menő menetrend, a harmadik az az időpont, amikkora Józsefnek legkésőbb meg kell érkeznie C-be.  A függvény egyetlen számot adjon vissza: azt a legkésőbbi időpontot, amikor József elindulhat A-ból.   
 
Írjon egy Sage függvényt <code>atszall</code> néven, amelyet három argumentummal kell meghívni, mégpedig az első az A-ból B-be menő vonatok menetrendje, a második a B-ből C-be menő menetrend, a harmadik az az időpont, amikkora Józsefnek legkésőbb meg kell érkeznie C-be.  A függvény egyetlen számot adjon vissza: azt a legkésőbbi időpontot, amikor József elindulhat A-ból.   

A lap 2010. október 8., 13:26-kori változata

Informatika 1, 2010 ősz, 4. házi feladat: vonatút

Ez a házi feladat a 4. gyakorlathoz tartozik. Beadandó az 5. gyakorlatig, vagyis október 15., 19., 20-ig. A megoldást az info1hazi kukac gmail.com címre kell elküldeni, a tárgyban a tankörrel, a feladat sorszámával (HF4), és a matematikai intézeti szerveren használt felhasználói nevével.

József vonattal szeretne A közséből C városba utazni, ehhez át kell szállnia a közbeeső B városban. A feladat eldönteni, mikorra kell Józsefnek legkésőbb kiérnie az A városi vasútállomásra. Ehhez meg van adva, mikorra kell legkésőbb a C városba elérnie, valamint ismert a menetrend is.

Két állomás közti menetrend egy listával van megadva, aminek minden eleme egy járatot ír le. Egy járatot egy kételemű lista ír le, aminek az első eleme az indulási ideje, a második az érkezés ideje. Az összes időpontot az adott napon éjféltől eltelt percek számával adjuk meg, tehát például a 420 szám jelenti a reggel 7 órát.

A menetrend csak egy adott napra vonatkozik, minden vonat ezen az egy napon indul, és még aznap meg is érkezik. Minden időpont egész szám, tehát csak egész percekkel dolgozunk. Feltesszük, hogy az átszállás nem telik időbe, vagyis ha az első vonat ugyanakkor ér B városba, mint amikor a második B-ből indul, akkor József még pont eléri. Az lehetséges, hogy van olyan vonat, amely egy másiknál később indul, de korábban érkezik, így Józsefnek C-ben nem muszáj az első olyan vonatra fölszállnia, amit elérne. A vonatok mindig pontosan a menetrend szerint járnak. Végül felteheti, hogy tényleg el lehet jutni C-be legkésőbb a megadott időre.

Írjon egy Sage függvényt atszall néven, amelyet három argumentummal kell meghívni, mégpedig az első az A-ból B-be menő vonatok menetrendje, a második a B-ből C-be menő menetrend, a harmadik az az időpont, amikkora Józsefnek legkésőbb meg kell érkeznie C-be. A függvény egyetlen számot adjon vissza: azt a legkésőbbi időpontot, amikor József elindulhat A-ból.

Példa. Tegyük fel, hogy lefuttatjuk a következő kódot.

   menetrend1 = ((270, 294), (337, 357), (390, 414), (457, 477), (510, 534), (577, 597), (630, 654), (697, 717), (750, 774), (817, 837), (870, 894), (937, 957), (990, 1014), (1057, 1077), (1110, 1134), (1230, 1254), (1338, 1362))
   menetrend2 = ((319, 567), (366, 539), (540, 714), (545, 809), (780, 954), (785, 1055), (900, 1074), (905, 1169), (1025, 1280), (1140, 1324))
   atszall(menetrend1, menetrend2, 720)

A helyes kimenet ekkor 510. Valóban, József az 510 időpontban (8:30-kor) A-ban fölszáll a vonatra, ez a vonat B-be az 534 időpontban (8:54-kor) érkezik meg. Ezzel eléri az 540 időpontban (9:00-kor) induló vonatot, amely a 714 időpontban (11:54) érkezik meg, ez pedig nem későbbi a megadott 720 korlátnál (délnél).

Nem kötelező tanácsok. Először oldja meg a feladatot átszállás nélkül csak B és C között, majd ezt a megoldást használva egyszerűen megkaphatja az átszállásos esetet is. Az időpontokról nem kell fölhasználni, hogy az éjféltől eltelt perceket jelentik, egyszerűen csak számoknak lehet tekinteni őket.

Személyes eszközök