Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 6 odgovora
  • 5.742 pregleda

Najnovija ↓

[QBasic] Rješite mi ovaj zadatak u QBasic-u 05.12.2005. u 10:18 · pre 254 meseca #1
Upisati niz znakova (rečenicu), a program treba ispisati koliko ima rječi u rečenici. Znam ovo rješiti ako je jedan razmak (praznina) među rječima, ali kako kad stavim više razmaka a da mi ispiše točno koliko ima rječi?
Re: [QBasic] Rješite mi ovaj zadatak u QBasic-u 05.12.2005. u 11:33 · pre 254 meseca #2
Ovo radi, ali sam siguran da ima boljih resenja, ovo cak i meni izgleda prekomplikovano :D.

Code:

CLS
PRINT "Unesi recenicu: "
INPUT Recenica$

FOR i = 1 TO LEN(Recenica$)
Slovo$ = MID$(Recenica$, i, 1)
IF Slovo$ = CHR$(32) THEN
Razmaci = Razmaci + 1
END IF
NEXT i
PRINT "Recenica ima "; STR$(Razmaci + 1); " reci." 


Pozdrav
--Ivan
Potpis
SLIder.
Re: [QBasic] Rješite mi ovaj zadatak u QBasic-u 05.12.2005. u 18:51 · pre 254 meseca #3
@Yu Raider Tvoje resenje nije tacno. Ono broji reci samo ako postoji jedan razmak izmedju svake dve reci, sto naravno ne mora biti.

@antonija_jovic Inace tesko da ce ti neko ovde resavati domace zadatke, ako se ti malo ne potrudis. Pogledaj uostalom pravilnik foruma.
Potpis
Don’t do drugs, sleep deprivation is better.
Re: [QBasic] Rješite mi ovaj zadatak u QBasic-u 05.12.2005. u 19:40 · pre 254 meseca #4
@Soul Mate Da , tacno je to sto si rekao... Postoji naravno resenje i za to, ali bi to samo jos vise zakomplikovalo iovako komplikovan agoritam...
Potpis
SLIder.
Re: [QBasic] Rješite mi ovaj zadatak u QBasic-u 31.12.2005. u 00:44 · pre 253 meseca #5
vec 2 god nisam Kju bejziku radio ali ovaj "problem" bi rješio ovako

zbrojiš sve razmake u nizu i dodaš 1

znaci

brojRjeci = brojRazmaka + 1;

mislim da sam prekasno odgovorio ali... bolje da znaš zaubuduce

Re: [QBasic] Rješite mi ovaj zadatak u QBasic-u 25.02.2006. u 01:23 · pre 251 mesec #6
Ne znam sintaksu qbasica baš najbolje al mislim da bi trebala dodavat nekoj varijabli koju postavis da ima vrijednost jedan ako je prvi znak slovo,a nula ako je prvi znak razmak ili 32(ascii za razmak) 1 tek kada ustvrdiš da je poslije razmaka došlo slovo.
npr
ispitivanje prvog znaka
if(prvi znak = 32)
x=0;
if(prvi znak= slovo)
x=1;

petlja for(i=0;i>length(rec);i++){
if(i-to znak = 32)
if((i+1)-ti znak= slovo)
x=x+1;}
ovo ti je otprilike pa probaj neš iskombinirat(sintaksa je c++)
Potpis
Nogallo
Re: [QBasic] Rješite mi ovaj zadatak u QBasic-u 25.02.2006. u 20:23 · pre 251 mesec #7
Code:

//ulaz u funkciju je pokazivac na polje charova, ilitiga string

int wordcount(char *str)
{
      //deklariramo dva brojaca, i za poziciju u stringu, i count, za kolicinu rijeci
      
      int i = 0, count = 0;
      
      //glavna petlja se vrti sve dok je brojac pozicije u recenici manji od 
      //ukupne kolicine znakova u recenici
    
      do
      {
           //odmah na pocetku petlje provjeravamo da li je trenutni znak prazno polje
           //i uvecavamo brojac sve dok ne dodjemo do nekog znaka. ovo eliminira
           //mogucnost da netko upise recenicu sa razmacima odmah na pocetku
           
           while(str[i] == ' ') i++;
           
           //provjeravamo da li je trenutacni znak razlicit od praznog polja, ili od
           //terminacijskog znaka \0. na terminacijski znak ne treba paziti u BASICU.

           if (str[i] != ' ' && str[i] != '\0')
           {
               
               //ako je trenutni znak razlicit od praznog polja, znaci da smo dosli 
               //na pocetak rijeci. tada inkrementiramo varijablu count, i sve dok je 
               //znak pod brojacem bilo koji znak osim praznog mjesta, inkrementiramo 
               //brojac, tako da nam opet dodje na kraju na prvo slijedece prazno 
               //mjesto iza rijeci
 
           count++;
           while(str[i] != ' ') i++;
           }
       
        }while (i < strlen(str));

       //vracamo iz funkcije broj rijeci
       return count;
}


dakle to je program u c-u. poanta svega je da ne brojis razmake, da bi dobila rijeci, nego brojis rijeci direktno. znaci krenes od pocetka recenice. od pocetka vrtis petlju koja ce pomicat brojac sve dok ne naidje na prvi znak (znak razlicit od praznog mjesta). ta petlja se ne mora zavrtjet ni jednom - ona je tu samo da smo sigurni da netko ko upise recimo 5 spaceova odma na pocetku recenice i onda tek prvu rijec, dobije i dalje tocan broj rijeci. nakon toga provjeravamo jeli znak u recenici na koji pokazuje brojac razlicit od praznog. ako je, ulazimo u "if" petlju, i dobili smo pocetak rijeci. onda uvecavamo vrijednost count brojaca za jedan, a nakon toga uvecavajuci nas brojac znakova sve dok on pokazuje na znak, a ne na prazno, dolazimo do prvog praznog mjesta iza rijeci. i onda sve ispocetka. ukratko - naletis na prvi znak u rijeci, dignes brojac rijeci za jedan, i onda provrtis brojac znakova sve do kraja rijeci. i tako koliko god je duga recenica.

sad kad znas kako, isprogramiraj, ili nadji nekog ko ti moze ovo iz c-a prevest u BASIC, jer ja nisam otvorio qb zadnjih 7 godina.

p.s zar ovo spada u "art of programming"




Potpis

Q: HSP56 Micromodem nece da radi kompjuter ga prepozna a kad treba da se konektujem nece ne daje ni znaka zivota. u cemu je problem.

A: Crko mozda od grmljavine mozda od spanaca. Uglavnom baci ga u WC solju jako povuci vodu. Skupi 5e i uzmi drugi i ne postuj temu na pogresno mesto.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme