Programiranje - pomoć pri rešavanju školskih zadataka

Morena_007

Aktivan član
Poruka
1.585
Znam da postoji pdf Programiranje, ali tamošnji programeri su alergični na školske primere i zadatke iz programiranja,
tako da ja imam želju da na ovom prirodnom podforumu, jer se informatika može svrstati među prirodne nauke, na ovoj temi, postavljamo pitanja i nejasnoće u vezi gore navedenog.

(Paganko, ako postoji neki propust - interveniši :lol:)

Ja počinjem! Pu, prva... :mrgreen:

Meni nije jasan ovaj zadatak.

Napisati program kojim se trocifren broj razdvaja na cifre.

Mi smo u školi koristili ovaj zapis koda, ali ja mislim da je on netačan jer se komanda mod uzima u pogrešnom svojstvu. U školi mi je objašnjeno da amodb predstavlja ostatak pri deljenju kao 5mod2 je 5 (jer je 5÷2=2,5). Tobože se gleda decimalni zapis broja, a u knjizi piše da je 5mod2=1. Potpuno sam zbunjena.

Rešenje zadatka u svesci je:

Kod:
program ime;
var n,s,d,j:integer;
begin
  writeln('Unesi trocifren broj');
  readln(n);
  s:=ndiv100;
  d:=(nmod100)div10;
  j:=nmod10;
  writeln(s, d, j);
  readln;
end.

Kodirala sam ovo rešenje zadatka na Turbo Pascalu i ono ne funkcioniše. :rida:
 
Znam da postoji pdf Programiranje, ali tamošnji programeri su alergični na školske primere i zadatke iz programiranja,
tako da ja imam želju da na ovom prirodnom podforumu, jer se informatika može svrstati među prirodne nauke, na ovoj temi, postavljamo pitanja i nejasnoće u vezi gore navedenog.

(Paganko, ako postoji neki propust - interveniši :lol:)

Ja počinjem! Pu, prva... :mrgreen:

Meni nije jasan ovaj zadatak.

Napisati program kojim se trocifren broj razdvaja na cifre.

Mi smo u školi koristili ovaj zapis koda, ali ja mislim da je on netačan jer se komanda mod uzima u pogrešnom svojstvu. U školi mi je objašnjeno da amodb predstavlja ostatak pri deljenju kao 5mod2 je 5 (jer je 5÷2=2,5). Tobože se gleda decimalni zapis broja, a u knjizi piše da je 5mod2=1. Potpuno sam zbunjena.

Rešenje zadatka u svesci je:

Kod:
program ime;
var n,s,d,j:integer;
begin
  writeln('Unesi trocifren broj');
  readln(n);
  s:=ndiv100;
  d:=(nmod100)div10;
  j:=nmod10;
  writeln(s, d, j);
  readln;
end.

Kodirala sam ovo rešenje zadatka na Turbo Pascalu i ono ne funkcioniše. :rida:

Vako. mod je celobrojni ostatak pri celobrojnom deljenju. 5/2 je 2 + ostatak 1, pa je 5 mod 2 = 1. Na žalost, ja se pascal-a gotovo i ne sećam, jer am se davno prebacio na C porodicu jezika. U c-u bi ti bilo svejedno da li kucaš razmake ili ne, to radi pa radi, jer ih kompajler ignoriše. Inače operator deljenja po modulu u C-u je znak %.

To je prva stvar. Druga stvar je da različiti kompajleri različito tumače pojedine kodne zapise pa rezultat bude drugačiji. Nekad isti kod radi sa jednim kompajlerom, a sa drugim neće ni da krene. Imao sam velikih poblema prošle godine kad sam programirao jednu poveću neuronsku mrežu. Imala je for petlju koja se izvršava bukvalno 10-15 minuta, a rezultat obuke mreže je bio drugačiji svaki put kad sam promenio kompajler. Tako da nemoj da te čudi ako ne radi a kod je ispravan.

Treća stvar je da profesori u školama obično tri čuke nemaju sa programiranjem. Nije amodb, nego a mod b. Samo ponavljaju ko papagaji ono što su nabubačili. Ako znaju da programiraju, onda ne rade u školi, već rade negde za ozbiljne pare.

I četvrto, ne bih znao šta da radim sa temom. Zapravo, informatika i programiranje spadaju u tehničke nauke, pa je temi tamo i mesto ako izuzmemo pdf programiranje. Verovatno ću je premestiti tamo narednih dana kad pretresem pdf Tehničke Nauke jer tamo ima dosta stvari za uraditi.
 
...I četvrto, ne bih znao šta da radim sa temom. Zapravo, informatika i programiranje spadaju u tehničke nauke, pa je temi tamo i mesto ako izuzmemo pdf programiranje. Verovatno ću je premestiti tamo narednih dana kad pretresem pdf Tehničke Nauke jer tamo ima dosta stvari za uraditi.

И ја сам мишљења да тема програмирање није за овај подфорум. Прво, програмирање заиста не спада у природне науке, а друго, постоји посебан подфорум за програмирање, и очекује се да ће питања у вези програмирања тамо бити брже одговорена.

Стога подржавам премештање теме.
 
Može li neko da mi pomogne oko ovih zadataka?

1. Napisati program kojim se izbacuje cifra desetica u prirodnom broju X.

U rešenju piše ( x div 100) * 10 + x mod 10 , ali ne razumem zašto je tako???!!!! :think::dash:
Čak i kad uzmem neki broj da proverim ovo njihovo rešenje ne ispada dobro.

2. Ako sat pokazuje tačno X sati, napisati program koji određuje posle koliko minuta će se prvi put poklopiti velika i mala kazaljka.

Rešenje kaže X * 360/12 + (360/12) * (t/60) = 360 * t/60 => t = 60 * X/11
Ovde mi tek ništa nije jasno. :eek: Odakle 360?!

Može li neko malo da mi razjasni sve ovo.....:rtfm:
 
Može li neko da mi pomogne oko ovih zadataka?

1. Napisati program kojim se izbacuje cifra desetica u prirodnom broju X.

U rešenju piše ( x div 100) * 10 + x mod 10 , ali ne razumem zašto je tako???!!!! :think::dash:
Čak i kad uzmem neki broj da proverim ovo njihovo rešenje ne ispada dobro.

2. Ako sat pokazuje tačno X sati, napisati program koji određuje posle koliko minuta će se prvi put poklopiti velika i mala kazaljka.

Rešenje kaže X * 360/12 + (360/12) * (t/60) = 360 * t/60 => t = 60 * X/11
Ovde mi tek ništa nije jasno. :eek: Odakle 360?!

Može li neko malo da mi razjasni sve ovo.....:rtfm:

1) Ovo moje rešenje je drugačije od tog koje si ponudio, ali radi. Proverila sam. Samo pokušaj da
uzmeš neki (bilo koji broj) i pratiš kodovske instrukcije na slici zajedno sa tim zamišljenim brojem.

2m4c5eq.jpg


2) 360 predstavlja 360 stepeni.
 
Него, ја примећујем да се дати примери баве једном цифром, а оно црвено тражи све цифре.

На моју срећу током образовања ме је заобишао паскал, па ћу да говорим у C-у. :)

Функција која цифре исписује уназад би ишла овако:
Kod:
void separateint(int val)
{
  do {
    printf("%d\n", val % 10);
    val /= 10;
  } while(val);
}

Функција која цифре исписује почев од оне са највећом тежином може да има више имплементација. Мени се свиђа ова рекурзивна, јер је кратка и сасвим довољна за опсег int.

Kod:
void separateintrec(int val)
{
  int z = val % 10;
  val /= 10;
  if(val)
  { separateintrec(val); }
  printf("%d\n", z);
}
То ради како треба за позитивне бројеве. Од негативних може да се узме апсолутна вредност.
 
Mišo, pa to je C sintaksa :lol:

Zar ne treba njima PASCAL?

E, nego meni treba nešto što će da implementira IIR filter:


Ali u celobrojnoj aritmetici, isključivo ;)


Да ли ти МАТЛАБ врши посао? Иди на њихову file exchange страницу, тамо можеш наћи гомилу развијених IIR модула, ваљда ћеш наћи нешто погодно и за тебе.

http://www.mathworks.co.uk/matlabcentral/fileexchange/?term=iir+filter
 
Može li neko da mi pomogne oko ovih zadataka?

1. Napisati program kojim se izbacuje cifra desetica u prirodnom broju X.

U rešenju piše ( x div 100) * 10 + x mod 10 , ali ne razumem zašto je tako???!!!! :think::dash:
Čak i kad uzmem neki broj da proverim ovo njihovo rešenje ne ispada dobro.

Ne, ovo rešenje svakako nije dobro. Cifru desetica možeš dobiti i logikom (x mod 100) div 10. Naime x mod 100 daje ostatak deljenja sa 100, odnosno zadnje dve cifre. Celobrojnim deljenjem tako dobijenog dvocifrenog broja lako se dobija cifra destica.
 
Pozdrav,ljudi moze li neko da mi pomogne u resenju ovog zadiatka...bio bih vam zahvalan....
Нека је дата целобројна матрица a[5x5]. Напиши програм којим се формирају чланови те матрице функцијом Random(80). Прикажи формирану матрицу. Позови процедуру Racun у којој се израчунава број реда и колоне у којим се налази њен највећи члан. Прикажи реузаултат у облику:

"Najveci clan je: __ i nalazi se u redu __ i koloni ".
 
И ја сам мишљења да тема програмирање није за овај подфорум. Прво, програмирање заиста не спада у природне науке, а друго, постоји посебан подфорум за програмирање, и очекује се да ће питања у вези програмирања тамо бити брже одговорена.

