banjalukaforum.com

Dobrodošli na banjalukaforum.com
Danas je 23 Maj 2024, 20:29

Sva vremena su u UTC [ DST ]




Započni novu temu Odgovori na temu  [ 55 Posta ]  Idi na stranicu 1, 2, 3  Sledeća
Autoru Poruka
PostPoslato: 09 Okt 2011, 15:07 
OffLine
Bič božji
Bič božji
Korisnikov avatar

Pridružio se: 05 Jun 2002, 08:33
Postovi: 10481
Lokacija: Banja Luka
Treba mi pomoc oko zadatka koji treba da mi izracuna poklapanje kazaljki unutar 12 sati. Mislio sam da sam ga odradio, ali vidim da ima problema sa racunanjem ili tacnije sa konverzijom, pa bi mi trebala pomoc ili prijedlog kako da to rijesim na drugaciji nacin.

Kod:
Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim interval, poklapanje As Double
        Dim brojac As Integer
        interval = 12.0 / 11.0
        For brojac = 1 To 11

            poklapanje = interval * brojac
            Dim h, m, s, st As Integer
            h = poklapanje
            m = (poklapanje * 60) Mod 60
            s = (poklapanje * 3600) Mod 60
            st = (poklapanje * 360000) Mod 100
            lstData.Items.Add(Str(h) & ":" & Str(m) & ":" & Str(s) & ":" & Str(st))

        Next

    End Sub
End Class

_________________
Batmobil ti inace ima 5.7 litarski chevroletov V8 motor, koji ti ima ubrzanje do 100 za 5 sekundi. Ako uzmes u obzir da batmobil tezi preko dvije tone,to ti je zbilja fenomenalno. Al` dobro,dosta o mom autu, pricajmo malo o meni!


Vrh
 Profil  
 
PostPoslato: 09 Okt 2011, 16:31 
OffLine
Veteran
Veteran

Pridružio se: 21 Okt 2007, 17:13
Postovi: 1266
Lokacija: Бања Лука
Ne znam kako tacno glasi zadatak evo ja sam nesto napravio ali u Javi. Moja logika ide ovako:
Na mjestima gdje se kazeljke poklapaju:

0:00:00
1:05:05
2:11:11
3:16:16
4:22:22
5:27:27
6:32:32
7:38:38
8:43:43
9:49:49
10:54:54
-----------Ovo sam dobio mjerenjem na satu :)-------------------------------

Kad se pogleda bolje uvidi se niz.
0:00:00
--------+5 min
1:05:05
--------+6 min
2:11:11
--------+5 min
3:16:16
--------+6 min
4:22:22
--------+5 min
5:27:27
--------+6 min
6:32:32
--------+5 min
7:38:38
--------+6 min
8:43:43
--------+5 min
9:49:49
--------+6 min
10:54:54
--------+5 min
11:59:59~0:00:00

Pa moj algoritam ide ovako. :) Nadam se da sam malo pomogao.

Kod:
public class poklapanje {

   private
      int h,m,s;
   public poklapanje(int hh, int mm, int ss){
      h= konvert(hh);
      m=mm;
      s=ss;
      daLiSuPoklopljene();
      
   }
   public int konvert(int hh){
      if (hh>12){
         return  hh%12;
      }
      return hh;
   }
   public void daLiSuPoklopljene(){
      int br=0;
      
      for(int i=0; i<h;i++){
         
         if(i%2==0){
            br+=5;
         }
         else{
            br+=6;
         }
      }
      
      if (br == m && br==s)
         System.out.print("Kazeljke su se poklopile");
   }   
      
      
   
   public static void main(String[] args) {
      poklapanje a = new poklapanje(0,0,0);
      
   }

}

_________________
Ја не гледам да ли ћу ићи у битку по томе колика је сила која ми прети
него по томе колику Светињу браним!!!

Udruzenje linux korisnika Republike Srpske


Vrh
 Profil  
 
PostPoslato: 09 Okt 2011, 16:39 
OffLine
Stara kuka
Stara kuka
Korisnikov avatar

Pridružio se: 19 Jul 2009, 11:23
Postovi: 7205
Lokacija: Under a total blackened sky
AlexM je napisao:
Ne znam kako tacno glasi zadatak evo ja sam nesto napravio ali u Javi. Moja logika ide ovako:
Na mjestima gdje se kazeljke poklapaju:

0:00:00
1:05:05
2:11:11
3:16:16
4:22:22
5:27:27
6:32:32
7:38:38
8:43:43
9:49:49
10:54:54
-----------Ovo sam dobio mjerenjem na satu :)-------------------------------



Ako hoćeš baš tačna vremena poklapanja kazalji iskoristi čistu fiziku. Nekidan sam se malo igrao sa ovim, u fizici, ne u programiranju i dobio da je vrijeme prvog poklapanja 01:05:20 illi koji sekund manje, ne sjećam se tačno.

_________________
To be a Sith is to taste freedom and to know victory...


Vrh
 Profil  
 
PostPoslato: 09 Okt 2011, 16:43 
OffLine
Veteran
Veteran

Pridružio se: 21 Okt 2007, 17:13
Postovi: 1266
Lokacija: Бања Лука
Po kojoj formuli se dobijaju poklapanja? Ne znam fiziku pa bi mozda kolegi forumasu dobro doslo a i ja da naucim nesto novo :).

_________________
Ја не гледам да ли ћу ићи у битку по томе колика је сила која ми прети
него по томе колику Светињу браним!!!

Udruzenje linux korisnika Republike Srpske


Poslednji put menjao AlexM dana 09 Okt 2011, 16:46, izmenjena samo jedanput

Vrh
 Profil  
 
PostPoslato: 09 Okt 2011, 16:43 
OffLine
Samo jedan iznad mene
Samo jedan iznad mene
Korisnikov avatar

Pridružio se: 03 Jan 2007, 16:38
Postovi: 23504
Prvo poklapanje je u 00:00:00 :)

_________________
Rad je od čovjeka napravio roba, neradu smo odani sve do groba.


Vrh
 Profil  
 
PostPoslato: 09 Okt 2011, 16:46 
OffLine
Bič božji
Bič božji
Korisnikov avatar

Pridružio se: 05 Jun 2002, 08:33
Postovi: 10481
Lokacija: Banja Luka
prvo poklapanje bi trebalo biti 1:05:27:27 (0:0:0:0 je pocetno stanje, pa ne moze da se racuna kao 1. polapanje)
s obzirom da u toku 12 sati ima 11 poklapanja, interval se dobijal prostim dijeljenjem 12/11 cime se dobije 1.0909090...
Problem mi je samo u konverziji toga u format koji bi licio na vrijeme.

_________________
Batmobil ti inace ima 5.7 litarski chevroletov V8 motor, koji ti ima ubrzanje do 100 za 5 sekundi. Ako uzmes u obzir da batmobil tezi preko dvije tone,to ti je zbilja fenomenalno. Al` dobro,dosta o mom autu, pricajmo malo o meni!


Vrh
 Profil  
 
PostPoslato: 09 Okt 2011, 16:54 
OffLine
Stara kuka
Stara kuka
Korisnikov avatar

Pridružio se: 19 Jul 2009, 11:23
Postovi: 7205
Lokacija: Under a total blackened sky
AlexM je napisao:
Po kojoj formuli se dobijaju poklapanja? Ne znam fiziku pa bi mozda kolegi forumasu dobro doslo a i ja da naucim nesto novo :).


Uzmeš ugaonu brzinu satne kazalje u 12 sati, brzina je 2*pi/12h i brzinu minutne, 2*pi/1h. Iskoristiš formulu x=x0+v0*t+1/2*a*t^2 za obe kazaljke, sa tim da će minutna preći još jedna puni krug, znači formula za minutnu je x=x0+v0*t+1/2*a*t^2+2*pi, izjednačiš obe formule i nađeš vrijeme potrebno da se poklope, t. Ubrzanja nema, x0 i drugo x0 su 0. Valjda je jasno, nemam naviku da pišem matematiku i fiziku po forumima... :lol:

_________________
To be a Sith is to taste freedom and to know victory...


Vrh
 Profil  
 
PostPoslato: 09 Okt 2011, 17:00 
OffLine
Veteran
Veteran

Pridružio se: 21 Okt 2007, 17:13
Postovi: 1266
Lokacija: Бања Лука
Aha. Pa onda ti je priblizno poklapanje u intervalu svakih 3927.27 sekundi. :lol:

_________________
Ја не гледам да ли ћу ићи у битку по томе колика је сила која ми прети
него по томе колику Светињу браним!!!

Udruzenje linux korisnika Republike Srpske


Vrh
 Profil  
 
PostPoslato: 09 Okt 2011, 17:03 
OffLine
Bič božji
Bič božji
Korisnikov avatar

Pridružio se: 05 Jun 2002, 08:33
Postovi: 10481
Lokacija: Banja Luka
AlexM je napisao:
Aha. Pa onda ti je priblizno poklapanje u intervalu svakih 3927.27 sekundi. :lol:

hajd` uslovno receno mogu i tako predstaviti, ali me konverzija zeza, jer kako sam kod postavio umjesto poklapanja u 6:xx:xx:xx, napise mi da je poklapanje u 7:xx:xx:xx :(

_________________
Batmobil ti inace ima 5.7 litarski chevroletov V8 motor, koji ti ima ubrzanje do 100 za 5 sekundi. Ako uzmes u obzir da batmobil tezi preko dvije tone,to ti je zbilja fenomenalno. Al` dobro,dosta o mom autu, pricajmo malo o meni!


Vrh
 Profil  
 
PostPoslato: 09 Okt 2011, 17:09 
OffLine
Samo jedan iznad mene
Samo jedan iznad mene
Korisnikov avatar

Pridružio se: 03 Jan 2007, 16:38
Postovi: 23504
Možeš li ovakav algoritam u kod prebaciti.

Na satu imaš 60 različitih pozicija koje mogu zauzeti kazaljke za sekundu, minutu i sat.

Četiri promjenljive.
b -brojač
s - sekunde
m - minute
h - sati

s inkrementiraš do 60, i kada dostigne tu vrijednost, inkrementiraš m, a s vraćaš na početak
b stalno inkrementiraš sa s bez vraćanja na 0
petlju vrtiš dok m ne dostigne vrijednost 12 i tek tada inkrementiraš h
naredni put h inkrementiraš za m = 24 .itd svakih +12
ispituješ da li su neke od vrijednosti s, m i h jednake.
kada su jednake onda vriednost od b predstavlja predstavalj sekundu u kojoj se desilo poklapanje posmatranih kazaljki
nije problem te sekunde pretvoriti u tačno vrijeme :)
kada h dostigne 60 završavaš program

Eto grubog opšteg rješenja iz glave za sva poklapanja kazaljki. :)

_________________
Rad je od čovjeka napravio roba, neradu smo odani sve do groba.


Poslednji put menjao danijell dana 09 Okt 2011, 17:10, izmenjena samo jedanput

Vrh
 Profil  
 
PostPoslato: 09 Okt 2011, 17:10 
OffLine
Stara kuka
Stara kuka
Korisnikov avatar

Pridružio se: 19 Jul 2009, 11:23
Postovi: 7205
Lokacija: Under a total blackened sky
AlexM je napisao:
Aha. Pa onda ti je priblizno poklapanje u intervalu svakih 3927.27 sekundi. :lol:


3912 kod mene ali to je to. Ovim izračunavanjem dobiješ najpreciznije poklapanje samo što nemaš koristi od toga. BSE, jesi uračunao ti da minutara pređe krug više? Nešto mi smrdi da je to tvoj problem ako ti izbacuje sat više...

