Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
gflegar Forumaš(ica)
Pridružen/a: 12. 10. 2011. (15:03:41) Postovi: (10D)16
Spol:
|
Postano: 23:25 čet, 19. 1. 2012 Naslov: |
|
|
[quote="Zenon"]Super kolega, hvala :D
De te mi samo još objasnite ovu pomoćnu funkciju gore. Koračno :P
:thankyou:
[/quote]
A nista posebno, prebroji znamenke broja [tt]a[/tt] u bazi [tt]base[/tt] (recimo da ih je [tt]n[/tt]) i vrati broj [tex](base)^{n-1}[/tex] iliti [tex](10^{n-1})_{base}[/tex], i to sve ljepo upakirano sa cim manje operacija, bez pomocnih varijabli i sa maksimalnim iskoristavanjem tipa podatka(radi tocno za bilo koji broj koji stane u int)
[quote="Zenon"]
[size=5]Sad namjerno i ja tebi pišem malim slovima, da moraš trošiti vrijeme na gluposti :D Ugl, kad objasniš ovo gore, stiže la pohva :D P.S. Nije mi jasno jer više ni ne razmišljam, muka mi je od programiranja više, želim učiti analizu i linearnu, ali istovremeno ne želim pasti programiranje xD[/size][/quote]
[size=1] Znas onaj mali zeleni smajlic gore kod posta, to rjesava problem malih slova :)[/size]
Zenon (napisa): | Super kolega, hvala
De te mi samo još objasnite ovu pomoćnu funkciju gore. Koračno
|
A nista posebno, prebroji znamenke broja a u bazi base (recimo da ih je n) i vrati broj [tex](base)^{n-1}[/tex] iliti [tex](10^{n-1})_{base}[/tex], i to sve ljepo upakirano sa cim manje operacija, bez pomocnih varijabli i sa maksimalnim iskoristavanjem tipa podatka(radi tocno za bilo koji broj koji stane u int)
Zenon (napisa): |
Sad namjerno i ja tebi pišem malim slovima, da moraš trošiti vrijeme na gluposti Ugl, kad objasniš ovo gore, stiže la pohva P.S. Nije mi jasno jer više ni ne razmišljam, muka mi je od programiranja više, želim učiti analizu i linearnu, ali istovremeno ne želim pasti programiranje xD |
Znas onaj mali zeleni smajlic gore kod posta, to rjesava problem malih slova
|
|
[Vrh] |
|
Zenon Forumaš(ica)
Pridružen/a: 09. 09. 2011. (19:14:43) Postovi: (2B1)16
Sarma: -
Lokacija: [tex]\pm\infty[/tex]
|
Postano: 23:37 čet, 19. 1. 2012 Naslov: |
|
|
[quote="gflegar"]A nista posebno, prebroji znamenke broja [tt]a[/tt] u bazi [tt]base[/tt] (recimo da ih je [tt]n[/tt]) i vrati broj [tex](base)^{n-1}[/tex] iliti [tex](10^{n-1})_{base}[/tex], i to sve ljepo upakirano sa cim manje operacija, bez pomocnih varijabli i sa maksimalnim iskoristavanjem tipa podataka(radi tocno za bilo koji broj koji stane u int)
[/quote]
Aha, pa super. Nisam bio upoznat s takvim algoritmom niti bih do njega došao sam. Možda budem mogao kada budem radio iz interesa, a ne zbog činjenice da je sutra kolokvij :D
:thankyou: :bighug:
[quote="gflegar"][size=1] Znas onaj mali zeleni smajlic gore kod posta, to rjesava problem malih slova :)[/size][/quote]
[size=22]C! Sve si pokvario! :tup: [/size]
gflegar (napisa): | A nista posebno, prebroji znamenke broja a u bazi base (recimo da ih je n) i vrati broj [tex](base)^{n-1}[/tex] iliti [tex](10^{n-1})_{base}[/tex], i to sve ljepo upakirano sa cim manje operacija, bez pomocnih varijabli i sa maksimalnim iskoristavanjem tipa podataka(radi tocno za bilo koji broj koji stane u int)
|
Aha, pa super. Nisam bio upoznat s takvim algoritmom niti bih do njega došao sam. Možda budem mogao kada budem radio iz interesa, a ne zbog činjenice da je sutra kolokvij
gflegar (napisa): | Znas onaj mali zeleni smajlic gore kod posta, to rjesava problem malih slova |
C! Sve si pokvario!
|
|
[Vrh] |
|
gflegar Forumaš(ica)
Pridružen/a: 12. 10. 2011. (15:03:41) Postovi: (10D)16
Spol:
|
|
[Vrh] |
|
Zenon Forumaš(ica)
Pridružen/a: 09. 09. 2011. (19:14:43) Postovi: (2B1)16
Sarma: -
Lokacija: [tex]\pm\infty[/tex]
|
Postano: 0:21 pet, 20. 1. 2012 Naslov: |
|
|
[quote="gflegar"]Samo da zakljucim, pa ce mozda jos nekome ovo biti korisno:
Smisao zadatka je provjeriti da li studenti znaju ovo:
Ako je [tex]x = (a_na_{n-1}\ldots a_0)_b[/tex], onda je:
[dtex]x \div b^k = (a_na_{n-1}\ldots a_k)_b[/dtex]
[dtex]x \mod b^k = (a_{k-1}a_{k-2}\ldots a_0)_b[/dtex][/quote]
Mislio sam preko "praznika" sad ponavljati analizu i linearnu, jer nisam učio na vrijeme, a glupo mi je uči u semestar s rupama iz prvoga, a iz ovoga je očito da ću morati i Prog1 dobro pročešljati :D
Hvala kolega! :bighug:
gflegar (napisa): | Samo da zakljucim, pa ce mozda jos nekome ovo biti korisno:
Smisao zadatka je provjeriti da li studenti znaju ovo:
Ako je [tex]x = (a_na_{n-1}\ldots a_0)_b[/tex], onda je:
[dtex]x \div b^k = (a_na_{n-1}\ldots a_k)_b[/dtex]
[dtex]x \mod b^k = (a_{k-1}a_{k-2}\ldots a_0)_b[/dtex] |
Mislio sam preko "praznika" sad ponavljati analizu i linearnu, jer nisam učio na vrijeme, a glupo mi je uči u semestar s rupama iz prvoga, a iz ovoga je očito da ću morati i Prog1 dobro pročešljati
Hvala kolega!
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 1:32 pet, 20. 1. 2012 Naslov: |
|
|
@linus: Nisam provjeravao tocnost (jer tvrdis da ti je tocno), no mi gledamo radi li program, a ne je li "prekompliciran" (kako bismo uopce stavili kriterij na to?!).
Naravno, sto jednostavnije rjesenje, manja sansa greske.
@linus: Nisam provjeravao tocnost (jer tvrdis da ti je tocno), no mi gledamo radi li program, a ne je li "prekompliciran" (kako bismo uopce stavili kriterij na to?!).
Naravno, sto jednostavnije rjesenje, manja sansa greske.
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
|
|
[Vrh] |
|
linus Forumaš(ica)
Pridružen/a: 20. 11. 2011. (16:59:13) Postovi: (46)16
Lokacija: subnet mask
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
Vishykc Forumaš(ica)
Pridružen/a: 23. 10. 2010. (14:38:08) Postovi: (6A)16
Spol:
Lokacija: Zagreb
|
Postano: 10:49 pet, 20. 1. 2012 Naslov: |
|
|
Molim pomoć oko 2. zadatka a grupe po b): http://degiorgi.math.hr/prog1/kolokviji/p1-kolokvij-1011-2.pdf
rješenje je [code:1]int ab( int jmbagovi[], int bodovi[], int n, int JMBAG )
{
int lo = 0, hi = n-1, mid;
while( lo <= hi )
{
mid = ( lo + hi ) / 2;
if( brojParnihZnamenki( jmbagovi[ mid ] ) == brojParnihZnamenki( JMBAG ) )
{
int i = mid;
while( i >= 0 && brojParnihZnamenki( jmbagovi[ i ] ) == brojParnihZnamenki( JMBAG ) )
{
if( jmbagovi[ i ] == JMBAG )
return bodovi[ i ];
--i;
}
i = mid+1;
while( i < n && brojParnihZnamenki( jmbagovi[ i ] ) == brojParnihZnamenki( JMBAG ) )
{
if( jmbagovi[ i ] == JMBAG )
return bodovi[ i ];
++i;
}
return -1;
}
else if( brojParnihZnamenki( jmbagovi[ mid ] ) < brojParnihZnamenki( JMBAG ) )
lo = mid + 1;
else // brojParnihZnamenki( jmbagovi[ mid ] ) > brojParnihZnamenki( JMBAG )
hi = mid - 1;
}
return -1;
}[/code:1]
Nije mi jasno ovo kaj provjerava while( i >= 0 && brojParnihZnamenki...)
Jel može netko kompletno objasniti cijelu ideju zadatka: posotoji više studenata s istom sumom parnih znam JMBAG-a, i kako onda odrediti pravog?
Molim pomoć oko 2. zadatka a grupe po b): http://degiorgi.math.hr/prog1/kolokviji/p1-kolokvij-1011-2.pdf
rješenje je Kod: | int ab( int jmbagovi[], int bodovi[], int n, int JMBAG )
{
int lo = 0, hi = n-1, mid;
while( lo <= hi )
{
mid = ( lo + hi ) / 2;
if( brojParnihZnamenki( jmbagovi[ mid ] ) == brojParnihZnamenki( JMBAG ) )
{
int i = mid;
while( i >= 0 && brojParnihZnamenki( jmbagovi[ i ] ) == brojParnihZnamenki( JMBAG ) )
{
if( jmbagovi[ i ] == JMBAG )
return bodovi[ i ];
--i;
}
i = mid+1;
while( i < n && brojParnihZnamenki( jmbagovi[ i ] ) == brojParnihZnamenki( JMBAG ) )
{
if( jmbagovi[ i ] == JMBAG )
return bodovi[ i ];
++i;
}
return -1;
}
else if( brojParnihZnamenki( jmbagovi[ mid ] ) < brojParnihZnamenki( JMBAG ) )
lo = mid + 1;
else // brojParnihZnamenki( jmbagovi[ mid ] ) > brojParnihZnamenki( JMBAG )
hi = mid - 1;
}
return -1;
} |
Nije mi jasno ovo kaj provjerava while( i >= 0 && brojParnihZnamenki...)
Jel može netko kompletno objasniti cijelu ideju zadatka: posotoji više studenata s istom sumom parnih znam JMBAG-a, i kako onda odrediti pravog?
_________________ U matematici se sve smije, osim pogriješiti!
|
|
[Vrh] |
|
frutabella Forumaš(ica)
Pridružen/a: 09. 10. 2010. (16:35:36) Postovi: (24E)16
|
Postano: 11:20 pet, 20. 1. 2012 Naslov: |
|
|
[quote="linus"]zadatak iz skripte 11.5.7
bi li netko bio ljubazan pa komentirao i/ili stavio svoje rješenje
meni radi dobro, no je li to presloženo?
[code:1]
#include<stdio.h>
int main(void)
{
int suma=0, znam, temp, p;
int n, i, x[616];
printf("\nKoliko niz ima clanova? ");
scanf("%d", &n);
for(i=0; i<n; i++)
{
p=2;
printf("\nUnesite clan niza #%d: ", i+1);
scanf("%d", &x[i]);
while(!(x[i]%p==0)) p++; /* provjera je li prost */
if(p==x[i]) /* ako je-break */
{
n=i+1; /* bez ovog dijela, iduca petlja izbacuje neke nenormalne brojeve */
break;
}
}
for(i=0; i<n; i++)
{
suma=0;
temp=x[i]; /* cuvamo orginalni clan niza x[i] za ispis */
while(temp>0)
{
znam=temp%10;
suma+=znam;
temp/=10;
}
p=2;
while(!(suma%p==0)) p++;
if(suma==p && suma>17) printf("\n%d", x[i]);
}
return 0;
}
[/code:1]
P.S. ne zamjerite što nije iz kolokvija :oops: , kao što naslov teme nalaže[/quote]
Ja sam ovako napisala, mozda je malo preglednije, a isto mi radi, nadam se da je tacan...
[code:1]#include<stdio.h>
int sum(int n)
{
int sum=0;
while(n>0)
{
sum=sum+(n%10);
n/=10;
}
return sum;
}
int prost(int n)
{
int p=2, prost=1;
if (n<2) return prost=0;
while(prost)
{
for(p=2; p<n; ++p)
{
if(n%p==0)
return prost=0;
}
if(prost) return prost=1; break;
}
}
int main (void) {
int niz[620], i, j;
for(i=0; i<616; ++i)
{
scanf("%d", &niz[i]);
if(prost(niz[i])) break;
}
for(j=0; j<i; ++j)
{
if((prost(sum(niz[j])))==1 && (sum(niz[j]))>17) printf("Taj element je %d", niz[j]);
else
if((prost(sum(niz[j])))==0 || (sum(niz[j]))<=17)
printf ("Niz[%d]=%d nema prostu sumu vecu od 17.\n", j, niz[j]);
}
return 0;
}
[/code:1]
linus (napisa): | zadatak iz skripte 11.5.7
bi li netko bio ljubazan pa komentirao i/ili stavio svoje rješenje
meni radi dobro, no je li to presloženo?
Kod: |
#include<stdio.h>
int main(void)
{
int suma=0, znam, temp, p;
int n, i, x[616];
printf("\nKoliko niz ima clanova? ");
scanf("%d", &n);
for(i=0; i<n; i++)
{
p=2;
printf("\nUnesite clan niza #%d: ", i+1);
scanf("%d", &x[i]);
while(!(x[i]%p==0)) p++; /* provjera je li prost */
if(p==x[i]) /* ako je-break */
{
n=i+1; /* bez ovog dijela, iduca petlja izbacuje neke nenormalne brojeve */
break;
}
}
for(i=0; i<n; i++)
{
suma=0;
temp=x[i]; /* cuvamo orginalni clan niza x[i] za ispis */
while(temp>0)
{
znam=temp%10;
suma+=znam;
temp/=10;
}
p=2;
while(!(suma%p==0)) p++;
if(suma==p && suma>17) printf("\n%d", x[i]);
}
return 0;
}
|
P.S. ne zamjerite što nije iz kolokvija , kao što naslov teme nalaže |
Ja sam ovako napisala, mozda je malo preglednije, a isto mi radi, nadam se da je tacan...
Kod: | #include<stdio.h>
int sum(int n)
{
int sum=0;
while(n>0)
{
sum=sum+(n%10);
n/=10;
}
return sum;
}
int prost(int n)
{
int p=2, prost=1;
if (n<2) return prost=0;
while(prost)
{
for(p=2; p<n; ++p)
{
if(n%p==0)
return prost=0;
}
if(prost) return prost=1; break;
}
}
int main (void) {
int niz[620], i, j;
for(i=0; i<616; ++i)
{
scanf("%d", &niz[i]);
if(prost(niz[i])) break;
}
for(j=0; j<i; ++j)
{
if((prost(sum(niz[j])))==1 && (sum(niz[j]))>17) printf("Taj element je %d", niz[j]);
else
if((prost(sum(niz[j])))==0 || (sum(niz[j]))<=17)
printf ("Niz[%d]=%d nema prostu sumu vecu od 17.\n", j, niz[j]);
}
return 0;
}
|
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 12:24 pet, 20. 1. 2012 Naslov: |
|
|
[quote="Vishykc"]Nije mi jasno ovo kaj provjerava while( i >= 0 && brojParnihZnamenki...)[/quote]
Da ne izletis iz niza.
[quote="Vishykc"]Jel može netko kompletno objasniti cijelu ideju zadatka: posotoji više studenata s istom sumom parnih znam JMBAG-a, i kako onda odrediti pravog?[/quote]
Binarnim trazenjem znas naci jednog (ako postoji). Posto su sortirani po broju parnih znamenaka, onda se svi s istim brojem parnih znamenaka nalaze na hrpi. Dakle, kad nadjes jednog (index [tt]mid[/tt]), trebas samo gledati njega, lijevo od njega i desno od njega.
Njega i prije njega gledas u prvoj unutrasnjoj [tt]while[/tt]-petlji, a desno od njega gledas u drugoj. To trazenje je klasicno sekvencijalno i radi se dok ne izletis iz niza ili naletis na JMBAG koji vise nema jednaki broj parnih znamenaka kao ovaj trazeni.
Vishykc (napisa): | Nije mi jasno ovo kaj provjerava while( i >= 0 && brojParnihZnamenki...) |
Da ne izletis iz niza.
Vishykc (napisa): | Jel može netko kompletno objasniti cijelu ideju zadatka: posotoji više studenata s istom sumom parnih znam JMBAG-a, i kako onda odrediti pravog? |
Binarnim trazenjem znas naci jednog (ako postoji). Posto su sortirani po broju parnih znamenaka, onda se svi s istim brojem parnih znamenaka nalaze na hrpi. Dakle, kad nadjes jednog (index mid), trebas samo gledati njega, lijevo od njega i desno od njega.
Njega i prije njega gledas u prvoj unutrasnjoj while-petlji, a desno od njega gledas u drugoj. To trazenje je klasicno sekvencijalno i radi se dok ne izletis iz niza ili naletis na JMBAG koji vise nema jednaki broj parnih znamenaka kao ovaj trazeni.
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
|
|
[Vrh] |
|
|