Qbasic zadaci s tekstom (string)

poruka: 8
|
čitano: 4.333
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
8 godina
neaktivan
offline
Qbasic zadaci s tekstom (string)

Qbasic pomoc (ne bih ga ovdje pisala tj. otvarala novu temu, al se bojim da drugdje necete vidit, al vazno mi je:P)
Zdravo trebam pomoc oko 2 qbasic zadataka. S time da ako mi pomognete oko barem jednog, sama cu skuziti ostali. Inace programiram u qbasicu, kuzim ove jednostavnije stvari i znam ih dosta dobro. Muce me stringovi, znam za mid$, left$, right$, len. Zadaci glase: 

1)Učitati imena i prezimena vašeg razreda odrediti i ispisati koji učenik ima najveći broj znakova u svojem imenu i prezimenu
2)Učitati imena i prezimena vašeg razreda odrediti i ispisati koji učenik ima najveći broj znakova u svojem prezimenu
 

Moja verzija programa (Samo kod testiranja ne dodje dobro jer program ispisuje ime zadnjeg ucitanog ucenika, a ne onog koji ima najvise broja znakova):

 

cls

max = 0 : buu = 0 : brz = 0

input "Ucitaj broj ucenika vaseg razreda"; uu

input "Ucitaj ime i prezime ucenika";IP$

brz = len(IP$) : max = brz

for buu = 2 to uu

input "Ucitaj ime i prezime ucenika"; IP$

brz= len(IP$)

if brz>max then max = brz

next buu

print "Ucenik sa najvise znakova u imenu i prezimenu";IP$

end

 

ovdje je: Max = maksimalan broj znakova u imenu , buu = broj ucenika razreda, brz = broj znakova, IP$ = ime i prezime

 

Meni je jasno da mi i ne može ispisati ime učenika koji ima najviše znakova kad programu nisam zadala da to napravi. Mene samo zanima kako da popravim taj dio, gdje i što da ubacim u program da program ispisuje ime učenike koji ima najviše, a ne onog kojeg sam zadnjeg učitala, što nedostaje?

 

Vaša preporuka za korištenje naredbe u drugom zadatku? S obzirom da treba poceti brojati znakove nakon prvog razmaka:) Mislila sam staviti naredbu if i onda pitati ako je = " " (razmaku) da pocne brojiti znakove; len. Jel to dobro?
Unaprijed se zahvaljujem ako tko bude imao vremena ovo riješiti i pomoći mi :)

 
0 0 hvala 0
15 godina
offline
Re: Qbasic zadaci s tekstom (string)
nixs kaže...

...

 

cls

max = 0 : buu = 0 : brz = 0

input "Ucitaj broj ucenika vaseg razreda"; uu

input "Ucitaj ime i prezime ucenika";IP$

brz = len(IP$) : max = brz

for buu = 2 to uu

input "Ucitaj ime i prezime ucenika"; IP$

brz= len(IP$)

if brz>max then max = brz

next buu

print "Ucenik sa najvise znakova u imenu i prezimenu";IP$

end

 

ovdje je: Max = maksimalan broj znakova u imenu , buu = broj ucenika razreda, brz = broj znakova, IP$ = ime i prezime

 

Meni je jasno da mi i ne može ispisati ime učenika koji ima najviše znakova kad programu nisam zadala da to napravi. Mene samo zanima kako da popravim taj dio, gdje i što da ubacim u program da program ispisuje ime učenike koji ima najviše, a ne onog kojeg sam zadnjeg učitala, što nedostaje?

 ..

- nemaš DIM .. varijable moraš memorirati, privremeno stanje.. ovako input ima posljednju vrijednost i fornext.. mora biti memorirano i unutar petlje variabla(x)=.. sam text (ime, prezime, duljina itd..) može biti više neovisnih variabli ili jedna višedimenzionalna, npr Dim ucenik(ime, prezime, len_imeprezime, len_prezime) .. i sl.

kad je podatak u memoriji, tad možeš po potrebi baratati, npr print ucenik(7)..

samo pripazi kod definiranja, string i broj slova ili single/integr... recimo da je za ime i prezime dovoljno 40 znakova (ili manje). Kao i kod unosa, dali će biti jedan input ime-i-prezime pa tražeći space razdvojiš ili su odvojeni unosi.

C64/TurboModul-OpenSourceProject.org.cn.部分作品为网上收集整理,供开源爱好者学习使用
Poruka je uređivana zadnji put sri 6.5.2015 1:17 (ihush).
8 godina
neaktivan
offline
Re: Qbasic zadaci s tekstom (string)
ihush kaže...
nixs kaže...

...

 

cls

max = 0 : buu = 0 : brz = 0

input "Ucitaj broj ucenika vaseg razreda"; uu

input "Ucitaj ime i prezime ucenika";IP$

brz = len(IP$) : max = brz

for buu = 2 to uu

input "Ucitaj ime i prezime ucenika"; IP$

brz= len(IP$)

if brz>max then max = brz

next buu

print "Ucenik sa najvise znakova u imenu i prezimenu";IP$

end

 

ovdje je: Max = maksimalan broj znakova u imenu , buu = broj ucenika razreda, brz = broj znakova, IP$ = ime i prezime

 

Meni je jasno da mi i ne može ispisati ime učenika koji ima najviše znakova kad programu nisam zadala da to napravi. Mene samo zanima kako da popravim taj dio, gdje i što da ubacim u program da program ispisuje ime učenike koji ima najviše, a ne onog kojeg sam zadnjeg učitala, što nedostaje?

 ..

- nemaš DIM .. varijable moraš memorirati, privremeno stanje.. ovako input ima posljednju vrijednost i fornext.. mora biti memorirano i unutar petlje variabla(x)=.. sam text (ime, prezime, duljina itd..) može biti više neovisnih variabli ili jedna višedimenzionalna, npr Dim ucenik(ime, prezime, len_imeprezime, len_prezime) .. i sl.

kad je podatak u memoriji, tad možeš po potrebi baratati, npr print ucenik(7)..

samo pripazi kod definiranja, string i broj slova ili single/integr... recimo da je za ime i prezime dovoljno 40 znakova (ili manje). Kao i kod unosa, dali će biti jedan input ime-i-prezime pa tražeći space razdvojiš ili su odvojeni unosi.

 Hvala na brzom odgovoru:) Od kad sam dobila odgovor pokusala sam postaviti program ali bezuspjesno. Mi u skoli nismo radili DIM iako sam ja na internetu vidjela da se svugdje koristi shvatila sam da ako stavim DIM (nesto) as string da ona kod ucitavanja nema potrebe za pisanjem stringa($). Gledala sam neki word prirucnik iz 1995 i probala shvatiti DIM. Jesi mislio na to da svaku varijablu koju u programu imam moram unaprijed s DIM odrediti? Ako je tekst string ako je broj integer, double, single itd. A ne kuzim ovaj dio di si napisao da moram i unutar petlje. Ti si mislio da za svakog ucenika unesem podatke, jer vidim da pise print ucenik(7), a kolko me moja skromna pamet sluzi to bi znacilo da printa sedmog ucitanog ucenika? Po tome bi trebala da on uopce ima sta ucitano unijeti podatke za svakog? Mislis da se to mozda moze nekako rijesiti bez DIM, jer sumnjam da bi nam profesor dao nesto sto nismo radili i trazio od nas da to znamo, a nijenam prethodno receno. Iz ovog koliko sam razumjela tvoj odgovor mislim da bez DIM nemam nikakve sanse, ahaha. Hvala svejedno:P

Da te nema, ne bi te bilo!
8 godina
neaktivan
offline
Re: Qbasic zadaci s tekstom (string)
ihush kaže...
nixs kaže...

...

 

cls

max = 0 : buu = 0 : brz = 0

input "Ucitaj broj ucenika vaseg razreda"; uu

input "Ucitaj ime i prezime ucenika";IP$

brz = len(IP$) : max = brz

for buu = 2 to uu

input "Ucitaj ime i prezime ucenika"; IP$

brz= len(IP$)

if brz>max then max = brz

next buu

print "Ucenik sa najvise znakova u imenu i prezimenu";IP$

end

 

ovdje je: Max = maksimalan broj znakova u imenu , buu = broj ucenika razreda, brz = broj znakova, IP$ = ime i prezime

 

Meni je jasno da mi i ne može ispisati ime učenika koji ima najviše znakova kad programu nisam zadala da to napravi. Mene samo zanima kako da popravim taj dio, gdje i što da ubacim u program da program ispisuje ime učenike koji ima najviše, a ne onog kojeg sam zadnjeg učitala, što nedostaje?

 ..

- nemaš DIM .. varijable moraš memorirati, privremeno stanje.. ovako input ima posljednju vrijednost i fornext.. mora biti memorirano i unutar petlje variabla(x)=.. sam text (ime, prezime, duljina itd..) može biti više neovisnih variabli ili jedna višedimenzionalna, npr Dim ucenik(ime, prezime, len_imeprezime, len_prezime) .. i sl.

kad je podatak u memoriji, tad možeš po potrebi baratati, npr print ucenik(7)..

samo pripazi kod definiranja, string i broj slova ili single/integr... recimo da je za ime i prezime dovoljno 40 znakova (ili manje). Kao i kod unosa, dali će biti jedan input ime-i-prezime pa tražeći space razdvojiš ili su odvojeni unosi.

 rjesila sam zadatak, hvala na ovom objasnjenju, uspjela sam nakon par sati :D

Da te nema, ne bi te bilo!
15 godina
offline
Re: Qbasic zadaci s tekstom (string)

-u pravilu se svaka varijabla mora 'rezervirati' prije korištenja (basic dozvoljava 'jednostavne' varijable i bez tog ali s ograničenjem).

Tome služi DIM. Može npr DIM ime as string ili ime$ (ista stvar). To je OK za jedan podatak u variabli/memoriji, za više je nepraktično tako kreirati više variabli pogotvo zbog petlji-brojača (tad ih nebi mogli lagano korsititi). Zato postoji i DIM ime(10) as string u koju možeš ubaciti s indexom podatak i koristiti u petlji. Kao i višedimenzionalne, npr Ime_Prezime (10, 10) i više dimenzija, npr tel broj, godina, visina.(to je osnova baze-recorda)...

- Dim Ime(10), DIM Prezime(10) ili ImePrezime (10,10) jednako je, ovisi što ti je u programu zgodnije.

u tako dimenzioniranu variablu stane .. 11 (jer je i nulti-0) kao bazni index. Postoji i ubond-lbond (da se ne troši nepotrebno resursi memorije ako se nulti ne koristi, zanemarivo u vježbanju).

 

Tad imaš, npr

for x=1 to 10

input, ime(x)

next x

.. time si u ime s indexom ubacila podatke i oni su u memoriji neovisni..

baratanje se tad svodi na index, petlje..

npr printanje

for x=1 to 10: print ime(x):next ili print ime(7).. ako nam to treba.

u traženju LEN npr if len(ime(x)) .. itd. dok x može biti brojač ili konkretan broj kao gore.

 

Snašla si se.. ovo je onako podsjetnik i za druge ako naiđu na temu..

 

Svi programski jezici imaju ovakvu osnovu, osnovne naredbe.. razlika je samo u sintaksi i dodatnim mogućnostima tako da nije pogrešno učiti qbasic mada je zastario. Njegova sintaxa je lakša/čitljivija i nema strogoću ozbiljnijih jezika. Na novijim računalima (win7-8) samo da bi ga koristila moraš kemijati.. možeš koristiti npr VBDOS ili neki noviji VS (Basic je dio Studia), npr VS2005, express je free.. i 99% je identična sintaxa-upotreba. Razlika je samo što win kreće s formom (GUI) ali programski 'code' dio je i dalje tu..

C64/TurboModul-OpenSourceProject.org.cn.部分作品为网上收集整理,供开源爱好者学习使用
16 godina
neaktivan
offline
Re: Qbasic zadaci s tekstom (string)

 

 rjesila sam zadatak, hvala na ovom objasnjenju, uspjela sam nakon par sati :D

 Kad čovjek ovo pročita, odmah mi dođe da joj predložim C/C++, tu se može naprogramirati algoritama koliko hoće, a i literature ne fali.

Poruka je uređivana zadnji put sri 6.5.2015 22:07 (Floki).
15 godina
offline
Re: Qbasic zadaci s tekstom (string)
Floki kaže...

 

 rjesila sam zadatak, hvala na ovom objasnjenju, uspjela sam nakon par sati :D

 Kad čovjek ovo pročita, odmah mi dođe da joj predložim C/C++, tu se može naprogramirati algoritama koliko hoće, a i literature ne fali.

-da.. ali literature ima svugdje za sve.. pa i ugrađen help s primjerima u samom qbas.. koji se mogu i copypasteati. Važnije je znati se snaći i razumjeti pronađeno, to suhoparna literatura ne može tj pristup mora biti početnički, prvi razred OŠ.. I'am Janny, this is my cat.. i helloworldovski pozdrav.

 

Možda je bolje učiti C-sintaksu (naviku) jer su svi ostali jezici 90% identični, ali i basic ima svojih dobrih strana, za početnika je logičniji-lakši, kao tricikl.. a osnove programskog koda su identične, kao vožnja auta. .. i da, ostali su auto, basic je tricikl.. ali je simpatičan. Može biti prednost u startu da juzer dobije feeling bez GUIa i crnila CMDa, bez OO i thredova, multitaskinga.. linearni niz koji iscuri od vrha do dna. Tad je lakše npr eeprom/assembler i juzer počne cijeniti IDE/GUI i blagodati civilizacije (kao servo i klima). Bar za prvi razred, preporučio bi QB.. a literature ima za sve, prilagođenije takvim početničkim zadacima.. Naravno, odmah nakon tog na C/C++/VS..

C64/TurboModul-OpenSourceProject.org.cn.部分作品为网上收集整理,供开源爱好者学习使用
16 godina
neaktivan
offline
Qbasic zadaci s tekstom (string)

I ja sam nekad davno počeo sa Basicom, još se sjećam kako me profesor mislio potjerati sa ispita, mislio je da prepisujem od kolegice, a u stvari ona prepisivala od mene. Nisam se htio braniti da optužim nju , a i ne bi mi vjerovao, ipak je ona izgledala nevinije od mene, nego sam tražio bonus u magarećoj klupi, jedva je pristao, kad ono iznenađenje, ja prošao ispit , nije profesoru bilo svejedno. 

 

Ali šalu na stranu, mislio sam reći nešto drugo, zbilja ima kvalitetnih domaćih knjiga iz C/C++ sa puno zadataka koji obrađuju i lakše i složenije algoritme.

Kasnije tokom školovanja se uzme još npr C# i to je to. Vježbanjem algoritama u C/C++ se nauči i programirati i sintaksu jezika, a kasnije nije teško još C# naučiti tokom školovanja, ili Javu. 

Poruka je uređivana zadnji put sri 6.5.2015 17:15 (Floki).
 
1 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice