» »

programiranje krožek(pomoč)

programiranje krožek(pomoč)

jan149slo ::

Živjo.

Prijavljen sem v programerski krožek in smo trenutno pri zankah(while, do while, for), pri C++.

prosil bo, če bi si kdo vzel čas in mi razložil o čem se tuki gre, ker ne razumem( vidim da je na tem forumu veliko ljudi, ki se na to dobro spozna)

zanima me pri while:

naprimer en primer programa:

(
int vsota=0 ---TUKAJ me zanime zakaj je vsota 0?
int stevec=1; ---TUKAJ zakaj je stevec=1?
int stevilo ---kaj je trik v tem stevilu?
while (stevec(je manjsi od)50)
(
vsota=vsota+stevec --- TUKAJ-kako se določijo te operacije, po čem to ugotoviš?
stevec++; --- TUDI tukaj?
cout"Delna vsota je"vsota.endl;
)
cout"Koncna vsota je"vsota.endl;
return 0;
)

Nasplošno pa me zanima, če mi kdo razloži trik v vseh teh zankah, da bi razumel.

Bil bi PRESREČEN, če bi mi kdo to razložil.

HVALA VNAPREJ.

Blinder ::

o jesus :D vsota stevec stevilo so samo imena spremenjlivkk. lahko bi bila tudi a b in c.

vsota = vsota + stevec. to pomeni, da nova vrednost spremenljivke vsota je enaka prejšnja vrednost plus vrednost števca. Torej če je vsota=10 in števec=10, izzraz vsota=vsota+stevec naredi, da dobi vsota vrednost 20.

troll drgač?
99.991% of over-25 population has tried kissing.
If you're one of the 0.009% who hasn't, copy & paste this in your Signature.
Intel i3-12100f gtx 3050 Pismo smo stari v bozjo mater. Recesija generacija

jan149slo ::

ko bi le bil.

naprimer imamo eno nalogo:

Napiši program, ki bo izračunal vsoto zaporedja S= 1 + 1/3 + 1/5 + 1/7 + 1/9 + ... Prvih 10 členov zaporedja. Izpiši delne vsote in končno vsoto.

tega nebi znal rešit.

Blinder ::

Tist stevec++ nevem zakaj vam tako pišejo na začetniškem tečaju. tist ++ pomeni prktično števec=števec+1. pač poveča spremenljivko za 1.
Za tale zaporedje rabiš mal logike. Videt povezavo med 3 5 7 9 ....
99.991% of over-25 population has tried kissing.
If you're one of the 0.009% who hasn't, copy & paste this in your Signature.
Intel i3-12100f gtx 3050 Pismo smo stari v bozjo mater. Recesija generacija

jan149slo ::

aja pa zakaj pa je potem tam:

stevec=1; zakaj ni 2? ali pa 3? tega ne razumem.

pa kak določiš matematične operacije?

hvala.

Torej je stevec pri tej nalogi 2? al kak?

Zgodovina sprememb…

Blinder ::

Ma to je pač kdorkol je to pisal tako določil. Lahko bi bil števec tut 100000.

Števec je na začetku 1, pol pa while (stevec(je manjsi od)50) se povečuje. Nazadnje bo imel vrednost 49.

Za tisto vsoto zaporedja raibš se naučit zanko. Eno tako naprimer while (stevec(je manjsi od)50), ampak če ti potrebuješ prvih 10 členov, boš dal while števec manjši od 10. Ali manjši od 11.
99.991% of over-25 population has tried kissing.
If you're one of the 0.009% who hasn't, copy & paste this in your Signature.
Intel i3-12100f gtx 3050 Pismo smo stari v bozjo mater. Recesija generacija

jan149slo ::

kaj pa, če je naloga:

Napiši program, ki bo izračunal vsoto zaporedja S=1/2 + 2/3 + 3/4 + 4/5 + ... + 19/20. Izpiši delne vsote in končno vsoto.

kaj je potem stevec? 1/2?

Blinder ::

števec je kolikor ga TI nastaviš. Kar te tebe zanima za to zaporedje od 1 do 19 je to, da se bo števec 19 krat povečal(oziroma 18 krat). lahko ima na začetku vrednost 1000 in gre do 1018, lahko kima na začetku vrednost 0 in gre do 18, lahko ima na začetku vrednost -9 in gre do 9...
99.991% of over-25 population has tried kissing.
If you're one of the 0.009% who hasn't, copy & paste this in your Signature.
Intel i3-12100f gtx 3050 Pismo smo stari v bozjo mater. Recesija generacija

jan149slo ::

Kak pa potem nastaviš pod while(pogoj). tiste matematične operacije pa to. npr: stevec++; vsota=vsota+1; kak to ugotoviš kaj je prav za program.

Blinder ::

ja če hočeš da gre od 0 do 10 daš na zečetku
števec = 0;
in potem v pogoj
while(števec < 11)

ter znotraj te while zanke daš še števec++, da se števec poveča vsakič
99.991% of over-25 population has tried kissing.
If you're one of the 0.009% who hasn't, copy & paste this in your Signature.
Intel i3-12100f gtx 3050 Pismo smo stari v bozjo mater. Recesija generacija

Yacked2 ::

Če tega ne zastopil raje nehaj. Pri krožku ste verjetno imeli razlago ane ? Porabi čas za kaj drugega. Niste vsi ljudje za programiranje
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

jan149slo ::

ja finta je da sedaj moram biti do konca leta tam.

če je že tako lahko potem se tudi jaz lahko naučim ane?
hvala blinder, kako pa veš če je vsota 0 ali kaj druga?

WarpedGone ::

Ja, lahko se naučiš ampak ne bo dost prebrat par stavkov al pa 2 minuti študirat in bo kr vse laufalo.

Moj predlog:
1. pozabi na ta krožek, jezik, programiranje in napiši kolikor se da jedrnata in kratka navodila za obutje čevlja, uporabljaš lahko le enostavne in "Nestestavljene" operacije - primi, dvigni, premakni, spusti, vtakni v luknjo, ponovi dvakrat, ponovi trikrat, ponavljaj ... dokler ..., Poskusi navodila namenit nekomu, ki nima pojma kaj dela in ne razume, kakšen je sploh cilj i.e. vse nujno potrebno mora bit vsebovano v navodilih
2. spiši taka navodila še kako pospravit kup knjig na omaro .. zopet enostavne operacije, kar se da točno
3. ponavljaj zgornji pristop za razna domača opravila

Ko ti bo to šlo, boš že znal programirat, le še programski jezik boš mogu zamenjat iz slovenščine v C. Odgovori na vprašanja v prvem postu ti bodo postali povsem jasni.
Zbogom in hvala za vse ribe

b00mer ::

jan149slo

Ignorirej Yacked2, ker je totaln....
Ti lepo geek-ej, karkoli ni jasno vprasej, bomo razlozil .

jan149slo ::

int a;
cout.."Zelis izvedeti kako se obuje cevelj? :)"..endl;
cout.."Ce zelis pritisni katerokoli stevilo"..endl;
cin..a;
cout.."Najprej primes cevelj(pritisni katerokoli crko za nadaljevanje)"..endl;
cin..a;
cout.."Potem vanjga das svojo nogo(pritisni katerokoli crko za nadaljevanje"..endl;
cin..a;
cout.."Nato si cevelj zaveses in storis enako pri drugem :)"..endl;
cin..a;
return 0;
}

To sploh ni težko, težek tudi ni if stavek. Problem mi delajo te zanke(while, do while, for

WarpedGone ::

Zavežeš? Kako se pa to nardi?

Kaj pa pomeni "Enako pri drugem"? A moram kaj ponovit?
Zbogom in hvala za vse ribe

jan149slo ::

 Evo program

Evo program



 Še drugi program

Še drugi program



@WarpedOne

Sej bi znal, samo bi trajalo nekaj časa. Bom potem poskusil.

Zgodovina sprememb…

jan149slo ::

Kot sem že povedal mi probleme delajo zanke(while,do while,for)

WarpedGone ::

Nisi še povedal kake probleme sploh?
Ne veš kaj je to spljoh, ne razumeš čemu služijo, ne razumeš detajlov zakaj točno tako kot je?

Zanka je samo šraufenciger - orodje, s čemer neki dosežeš. Kaj točno moraš nametat vanjo je pa odvisno najprej in samo od tega, kaj bi rad z njo dosegel.
Zbogom in hvala za vse ribe

jan149slo ::

 To kar je na sliki označeno me zanima

To kar je na sliki označeno me zanima



Torej kako nastaviš npr: vsota=vsota+stevec; ali stevec++; kako to ugotoviš?

Zgodovina sprememb…

Mipe ::

Pa to je osnovnošolska matematika!

Kako bi ti seštel prvih 50 števil?

Najprej sešteješ 1 + 2. Vsoti temu prišteješ naslednje število, vse do 50. To lahko narediš na več načinov. Na roko ali pa z zanko, ki se ponovi 50-krat. Najprej pogruntaš postopek, nato pa ga izvedeš v programskem jeziku.

jan149slo ::

Ja samo kaj pa npr:

Napiši program, ki bere realna števila tako dolgo, dokler njihova vsota ne presega vrednosti 10024. Nato izpiše število vpisanih vrednosti.

tony1 ::

Če še niste jemali zaporedij, potem je naloga brezvezna. Poguglaj.

WarpedGone ::

Napiši program, ki bere realna števila tako dolgo, dokler njihova vsota ne presega vrednosti 10024. Nato izpiše število vpisanih vrednosti.


Potrebščine:
- polica, kamor prebereš številko
- polica, kjer hraniš trenutno vsoto
- polica, kjer hraniš število prebranih števil

Začetek:
- polica, kamor boš preberel številko, naj bo prazna
- polica z vsoto prebranih števil, naj bo prazna
- polica s številom prebranih števil, naj bo prazna

Koraki postopka:
1. preberi novo število
2. prebrano število prištej k vsoti prebranih števil
3. povečaj števec prebranih števil
4.1 će je vsota večja od 100024 izpiši števec prebranih števil in končaj
4.2 sicer se vrni na korak 1
Zbogom in hvala za vse ribe

jan149slo ::

 mogoče to? ali kako?

mogoče to? ali kako?

Blinder ::

ja neki podobnega rabiš. kot prvo popravi pogoj, v while daj vsoto in ne števec.
Pol znotraj te zanke rabiš naredit, da prebere število iz khm tipkovnice. in pol narediš vsota = vsota + število. Kjer je tole število to prebrano število iz tipkovnice.
99.991% of over-25 population has tried kissing.
If you're one of the 0.009% who hasn't, copy & paste this in your Signature.
Intel i3-12100f gtx 3050 Pismo smo stari v bozjo mater. Recesija generacija

jan149slo ::

samo kako to ugotoviš kaj more biti pod while-om. Npr vsota=vsota+stevec; kje to vidiš oz. ugotoviš?

Blinder ::

Navodila naloge tako pravijo ane. Prištevaj števila, dokler vsota ni večja od tralala. Si predstavljaš kako to gre?
vpišeš 100, vsota je 100
vpišeš 10, vsota je 110
vpiišeš 25, vsota je 135
....
99.991% of over-25 population has tried kissing.
If you're one of the 0.009% who hasn't, copy & paste this in your Signature.
Intel i3-12100f gtx 3050 Pismo smo stari v bozjo mater. Recesija generacija

jan149slo ::

Kam mi lahko potem rešiš to nalogo prosim. probavam nekaj pa se mi tudi zgodi da je neskončna zanka.

Blinder ::

while( vsota < 10024 )
{
stevilo = tle naredi, da prebere stevilo iz tipkovnice
vsota = vsota + stevilo;
}

pol moraš še izpisat vse prebrane vrednosti. To se spomni kako so ti rekli na tečaju, da shranjuješ prebrana števila. V tabelo verjetno...
99.991% of over-25 population has tried kissing.
If you're one of the 0.009% who hasn't, copy & paste this in your Signature.
Intel i3-12100f gtx 3050 Pismo smo stari v bozjo mater. Recesija generacija

jan149slo ::

Tukaj so še tri naloge, ki jih ne znam in prosim za pomoč.

Zgeneriraj 50 naključnih števil med 1 in 10. Števila izpiši po 15 v vsako vrstico in na koncu ugotovi koliko števil je lihih koliko pa sodih(Do While)!

Tukaj še je podobna naloga(kako se naredi?):

Program naj zgenerira 100 naključnih števil iz intervala od 50 do 500.Števila izpiši po 10 v vsako vrstico.Pravtako izpiši koliko je deljivih z 2 ali s 4!(Do while)

in še zadnja:
Napiši program, ki bo izračunal frekvenco pojavitev posameznih ocen dijakov. Ocena se vnese kot število med 1 in 5. Število 0 zaključi vnos ocen(switch-while):

To sem prepisal iz zvezka vendar mi program ne deluje:

 program

program

Yacked2 ::

Uporabi for ter while zanko
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

jan149slo ::

ja prva dva programa morata biti v do-while, zadnji pa v switch-while.

Vesoljc ::

jan149slo je izjavil:

Tukaj so še tri naloge, ki jih ne znam in prosim za pomoč.

Zgeneriraj 50 naključnih števil med 1 in 10. Števila izpiši po 15 v vsako vrstico in na koncu ugotovi koliko števil je lihih koliko pa sodih(Do While)!

Tukaj še je podobna naloga(kako se naredi?):

Program naj zgenerira 100 naključnih števil iz intervala od 50 do 500.Števila izpiši po 10 v vsako vrstico.Pravtako izpiši koliko je deljivih z 2 ali s 4!(Do while)

in še zadnja:
Napiši program, ki bo izračunal frekvenco pojavitev posameznih ocen dijakov. Ocena se vnese kot število med 1 in 5. Število 0 zaključi vnos ocen(switch-while):

To sem prepisal iz zvezka vendar mi program ne deluje:

 program

program



sej ti compiler napise napako "st" ni definiran; ti mas gor definirane st1-st5, te variable mors povecevat; za vsako oceno posebaj; case 1: st1++; itd...
Abnormal behavior of abnormal brain makes me normal...

boogie_xlr ::

Veš kako se generira naključna števila?
#include <time.h>

int main ()
{
  srand(time(NULL)); //inicializacija generatorja nakljucnih stevil
  int nakljucno = rand() % 10 + 1; //med 1 in 10
  return 0;
}
Veš kako se uporablja do-while zanka?
int a = 0;
do
{
  a = a + 1;
}
while (a < 10); //zanka se izvede 10-krat
Veš kako preveriš če je število sodo ali liho?
if (a % 2 == 0) // % da ostanek pri deljenju, npr. 7 % 2 vrne 1, 8 % 2 pa vrne 0
{
  //a je sodo
}
else
{
  //a je liho
}
Sedaj samo še logično skupaj sestaviš, malo spremeniš vrednosti in urediš izpise, pa je prva naloga rešena.

jan149slo ::

@boogie xlr

 program

program

jan149slo ::

sem naredil to in mi vedno izpiše, da je to določeno oceno dobilo 41studentov, kar ni prav.

 program

program

black ice ::

Postavi začetne vrednosti VSEH spremenljivk na nič. Potem rešuj naprej.
BTW napiše se default ne defailt.

jan149slo ::

Kaj pa še naloga, kot sem že prej vprašal? Verjetno nekaj podobnega kot tist ta prva:

Program naj zgenerira 100 naključnih števil iz intervala od 50 do 500.Števila izpiši po 10 v vsako vrstico.Pravtako izpiši koliko je deljivih z 2 ali s 4!(Do while)

Sedaj sem ugotovil kako se izračuna vsota zaporedja v while zanki. Ne razumem pa kako v for zanki:
Napiši program, ki bo izračunal vsoto zaporedja S= 1 + 1/2 + 1/4 + 1/6 + 1/8 + ... Prvih 10 členov zaporedja. Izpiši delne vsote in končno vsoto. for

Hvala za pomoč!

Blinder ::

Eno nalogo na enkrat piiši, čene bo zmešnjava.

Rabiš zanko za 100 taktov [:D]
int stevec = 0;
do
{
-    ustvari random število
-    izpiši število
-    pri vsakem desetem številu naredi novo vrstico \n
-    preveri, ali je število deljivo z 2  %2==0
-   povečaj števec, števec ++
}
while ( števec < 100)
99.991% of over-25 population has tried kissing.
If you're one of the 0.009% who hasn't, copy & paste this in your Signature.
Intel i3-12100f gtx 3050 Pismo smo stari v bozjo mater. Recesija generacija

jan149slo ::

mogoče kaj takega?:

 moj program

moj program

Blinder ::

za 50 do 500 je v bistvu 450 intervala. torej daš tisti srand*450 + 50.
i potencialno dvakrat povečaš v posameznem obhodu zanke, kar ni ql. samo enga i++ moraš imet notri.
Pa seveda, če daš, da napiše
""
v bistvu ne naredi ničesar. Če želiš presledek moraš dat
" "
.
99.991% of over-25 population has tried kissing.
If you're one of the 0.009% who hasn't, copy & paste this in your Signature.
Intel i3-12100f gtx 3050 Pismo smo stari v bozjo mater. Recesija generacija

jan149slo ::

 To pa zdaj verjetno bo prav, a ne?

To pa zdaj verjetno bo prav, a ne?



Mi še lahko kdo prosim razloži kako zapišeš vsoto zaporedja "S= 1 + 1/2 + 1/4 + 1/6 + 1/8 + ... Prvih 10 členov zaporedja" v for stavek?

hvala vsem za dozdajšnjo pomoč! :)

Zgodovina sprememb…

  • spremenilo: jan149slo ()

Blinder ::

zgleda prav, čeprav nisi presledka dal vmes!

for ( i=0 to 10)
{
    trenutni člen je 1 deljeno 2*i
    trenutna vsota = trenutna vsota + trenutni člen
}

za prvi člen pa boš moral naredit opsebej, torej if(i==0) {  trenutni člen =1 }
99.991% of over-25 population has tried kissing.
If you're one of the 0.009% who hasn't, copy & paste this in your Signature.
Intel i3-12100f gtx 3050 Pismo smo stari v bozjo mater. Recesija generacija

Marat ::

Jan, dob si to knjigo: Head First Programming (maš tud na torrentih). Že po prvem poglavju ti bo veliko bolj jasno kaj so to zanke.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

rabib vba kodo za shranjevanje v bin (iz excella)

Oddelek: Programiranje
7879 (661) Silikon
»

c napaka .c:4:1: error: expected identifier or '(' before '{' token

Oddelek: Programiranje
141944 (1517) MrStein
»

Pomoč pri sestavi algoritma

Oddelek: Programiranje
369361 (8192) mihy11
»

[C] Vsota števil v polju

Oddelek: Programiranje
51283 (1221) Cvenemir
»

[c++] nek programcek

Oddelek: Programiranje
171676 (1237) black ice

Več podobnih tem