QBASIC- Min i Max zadatak pomoc

poruka: 16
|
čitano: 4.432
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
11 godina
neaktivan
offline
QBASIC- Min i Max zadatak pomoc

Dobar dan! Imam takmicenje iz programiranja u QBASIC-u za 1 mjesec. Znam, QBASIC koristim samo za takmicenje, ne brinite. Imam problema sa jednim zadatkom koji dugo nisam radio i na koji god nacin da ga ja pokusam uraditi, on uvijek izbaci 0.

Pomozite mi i rijesite ovaj zadatak ispod. Hvala unaprijed!

 

Sa tastature učitati pet cijelih brojeva. Na ekranu treba ispisati zbir najvećeg (maksimalnog) i najmanjeg (minimalnog) od tih pet unesenih brojeva. Recimo ako unesemo brojeve 3 5 3 5 4 najveći je 5 a najmanji 3. Njihov zbir iznosi 8.

 

Primjer 1:

5 3 9 6 9

Zbir max i min je 12

 

Primjer 2:

5 5 5 5 5

Zbir max i min je 10

 

Primjer 3:

4 -8 4 8 3

Zbir max i min je 0

Kebab
Poruka je uređivana zadnji put ned 25.2.2018 17:22 (kenomax).
Moj PC  
0 0 hvala 0
16 godina
online
Re: QBASIC- Min i Max zadatak pomoc
kenomax kaže...

Dobar dan! Imam takmicenje iz programiranja u QBASIC-u za 1 mjesec. Znam, QBASIC koristim samo za takmicenje, ne brinite. Imam problema sa jednim zadatkom koji dugo nisam radio i na koji god nacin da ga ja pokusam uraditi, on uvijek izbaci 0.

Pomozite mi i rijesite ovaj zadatak ispod. Hvala unaprijed!

 

Sa tastature učitati pet cijelih brojeva. Na ekranu treba ispisati zbir najvećeg (maksimalnog) i najmanjeg (minimalnog) od tih pet unesenih brojeva. Recimo ako unesemo brojeve 3 5 3 5 4 najveći je 5 a najmanji 3. Njihov zbir iznosi 8.

 

Primjer 1:

5 3 9 6 9

Zbir max i min je 12

 

Primjer 2:

5 5 5 5 5

Zbir max i min je 10

 

Primjer 3:

4 -8 4 8 3

Zbir max i min je 0

 -gdje je zapelo? ili nisi ništa naučio.. :)

-input, obradiš uneseno, usporediš veličine i kad pronađeš naj-manje/veće imaš sve potrebno. Negativni nisu problem (ne mijenjaju algoritam-rezultat), pronaći manji-veći također.. što je problem?

-izbaci ti nulu-0? .. pogrešna varijabla ili pogrešno dodjeljivanje vrijednosti variabli.. i tad je vjerojatno empty-null-nula.. i rezultat je 0.

u prvom zadatku je to 3 i 9 (prva devetka, druga nije veća i u procesu uspoređivanja-swapa neće biti uzeta kao veća vrijednost.. ako tako testiraš, treba 2. i 3. unos, mada je matematički 2. i 5. isti.. to se nastavlja s drugim zadatkom, prvi i drugi.. dok je u trećem jedino negativna vrijednost, ali nema nedoumica, -8/2. i +8/4. su traženi parovi brojeva. Npr ako prekineš unos na 3. broju, tat je odgovor -8 i 4 ..

 

ver.2.0, unos proizvoljnog broja npr 6-100, brojeva, unos kontrolirati nedozvoljenim, upozoriti, dati primjer, ispisati sve unešene brojeve, redom, sortirane itd.. možeš (i moraš) sve sam moći ako je natjecanje-znanje ono što tražiš. Ako je rješenje.. pozz.

C64/TurboModul-OpenSourceProject.org.cn.部分作品为网上收集整理,供开源爱好者学习使用
Poruka je uređivana zadnji put ned 25.2.2018 17:33 (ihush).
17 godina
moderator
offline
Re: QBASIC- Min i Max zadatak pomoc
kenomax kaže...

Dobar dan! Imam takmicenje iz programiranja u QBASIC-u za 1 mjesec. Znam, QBASIC koristim samo za takmicenje, ne brinite. Imam problema sa jednim zadatkom koji dugo nisam radio i na koji god nacin da ga ja pokusam uraditi, on uvijek izbaci 0.

Daj kôd koji si napisao pa ćemo ti reći gdje si pogriješio.

11 godina
neaktivan
offline
Re: QBASIC- Min i Max zadatak pomoc

DIM max AS INTEGER
DIM min AS INTEGER
CLS
INPUT a
INPUT b
INPUT c
INPUT d
INPUT e
IF a > b THEN a = max
IF b > a THEN b = max
IF c > b THEN c = max
IF b > c THEN b = max
IF c > d THEN c = max
IF d > c THEN d = max
IF d > e THEN d = max
IF e > d THEN e = max
IF a < b THEN a = min
IF b < a THEN b = min
IF c < b THEN c = min
IF b < c THEN b = min
IF c < d THEN c = min
IF d < c THEN d = min
IF d < e THEN d = min
IF e < d THEN e = min
PRINT min + max

END

Kebab
17 godina
moderator
offline
Re: QBASIC- Min i Max zadatak pomoc

Objasni riječima što znači linija:

IF a > b THEN a = max

11 godina
neaktivan
offline
Re: QBASIC- Min i Max zadatak pomoc

Pa, ako je a vece od b, onda je a max tj. najvece

Kebab
Poruka je uređivana zadnji put ned 25.2.2018 18:22 (kenomax).
17 godina
moderator
offline
Re: QBASIC- Min i Max zadatak pomoc

Recimo da ti je a=5, b=3.

 

Kolika je vrijednost varijabli a i max nakon one linije koju sam citirao?

16 godina
online
Re: QBASIC- Min i Max zadatak pomoc

then a = max... time si varijabli a dodijelio vrijednost max-a, trenutno nula-ništa, i pregazio postojeću vrijednost (svim varijablama a-b-c-.. jednako) i naravno da ti je na kraju rezultat =0.

dok je sam način kodiranja, najgori (početnički).. jer svaku naredbu, varijablu, operaciju izvodiš repetativno umjesto u petlji.. jer kad jednom složiš 'petlju', tad svaka unešena vrijednost ne može biti pogrešna, mora biti točna (radi).. kao i rezultat. No ok za prve korake i učenje naprednijih koraka, if-then, select-case itd.

 

treba, ovako max=a, tad u varijablu max unosiš vrijednost variable a.. jer je zadovoljila kriterij i nastavljaš dalje.

za dimenzionirane variable i petlje (do-loop, for-next)  je lakše koristiti dimenzioniranje prema potrebnom broju podataka, u ovom primjeru dim unos (5) .. nećemo koristiti nulu, tj nju iskoristimo za neke druge operacije-brojače i sl. .. ili dim unos(4) jer je 0-1-2-3-4, dovoljno indexiranih mjesta za 5 unosa.

Tad u npr fornext petlji možeš koristiti index, brojač-broj, npr if unos(x) .. jednom i taj kod se ponavlja potreban broj puta, kraći-lakši za održavati.. dok bi 'pješice' taj kod bio kao tvoj.. tj ovako

if unos(1) .. nešto

if unos(2) nešto...

 

 

'koristit ću dim unos(6) ... iskoristiti unos(0) za min i unos(6) za max.. 'štediti' resurse :)

DIM unos(6) as single

 unos(0)=0 .. ispavak, uons(0) = 100 .. ako je raspon dozvoljenih unosa npr od 0 do 100..

 unos(6)=0

' pošto je zadano 5 unosa, najbanalnije

for x=1 to 5

 unesite broj, unos(x)

next

 unos(0)=unos(1)

 unos(6)=unos(1)

 .. tako osigurnamo da je početna vrijednost varijabli jednaka bar jednoj unešenoj vrijednosti.

 

ispravak: -ubačeno, jer bi 0 bila manja..

unos(0)=unos(1) .. bilo koji uneseni broj, da ostane nula bila bi manja osim u slučaju negativnih.. alternativno, kod dim može neki veći broj, kao limes, ako je ogrnaičeno npr od 0-100 postaviiti tad unos(0)=100 i tad bi ostalo bilo ok.

 

for x=1 to 5

 if unos(x) > unos(6) then unos(6)=unos(x) 'ako je boj veći zapamti kao max

 if unos(x) < unos(0) then unos(0)=unos(x) 'ako je boj manji zapamti kao min

next

print unos(0), unos(6), unos(0)+unos(6)

 

jednako bi moglo na izlazu petlje biti min = unos(0); max = unos(6).. ako se to želi imati kao neka variabla koja sama (naziv-notacija) objašnjava što je, koji je smisao, preglednost-čitkost koda.

 

ver 2.beta..

DIM unos(6) AS SINGLE
unos(0) = 0
unos(6) = 0

FOR x = 1 TO 5
INPUT "unesite broj ", unos(x)
NEXT
unos(0) = unos(1)
unos(6) = unos(1)
STOP
PRINT "unjeli ste brojeve"

FOR x = 1 TO 5
IF unos(x) > unos(6) THEN unos(6) = unos(x)
IF unos(x) < unos(0) THEN unos(0) = unos(x)
PRINT unos(x)
NEXT

PRINT "najmanji "; unos(0)
PRINT "najve†i "; unos(6)
PRINT "njihov zbroj "; unos(0) + unos(6)

 

C64/TurboModul-OpenSourceProject.org.cn.部分作品为网上收集整理,供开源爱好者学习使用
Poruka je uređivana zadnji put ned 25.2.2018 21:25 (ihush).
11 godina
neaktivan
offline
Re: QBASIC- Min i Max zadatak pomoc

Po mojem razmisljanju, obje varijable bi trebale imati vrijednost 5. Nije mi bas najjasnije ovo programiranje min i maxa pa sam vjerovatno i pogrijesio. Mozes li mi dati dio koda kako da rijesim ovo, posto mi nije uopste jasan nacin na koji se rijesava?

Kebab
17 godina
moderator
offline
Re: QBASIC- Min i Max zadatak pomoc
kenomax kaže...

Po mojem razmisljanju, obje varijable bi trebale imati vrijednost 5.

Po kojoj logici? Gdje si varijabli max dodijelio vrijednost? Apsolutno nigdje. Što znači da je njena vrijednost 0. I onda u spornoj liniji varijabli a dodijeliš vrijednost varijable max, koja je 0. Pa i varijabla a poprimi vrijednost 0. Dakle, vrijednost obje varijable je tu ona 0.

 

Shvaćaš gdje ti je glavna greška? Umjesto da varijabli max dodijeljuješ vrijednost, ti si mijenjao vrijednost varijablama za koje si korisnika tražio da upiše vrijednost!

16 godina
online
Re: QBASIC- Min i Max zadatak pomoc

zato kad učiš, kad ti je nešto 'nelogično'.. (dobijaš obrnuti rezultat, drugačiji od očekivanog) tad  koristi debugger, testiraš vrijednost varijable u bilo kojem renutku s print min, max.. i tad shvatiš grešku (u logici razmišljanja) tj da si trebao za max dodjeliti vrijednost a.. nije to rečenica, u kojoj bi rekao a je max.. nego obrnuto, max je tad vrijednost a (dok je neki drugi uvijet ne promjeni u b, c..).

C64/TurboModul-OpenSourceProject.org.cn.部分作品为网上收集整理,供开源爱好者学习使用
17 godina
moderator
offline
Re: QBASIC- Min i Max zadatak pomoc

Ma kakav debugger!  Mislim da ga QBASIC niti nema (ne znam ima li ga QuickBasic). Dovoljno je da si iza linija koje želi testirati ispiše vrijednost varijabli u tom trenutku. To i sam radim recimo na Arduinu.

16 godina
online
Re: QBASIC- Min i Max zadatak pomoc

ima, F6 (prozor interpreta..), kao i break/stop itd. ima sve samo treba znati i korsititi. Pa do tog da je i help vrlo upotrebljiv i dovoljno jasan za početak, s dijelovima koda koji se može iskoristiti copypasteom i probati.. samo treba 'na pravi način' razmišljati, ne obrnuto kao a=max.. (ono što početnik time misli i ono što je time napravio..).

C64/TurboModul-OpenSourceProject.org.cn.部分作品为网上收集整理,供开源爱好者学习使用
17 godina
moderator
offline
Re: QBASIC- Min i Max zadatak pomoc
ihush kaže...

ima, F6 (prozor interpreta..), kao i break/stop itd. ima sve samo treba znati i korsititi.

Možeš brejkati program, ali nemaš uvid u varijable. A isto tako si možeš brejkati s inputom. Debugiranje u QBasicu je skoro pa beskorisno, odnosno ne nudi ništa više nego sam možeš napraviti u programu (iako je praktičnije), nudi manje nego sam možeš napraviti (nemaš uvid u vrijednosti varijabli). Nikad to nisam koristio, jer sam se QBasicom bavio kad još nisam imao mnogo pojma o programiranju, a sad vidim da mi ni ne bi neš koristilo. 

16 godina
online
Re: QBASIC- Min i Max zadatak pomoc

imaš vrijednost svih do tad (trenutak prekida kao stop ili step.. F9..) korištenih-inicijaliziranih varijabli. Ali da bi ih vidio, moraš ih prikazati-isprintati, print-variabla i tad vidiš njeno stanje  u immidiate penđeru (dpolje, kao cmd.. + prebacivanje vidljivog ekrana editora i vanjskog-dosovskog da bi pročitao to s ekrana..)

-naravno, ni blizu današnjih mogućnosti kad je dovoljno mišem preći preko objekta i saznati sve.. ali ima, upotrebljivo i zapravo u osnovi isto, fićo-ferari.. za učenje je fićo ok. Istina to nije debugger, jer ni nije kompajlirani kod, nego immediate-prozor i radi samo ako je izvršavanje programa zaustavljeno/stop/pause-break, ne ako je program završen (endom)..

 

primjeti STOP, F4/F6.. i ispis

 

C64/TurboModul-OpenSourceProject.org.cn.部分作品为网上收集整理,供开源爱好者学习使用
Poruka je uređivana zadnji put ned 25.2.2018 20:25 (ihush).
17 godina
moderator
offline
Re: QBASIC- Min i Max zadatak pomoc

Ah... To je debagiranje "kaj bi se deca igrala". 

1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice