QBasic - zbrajanje pomoć

poruka: 17
|
čitano: 10.642
|
moderatori: DrNasty, pirat, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
16 godina
offline
QBasic - pomoć

Trebam pomoć u vezi programiranja, konkretno u QBasicu kao što naslov kaže. Naime, trebam program koji ispisuje zbroj svih brojeva od x do y (primjerice, od 1 do 100), pri čemu x i y zadaje sam korisnik.

Program je u školske svrhe (iako, čovjek bi pomislio da je srednja škola za malo ozbiljnije, ili pak barem "modernije" programiranje, al eto), pa je na neki način prilično bitno.

Ako je od kakve koristi, ovo je primjer programa kod kojeg je programer taj zadaje uvjete pa program tada izvršavanjem samo računa, no nemogu napraviti program koji bi zbrajao sve brojeve od nekog do nekog koji bi bili uneseni u samom izvršavanju.

 

CLS

FOR n = 1 TO 6

f = (6 + 1 - n) + n

r = r + f

IF n = 3 THEN 1

NEXT

1 PRINT r

Hvala! 

Kada se kunem majkom možda lažem, ali kada se kunem ocem govorim istinu, majke mi! (Thumb up i HVALA su dobrodošli :D)
Poruka je uređivana zadnji put čet 17.5.2012 18:00 (felonterx).
17 godina
moderator
online
Re: QBasic - pomoć
felonterx kaže...

Trebam pomoć u vezi programiranja, konkretno u QBasicu kao što naslov kaže. Naime, trebam program koji ispisuje zbroj svih brojeva od x do y (primjerice, od 1 do 100), pri čemu x i y zadaje sam korisnik.

Program je u školske svrhe (iako, čovjek bi pomislio da je srednja škola za malo ozbiljnije, ili pak barem "modernije" programiranje, al eto), pa je na neki način prilično bitno.

Ako je od kakve koristi, ovo je primjer programa kod kojeg je programer taj zadaje uvjete pa program tada izvršavanjem samo računa, no nemogu napraviti program koji bi zbrajao sve brojeve od nekog do nekog koji bi bili uneseni u samom izvršavanju.

 

CLS

FOR n = 1 TO 6

f = (6 + 1 - n) + n

r = r + f

IF n = 3 THEN 1

NEXT

1 PRINT r

Zar ne znaš kako se piše petlja for? U njoj ne moraju ići isljučivo brojevi upisani u samom kodu, nego mogu ići varijable. Znači broj 1 (žuto) možeš zamijeniti varijablom min, broj 6 (zeleno) možeš zamijeniti varijablom recimo max. Prije ulaska u petlju, naravno, tražiš od korisnika minimalnu vrijednost, odnosno broj od, koju spremiš u varijablu min, te maksimalnu vrijednost, broj do, koju spremiš u varijablu max.

16 godina
offline
Re: QBasic - pomoć
mbaksa kaže...

Zar ne znaš kako se piše petlja for? U njoj ne moraju ići isljučivo brojevi upisani u samom kodu, nego mogu ići varijable. Znači broj 1 (žuto) možeš zamijeniti varijablom min, broj 6 (zeleno) možeš zamijeniti varijablom recimo max. Prije ulaska u petlju, naravno, tražiš od korisnika minimalnu vrijednost, odnosno broj od, koju spremiš u varijablu min, te maksimalnu vrijednost, broj do, koju spremiš u varijablu max.

Sve to stoji, samo ne radi se samo o mijenjanju tih dviju elemenata programa. Ajd da pokušam daljnje pokušati dokućiti što zapravo želim "pretočiti" u source code:

 

 

n(n+1)/2 =

= 100(100+1)/2

= 10100/2

= 5050

 

n - zadani broj (ovdje u primjeru konkretno 100)

(n+1) - u ovom slučaju sam koristio n+1 zato što se niz povečava za 1

[1 (0+1) + 2 (1+1) + 3 (2+1) + 4 (3+1)]

/2 - djelimo sve sa 2 zato što se brojevi vežu u parove po dva i niz se povečava za jedan (pa možemo napisati /2 * 1 - za onoliko koliko se povečava niz s toliko množimo 2)

 

EDIT: I eto malo da podsjetim kako se inače rješava takav problem na papiru. Ako je zbroj prvog i zadnjeg broja neparan, tada sve brojeve možemo vezati u parove i zadatak rješiti po prije opisanom postupku, no ako je zbroj prvog i zadnjeg broja paran, tad moramo koristiti drugačiji postupak; smanjujući zadnji broj za jedan (ili drugi, sve ovisno o koraku), te taj zadnji broj koji smo oduzeli, dodati na kraju.

 

Kada se kunem majkom možda lažem, ali kada se kunem ocem govorim istinu, majke mi! (Thumb up i HVALA su dobrodošli :D)
Poruka je uređivana zadnji put čet 17.5.2012 18:32 (felonterx).
17 godina
moderator
online
Re: QBasic - pomoć

Nije mi baš najjasnije. Što konkretno bi korisnik trebao zadavati? Početni n i krajnji n? Koji je cilj programa? Da se zbroje svi n(n+1)/2 u zadanom intervalu?

 

BTW pogledao sam sad ponovno tvoj kod i ne mogu reći da mi je jasno IF n = 3 THEN 1, jer n uvijek bude 3 u trećoj iteraciji, dakle bez obzira što ti petlja ide do 6, program ti se UVIJEK prekida kad n postane 3, znači efektivno imaš petlju od 1 do 3.

16 godina
offline
Re: QBasic - pomoć
mbaksa kaže...

Nije mi baš najjasnije. Što konkretno bi korisnik trebao zadavati? Početni n i krajnji n? Koji je cilj programa? Da se zbroje svi n(n+1)/2 u zadanom intervalu?

 

BTW pogledao sam sad ponovno tvoj kod i ne mogu reći da mi je jasno IF n = 3 THEN 1, jer n uvijek bude 3 u trećoj iteraciji, dakle bez obzira što ti petlja ide do 6, program ti se UVIJEK prekida kad n postane 3, znači efektivno imaš petlju od 1 do 3.

Upravo tako, korisnik bi trebao unesti početni i krajnji n. Cilj je programa dobiti zbroj svih brojeva u nekom intervalu. Da, moja greška, to samo nabrzaka nešt zbrljano da probam dočarati o kakvom se otprilike konceptu radi (naravno, vi možete početi program na neki deseti način, uopće nije bitno).

Kada se kunem majkom možda lažem, ali kada se kunem ocem govorim istinu, majke mi! (Thumb up i Hvala su uvijek i više n'o dobrodošli ;))
Poruka je uređivana zadnji put čet 17.5.2012 19:44 (felonterx).
15 godina
neaktivan
offline
QBasic - zbrajanje pomoć

Cekaj ako sam dobro razumio treba ti zbir brojeva od x do y..

 

CLS

INPUT X

INPUT Y

FOR I=X TO Y

S=S+I

NEXT I

PRINT S

END

 

Ovaj ti je najjednostavniji program za to..Ne znam cemu komplikovati,unesi pa ces vidjeti.

http://www.bug.hr/forum/topic/softver-literatura-usluge/prodaja-knjige-hardware/103166.aspx
Poruka je uređivana zadnji put čet 17.5.2012 20:03 (Intelovac123).
16 godina
offline
Re: QBasic - zbrajanje pomoć
Intelovac123 kaže...

Cekaj ako sam dobro razumio treba ti zbir brojeva od x do y..

 

CLS

INPUT X

INPUT Y

FOR I=X TO Y

S=S+I

NEXT I

PRINT S

END

 

Ovaj ti je najjednostavniji program za to..Ne znam cemu komplikovati,unesi pa ces vidjeti.

Al sam se pogubio u svoj toj silnoj teoriji parnih i neparnih... Hvala puno. {#}

Kada se kunem majkom možda lažem, ali kada se kunem ocem govorim istinu, majke mi! (Thumb up i Hvala su uvijek i više n'o dobrodošli ;))
15 godina
neaktivan
offline
QBasic - zbrajanje pomoć

Hhahahahah cudi me da nisi znao tako rjesiti..

 

http://www.bug.hr/forum/topic/softver-literatura-usluge/prodaja-knjige-hardware/103166.aspx
17 godina
moderator
online
Re: QBasic - zbrajanje pomoć
Intelovac123 kaže...

Hhahahahah cudi me da nisi znao tako rjesiti..

Ako je to to, meni zbilja nije jasno ono n(n+a)/2 i parni-neparni brojevi.

15 godina
neaktivan
offline
Re: QBasic - zbrajanje pomoć
mbaksa kaže...
Intelovac123 kaže...

Hhahahahah cudi me da nisi znao tako rjesiti..

Ako je to to, meni zbilja nije jasno ono n(n+a)/2 i parni-neparni brojevi.

Pa eto pokusaj..

Tako sam ja radio te zadatke dok sam jos radio u Qbasicu..

 

A na primjer da je htio da dobije proizvod brojeva iz nekog intervala onda je samo trebao umjesto S=S+I staviti P=P*I.

 

SIMPLE

http://www.bug.hr/forum/topic/softver-literatura-usluge/prodaja-knjige-hardware/103166.aspx
16 godina
neaktivan
offline
Re: QBasic - zbrajanje pomoć

i naravno prije toga P=1, da ne izmnoži sve s nulom :)

16 godina
offline
Re: QBasic - zbrajanje pomoć
mbaksa kaže...
Intelovac123 kaže...

Hhahahahah cudi me da nisi znao tako rjesiti..

Ako je to to, meni zbilja nije jasno ono n(n+a)/2 i parni-neparni brojevi.

.. jer je nešto (htio) petljao s formulom za niz (školski, ne kompjuterski..).

-na kompjuteru (osim ako postoji razlog) računa se 'pješice'. Kao što je već dat odgovor for-next:s=s+i ... kojem još samo treba dodati input x-y (i eventualne onerrore..).

 

C64/TurboModul-OpenSourceProject.org.cn.部分作品为网上收集整理,供开源爱好者学习使用
Poruka je uređivana zadnji put pet 18.5.2012 10:40 (ihush).
14 godina
neaktivan
offline
QBasic - zbrajanje pomoć

Dajte molim vas, da ne otvaram novu temu, molio bih vas za pomoć oko QBasic-a.

Dobio sam za zadatak napraviti program koji napisani string ispisuje bez praznih znakova tj. bez razmaka.

npr. ako upišeš string "mama ima jabuku", ispiše "mamaimajabuku".

Evo molim vas ako možete pomoći jer ukratko nemam ideje kako bh to napravio, a isprobavam već 3 sata. {#}

Xbox Live : xXBUREKXx
17 godina
moderator
online
Re: QBasic - zbrajanje pomoć
iBuySmart kaže...

Dajte molim vas, da ne otvaram novu temu, molio bih vas za pomoć oko QBasic-a.

Dobio sam za zadatak napraviti program koji napisani string ispisuje bez praznih znakova tj. bez razmaka.

npr. ako upišeš string "mama ima jabuku", ispiše "mamaimajabuku".

Evo molim vas ako možete pomoći jer ukratko nemam ideje kako bh to napravio, a isprobavam već 3 sata. {#}

Možeš na više načina. Mislim da bi najjednostavniji bio ovo - imaš dva stringa, s_razmacima i bez_razmaka. U string s_razmacima upišeš rečenicu ili štoveć, iz čega želiš izvaditi razmake. String bez_razmaka ti je inicijalno prazan. I onda samo ideš jedan po jedan znak (od prvog do zadnjeg) po stringu s_razmacima i gledaš - ako je taj znak različit od razmaka, dodaš ga na kraj stringa bez_razmaka - dakle, bez_razmaka = bez_razmaka + znak.

14 godina
neaktivan
offline
QBasic - zbrajanje pomoć

Mislim da sam kužim to što si mi upravo objasnio. 

Evo hitam da isprobam i usput hvala.{#}

Xbox Live : xXBUREKXx
16 godina
offline
Re: QBasic - zbrajanje pomoć
iBuySmart kaže...

..npr. ako upišeš string "mama ima jabuku", ispiše "mamaimajabuku".

..

 -dva načina (koja mi padaju na pamet).

 

-prvi 'pješice' kao što mb iznad predlaže.

.. izmjeriš LEN(a$), for-next x to lenA, if trenutni string-jedno slovo <>CHR$(32) (space) then b$=b$(left$(a$,x,1):  .. next. (for nextom postavljaš fixne brojače, elegantniji je Do-Loop s uvjetima, ista stvar ali increment moraš odraditi ručno, ali dobijaš i ostale moguće uvjete until, while.. (i nisam siguran dali qbasic ima exit for-nexta, dok iz  doloop ima. Obično je u programiranju korisnije (jer često treba više opcija) ali za konkretan primjer je nevažno.

 

-drugi način, je tražiti poziciju traženog stringa unutar stringa (ne znam napamet naredbu, prolistaj string operacije, compare naredbe), u primjeru je to 5, 9, gotovo, tad se left$, start-stop, + lef$...  u jednoj formuli zbroji u željeni string.

 

ovisno o kombinaciji (duljina stringa, broj 'spacera'..) svaki način može imati prednost, pa je (zbog učenja) potrebno znati oba načina primjeniti ovisno o potrebi. Generalno je 'pješice' univerzalniji, ali s duljim stringom sporiji (zbog iteracija for-nexta..), dok je drugi kompliciraniji za natipkati, time i za održavati (kod mogućih izmjena), zato pravilo KISS ponekad ima prednost pred brzinom.

C64/TurboModul-OpenSourceProject.org.cn.部分作品为网上收集整理,供开源爱好者学习使用
Poruka je uređivana zadnji put sri 6.6.2012 11:58 (ihush).
13 godina
neaktivan
offline
QBasic - zbrajanje pomoć

pozz, htio bi da napravim program u qbasicu kojem bi ja unio broj a potom on ispisao sve kombinacije slova do tog broja.

npr.

insert : 2

print: aa, ab, ac, ad..... gz...zz

i ako unesem 5 brojeva da on to odradi 

ili nemora da bude qbasic samo mi treba da to mogu iskopirati

 

1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice