Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

funkcije u kolokviju
WWW:
Idite na 1, 2  Sljedeće
Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
Shaman
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 24. 09. 2011. (22:21:43)
Postovi: (76)16
Spol: muško
Sarma = la pohva - posuda
= 9 - 4

PostPostano: 21:19 sri, 18. 1. 2012    Naslov: funkcije u kolokviju Citirajte i odgovorite

http://degiorgi.math.hr/prog1/kolokviji/p1-kolokvij-0809-2.pdf

Prva grupa treci zadatak. Zanima me jel pogresno ako dodamo jos jedan parametar u funkciju horner.

Prva grupa 4 zadatak, jel moze netko dati primjer brojeva x,y tako da izmedju njih bude sretan broj takav da a*b bude viseznamenkasti palindrom.

hvala.
http://degiorgi.math.hr/prog1/kolokviji/p1-kolokvij-0809-2.pdf

Prva grupa treci zadatak. Zanima me jel pogresno ako dodamo jos jedan parametar u funkciju horner.

Prva grupa 4 zadatak, jel moze netko dati primjer brojeva x,y tako da izmedju njih bude sretan broj takav da a*b bude viseznamenkasti palindrom.

hvala.



_________________
it was merely a setback
[Vrh]
Korisnički profil Pošaljite privatnu poruku
mdoko
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 30. 11. 2002. (22:17:12)
Postovi: (71A)16
Spol: muško
Sarma = la pohva - posuda
199 = 237 - 38
Lokacija: Heriot-Watt University, Edinburgh

PostPostano: 22:05 sri, 18. 1. 2012    Naslov: Re: funkcije u kolokviju Citirajte i odgovorite

[quote="Shaman"]http://degiorgi.math.hr/prog1/kolokviji/p1-kolokvij-0809-2.pdf

Prva grupa treci zadatak. Zanima me jel pogresno ako dodamo jos jedan parametar u funkciju horner.[/quote]

Zadatak eksplicitno specificira kako treba izgledati prototip funkcije, prema tome funkcija koja bi imala još jedan dodatni parametar ne bi pretstavljala točno rješenje zadatka.

Kad smo već kod toga, koji bi to dodatni parametar želio uvesti i zašto?
Shaman (napisa):
http://degiorgi.math.hr/prog1/kolokviji/p1-kolokvij-0809-2.pdf

Prva grupa treci zadatak. Zanima me jel pogresno ako dodamo jos jedan parametar u funkciju horner.


Zadatak eksplicitno specificira kako treba izgledati prototip funkcije, prema tome funkcija koja bi imala još jedan dodatni parametar ne bi pretstavljala točno rješenje zadatka.

Kad smo već kod toga, koji bi to dodatni parametar želio uvesti i zašto?



_________________
Extraordinary claims require extraordinary evidence. – Carl Sagan
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
Shaman
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 24. 09. 2011. (22:21:43)
Postovi: (76)16
Spol: muško
Sarma = la pohva - posuda
= 9 - 4

PostPostano: 22:13 sri, 18. 1. 2012    Naslov: Citirajte i odgovorite

za broj znamenaka broja, to racunam u drugoj funkciji ali lako ih mogu spojiti u jednu.

[size=9][color=#999999]Added after 1 minutes:[/color][/size]

hvala na odgovoru, i mislio sam da je krivo onda ali bolje pitati :)
za broj znamenaka broja, to racunam u drugoj funkciji ali lako ih mogu spojiti u jednu.

Added after 1 minutes:

hvala na odgovoru, i mislio sam da je krivo onda ali bolje pitati Smile



_________________
it was merely a setback
[Vrh]
Korisnički profil Pošaljite privatnu poruku
mdoko
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 30. 11. 2002. (22:17:12)
Postovi: (71A)16
Spol: muško
Sarma = la pohva - posuda
199 = 237 - 38
Lokacija: Heriot-Watt University, Edinburgh

PostPostano: 22:47 sri, 18. 1. 2012    Naslov: Citirajte i odgovorite

[quote="Shaman"]za broj znamenaka broja, to racunam u drugoj funkciji ali lako ih mogu spojiti u jednu.[/quote]
To slobodno možeš računati u drugoj funkciji, ali pozovi je unutar ove [tt]horner17[/tt].


Tek sam sad skužio da ima i još jedno pitanje :oops:
[quote]Prva grupa 4 zadatak, jel moze netko dati primjer brojeva x,y tako da izmedju njih bude sretan broj takav da a*b bude viseznamenkasti palindrom. [/quote]
Primjer jednog sretnog broja za kojeg je a*b višeznamenkasti palindrom je očito [tex]2^{11}\cdot 3 = 6144[/tex] (a = 11, b = 1, a*b = 11). Prema tome, primjer brojeva x i y koje tražiš je sada očit :)
Shaman (napisa):
za broj znamenaka broja, to racunam u drugoj funkciji ali lako ih mogu spojiti u jednu.

To slobodno možeš računati u drugoj funkciji, ali pozovi je unutar ove horner17.


Tek sam sad skužio da ima i još jedno pitanje Embarassed
Citat:
Prva grupa 4 zadatak, jel moze netko dati primjer brojeva x,y tako da izmedju njih bude sretan broj takav da a*b bude viseznamenkasti palindrom.

Primjer jednog sretnog broja za kojeg je a*b višeznamenkasti palindrom je očito [tex]2^{11}\cdot 3 = 6144[/tex] (a = 11, b = 1, a*b = 11). Prema tome, primjer brojeva x i y koje tražiš je sada očit Smile



_________________
Extraordinary claims require extraordinary evidence. – Carl Sagan
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
Shaman
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 24. 09. 2011. (22:21:43)
Postovi: (76)16
Spol: muško
Sarma = la pohva - posuda
= 9 - 4

PostPostano: 23:02 sri, 18. 1. 2012    Naslov: Citirajte i odgovorite

hvala :)
hvala Smile



_________________
it was merely a setback
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Zenon
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 09. 09. 2011. (19:14:43)
Postovi: (2B1)16
Sarma: -
Lokacija: [tex]\pm\infty[/tex]

PostPostano: 1:43 čet, 19. 1. 2012    Naslov: Citirajte i odgovorite

Zadatak s prošlogodišnjeg kolokvija:
Napišite funkciju koja prima dva cijela broja, te ispisuje njihove zajedničke proste djelitelje (svakog točno
jednom) i vraća sumu i produkt ispisanih brojeva.

[code:1]#include<stdio.h>

void f(int x, int y, int *zbroj, int *produkt){
int p=2;
if (x<0) x=-x;
if (y<0) y=-y;
min=(x<=y ? x : y);
max=(x<=y ? y : x);
*zbroj=0;
*produkt=1;
while (min>1)
{
if (min%p==0 && max%p==0)
{
printf ("%d ",p);
(*zbroj)+=p;
(*produkt)*=p;
}
while (min%p==0)
{
min/=p;
}
p++;
}
}
[/code:1]

Valja li? Ako valja, kolika mu je složenost?
Da ispričam ideju pa ako griješim, recite mi točno gdje:

Ako su negativni, naravno, uzmem im apsolutne vrijednosti.
Trebam zajedničke proste faktore.
Radio sam po algoritmu iz skripte, strana 114. Ništa novo, ali ja nisam kao u službenom rješenju dijelio y s p jer nisam vidio potrebu. Ako prođem s "p" kroz min, nije ni bitno što se događa s max-om, jer sam za svaki p koji dijeli min provjerio djeli li max.

Unaprijed hvala :thankyou:
Zadatak s prošlogodišnjeg kolokvija:
Napišite funkciju koja prima dva cijela broja, te ispisuje njihove zajedničke proste djelitelje (svakog točno
jednom) i vraća sumu i produkt ispisanih brojeva.

Kod:
#include<stdio.h>

void f(int x, int y, int *zbroj, int *produkt){
    int p=2;
    if (x<0) x=-x;
    if (y<0) y=-y;
    min=(x<=y ? x : y);
    max=(x<=y ? y : x);
    *zbroj=0;
    *produkt=1;
    while (min>1)
    {
        if (min%p==0 && max%p==0)
        {
                printf ("%d ",p);
                (*zbroj)+=p;
                (*produkt)*=p;
        }
        while (min%p==0)
        {
            min/=p;
        }
        p++;
    }
}


Valja li? Ako valja, kolika mu je složenost?
Da ispričam ideju pa ako griješim, recite mi točno gdje:

Ako su negativni, naravno, uzmem im apsolutne vrijednosti.
Trebam zajedničke proste faktore.
Radio sam po algoritmu iz skripte, strana 114. Ništa novo, ali ja nisam kao u službenom rješenju dijelio y s p jer nisam vidio potrebu. Ako prođem s "p" kroz min, nije ni bitno što se događa s max-om, jer sam za svaki p koji dijeli min provjerio djeli li max.

Unaprijed hvala Thank you



_________________
It's a wonderful, wonderful life!
[tex]\heartsuit \ \mathcal{PMF-MO} \ \heartsuit[/tex]
[tex]\mathbb Z\Sigma\mathbb N\emptyset\mathbb N[/tex]
[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (355F)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 3:09 čet, 19. 1. 2012    Naslov: Citirajte i odgovorite

Izgleda ok, a najgora slozenost mu je linearna u ovisnosti o manjem broju (ako je taj bas prost).

Da, ok je da se dijeli samo [tt]min[/tt], jer se gledaju zajednicki djelitelji. U sluzbenom rjesenju dijelimo oba broja, da smanjimo zbunjivanje citateljstva. Recimo, u grupi koja ima "svakog kolika mu je najveca zajednicka kratnost" (ili tako nekako formulirano) trebalo bi dijeliti oba broja. Slicno i da smo trazili sve brojeve koji su prosti faktori bilo kojeg od dva broja.

Primijeti: da se dijele oba i uvijet provjerava u ovisnosti o obojici, u bi nekim situacijama radilo sporije (ocito), ali u nekima i brze (npr. ako je min relativno velik prost broj ili mu je najveci prosti faktor velik, a max veci od njega, ali sastavljen od iskljucivo malih prostih faktora). Najgora slozenost bi i dalje bila linearna (ako su oba prosti ili je najveci prosti faktor od [tt]max[/tt] priblizno jednak najvecem prostom faktoru od [tt]min[/tt]).
Izgleda ok, a najgora slozenost mu je linearna u ovisnosti o manjem broju (ako je taj bas prost).

Da, ok je da se dijeli samo min, jer se gledaju zajednicki djelitelji. U sluzbenom rjesenju dijelimo oba broja, da smanjimo zbunjivanje citateljstva. Recimo, u grupi koja ima "svakog kolika mu je najveca zajednicka kratnost" (ili tako nekako formulirano) trebalo bi dijeliti oba broja. Slicno i da smo trazili sve brojeve koji su prosti faktori bilo kojeg od dva broja.

Primijeti: da se dijele oba i uvijet provjerava u ovisnosti o obojici, u bi nekim situacijama radilo sporije (ocito), ali u nekima i brze (npr. ako je min relativno velik prost broj ili mu je najveci prosti faktor velik, a max veci od njega, ali sastavljen od iskljucivo malih prostih faktora). Najgora slozenost bi i dalje bila linearna (ako su oba prosti ili je najveci prosti faktor od max priblizno jednak najvecem prostom faktoru od min).



_________________
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.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Namdev
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 01. 11. 2011. (19:23:40)
Postovi: (29)16
Spol: zombi
Sarma = la pohva - posuda
= 5 - 1

PostPostano: 10:56 čet, 19. 1. 2012    Naslov: Citirajte i odgovorite

Moze li se u ovom gore navedenom zadatku prvo izracunati GCD(x,y)?

Buduci da je to mali algoritam nema ni potrebe za pozivom druge funkcije. I onda od onog sto mi ostane kao GCD ispisem proste faktore dodam ih u sumu i produkt itd.
Moze li se u ovom gore navedenom zadatku prvo izracunati GCD(x,y)?

Buduci da je to mali algoritam nema ni potrebe za pozivom druge funkcije. I onda od onog sto mi ostane kao GCD ispisem proste faktore dodam ih u sumu i produkt itd.


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (355F)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 11:32 čet, 19. 1. 2012    Naslov: Citirajte i odgovorite

Moze, naravno.
Moze, naravno.



_________________
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.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
slonic~tonic
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 26. 10. 2011. (14:16:34)
Postovi: (84)16
Spol: žensko
Sarma = la pohva - posuda
= 5 - 4

PostPostano: 11:53 čet, 19. 1. 2012    Naslov: Citirajte i odgovorite

[20 bodova] Napisite funkciju koja prima dva cijela broja x, y i prirodni broj b  2, te ispisuje sve znamenke koje se u
brojevima x i y zapisanim u bazi b pojavljuju na istom mjestu gledano slijeva nadesno. Ako ne znate napraviti tako, funkcija
smije pozicije znamenaka gledati zdesna nalijevo, ali takvo rjesenje donosi najvise 10 bodova.
Funkcija treba vratiti sumu i produkt ispisanih znamenaka.
Primjer: Za brojeve x = 􀀀171923 i y = 37592, te bazu b = 10, funkcija treba ispisati brojeve 7, 9 i 2, te vratiti 18
(= 7 + 9 + 2) i 126 (= 7  9  2).

/* pomocna funkcija */
int izokreni_apsolutnu_vrijednost(int x, int b) {
int res = 0;
if (x < 0) x = -x;
while (x > 0) {
res = b * res + (x % b);
x /= b;
}
return res;
}
/* preko izokretanja (promjene redoslijeda znamenaka) brojeva */
void zad1b1(int x, int y, int b, int *sum, int *prod) {
*sum = 0;
*prod = 1;
x = izokreni_apsolutnu_vrijednost(x, b);
y = izokreni_apsolutnu_vrijednost(y, b);
while (x > 0 && y > 0) {
int zx = x % [b]b[/b], zy = y % [b]b[/b];
if (zx == zy) {
printf("%d, ", zx);
*sum += zx;
*prod *= zx;
}
x /= [b]b[/b]; y /= [b]b[/b];
}
}

grijesim li ako smatram da se umjesto [b]b[/b] treba dijeliti sa 10.. jer u pomocnoj funkciji smo izokrenuli broj zapisan u bazi b...
i, znaci dijelimo sa 10 da bi dobili znamenke u bazi b dakle i onda ih usporedujemo.
ili sam sve pomijesala?? :oops: :oops: :oops:
[20 bodova] Napisite funkciju koja prima dva cijela broja x, y i prirodni broj b  2, te ispisuje sve znamenke koje se u
brojevima x i y zapisanim u bazi b pojavljuju na istom mjestu gledano slijeva nadesno. Ako ne znate napraviti tako, funkcija
smije pozicije znamenaka gledati zdesna nalijevo, ali takvo rjesenje donosi najvise 10 bodova.
Funkcija treba vratiti sumu i produkt ispisanih znamenaka.
Primjer: Za brojeve x = 􀀀171923 i y = 37592, te bazu b = 10, funkcija treba ispisati brojeve 7, 9 i 2, te vratiti 18
(= 7 + 9 + 2) i 126 (= 7  9  2).

/* pomocna funkcija */
int izokreni_apsolutnu_vrijednost(int x, int b) {
int res = 0;
if (x < 0) x = -x;
while (x > 0) {
res = b * res + (x % b);
x /= b;
}
return res;
}
/* preko izokretanja (promjene redoslijeda znamenaka) brojeva */
void zad1b1(int x, int y, int b, int *sum, int *prod) {
*sum = 0;
*prod = 1;
x = izokreni_apsolutnu_vrijednost(x, b);
y = izokreni_apsolutnu_vrijednost(y, b);
while (x > 0 && y > 0) {
int zx = x % b, zy = y % b;
if (zx == zy) {
printf("%d, ", zx);
*sum += zx;
*prod *= zx;
}
x /= b; y /= b;
}
}

grijesim li ako smatram da se umjesto b treba dijeliti sa 10.. jer u pomocnoj funkciji smo izokrenuli broj zapisan u bazi b...
i, znaci dijelimo sa 10 da bi dobili znamenke u bazi b dakle i onda ih usporedujemo.
ili sam sve pomijesala?? Embarassed Embarassed Embarassed



_________________
Lakše je naučiti matematiku nego raditi bez nje.
[Vrh]
Korisnički profil Pošaljite privatnu poruku
marsupial
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 09. 01. 2012. (22:46:33)
Postovi: (63)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
= 5 - 1

PostPostano: 16:59 čet, 19. 1. 2012    Naslov: Citirajte i odgovorite

možda silly pitanje - ali, za 1.zadatak prošlogodnišnjeg drugog kolokvija u službenim rješenjima, da li je svejedno kako nam ispisuje? tj, oba načina su ok? jer mi u 1 zadatku u B grupi ispada jedan od tih načina, a oni su upravo suprotni - jesu oba ok, odnosno za 20 bodova točni?
možda silly pitanje - ali, za 1.zadatak prošlogodnišnjeg drugog kolokvija u službenim rješenjima, da li je svejedno kako nam ispisuje? tj, oba načina su ok? jer mi u 1 zadatku u B grupi ispada jedan od tih načina, a oni su upravo suprotni - jesu oba ok, odnosno za 20 bodova točni?


[Vrh]
Korisnički profil Pošaljite privatnu poruku
mdoko
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 30. 11. 2002. (22:17:12)
Postovi: (71A)16
Spol: muško
Sarma = la pohva - posuda
199 = 237 - 38
Lokacija: Heriot-Watt University, Edinburgh

PostPostano: 17:11 čet, 19. 1. 2012    Naslov: Citirajte i odgovorite

[quote="slonic~tonic"]
grijesim li ako smatram da se umjesto [b]b[/b] treba dijeliti sa 10.. jer u pomocnoj funkciji smo izokrenuli broj zapisan u bazi b...
i, znaci dijelimo sa 10 da bi dobili znamenke u bazi b dakle i onda ih usporedujemo.[/quote]
Da, griješiš.

Naime, funkcija [tt]izokreni_apsolutnu_vrijednost(int x, int b)[/tt] vraća broj koji [i]u bazi b ima invertiran zapis od onog koji ima broj x u bazi b[/i]. Preciznije, ako je [tex]x=\sum\limits_{i=0}^{n}a_ib^i[/tex], onda funkcija vrati vrijednost [tex]\sum\limits_{i=0}^{n}a_{n-i}b^i[/tex].

Kada bi se u funkciji [tt]zad1b1[/tt] trebalo dijeliti s 10, a ne s b, onda bi prethodna funkcija morala vraćati [i]broj koji u bazi 10 ima zapis invertiran u odnosu na onaj koji broj x ima u bazi b[/i], odnosno za [tex]x=\sum\limits_{i=0}^{n}a_ib^i[/tex], [tt]izokreni_apsolutnu_vrijednost(int x, int b)[/tt] bi trebalo biti [tex]\sum\limits_{i=0}^{n}a_{n-i}10^i[/tex], a uoči da to nije slučaj. Štoviše, uoči da to uopće nije moguće izvesti kada je b > 10.
slonic~tonic (napisa):

grijesim li ako smatram da se umjesto b treba dijeliti sa 10.. jer u pomocnoj funkciji smo izokrenuli broj zapisan u bazi b...
i, znaci dijelimo sa 10 da bi dobili znamenke u bazi b dakle i onda ih usporedujemo.

Da, griješiš.

Naime, funkcija izokreni_apsolutnu_vrijednost(int x, int b) vraća broj koji u bazi b ima invertiran zapis od onog koji ima broj x u bazi b. Preciznije, ako je [tex]x=\sum\limits_{i=0}^{n}a_ib^i[/tex], onda funkcija vrati vrijednost [tex]\sum\limits_{i=0}^{n}a_{n-i}b^i[/tex].

Kada bi se u funkciji zad1b1 trebalo dijeliti s 10, a ne s b, onda bi prethodna funkcija morala vraćati broj koji u bazi 10 ima zapis invertiran u odnosu na onaj koji broj x ima u bazi b, odnosno za [tex]x=\sum\limits_{i=0}^{n}a_ib^i[/tex], izokreni_apsolutnu_vrijednost(int x, int b) bi trebalo biti [tex]\sum\limits_{i=0}^{n}a_{n-i}10^i[/tex], a uoči da to nije slučaj. Štoviše, uoči da to uopće nije moguće izvesti kada je b > 10.



_________________
Extraordinary claims require extraordinary evidence. – Carl Sagan
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
slonic~tonic
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 26. 10. 2011. (14:16:34)
Postovi: (84)16
Spol: žensko
Sarma = la pohva - posuda
= 5 - 4

PostPostano: 17:18 čet, 19. 1. 2012    Naslov: Citirajte i odgovorite

[quote="mdoko"][quote="slonic~tonic"]
grijesim li ako smatram da se umjesto [b]b[/b] treba dijeliti sa 10.. jer u pomocnoj funkciji smo izokrenuli broj zapisan u bazi b...
i, znaci dijelimo sa 10 da bi dobili znamenke u bazi b dakle i onda ih usporedujemo.[/quote]
Da, griješiš.

Naime, funkcija [tt]izokreni_apsolutnu_vrijednost(int x, int b)[/tt] vraća broj koji [i]u bazi b ima invertiran zapis od onog koji ima broj x u bazi b[/i]. Preciznije, ako je [tex]x=\sum\limits_{i=0}^{n}a_ib^i[/tex], onda funkcija vrati vrijednost [tex]\sum\limits_{i=0}^{n}a_{n-i}b^i[/tex].

Kada bi se u funkciji [tt]zad1b1[/tt] trebalo dijeliti s 10, a ne s b, onda bi prethodna funkcija morala vraćati [i]broj koji u bazi 10 ima zapis invertiran u odnosu na onaj koji broj x ima u bazi b[/i], odnosno za [tex]x=\sum\limits_{i=0}^{n}a_ib^i[/tex], [tt]izokreni_apsolutnu_vrijednost(int x, int b)[/tt] bi trebalo biti [tex]\sum\limits_{i=0}^{n}a_{n-i}10^i[/tex], a uoči da to nije slučaj. Štoviše, uoči da to uopće nije moguće izvesti kada je b > 10.[/quote]

shvatila :).. hvala!
mdoko (napisa):
slonic~tonic (napisa):

grijesim li ako smatram da se umjesto b treba dijeliti sa 10.. jer u pomocnoj funkciji smo izokrenuli broj zapisan u bazi b...
i, znaci dijelimo sa 10 da bi dobili znamenke u bazi b dakle i onda ih usporedujemo.

Da, griješiš.

Naime, funkcija izokreni_apsolutnu_vrijednost(int x, int b) vraća broj koji u bazi b ima invertiran zapis od onog koji ima broj x u bazi b. Preciznije, ako je [tex]x=\sum\limits_{i=0}^{n}a_ib^i[/tex], onda funkcija vrati vrijednost [tex]\sum\limits_{i=0}^{n}a_{n-i}b^i[/tex].

Kada bi se u funkciji zad1b1 trebalo dijeliti s 10, a ne s b, onda bi prethodna funkcija morala vraćati broj koji u bazi 10 ima zapis invertiran u odnosu na onaj koji broj x ima u bazi b, odnosno za [tex]x=\sum\limits_{i=0}^{n}a_ib^i[/tex], izokreni_apsolutnu_vrijednost(int x, int b) bi trebalo biti [tex]\sum\limits_{i=0}^{n}a_{n-i}10^i[/tex], a uoči da to nije slučaj. Štoviše, uoči da to uopće nije moguće izvesti kada je b > 10.


shvatila Smile.. hvala!



_________________
Lakše je naučiti matematiku nego raditi bez nje.
[Vrh]
Korisnički profil Pošaljite privatnu poruku
marsupial
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 09. 01. 2012. (22:46:33)
Postovi: (63)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
= 5 - 1

PostPostano: 18:32 čet, 19. 1. 2012    Naslov: Citirajte i odgovorite

Napisite funkciju koja prima dva cijela broja x, y i prirodni broj b  2, te ispisuje sve znamenke koje se u
brojevima x i y zapisanim u bazi b pojavljuju na istom mjestu gledano slijeva nadesno. Ako ne znate napraviti tako, funkcija
smije pozicije znamenaka gledati zdesna nalijevo, ali takvo rjesenje donosi najvise 10 bodova.
Funkcija treba vratiti sumu i produkt ispisanih znamenaka


[code:1]#include<stdio.h>

int bub(int x, int b, int a[])
{
int i=0, n, temp;
if(x<0) x=-x;

while(x>0)
{
a[i]=x%b;
x=x/b;
i++;
}

n=i;
for(i=0;i<n/2;i++)
{
temp=a[i];
a[i]=a[n-1-i];
a[n-1-i]=temp;
}


return n;
}

void ispis(int x, int y, int b, int *suma, int *produkt)
{
int znx[100], zny[100], ix, iy, i, g;
*suma=0; *produkt=1;

ix=bub(x, b, znx); iy=bub(y, b, zny);
if(ix<iy) g=ix; else g=iy;

for(i=0;i<g;i++)
{
if(znx[i]==zny[i])
{
printf("%d ", znx[i]);
*suma+=znx[i];
*produkt*=znx[i];
}
}
}

int main(){

int x, y, b, suma, produkt;
scanf("%d%d%d", &x, &y, &b);

ispis(x, y, b, &suma, &produkt);
printf("Suma je %d, produkt je %d", suma, produkt);



return 0;


}[/code:1]

--je li ovo ok, odnosno ono što se traži za potpunu točnost zadatka?
Napisite funkciju koja prima dva cijela broja x, y i prirodni broj b  2, te ispisuje sve znamenke koje se u
brojevima x i y zapisanim u bazi b pojavljuju na istom mjestu gledano slijeva nadesno. Ako ne znate napraviti tako, funkcija
smije pozicije znamenaka gledati zdesna nalijevo, ali takvo rjesenje donosi najvise 10 bodova.
Funkcija treba vratiti sumu i produkt ispisanih znamenaka


Kod:
#include<stdio.h>

int bub(int x, int b, int a[])
{
    int i=0, n, temp;
    if(x<0) x=-x;

    while(x>0)
    {
        a[i]=x%b;
        x=x/b;
        i++;
    }

    n=i;
    for(i=0;i<n/2;i++)
    {
        temp=a[i];
        a[i]=a[n-1-i];
        a[n-1-i]=temp;
    }


    return n;
}

void ispis(int x, int y, int b, int *suma, int *produkt)
{
    int znx[100], zny[100], ix, iy, i, g;
    *suma=0; *produkt=1;

    ix=bub(x, b, znx); iy=bub(y, b, zny);
    if(ix<iy)   g=ix; else g=iy;

    for(i=0;i<g;i++)
    {
        if(znx[i]==zny[i])
        {
            printf("%d ", znx[i]);
            *suma+=znx[i];
            *produkt*=znx[i];
        }
    }
}

int main(){

int x, y, b, suma, produkt;
scanf("%d%d%d", &x, &y, &b);

ispis(x, y, b, &suma, &produkt);
printf("Suma je %d, produkt je %d", suma, produkt);



return 0;


}


–je li ovo ok, odnosno ono što se traži za potpunu točnost zadatka?


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (355F)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 19:35 čet, 19. 1. 2012    Naslov: Citirajte i odgovorite

Ovako, na oko, izgleda ok, no nema li negdje neka napomena o nekoristenju dodatnih nizova?
Ovako, na oko, izgleda ok, no nema li negdje neka napomena o nekoristenju dodatnih nizova?



_________________
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.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
marsupial
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 09. 01. 2012. (22:46:33)
Postovi: (63)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
= 5 - 1

PostPostano: 20:16 čet, 19. 1. 2012    Naslov: Citirajte i odgovorite

da, uočila sam, moja greška!! dobro da sam to ''na vrijeme'' uočila
da, uočila sam, moja greška!! dobro da sam to ''na vrijeme'' uočila


[Vrh]
Korisnički profil Pošaljite privatnu poruku
Zenon
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 09. 09. 2011. (19:14:43)
Postovi: (2B1)16
Sarma: -
Lokacija: [tex]\pm\infty[/tex]

PostPostano: 21:36 čet, 19. 1. 2012    Naslov: Citirajte i odgovorite

Ne razumijem baš ovaj zadatak.
Prvo bih napravio pomoćnu funkciju za pretvaranje broja u odgovarajuću bazu ( x>0 ):
[code:1]int baza(int x, int b){
int sum=0,pomak=1;
while(x)
{
sum=(x%b)*pomak;
pomak*=10;
x/=b;
}
return sum;
}[/code:1]

I što sada? Znači ne smijem ga "izokrenuti" iz oblika [tex]abcd[/tex] u oblik [tex]dcba[/tex] pa provjeravati zdesna nalijevo da ne izgubim bodove?
Ne razumijem baš ovaj zadatak.
Prvo bih napravio pomoćnu funkciju za pretvaranje broja u odgovarajuću bazu ( x>0 ):
Kod:
int baza(int x, int b){
    int sum=0,pomak=1;
    while(x)
    {
        sum=(x%b)*pomak;
        pomak*=10;
        x/=b;
    }
    return sum;
}


I što sada? Znači ne smijem ga "izokrenuti" iz oblika [tex]abcd[/tex] u oblik [tex]dcba[/tex] pa provjeravati zdesna nalijevo da ne izgubim bodove?



_________________
It's a wonderful, wonderful life!
[tex]\heartsuit \ \mathcal{PMF-MO} \ \heartsuit[/tex]
[tex]\mathbb Z\Sigma\mathbb N\emptyset\mathbb N[/tex]
[Vrh]
Korisnički profil Pošaljite privatnu poruku
gflegar
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 12. 10. 2011. (15:03:41)
Postovi: (10D)16
Spol: muško
Sarma = la pohva - posuda
68 = 72 - 4

PostPostano: 22:27 čet, 19. 1. 2012    Naslov: Citirajte i odgovorite

[quote="Zenon"]Ne razumijem baš ovaj zadatak.
Prvo bih napravio pomoćnu funkciju za pretvaranje broja u odgovarajuću bazu ( x>0 ):
[code:1]int baza(int x, int b){
int sum=0,pomak=1;
while(x)
{
sum=(x%b)*pomak;
pomak*=10;
x/=b;
}
return sum;
}[/code:1]

I što sada? Znači ne smijem ga "izokrenuti" iz oblika [tex]abcd[/tex] u oblik [tex]dcba[/tex] pa provjeravati zdesna nalijevo da ne izgubim bodove?[/quote]
Kak nikome nije jasno da nema smisla "pretvarati" broj iz baze u bazu... nemate po defaultu broj u bazi 10, nego imate broj koji ima svoju vrijednost, neovisno o bazi [size=5](ajde, zapisan je u bazi 2 u racunalu)[/size] :P
[code:1]int bpower(int a, int base){
int res = 1;
a /= base;
while (a) {
a /= base;
res *= base;
}
return res;
}

