Gå til innhold
🎄🎅❄️God Jul og Godt Nyttår fra alle oss i Diskusjon.no ×

Hjelp til å lage et miniprogram


Anbefalte innlegg

Hei

Jeg trenger litt hjelp til å lage et lite program.

Jeg har lært litt programmering for mange herrens år siden, så husker svært lite :(

 

Jeg skulle hatt et program hvor jeg kan skrive inn tall mellom 1 - 50.

Så skal de tallene som er blitt skrevet inn flest ganger komme i stigende rekkefølge fra 1 - 10.

Jeg ønsker også at programmet lagrer tallene, slik at jeg kan fortsette å fylle inn tall selv om programmet er blitt startet på nytt.

(Håper jeg skriver forståelig hehe)

 

Håper noen kan hjelpe meg med dette... Kan også betale en liten slant om det så skal være ;)

Lenke til kommentar
Videoannonse
Annonse

Hei

Jeg trenger litt hjelp til å lage et lite program.

Jeg har lært litt programmering for mange herrens år siden, så husker svært lite :(

 

Jeg skulle hatt et program hvor jeg kan skrive inn tall mellom 1 - 50.

Så skal de tallene som er blitt skrevet inn flest ganger komme i stigende rekkefølge fra 1 - 10.

Jeg ønsker også at programmet lagrer tallene, slik at jeg kan fortsette å fylle inn tall selv om programmet er blitt startet på nytt.

(Håper jeg skriver forståelig hehe)

 

Håper noen kan hjelpe meg med dette... Kan også betale en liten slant om det så skal være ;)

 

Hva vill du skrive det i? Hvordan vill du kjøre programmet(terminal eller vill du ha ett UI)? Hvordan vill du lagre filene? Osv :) 

Lenke til kommentar

Heh... Det var det da.... Eneste jeg lærte i programmering var visual basic, og har hørt at det er et ekstremt dårlig språk... Men for å svare på dine spørsmål, så har jeg faktisk ingen aning... Det kan være så enkelt som overhode mulig da det kun er til privat bruk :)

Lenke til kommentar

Du må egentlig bare starte et sted. Finn et språk som passer. Python kan være et språk som kan egne seg for denne oppgaven. Det du beskriver av funksjonalitet er også mulig å gjennomføre med relativt begrenset Python-kunnskap, da det hele baserer seg på enkel større enn > og mindre enn < logikk.

 

Så må du bare bryte ned programmet i små biter, kalt funksjoner, som gjør en ting hver.

 

I IT Grunnkurs faget til NTNU finnes det en del øvingsoppgaver offentlig tilgjengelig. Du vil ganske tidlig se at oppgavene som ligger der er svært relevante til den funksjonaliteten du beskriver.

 

Jeg har laget første bit i programmet ditt for deg.

def inputNumber():
    while True:                                         # while-løkken vil kjøre helt til et tall kommer på riktig format
        num = int(input("Skriv inn et tall [1-50]: "))  # Her tar vi input via konsoll og konverterer til int
        if (num < 1) or (num > 50):                     # Sjekker at tallet ligger innenfor riktig område
            print("Input utenfor definert område")
        else:
            return num                                  # her returneres input

def main():
    num = inputNumber()                                 # det som ble returnert over, havner i num her
    print(num)                                          # printer ut num bare for å se alt alt fungerte

    return

main()

Lykke til!

 

Edit: La til en link jeg glemte.

Endret av Visn!ngsnavn
Lenke til kommentar

Det neste steget vil være å lage en funksjon eller et eller annet opplegg som tar tallene som kommer fra inputNumber() og putte de i en liste. Det finnes automatiske funksjoner for å sortere lister i f. eks. stigende rekkefølge. Videre trenger du en funksjon for å finne de de mest frekvente tallene, og sette disse i en ny liste.

Du trenger også funksjoner for å skrive listene inn i en fil slik at tallene blir lagret, samt å hente frem denne filen igjen. Det er ikke så alt for vanskelig. Bare spør her i tråden når du nærmer deg. Men uansett trenger du å ha grunnfunksjonaliteten på plass før du trenger å tenke på filbehandling.

Lenke til kommentar

Da er vel mitt neste spørsmål; Hvor skal jeg skrive inn kodene?

Har lastet ned Python 3.6.0 men skjønner ikke så veldig mye hehe.... Skal jeg bare skrive inn alt i f.eks. Notepad? eller finnes det et eget python-skriveprogram?

Lenke til kommentar

Slike skriveprogram, laget for å programmere i kalles ofte et Integrated Development Environment, eller et IDE.

For python, som alle andre språk, finnes det et stor skog av disse - hvor noen få utvalgte ender opp med et favorittstempel av brukerene.

 

Jeg tror IDLE fortsatt kommer med python installs? Sjekk om du har den installert, hvis du har det kan du fint bruke den for å lage små programmer og bli litt mer kjent med python. Du vil antakelig raskt vokse ut av den, og da kan du lese listen under.

 

Jeg vil anbefale en av disse:

https://www.sublimetext.com/3 med http://damnwidget.github.io/anaconda/ er det jeg bruker selv.

https://www.jetbrains.com/pycharm/download/#section=windows min mening er dette best-in-class for python

http://www.pydev.org/ - basert på Eclipse som finnes som IDE for omtrent alle språk, skal du programmere mer enn bare denne lille vil jeg anbefale og en eller annen gang lære deg Eclipse [selv om det aldri er det aller beste valget, så er det et valg som gjør deg forbredt på det meste]

Sitter du på windows så kan du teste IronPython med Visual Studio community edition. Visual Studio er blandt mange ansett for å være den beste IDE

 

Til slutt, så kan du også bruke VIM eller Emacs, men hvis du ikke allerede kjenner til disse vil jeg råde deg å vente med det ettersom det bare blir nok en ting du må lære deg.

 

EDIT: vær obs på at du vil finne mye kode online for python 2.7 som ikke er kompatibel med 3.6

 

Her er noen snippets du kan teste:

#lage en liste

liste = []       # nå har du en liste du kan legge til tall i, slik som
liste.append(42) # legger til 42

lsite.append(3)  # legg til et annet tall

print(liste)     # listen er [42, 3]
liste.sort()     # sorter listen

print(liste)     # listen er sortert; [3, 42]

 

import pickle    # pickle kan skrive dataobjekter til fil

 

# skriv til fil!

with open('liste.pickle', 'wb') as f: # lag et filobjekt for skriving

    pickle.dump(liste, f)             # skriv liste til fil

 

# les fra fil!

with open('liste.pickle', 'rb') as f: # lag et filobjekt for lesing

    liste = pickle.load(f)            # les liste fra fil

 

print(liste)     # listen er [3, 42]

Endret av Enthroner
Lenke til kommentar

PyCharm fra JetBrains, som Enthroner over her nevner, bruker jeg selv. De har en gratis community-utgave.

 

Hvis du velger PyCharm, kommer du i gang som følgende;

 

  1. Installer nyeste Python (som du allerede har).
    Du kan nå prøve å skrive enkel kode i IDLE (bare søk på IDLE i startmeyen (Windows)). Prøv f. eks. å skrive "print(5)", så skal du få tilbake "5" med blå skrift under.
  2. Last ned og installer PyCharm. Jeg tror programmet automatisk skal finne Python-interpreteren automatisk dersom du gjorde steg 1 før steg 2. Dersom den ikke finner den selv, må du skrive den inn.

    Velg interpreter i PyCharm: Gå på Run -> Edit Configurations og du vil se en rullgardinmeny, hvor du må sette inn interpreteren. Denne følger med Python som du installerte i steg 1. Default sti tror jeg er "C:\Python36\python.exe".

Da er du egentlig klar. Lag et nytt prosjekt, og add en ny Python-fil.

 

v5bEIDz.png

 

Prøv å kopiere inn koden jeg skrev i innlegget over, og sjekk om det virker (den gjør ikke noe mer enn å printe ut det tallet du skriver inn, hvis tallet ligger i riktig område).

 

Så gjelder det å komme igang med selve kodingen. Sjekk gjerne ut en app som heter "Learn Python" fra SoloLearn, så kommer du raskt igang med den enkleste syntaksen osv. Ellers så har jeg nå lagt til link til NTNU's øvingsopplegg i Python, som er svært relevant til det du ønsker å lage. Der ligger det ute oppgaver, veiledninger samt løsningsforslag.

  • Liker 1
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...