python-dirbtuves / it-brandos-egzaminai

Informacinių technologijų brandos egzaminų, programavimo praktinių užduočių sprendimai
GNU Affero General Public License v3.0
13 stars 13 forks source link

Siūlau apsiriboti mokyklinio kurso programų elementais sprendimuose #2

Open dz0 opened 9 years ago

dz0 commented 9 years ago

Šis projektas praverstų demonstruojant Python informatikos mokytojų bendruomenei. Bet, kad būtų lengviau suprasti, siūlau nenaudoti keistesnių Python savybių (generatorių ar pan..).. Na nebent lengvai suprantamas, kaip a, b = b, a.

Kaip tik esu padaręs orientacinę Paskalio, mokyklinės C++, Python palyginimo lentelę -- gal praverstų :) https://drive.google.com/open?id=1MvrsRaYLX-230yb7WoF_E-Wwj5kKcHLLWjhkTsyyob8&authuser=0

sirex commented 9 years ago

Gal galėtum nurodyti konkrečią vietą? Būtų lengviau aptarti.

Tuo tarpu, štai du pavyzdžiai iš kurių pirmasis naudoja generatorius, antrasis nenaudoja generatorių:


def sąrašas():
    for i in range(3):
        yield i

a, b, c = sąrašas()

def sąrašas():
    rezultatas = []
    for i in range(3):
        rezultatas.append(i)
    return rezultatas

a, b, c = sąrašas()

Pirmasis variantas man atrodo labiau skaitomas ir švaresnis. Generatoriai Python kalboje yra vienas iš tų dalykų, kurie daro Python tokia gera kalba.

dz0 commented 9 years ago

yield pastebėjau , bei "next()" nebuvau anksčiau susidūręs.. keistai pasirodė: return list(map(int, next(lines).split()))

Mokymo programa yra gal 15m senumo, tai mokyloj akcentas - struktūrinis programavimas, masyvų tvarkymo algoritmai.
nors su C++ leidžia naudot STL'o "sort(..)", bet dažniausiai ciklus suka "rankiniu" būdu...

siūlyčiau bent kol kas to prisilaikyti :) ir list comprehension kol kas gal reiktų vengti, nes kodo struktūra neįprastai atrodo (apsukta)... ir be "map" (funkcinis programavimas) gal kol kas (arba komentare paminėt, ką jis padaro)..

dz0 commented 9 years ago

4tad gal C++ sprendimų parinkčiau (kaip tik 12tokai sprendžia) -- kur juos geriausia dėti?

sirex commented 9 years ago

4tad gal C++ sprendimų parinkčiau (kaip tik 12tokai sprendžia) -- kur juos geriausia dėti?

Ar tie sprendimai bus būtent egzaminų užduočių sprendimai? Gal kur nors, kas nors yra paskelbęs C++ arba Pascal pavyzdžius egzaminų užduočių? Šioje repozitorijoje siūlau koncentruotis tik į egzaminų užduočių sprendimus išspręstus naudojant Python. Kitomis programavimo kalbomis atliktus sprendimus galim laikyti kur nors kitur ir juos naudoti kaip pavyzdį, tobulinant Python sprendimus.

Dėl tavo minėtų pastabų, bandysiu patobulinti kurį nors vieną sprendimą, atsisakant generatorių, sąrašo užklausų ir funkcinio programavimo elementų.

sirex commented 9 years ago

@dz0 iškėliau atskirus klausimus į atskiras užduotis. Dėl failų skaitymo, žiūrėk #3 .

dz0 commented 9 years ago

galima daryti po 2 sprendimo versijas: tradicinę (be Py patogumų) ir modernią, pvz: u1.oldschool.py u1.modern.py

sirex commented 9 years ago

@dz0 pritariu, aš taip pat esu galvojęs, kad būtų visai gerai pateikti kelis sprendimo variantus.