Стога подржавам премештање теме.

S obzirom na to da se i programiranje katkad koristi u prirodnim naukama mozda ne bi bilo lose da ostane ovde. . . Jer onda bi i ljudi sa problemima u koriscenju mathematice, MatLaba ili tako nekog drugog alata mogli da navrnu i da pitaju one koji ih mozda i koriste ili imaju pristup istim pa im mogu pomoci, nego da odu tamo negde levo i pitaju i onda ih ovi gledaju ko budale o cemu ovaj prica. . .
Pre par godina meni je trebala pomoc oko GNUplot-a, otisao sam na programiranje, pitao i niko ziv nije znao da mi odgovori pa sam na kraju celu pricu zavrsio googlanjem i eksperimentisanjem dok nije proradilo. . .
 
То што је потфорум за програмирање (релативно) пуст, не значи да ова тема тамо не припада. На рачун тога бих могао да упутим и поглед у смеру природњака које програмирање занима а не желе тај форум да оживе и испуне садржајем, ако такви постоје. Оно што знам не говори у прилог томе. Видим на пример да Паганко уме тамо да сврати.

Задаци из математике и физике су овде у реду, јер немамо одвојене потфоруме за њих. Ал` за програмирање имамо. Дакле, или је оваква тема најкориснија тамо, или нам тај потфорум баш и не треба.

Приде да споменем, уложио сам предлог за отварање универзалне теме за задатке у потфоруму програмирање.

Pozdrav,ljudi moze li neko da mi pomogne u resenju ovog zadiatka...bio bih vam zahvalan....
Нека је дата целобројна матрица a[5x5]. Напиши програм којим се формирају чланови те матрице функцијом Random(80). Прикажи формирану матрицу. Позови процедуру Racun у којој се израчунава број реда и колоне у којим се налази њен највећи члан. Прикажи реузаултат у облику:

"Najveci clan je: __ i nalazi se u redu __ i koloni ".
Не знам који је ово језик. У матлабу би ово било тривијално:
Kod:
a = rand(5, 5) * 80

Односно:
Kod:
a = randинт(5, 5, [0, 80])
 
Они који знају се вероватно питају шта ће он овде, пошто је по поставци чисто математички. Требало је да наведеш програмски језик, а и да започнеш нешто, како би помогла читаоцима да уоче какве праксе кодирања су пожељне током формирања одговора. А и теби не би шкодило да покушаш да напишеш нешто...

Иначе...
а) Треба збир брзина пуњења (са знацима +/- узетим у обзир) помножити са бројем сати:

проценат = (p сати * ( базен / x сати + базен / y сати - базен / z сати ) ) / базен * 100%
тј. проценат = 100% * p * (1/x + 1/y - 1/z)

Уколико је резултат негативан, вратити нулу (вода брже отиче него што притиче).
Уколико је већи од 100%, онда одлучи да ли треба приказати колико би се таквих базена напунило расположивом водом, или пак бројку треба ограничити на 100%, пошто само један базен може да се напуни.

б) Треба један цели базен (као меру запремине) поделити брзином пуњења базена, који је збир брзина пуњења (опет са предзнацима +/-):

време = 1 базен / (базен/x сати + базен / y сати - базен / z сати)
време = 1 / (1/x + 1/y - 1/z) сати

Уколико је резултат негативан, вратити +inf (никада се неће напунити).

У оба задатка, пазити да x, y и z буду већи од нуле. Ако би неки од њих били нула, значило би да било који од токова базен може да напуни/испразни моментално.
 
Poslednja izmena:
Treba mi pomoc oko ovog zadatka:
Napisati program koji ce da za poznat broj dana u mesecu i prvi dan u mesecu da stampa koji se dan pada u ponedeljak ,koji u utorak,...
Ja nemam ideju kako se ovo radi te molim ljude koji ovo znaju da mi pomognu!
HVALA UNAPRED!!!:worth:

Ponedeljak pada u ponedeljak, utorak u utorak bla, bla....:D
Hoću reći, pri programiranju/postavljanju zadataka moraš biti JAKO precizan, inače ti se program OSVETI!:dash:
 
Treba mi pomoc oko ovog zadatka:
Napisati program koji ce da za poznat broj dana u mesecu i prvi dan u mesecu da stampa koji se dan pada u ponedeljak ,koji u utorak,...
Ja nemam ideju kako se ovo radi te molim ljude koji ovo znaju da mi pomognu!
HVALA UNAPRED!!!:worth:
Један једноставан начин је да имаш бројач броја дана од неке временске референце. На пример од 1.1.1970. Ако онда знаш који је то био дан (четвртак), можеш простим одузимањем, сабирањем и модулом по 7 да добијеш дан у седмици за сваки дан након тог датума.
 

Back
Top