_________________
To be a Sith is to taste freedom and to know victory...


Vrh
 Profil  
 
PostPoslato: 09 Okt 2011, 17:15 
OffLine
Bič božji
Bič božji
Korisnikov avatar

Pridružio se: 05 Jun 2002, 08:33
Postovi: 10481
Lokacija: Banja Luka
danijell je napisao:
Možeš li ovakav algoritam u kod prebaciti.

Na satu imaš 60 različitih pozicija koje mogu zauzeti kazaljke za sekundu, minutu i sat.

Četiri promjenljive.
b -brojač
s - sekunde
m - minute
h - sati

s inkrementiraš do 60, i kada dostigne tu vrijednost, inkrementiraš m, a s vraćaš na početak
b stalno inkrementiraš sa s bez vraćanja na 0
petlju vrtiš dok m ne dostigne vrijednost 12 i tek tada inkrementiraš h
naredni put h inkrementiraš za m = 24 .itd svakih +12
ispituješ da li su neke od vrijednosti s, m i h jednake.
kada su jednake onda vriednost od b predstavlja predstavalj sekundu u kojoj se desilo poklapanje posmatranih kazaljki
nije problem te sekunde pretvoriti u tačno vrijeme :)

Eto grubog opšteg rješenja iz glave za sva poklapanja kazaljki. :)

iskreno receno, malo si me bacio u konfuziju sa ovim :)


Panzer je napisao:
AlexM je napisao:
Aha. Pa onda ti je priblizno poklapanje u intervalu svakih 3927.27 sekundi. :lol:


3912 kod mene ali to je to. Ovim izračunavanjem dobiješ najpreciznije poklapanje samo što nemaš koristi od toga. BSE, jesi uračunao ti da minutara pređe krug više? Nešto mi smrdi da je to tvoj problem ako ti izbacuje sat više...

nisam uracunao, jer mi je rezultat sa pokretnim zarezom dobar, samo me kod konverzije zezne i izracuna pogresno

