» »

Kako bi naredil program

Kako bi naredil program

upoi6767 ::

Zdravo,
jaz pa imam eno vprašanje in sicer kako bi naredil program za katerega uporaba je malo smešna.
Rad bi napisal program pri katerem bom lahko izbral eno sodo število naprimer 8 in program bi mi naključno izbral številke za skupaj (npr. 2in6, 5in1 3in7).
Najprej bi napisal nekaj ekip (ni določeno število), program bi si jih zapomnil (jih shranil na disk, da jih nebi rabil za vsak zagon programa na novo zapisovati) in jaz bi si izbral neko sodo število in program bi mi naključno dal po dve in dve števili skupaj tako, da bi lahko imel narejene ekipe za tekme.
Program bi imel za Fifo saj jo igram z prijateljem in vedno ista težava pri delanju ekip.

Kako bi napisal program ne vem saj še nisem vešč v programiranju če bi mi lahko kdo kako pomagal in mi malo razložil zakaj kakšna koda.
Niti tega ne vem s katerim jezikom bi ta program napisal koliko sem že bral na različnih forumih je C++ najboljši za začetek ampak ne vem, če bi lahko napisal tako kodo.

Na koncu bi pa zgledalo nekako tako kot je prikazana slika pred to sliko bi pa moral kot sem že napisal vstaviti neko število in ko bi prvič uporabil program, da bi moral vpisati neomejeno število ekip oz. koliko želim in da bi to lahko spreminjal vendar ne za vsak zagon programa (da bi se ekipe shranile v program na disk in ne v ram).



Lep pozdrav

zzbil ::

Če si začetnik boš najlažje z Python-om.

Zgodovina sprememb…

  • spremenilo: zzbil ()

upoi6767 ::

Ok hvala, ampak me zanima kako bi se naučil, ker sem res brez vsakega znanja glede programiranja.

Kje bi se lahko to naučil (je mogoče kakšna spletna stran, kaj podobnega)

zzbil ::

https://www.codecademy.com/learn/python
https://learnpythonthehardway.org
Tole oboje je kar uredu, če se želiš naučit programirat. Če pa želiš samo ta program in je toto, je pa brezveze da se matraš sam, je bolje da ti kdo drug spiše.

upoi6767 ::

Ja to je tudi res, če bi mi kdo bil pripravljen pomagat in naredit program glede za naprej si bom pa pogledal te dve strani, ker hodim v računalniško šolo vendar še nismo tako daleč (sem 1. letnik) in me to res zanima.

specing ::

knjižnica->knjiga

Za C++ je za začetnike zelo dobra C++ Primer (C++ Primer plus je druga knjiga in je zanič).

Zgodovina sprememb…

  • spremenilo: specing ()

smacker ::

Mi smo si turnire vedno razdelili tako: vsak igralec dobi številko od 1 do N, potem smo pa s tem zgenerirali naključno zaporedje števil: https://www.random.org/sequences/
Številke po vrstnem redu samo vpišeš v turnirsko shemo - prvi igra z drugim, tretji s četrtim,... Če hočeš vadit programiranje, lahko enak postopek sprogramiraš. Rabiš array z igralci (lahko so imena ali številke), ki ga naključno premešaš (ponavadi že maš kako funkcijo za to v programskem jeziku). Na koncu samo še izpišeš naključen vrstni red.

BivšiUser2 ::

Knjiga mu ne bi dosti kaj pomagala. Dobro je, če si program razbiješ na podprobleme in napišeš kako bi reši problem korak za korakom, pri tem je jezik nepomeben. Priporočam pa: https://slo-tech.com/forum/t239526/zace...
SloTech - če nisi z nami, si persona non grata.

Zgodovina sprememb…

HotBurek ::

Python3.4

Skripto se požene z ukazom (če je vse na svojem mestu:)):
/usr/bin/python3.4 /home/root/football.py

Kater OS imaš na računalniku?

#!/usr/bin/python3.4
import random;

# team list
teams = [];
teams.extend(["Ajax"]);
teams.extend(["Alashkert"]);
teams.extend(["Anderlecht"]);
teams.extend(["APOEL"]);
teams.extend(["Arsenal"]);
teams.extend(["Astana"]);
teams.extend(["Astra"]);
teams.extend(["Atletico"]);
teams.extend(["B36"]);
teams.extend(["Barcelona"]);
teams.extend(["Basel"]);
teams.extend(["BATE"]);
teams.extend(["Bayer"]);
teams.extend(["Benfica"]);
teams.extend(["Besiktas"]);
teams.extend(["Celtic"]);
teams.extend(["Club Burgge"]);
teams.extend(["Crusaders"]);
teams.extend(["Crvena zvezda"]);
teams.extend(["CSKA Moskva"]);
teams.extend(["Dinamo Tibilisi"]);
teams.extend(["Dinamo Zagreb"]);
teams.extend(["Dortmund"]);
teams.extend(["Dudelange"]);

games = [];

if len(teams) > 1:
    while True:
        rand = random.randrange(1, len(teams));
        games.extend([teams[rand]]);
        teams.remove(teams[rand]);
        if len(teams) < 2:
            games.extend([teams[0]]);
            break;

gamesnum = 8;   # 4*2
gc = 1;
nl = False;
for game in games:
    if nl:
        print(game);
        nl = False;
        gc = int(gc) + 1;
    else:
        print("Game #" + str(gc) + ": " + game + " -vs- ", end="");
        nl = True;
    if int(gamesnum) > 1:
        gamesnum = int(gamesnum) - 1;
    else:
        break;
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window

upoi6767 ::

Windows, bom probal kodo ko se mi bo naložil python (gre počasi počasna povezava)

HotBurek ::

Razvojno okolje (IDE) PyCharm (v tem jaz programiram, verzija "Community"):

https://www.jetbrains.com/pycharm/downl...
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window

Zgodovina sprememb…

  • spremenilo: HotBurek ()

zzbil ::

Zame kot IDE Sublime text zmaga, pa še manj zahteven (po specifikacijah PC-ja) je. PyCharm kar zmatra starejše računalnike, vsaj mojega prešnjega laptopa.

Zgodovina sprememb…

  • spremenilo: zzbil ()

golf3 ::

Offtopic: A je Sublime sploh IDE? A ni samo text editor medtem ko PyCharm je IDE?
Drugače pa tudi jaz predlagam python, saj lahko v njem narediš praktično vse.

zzbil ::

Moja napaka: Sublime text je res samo text editor. Včasih sem uporabljal PyCharm pa sem kar prešaltal na Sublime, ker je bolj lightweight in ne rabim raznih bombončkov, se pa da Sublime zelo kustomizirat, da imaš skoraj IDE.

Zgodovina sprememb…

  • spremenilo: zzbil ()

upoi6767 ::

Hvala za trud, sem probal in dela.

Edino, kar je če bi šlo, da bi program imel končnico .exe da bi bil samostojen program, da ne bi potreboval nobenega naloženega programa kot je Python in tako bi lahko brez problema uporabljal tudi na drugih računalnikih.

Drugače je pa ta koda ravno tisto kar sem potreboval.

HotBurek ::

Je haklc, ker nimam okolja za testirat.

https://stackoverflow.com/a/14165470

Bo pa problem, ker bo program (exe fajl) imel "zapečena" imena klubov. ... Bom dodal, da bere iz fajla.
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window

upoi6767 ::

Ok vem, da je to potem pravi program samo vprašam, če bi bilo možno. Klube bi pa lahko prebral program potem iz kakšne mape kot je .txt ali kaj podobnega, da bi lahko spreminjal.

jype ::

Če takole spremeniš, bo program prebral txt datoteko teams.txt in iz nje prebral imena klubov.

#!/usr/bin/python3.4
import random;
 
# team list
teams = [x.strip() for x in open('teams.txt') if x.strip()]
 
games = [];
 
if len(teams) > 1:
    while True:
        rand = random.randrange(1, len(teams));
        games.extend([teams[rand]]);
        teams.remove(teams[rand]);
        if len(teams) < 2:
            games.extend([teams[0]]);
            break;
 
gamesnum = 8;   # 4*2
gc = 1;
nl = False;
for game in games:
    if nl:
        print(game);
        nl = False;
        gc = int(gc) + 1;
    else:
        print("Game #" + str(gc) + ": " + game + " -vs- ", end="");
        nl = True;
    if int(gamesnum) > 1:
        gamesnum = int(gamesnum) - 1;
    else:
        break;

technolog ::

zakaj podpičja in vsi ti nepotrebni casti na int?

zzbil ::

jype, primarno programiras v JavaScriptu?

upoi6767 ::

Glede tega programa sem mislil če bi naredil končnico .exe kot program za katerega ne bi potreboval nameščenega programa in bi program iz te datoteke (teams.txt) spreminjal ekipe oz. moštva. Drugače pa hvala.

HotBurek ::

Podpičja so zgolj navada iz ostalih programskih jezikov. Osebno raje vidim podpičje za znak konca ukaza, kot new line znak, ki se ga ne vidi. Kot da nekaj manjka na koncu ;)

Cast pa, da ne pride do (lastnih) napak pri seštevanju in podobno.

inta = 1;
intb = "2";
print(inta + intb);
TypeError: unsupported operand type(s) for +: 'int' and 'str'

Kako spremenjlivko definirati kot "int only", pa razen preko funkcije (interface) verjetno ne gre?
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window

Spura ::

Zgleda so zgodbe o tem kako je python high level pretirane.

(defn teams []
  (with-open [rdr (clojure.java.io/reader "teams.txt")]
    (for [[game-no [team1 team2]] (map-indexed vector (partition 2 (shuffle (line-seq rdr))))]
      (str "Game #" game-no ": " team1 " -vs- " team2))))

(doall (map println (teams)))


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Sistem za delo od doma in remote sodelovanje

Oddelek: Loža
485362 (4217) Tear_DR0P
»

pomoč pri nalogi

Oddelek: Programiranje
131114 (673) SloKin
»

(Java) Iskanje manjkajoči podatkov v tabeli

Oddelek: Programiranje
151050 (815) noraguta
»

Python - pomoč (strani: 1 2 3 )

Oddelek: Programiranje
10317968 (8716) black ice
»

Naloga iz Putka - UPM

Oddelek: Programiranje
242210 (1546) NejcSSD

Več podobnih tem