Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  Andke nõu algajale märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: m.hv.ee :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale. Teata moderaatorile
otsing:  
Jan28
Uus kasutaja

liitunud: 31.08.2017




sõnum 31.08.2017 16:12 Andke nõu algajale vasta tsitaadiga

Millise programmiga on mõistlik lahendada seda ülesannet?

Kirjuta kood, mis:
• väljastab <ul> listi kõigist täisarvudest vahemikus 1-100
• kõigi numbrite asemel, mis jaguvad 3-ga, väljastab teksti “foo”
• kõigi numbrite asemel, mis jaguvad 5-ga, väljastab teksti “bar”
• numbrite asemel, mis jaguvad nii 3 kui 5-ga, väljastab teksti “foobar”
tagasi üles
vaata kasutaja infot saada privaatsõnum
Psych0
Kreisi kasutaja
Psych0

liitunud: 21.11.2004



Autoriseeritud ID-kaardiga

sõnum 31.08.2017 16:39 vasta tsitaadiga

Head kooliaasta algust. Eeldan, et sa mõtled "programmi" all programmeerimiskeelt.

Kuna
<ul>

on HTML keele "tag", siis soovitaksingi kasutada HTMLi koos Javascriptiga. Javascripti saad kasutada niisama sellisena nagu ta on või siis kasutada mõnda Javascripti "libraryt" nagu jQuery. Kõige "lihtsam" oleks seda teha kasutades AngularJS raamistikku, aga see vajab natuke rohkem nokitsemist, et esialgne süsteem püsti saada.

Kõige suuremaks abiks on Google ning iseseisev õppimine.
Kommentaarid: 53 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 50
tagasi üles
vaata kasutaja infot saada privaatsõnum
Jan28
Uus kasutaja

liitunud: 31.08.2017




sõnum 31.08.2017 18:36 vasta tsitaadiga

Oi ma täpsustan olukorda! Ma pusin esimesi samme PHP kallal.
Palun vihjeid, kuidas seda kõike PHPga lahendada?
tagasi üles
vaata kasutaja infot saada privaatsõnum
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga

sõnum 31.08.2017 18:52 vasta tsitaadiga

Seda ülesannet on ju terve nett täis! icon_biggrin.gif
_________________
Kõike paremat siit poolt maailmast!
Tasuta bännerivahetus! http://adtraf.net/
Kommentaarid: 82 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 76
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
CommandsRef
HV kasutaja

liitunud: 04.09.2002



Autoriseeritud ID-kaardiga

sõnum 31.08.2017 19:22 vasta tsitaadiga

Jan28 kirjutas:
Oi ma täpsustan olukorda! Ma pusin esimesi samme PHP kallal.
Palun vihjeid, kuidas seda kõike PHPga lahendada?

Kuhu see isetegemise rõõm siis jääb? OK, võtame selle rõõmu ära, tee nii nagu pea iga teisegi keelega algaja teeks: tsükkel 0-st 100-ni ning sinna 2 IF-lauset, võid ka 3 teha kui 2 maagia tundub.
Kommentaarid: 11 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 11
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004



Autoriseeritud ID-kaardiga Online

sõnum 01.09.2017 09:15 vasta tsitaadiga

Jan28, märksõnad on "for" ja "if".
Kommentaarid: 84 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 77
tagasi üles
vaata kasutaja infot saada privaatsõnum
napoleon
Unknown virus
napoleon

liitunud: 08.12.2008



Autoriseeritud ID-kaardiga

sõnum 01.09.2017 14:14 vasta tsitaadiga

Psych0 kirjutas:
Head kooliaasta algust. Eeldan, et sa mõtled "programmi" all programmeerimiskeelt.

Kuna
<ul>

on HTML keele "tag", siis soovitaksingi kasutada HTMLi koos Javascriptiga. Javascripti saad kasutada niisama sellisena nagu ta on või siis kasutada mõnda Javascripti "libraryt" nagu jQuery. Kõige "lihtsam" oleks seda teha kasutades AngularJS raamistikku, aga see vajab natuke rohkem nokitsemist, et esialgne süsteem püsti saada.

Kõige suuremaks abiks on Google ning iseseisev õppimine.


Algajal on php või mõne muu backend keelega seda lihtsam teha, javascriptiga peab hakkama veel seda ka õppima, kuidas need elemendid DOM-s õigesse kohta toppida.

Teemaalgatajele - nagu öeldud vihjeks on for ja if. Ühe vihje annan siiski veel. Näiteks seda kas kolmega jagub saad kontrollida nii:
if($number % 3 == 0){
//siia kood mis juhtub kui jagub kolmega
}
Kommentaarid: 36 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 36
tagasi üles
vaata kasutaja infot saada privaatsõnum
andresv
HV kasutaja

liitunud: 06.12.2004



Autoriseeritud ID-kaardiga

sõnum 01.09.2017 15:49 vasta tsitaadiga

siin veidi lahatud seda ülesannet:
Spoiler Spoiler Spoiler


Peaks arusaadav olema ka neile, kes veel for loopi progeda ei oska
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 4
tagasi üles
vaata kasutaja infot saada privaatsõnum
CommandsRef
HV kasutaja

liitunud: 04.09.2002



Autoriseeritud ID-kaardiga

sõnum 04.09.2017 08:54 vasta tsitaadiga

Peaks koodi üles panema ja vaatama, kas järgmisel aastal ka keegi sama asja küsib.
Kommentaarid: 11 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 11
tagasi üles
vaata kasutaja infot saada privaatsõnum
LKits
HV Guru
LKits

liitunud: 06.09.2007



Autoriseeritud ID-kaardiga

sõnum 07.09.2017 11:04 vasta tsitaadiga

Et sa lihtsalt teaksid - kõik arvud jaguvad 3-ga ja 5-ga.
Eeldan, et sa mõtled, et jagatis peab olema täisarv (mitte tingimata naturaalarv).

Kus sul need arvud on? Millisel kujul? Jada, kasutaja sisestatud või mingis tekstifailis või kuidas?

Mõtle ülesanne korralikult läbi.

Sisend
Teh(t)e(d)
Väljund

_________________
itLahendused - Arvutite remont ja hooldus Rakveres, veebilehtede loomine, soodne veebimajutus. Võta ühendust! Tel: +372 555 268 97 ja e-post info@itlahendused.ee
Kommentaarid: 9 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 9
tagasi üles
vaata kasutaja infot saada privaatsõnum
infidel
HV kasutaja
infidel

liitunud: 31.01.2004



Autoriseeritud ID-kaardiga

sõnum 07.09.2017 11:25 vasta tsitaadiga

Teema läheb veidi lappama...

Asi taandub sellele, et õpetaja-õpilase suhtluses on auk ja põhitõed pole arusaadavaks tehtud. Üritaks siis ise.

Programmeerimises (sõltumata keelest) on kolm peamist elementi: muutujad, tsüklid ja tingimused.
Muutuja on mingi parameeter, mille väärtust saab muuta. Tsükkel tähendab seda, et programm teeb sama asja järjest. Tingimus tähendab seda, et mingi väärtuse järgi tehakse midagi.

Antud ülesande raames on üks tsükkel - numbrite lugemine. Tsüklis on tingimus, et 100st edasi ei loeta, st tsükkel katkestatakse.
Lisaks on veel tingimused jaguvuse kohta, neid vaatame edaspidi.
Hetkel vaatluse all olev number on muutuja väärtus sellel hetkel. Seega on programmi ülesehitus järgmine:

Muutuja saab algväärtuse 1.
Tsükkel algab.
Toimuvad kontrollid, kas jaguvuse tingimused on täidetud:
Kui muutuja ei jagu 3 ega 5-ga, siis läheb väljundisse number
Kui muutuja jagub 3-ga aga mitte 5-ga, siis läheb väljundisse "foo"
Kui muutuja jagub 5-ga aga mitte 3-ga, siis läheb väljundisse "bar"
Kui muutuja jagub 3 ja 5-ga, siis läheb väljundisse "foobar"
Muutuja väärtus kasvab 1 võrra, st võetakse järgmine täisarv.
Kui muutuja väärtus on väiksem kui piirväärtus, siis minnakse tsükli algusesse tagasi.

PHP-s on seda võimalik realiseerida päris mitut moodi. Tsükli puhul võib seada näiteks tingimuse:
https://www.w3schools.com/php/php_looping.asp
Või võtta tsükli aluseks numbrijada:
https://www.w3schools.com/php/php_looping_for.asp

Tingimuste jaoks on enam-vähem kõigis laiatarbekeeltes IF.
https://www.w3schools.com/php/php_if_else.asp

Edasi tuleks proovida eelpool toodud struktuur PHP-sse ümber kirjutada. Siis tuleb järgmine samm - optimeerimine. Toodud kirjelduses kontrollitakse samu asju mitu korda ja need on võimalik omavahel üsna lihtsalt ühendada. Seda on aga parem teha siis, kui on enam-vähem ülevaade sellest, mida miski tähendab.
Kommentaarid: 32 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 31
tagasi üles
vaata kasutaja infot saada privaatsõnum
LKits
HV Guru
LKits

liitunud: 06.09.2007



Autoriseeritud ID-kaardiga

sõnum 07.09.2017 12:16 vasta tsitaadiga

Mainin veelkord - KÕIK arvud jaguvad 3-ga ja 5-ga, tulemus ei ole lihtsalt täisarv (int), vaid murdarv (float).

Et välja selgitada, kas arvude jagatis on täisarv, peab veidi võrdlema (Javascriptis saab murdarvu täisarvuks teha ning siis algse murdarvuga võrrelda - kui on võrdne, siis on täisarv, kui ei ole, siis on murdarv).

_________________
itLahendused - Arvutite remont ja hooldus Rakveres, veebilehtede loomine, soodne veebimajutus. Võta ühendust! Tel: +372 555 268 97 ja e-post info@itlahendused.ee
Kommentaarid: 9 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 9
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004



Autoriseeritud ID-kaardiga Online

sõnum 07.09.2017 12:48 vasta tsitaadiga

LKits, kõige lihtsam on jagatistehte jääki kontrollida. Kui see on 0, siis jaguneb täisarvuks.
Selle jaoks tuleb selgeks teha aritmeetilised tehted vastavas keeles (antud juhul PHP).
http://php.net/manual/en/language.operators.arithmetic.php
Kommentaarid: 84 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 77
tagasi üles
vaata kasutaja infot saada privaatsõnum
LKits
HV Guru
LKits

liitunud: 06.09.2007



Autoriseeritud ID-kaardiga

sõnum 07.09.2017 12:59 vasta tsitaadiga

mikk36 kirjutas:
LKits, kõige lihtsam on jagatistehte jääki kontrollida. Kui see on 0, siis jaguneb täisarvuks.
Selle jaoks tuleb selgeks teha aritmeetilised tehted vastavas keeles (antud juhul PHP).
http://php.net/manual/en/language.operators.arithmetic.php
Kui sa nii arvad - ma performance pole kontrollinud.

arv = 98; //ülesandes olev suvaline arv vahemikus 1 kuni 100
kolmegajagatis = arv / 3;

if (parseInt(kolmegajagatis) == kolmegajagatis)
//täisarv
else
//ei ole täisarv

_________________
itLahendused - Arvutite remont ja hooldus Rakveres, veebilehtede loomine, soodne veebimajutus. Võta ühendust! Tel: +372 555 268 97 ja e-post info@itlahendused.ee
Kommentaarid: 9 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 9
tagasi üles
vaata kasutaja infot saada privaatsõnum
napoleon
Unknown virus
napoleon

liitunud: 08.12.2008



Autoriseeritud ID-kaardiga

sõnum 07.09.2017 13:52 vasta tsitaadiga

Miks otse minna kui ringiga saab icon_biggrin.gif
php:
  1.  
  2. $arv = 98; //ülesandes olev suvaline arv vahemikus 1 kuni 100
  3. if ($arv % 3 == 0 )
  4. //täisarv
  5. else
  6. //ei ole täisarv
  7.  


või kui tahad ilmtingimata javascriptiga teha, siis põmst sama
javascript:
  1.  
  2. arv = 98; //ülesandes olev suvaline arv vahemikus 1 kuni 100
  3. if ( arv % 3 == 0 )
  4. //täisarv
  5. else
  6. //ei ole täisarv
  7.  


kindlasti leiab erandeid, aga kui keelel on mingi toimingu jaoks operaator olemas, siis performance osas on see üldjuhul kiirem kui ise jalgratta leiutamine
Kommentaarid: 36 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 36
tagasi üles
vaata kasutaja infot saada privaatsõnum
NATAS999
HV Guru

liitunud: 02.04.2007




sõnum 07.09.2017 14:29 vasta tsitaadiga

infidel, milleks 3 muutujat 3 või 5 või 3 ja 5ga jaguvuse jaoks? kui jagub kolmega siis väljundisse, foo, kui jagub 5ga, väljundisse bar, kui jagub mõlemaga, laseb foo ja bar üksteisele selga.
Kommentaarid: 34 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 32
tagasi üles
vaata kasutaja infot saada privaatsõnum
infidel
HV kasutaja
infidel

liitunud: 31.01.2004



Autoriseeritud ID-kaardiga

sõnum 07.09.2017 14:46 vasta tsitaadiga

NATAS999 kirjutas:
infidel, milleks 3 muutujat 3 või 5 või 3 ja 5ga jaguvuse jaoks? kui jagub kolmega siis väljundisse, foo, kui jagub 5ga, väljundisse bar, kui jagub mõlemaga, laseb foo ja bar üksteisele selga.

Ainult selleks, et võimalikult vähe uusi asju oleks ja kõik tegevused oleks lihtsalt mõistetavad (vt postituse viimast lõiku). Ei ole mõtet algaja jaoks asja liiga keeruliseks ajada icon_smile.gif
Kommentaarid: 32 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 31
tagasi üles
vaata kasutaja infot saada privaatsõnum
LKits
HV Guru
LKits

liitunud: 06.09.2007



Autoriseeritud ID-kaardiga

sõnum 07.09.2017 15:11 vasta tsitaadiga

napoleon, jep, performance osas on sul õigus - sinu variant on kiireim. Tänud - olin selle meetodi unustanud icon_smile.gif

https://jsfiddle.net/612y2yw3/

_________________
itLahendused - Arvutite remont ja hooldus Rakveres, veebilehtede loomine, soodne veebimajutus. Võta ühendust! Tel: +372 555 268 97 ja e-post info@itlahendused.ee
Kommentaarid: 9 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 9
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  Andke nõu algajale
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.