_________________
Batmobil ti inace ima 5.7 litarski chevroletov V8 motor, koji ti ima ubrzanje do 100 za 5 sekundi. Ako uzmes u obzir da batmobil tezi preko dvije tone,to ti je zbilja fenomenalno. Al` dobro,dosta o mom autu, pricajmo malo o meni!


Vrh
 Profil  
 
PostPoslato: 09 Okt 2011, 17:28 
OffLine
Samo jedan iznad mene
Samo jedan iznad mene
Korisnikov avatar

Pridružio se: 03 Jan 2007, 16:38
Postovi: 23504
Ma razmišljaj asemblerski i diskretno, biće ti lakše :)
Sve kazaljke mogu biti samo na 60 pozicija. Između dva sata ima pet pozicija za veliku kazaljku.
60/5 =12
znači svakih 12 minuta velika kazaljka mijenja poziciju
itd ... :)

_________________
Rad je od čovjeka napravio roba, neradu smo odani sve do groba.


Vrh
 Profil  
 
PostPoslato: 09 Okt 2011, 17:31 
OffLine
Stara kuka
Stara kuka
Korisnikov avatar

Pridružio se: 19 Jul 2009, 11:23
Postovi: 7205
Lokacija: Under a total blackened sky
danijell je napisao:
znači svakih 12 minuta velika kazaljka mijenja poziciju
itd ... :)


Velika kazaljka bi trebalo da konstantno mijenja poziciju, ne možeš reći da je u jednom momentu negdje i hop, poslije 12 minuta prebaci se odjednom.

EDIT: Ustvari, nemojte slušati mene, ja zadatak posmatram iz ugla fizike. Samo vi udrite gdje ste stali...

_________________
To be a Sith is to taste freedom and to know victory...


Vrh
 Profil  
 
PostPoslato: 09 Okt 2011, 17:34 
OffLine
Veteran
Veteran

Pridružio se: 21 Okt 2007, 17:13
Postovi: 1266
Lokacija: Бања Лука
Uzeo sam referencu od Panzer-a ipak mislim da je tacnija :).
BSE mislim da ti treba samo ovo.

Kod:
public void poklapanje(){
      int rez=0;
      
      for (int i=1; i<12;i++){
         rez=3912*i;
         int h= rez/3600;
         int m= (rez%3600)/60;
         int s=((rez%3600)%60);
         System.out.print(h+":"+m+":"+s+"\n");
      }
      

      
   }

Napomena ovo je kod iz Jave.

_________________
Ја не гледам да ли ћу ићи у битку по томе колика је сила која ми прети
него по томе колику Светињу браним!!!

Udruzenje linux korisnika Republike Srpske


Vrh
 Profil  
 
PostPoslato: 09 Okt 2011, 17:45 
OffLine
Bič božji
Bič božji
Korisnikov avatar

Pridružio se: 05 Jun 2002, 08:33
Postovi: 10481
Lokacija: Banja Luka
danijell je napisao:
Ma razmišljaj asemblerski i diskretno, biće ti lakše :)
Sve kazaljke mogu biti samo na 60 pozicija. Između dva sata ima pet pozicija za veliku kazaljku.
60/5 =12
znači svakih 12 minuta velika kazaljka mijenja poziciju
itd ... :)

uh samo da ti napomenem da sam zamrzio programiranje kad sam imao Fortran i ni profesor ni asistent nisu znali da mi objasne kako je moguce da je i = i + 1 (obicni brojac) kad to nema nikakve logike i nije matematicki ispravno (dobio sam odgovor "to je tako")
sad mi tek neke stvari postaju jasnije, mada se jos uvijek lovim sa dosta stvari jer sam tek na samom pocetku
generalno, moram profesoru da prikazem kako sam dosao do poklapanja kazaljki, a sam je naglasio da se kazaljke poklapaju 11 puta za 12 sati, pa sam krenuo tim putem, jer ne znam kako bih radio tvoj metod u kojem nema stotinki, a bez njih mislim da je na 12 sati gubitak oko 3 minute, sto nikako ne donosi tacan rezultat

_________________
Batmobil ti inace ima 5.7 litarski chevroletov V8 motor, koji ti ima ubrzanje do 100 za 5 sekundi. Ako uzmes u obzir da batmobil tezi preko dvije tone,to ti je zbilja fenomenalno. Al` dobro,dosta o mom autu, pricajmo malo o meni!


Vrh
 Profil  
 
PostPoslato: 09 Okt 2011, 17:49 
OffLine
Samo jedan iznad mene
Samo jedan iznad mene
Korisnikov avatar

Pridružio se: 03 Jan 2007, 16:38
Postovi: 23504
Panzer je napisao:
danijell je napisao:
znači svakih 12 minuta velika kazaljka mijenja poziciju
itd ... :)


Velika kazaljka bi trebalo da konstantno mijenja poziciju, ne možeš reći da je u jednom momentu negdje i hop, poslije 12 minuta prebaci se odjednom.

EDIT: Ustvari, nemojte slušati mene, ja zadatak posmatram iz ugla fizike. Samo vi udrite gdje ste stali...


Pa iz ugla fizike i jeste tačno. Mogle bi se posmatrati sve kazaljke da se kreću kontinualno. Ali da bi izbjegao problem sa vrijednsotima koje nisu cijele vrijednosti sekunde odradiš diskretizaciju i to je to. :)
Može se u moj algoritam ubaciti i stotinke i eto preciznosti reda stotinke.
Ja jednostavno volim da zakomplikujem :)

@BSE
Dodavanjem stotinki samo dobijaš na preciznosti proračuna tačnog vremena, ali nećeš bez njih izgubiti minute. U krajnjoj poziciji imaš za s i m i h vrijednost 60. A b ima vrijednost 43200, što je tačno 12 sati.

_________________
Rad je od čovjeka napravio roba, neradu smo odani sve do groba.


Vrh
 Profil  
 
PostPoslato: 09 Okt 2011, 18:01 
OffLine
Stara kuka
Stara kuka
Korisnikov avatar

Pridružio se: 03 Maj 2008, 10:50
Postovi: 6643
Mislim da je kljuc rijesenja je u poznavanju odnosa relativnih ugaonih brzina kazaljki. Npr. minutara ide 12x brže od satare :D , sekundara 60x brze od minutare. Odredis nakon koliko vremena se sretnu prvi put, i podijelis 12 sa tim brojem, mislim da je to rijesenje.

_________________
You smug-faced crowds with kindling eye
Who cheer when soldier lads march by,
Sneak home and pray you'll never know
The hell where youth and laughter go.


Vrh
 Profil  
 
PostPoslato: 09 Okt 2011, 18:08 
OffLine
Veteran
Veteran

Pridružio se: 21 Okt 2007, 17:13
Postovi: 1266
Lokacija: Бања Лука
Evo i sa stotinkama :)

Kod:
public void daLiSuPoklopljene(){
      double rez;
      
      for (int i=1; i<12;i++){
          rez=(12.0/11.0)*360000*i;
         
         h= (int)rez/360000;
         m= (int)(rez%360000)/6000;
         s=(int)((rez%360000)%6000)/100;
         ss=(int)((rez%360000)%6000)%100;
         System.out.print("Poklapanje "+i+" "+h+":"+m+":"+s+":"+ss+"---"+rez+"\n");
      }
      
      
   }   


Dobijeni rezultat:

Kod:
Poklapanje 1 1:5:27:27
Poklapanje 2 2:10:54:54
Poklapanje 3 3:16:21:81
Poklapanje 4 4:21:49:9
Poklapanje 5 5:27:16:36
Poklapanje 6 6:32:43:63
Poklapanje 7 7:38:10:90
Poklapanje 8 8:43:38:18
Poklapanje 9 9:49:5:45
Poklapanje 10 10:54:32:72
Poklapanje 11 12:0:0:0


_________________
Ја не гледам да ли ћу ићи у битку по томе колика је сила која ми прети
него по томе колику Светињу браним!!!

Udruzenje linux korisnika Republike Srpske


Vrh
 Profil  
 
PostPoslato: 09 Okt 2011, 18:15 
OffLine
Bič božji
Bič božji
Korisnikov avatar

Pridružio se: 05 Jun 2002, 08:33
Postovi: 10481
Lokacija: Banja Luka
auh trebace mi sad vremena da prvo sazmem sta mi pricate, a onda jos i da to pokusam pretociti u kod :lol:
probacu ovo Alexovo :)
hvala svima, puno ste mi pomogli

_________________
Batmobil ti inace ima 5.7 litarski chevroletov V8 motor, koji ti ima ubrzanje do 100 za 5 sekundi. Ako uzmes u obzir da batmobil tezi preko dvije tone,to ti je zbilja fenomenalno. Al` dobro,dosta o mom autu, pricajmo malo o meni!


Vrh
 Profil  
 
Prikaži postove u poslednjih:  Poređaj po  
Započni novu temu Odgovori na temu  [ 55 Posta ]  Idi na stranicu 1, 2, 3  Sledeća

Sva vremena su u UTC [ DST ]


Ko je OnLine

Korisnici koji su trenutno na forumu: Nema registrovanih korisnika i 1 gost


Ne možete postavljati nove teme u ovom forumu
Ne možete odgovarati na teme u ovom forumu
Ne možete monjati vaše postove u ovom forumu
Ne možete brisati vaše postove u ovom forumu
Ne možete slati prikačene fajlove u ovom forumu

Pronađi:
Idi na:  
Powered by phpBB® Forum Software © phpBB Group
Hosting BitLab
Prevod - www.CyberCom.rs