void funkcija(int x, int y, int b, int *sum, int *prod){
int dx, dy, tmp;
if (x < 0) x = -x;
if (y < 0) y = -y;
dx = bpower(x, b);
dy = bpower(y, b);
*sum = 0;
*prod = 1;

while (dx && dy) {
if ((tmp = x / dx) == y / dy) {
printf("%d ", tmp);
*sum += tmp;
*prod *= tmp;
}
x %= dx;
y %= dy;
dx /= b;
dy /= b;
}

return;
}[/code:1]
Kak ovo radi:
Ako su brojevi [tex] x = (abcde)_b, y = (fghi)_b[/tex] prvo generira brojeve [tex] dx = (10000)_b, dy = (1000)_b[/tex]
Sa [tt]dx[/tt] i [tt]dy[/tt] pratim na kojoj sam trenutno znamenci.
Nakon toga, tako dugo dok ne potrosim sve znamenke jednog od brojeva usporedjujem prvu znamenku (to mogu tak da cjelobrojno podijelim [tt]x / dx[/tt] i [tt] y / dy[/tt]) i napravim vec ono sto treba onda :).
Onda maknem prvu znamenku oba broja [tt]x %= dx[/tt], i pomaknem [tt]dx[/tt] i [tt]dy[/tt] jedno mjesto udesno (tj. podijelim s [tt]b[/tt]).
I nema nigdje "pretvaranja" iz baze u bazu :)
Zenon (napisa):
Ne razumijem baš ovaj zadatak.
Prvo bih napravio pomoćnu funkciju za pretvaranje broja u odgovarajuću bazu ( x>0 ):
Kod:
int baza(int x, int b){
    int sum=0,pomak=1;
    while(x)
    {
        sum=(x%b)*pomak;
        pomak*=10;
        x/=b;
    }
    return sum;
}


I što sada? Znači ne smijem ga "izokrenuti" iz oblika [tex]abcd[/tex] u oblik [tex]dcba[/tex] pa provjeravati zdesna nalijevo da ne izgubim bodove?

Kak nikome nije jasno da nema smisla "pretvarati" broj iz baze u bazu... nemate po defaultu broj u bazi 10, nego imate broj koji ima svoju vrijednost, neovisno o bazi (ajde, zapisan je u bazi 2 u racunalu) Razz
Kod:
int bpower(int a, int base){
    int res = 1;
    a /= base;
    while (a) {
        a /= base;
        res *= base;
    }
    return res;
}

void funkcija(int x, int y, int b, int *sum, int *prod){
    int dx, dy, tmp;
    if (x < 0) x = -x;
    if (y < 0) y = -y;
    dx = bpower(x, b);
    dy = bpower(y, b);
    *sum = 0;
    *prod = 1;

    while (dx && dy) {
        if ((tmp = x / dx) == y / dy) {
            printf("%d ", tmp);
            *sum += tmp;
            *prod *= tmp;
        }
        x %= dx;
        y %= dy;
        dx /= b;
        dy /= b;
    }

    return;
}

Kak ovo radi:
Ako su brojevi [tex] x = (abcde)_b, y = (fghi)_b[/tex] prvo generira brojeve [tex] dx = (10000)_b, dy = (1000)_b[/tex]
Sa dx i dy pratim na kojoj sam trenutno znamenci.
Nakon toga, tako dugo dok ne potrosim sve znamenke jednog od brojeva usporedjujem prvu znamenku (to mogu tak da cjelobrojno podijelim x / dx i y / dy) i napravim vec ono sto treba onda Smile.
Onda maknem prvu znamenku oba broja x %= dx, i pomaknem dx i dy jedno mjesto udesno (tj. podijelim s b).
I nema nigdje "pretvaranja" iz baze u bazu Smile
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail Posjetite Web stranice
linus
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 20. 11. 2011. (16:59:13)
Postovi: (46)16
Sarma = la pohva - posuda
= 2 - 2
Lokacija: subnet mask

PostPostano: 23:07 čet, 19. 1. 2012    Naslov: Citirajte i odgovorite

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
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 Embarassed , kao što naslov teme nalaže


[Vrh]
Korisnički profil Pošaljite privatnu poruku
Zenon
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 09. 09. 2011. (19:14:43)
Postovi: (2B1)16
Sarma: -
Lokacija: [tex]\pm\infty[/tex]

PostPostano: 23:09 čet, 19. 1. 2012    Naslov: Citirajte i odgovorite

Super kolega, hvala :D
De te mi samo još objasnite ovu pomoćnu funkciju gore. Koračno :P
:thankyou:


[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]
Super kolega, hvala Very Happy
De te mi samo još objasnite ovu pomoćnu funkciju gore. Koračno Razz
Thank you


Sad namjerno i ja tebi pišem malim slovima, da moraš trošiti vrijeme na gluposti Very Happy Ugl, kad objasniš ovo gore, stiže la pohva Very Happy 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



_________________
It's a wonderful, wonderful life!
[tex]\heartsuit \ \mathcal{PMF-MO} \ \heartsuit[/tex]
[tex]\mathbb Z\Sigma\mathbb N\emptyset\mathbb N[/tex]
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2 Vremenska zona: GMT + 01:00.
Idite na 1, 2  Sljedeće
Stranica 1 / 2.

 
Forum(o)Bir:  
Ne možete otvarati nove teme.
Ne možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan