» »

Python - naloga

Python - naloga

jack001 ::

Napisat je treba program, ki bo:

-zahteval vnos desetih števil
-razvrstil vnesena števila od najmanjšega do največjega
-izpisal oba niza števil v dveh stolpcih: levo vnesena števila, desno sortirana

Hvala za pomoč

moowy123 ::

Naloga je precej enostavna:

imaš tabelo 10-ih števil.

a)v zanki 1..10 preberi števila iz standardnega vhoda
b)posortiral to tabelo recimo z uporabo insert-sort, bubble-sort,... ( to so lažji )
c)izpisal števila

če imaš še kakšno vprašanje pa kar na plan. Vsekakor ti bo pomagal google pri vsaki stvari verjetno s precej konkretno rešitvijo.

b0j3 ::

Kje se pa učite Python?

jack001 ::

Naloga je precej enostavna:

imaš tabelo 10-ih števil.

a)v zanki 1..10 preberi števila iz standardnega vhoda
b)posortiral to tabelo recimo z uporabo insert-sort, bubble-sort,... ( to so lažji )
c)izpisal števila

če imaš še kakšno vprašanje pa kar na plan. Vsekakor ti bo pomagal google pri vsaki stvari verjetno s precej konkretno rešitvijo.


Problem je ta, da ne znam kaj dosti v pythonu razen par osnovnih stvari tako da mi to kar si napisal ne pomaga dosti. Bi blo kako možno da bi mi to napisal v kodah? Za insert števil bi naj uporabil for zanko.

Gandalfar ::

Pokazi svoj osnutek kode, pa bomo pogledali kaj je narobe. Domacih nalog pa ne resujemo tu.

moowy123 ::

a del: for zanka in znotraj bereš števila in jih shranjuješ v tabelo
b del: 2x for zanka in znotraj nje urejaš
c del: for zanka za izpis števil

Če ti to ni dovolj za rešitev te absurdno lahke naloge si morda falil forum in bi morda bolj rabil inštruktorja.

jack001 ::

Tole sem uporabil za vnos števil in ne deluje najbolj, torej kaj je narobe s kodo

for i in range(0, 4):
i=input()

print i

forca ::

Daj mi pošlji toto datoteko po mailu, da vidim kako daleč si prišel.
Jaz sem zdaj nekaj poskušal pa mi ni čisto jasno.

jype ::

jack001, kar ok ti gre, priporočam pa, da kodo pišeš v bloku "st.koda" (narekovaje zamenjaj z oglatimi oklepaji)

Napisal bom rešitev, vendar bodo v njej reči, ki jih še niste jemali. Na tebi je, da reč prepišeš v obliko, kakršno od tebe pričakujejo.

Če boš oddal zgolj dobesedno prepisano rešitev, se bo zate slabo končalo, saj tisti, ki ti je nalogo dal, bere tudi ta forum.

stevila = []
sortirana = []
for i in range(10):
  try:
    # preberemo vnos
    vnos = raw_input('Vnesi stevilo %d: ' % i)
    # ga spremenimo v stevilo
    n = int(vnos)
    # dodamo stevilo na konec obeh seznamov
    stevila.append(n)
    sortirana.append(n)
  except ValueError:
    # ce je prislo do napake pri pretvarjanju vnosa v stevilo se pritozi
    print '%r ni nobeno stevilo' % vnos
    # in zakljuci z vnosom
    break

# sortiramo enega od (do zdaj enakih) seznamov
# v python 2.4 in novejsih bi do zdaj lahko delali
# z enim samim seznamom in sortiranega ustvarili z
# sortirana = sorted(stevila)
sortirana.sort()

# vzporedno izpisemo seznama stevil
for i in range(len(stevila)):
  print stevila[i], sortirana[i]

Zgodovina sprememb…

  • spremenilo: jype ()

jype ::

jack001> torej kaj je narobe s kodo

Prvič, stavek
for i in range(0,4):

se sprehodi po seznamu [0, 1, 2, 3] tako, da pri vsakem koraku izvede blok kode, v katerem je spremenljivka i nastavljena na trenutni element seznama.

Ti to spremenljivko povoziš z

i = input()

(kar ni nič narobe, ker števca v tej zanki pravzaprav ne potrebuješ)

Če je stavek

print i

zamaknjen (tega žal ne vidim) pod for zanko, se sproti izpisujejo števila, ki jih vnašaš (kar ti pri sortiranju ne bo pomagalo), če pa ni, potem bo pa izpisal le zadnje vnešeno število.

Števila moraš shraniti, najbolje da kar v seznam (list) kot vidiš v rešenem primeru zgoraj, da jih potem lahko sortiraš. Dvomim, da je pri vašem znanju smisel naloge implementacija algoritma za sortiranje, zato bo bržkone povsem dovolj dobro, če uporabite metode za sortiranje, ki so že vgrajene v python.

kopriwa ::

Imam tut jst eno vprašanje, upam da ne bom pokvaru te teme ;). Sem popoln začetnik v programiranju, začel pa sem z izračunom določenega integrala (približek) na izbranem intervalu. Zgleda takole:

print "Izracun ploscine parabole oblike ax^2+bx+c na intervalu [m,n]"
a=input("Vnesi a ")
b=input("Vnesi b ")
c=input("vnesi c ")
m=input("vnesi spodnjo mejo intervala m ")
n=input("vnesi zgornjo mejo intervala n ")
h=input("sirina predala ")
N=abs(n-m)/h
s=0.0
i=range(0,int(N)+1,1)
for x in i:
xi=m+x*h
fx=a*xi*xi+b*xi+c
p=fx*h
#print p
s=s+p
print s

Output so delne vsote s, ki so realna števila, rad pa bi, da mi izpiše samo zadnjo vrednost s. List ne dela ker so realna števila. Za kakršnokoli pomoč se zahvaljujem.

Zgodovina sprememb…

  • spremenilo: kopriwa ()

jack001 ::

jype hvala za pomoč. Kako bi izgledal diagram poteka za to nalogo?

jype ::

jack001> Kako bi izgledal diagram poteka za to nalogo?

Dvakrat zavito.


Vredno ogleda ...

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

python-rabim pomoč

Oddelek: Programiranje
162773 (1003) rnla1973
»

Python - težava s slovarji - vnos

Oddelek: Programiranje
51294 (1116) RatedR
»

Python - pomoč (strani: 1 2 3 )

Oddelek: Programiranje
10318007 (8755) black ice
»

Programiranje v pythonu

Oddelek: Programiranje
142022 (1380) Sony-Tech
»

Python

Oddelek: Programiranje
203037 (1723) d_DJ

Več podobnih tem