Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
ddduuu Forumaš(ica)

Pridružen/a: 16. 11. 2008. (12:31:48) Postovi: (109)16
|
Postano: 17:54 pon, 16. 3. 2009 Naslov: |
|
|
Zadatak 5:
Napiˇsite program koji kao unos prima prirodan broj n < 20, te niz od n cijelih brojeva x1, . . . , xn, nakon ˇcega ispisuje koliko je
se puta u uneˇsenom nizu javlja aritmetiˇcka sredina dotiˇcnog niza
x1 + . . . + xn
n
. Na primjer, za niz (0, 1, 0,−1), ˇcija aritmetiˇcka
sredina iznosi 0, program treba ispisati 2 (jer je aritmetiˇcka sredina nula koja se u nizu pojavljuje dva puta).
Nije mi jasno.. Npr, za brojeve 3,4 aritmeticka sredina je 3.5,a u zadatku to ne mozemo dobit jer su elementi niza cijeli brojevi, a broj elemenata prirodan broj.. Znaci djeljenjem se zaokruzuje rezultat a je to zaokruzena aritmeticka sredina.. :?
Zadatak 5:
Napiˇsite program koji kao unos prima prirodan broj n < 20, te niz od n cijelih brojeva x1, . . . , xn, nakon ˇcega ispisuje koliko je
se puta u uneˇsenom nizu javlja aritmetiˇcka sredina dotiˇcnog niza
x1 + . . . + xn
n
. Na primjer, za niz (0, 1, 0,−1), ˇcija aritmetiˇcka
sredina iznosi 0, program treba ispisati 2 (jer je aritmetiˇcka sredina nula koja se u nizu pojavljuje dva puta).
Nije mi jasno.. Npr, za brojeve 3,4 aritmeticka sredina je 3.5,a u zadatku to ne mozemo dobit jer su elementi niza cijeli brojevi, a broj elemenata prirodan broj.. Znaci djeljenjem se zaokruzuje rezultat a je to zaokruzena aritmeticka sredina..
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16
Spol: 
Lokacija: /sbin/init
|
Postano: 18:18 pon, 16. 3. 2009 Naslov: |
|
|
Yok; ako aritmeticka sredina nije cijeli broj, onda se ona ne pojavljuje u nizu, pa je rjesenje 0. 8) Trivijalno se rijesi i bez upotrebe realnih brojeva, mada ta gimnastika nije nuzna. ;)
Yok; ako aritmeticka sredina nije cijeli broj, onda se ona ne pojavljuje u nizu, pa je rjesenje 0. Trivijalno se rijesi i bez upotrebe realnih brojeva, mada ta gimnastika nije nuzna.
_________________ 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] |
|
Tygy Forumaš(ica)


Pridružen/a: 22. 11. 2008. (15:27:08) Postovi: (102)16
|
|
[Vrh] |
|
kakt00s Forumaš(ica)


Pridružen/a: 17. 10. 2007. (12:19:40) Postovi: (183)16
Spol: 
Lokacija: :ɐɾıɔɐʞoן
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16
Spol: 
Lokacija: /sbin/init
|
Postano: 1:20 uto, 17. 3. 2009 Naslov: |
|
|
[quote="Tygy"]nego, da priupitam...kad se piše taj praktični klokvij i da li se sami prijavljujemo ili nas razmjestaju kako hoće...[/quote]
Prijavljujete se, vjerojatno iduci tjedan. :) Sami kolokviji ce vjerojatno se odrzati krajem iduceg tjedna i/ili onaj tjedan iza. 8)
[quote="kakt00s"]Je li u zadacima dozvoljeno korištenje pomoćnih nizova?[/quote]
Da, ali ne smijete uvoditi ogranicenja koja ne proizlaze iz zadataka. :) Dakle, tko hoce pomocne nizove, najcesce ih treba dinamicki alocirati. 8) To sto to jos niste ucili, ovdje nema veze jer vas nitko ne tjera da si komplicirate zivot dodatnim nizovima. ;)
Tygy (napisa): | nego, da priupitam...kad se piše taj praktični klokvij i da li se sami prijavljujemo ili nas razmjestaju kako hoće... |
Prijavljujete se, vjerojatno iduci tjedan. Sami kolokviji ce vjerojatno se odrzati krajem iduceg tjedna i/ili onaj tjedan iza.
kakt00s (napisa): | Je li u zadacima dozvoljeno korištenje pomoćnih nizova? |
Da, ali ne smijete uvoditi ogranicenja koja ne proizlaze iz zadataka. Dakle, tko hoce pomocne nizove, najcesce ih treba dinamicki alocirati. To sto to jos niste ucili, ovdje nema veze jer vas nitko ne tjera da si komplicirate zivot dodatnim nizovima.
_________________ 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] |
|
ddduuu Forumaš(ica)

Pridružen/a: 16. 11. 2008. (12:31:48) Postovi: (109)16
|
|
[Vrh] |
|
Milojko Forumaš(ica)


Pridružen/a: 07. 11. 2008. (14:57:52) Postovi: (453)16
Spol: 
Lokacija: Hilbertov hotel
|
|
[Vrh] |
|
pero Forumaš(ica)


Pridružen/a: 02. 02. 2005. (17:13:37) Postovi: (81)16
Spol: 
|
|
[Vrh] |
|
moi Forumaš(ica)

Pridružen/a: 21. 02. 2007. (13:39:09) Postovi: (26)16
Spol: 
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16
Spol: 
Lokacija: /sbin/init
|
|
[Vrh] |
|
moi Forumaš(ica)

Pridružen/a: 21. 02. 2007. (13:39:09) Postovi: (26)16
Spol: 
|
|
[Vrh] |
|
Milojko Forumaš(ica)


Pridružen/a: 07. 11. 2008. (14:57:52) Postovi: (453)16
Spol: 
Lokacija: Hilbertov hotel
|
Postano: 18:21 sri, 18. 3. 2009 Naslov: |
|
|
radi se o 29. zadatku. nešto mi ne funkcionira kad uvalim i negativne brojeve s jednakom drugom znamenkom iza decimalne točke, tj, nešto sam zabrljao sa apsolutnim vrijednostima. čini se da mi program kao prvi uvjet za sortiranje uzima apsolutnu vrijednost, a ne drugu znamenku. može ko nać problem u kodu? fala unaprijed na odgovoru
[code:1]double apsoluta(double x) {
if (x < 0) return -x;
return x;
}
int sort(double n) {
int y, znam;
n *= 100;
y = (int) n;
znam = y % 10;
return znam;
}
int main() {
int n, i, j;
double niz[50];
printf("Skanfaj n: "); scanf("%d", &n);
for (i = 0; i < n; ++i) scanf("%lg", &niz[i]);
for (i = 0; i < n - 1; ++i) {
int znam = sort(niz[i]);
for (j = i + 1; j < n; ++j) {
if (sort(niz[j]) < znam) {
double tmp = niz[i];
niz[i] = niz[j];
niz[j] = tmp;
}
if (znam == sort(niz[j])) {
if (apsoluta(niz[j]) < apsoluta(niz[i])) {
double cmp = niz[i];
niz[i] = niz[j];
niz[j] = cmp;
}
}
}
}[/code:1]
radi se o 29. zadatku. nešto mi ne funkcionira kad uvalim i negativne brojeve s jednakom drugom znamenkom iza decimalne točke, tj, nešto sam zabrljao sa apsolutnim vrijednostima. čini se da mi program kao prvi uvjet za sortiranje uzima apsolutnu vrijednost, a ne drugu znamenku. može ko nać problem u kodu? fala unaprijed na odgovoru
Kod: | double apsoluta(double x) {
if (x < 0) return -x;
return x;
}
int sort(double n) {
int y, znam;
n *= 100;
y = (int) n;
znam = y % 10;
return znam;
}
int main() {
int n, i, j;
double niz[50];
printf("Skanfaj n: "); scanf("%d", &n);
for (i = 0; i < n; ++i) scanf("%lg", &niz[i]);
for (i = 0; i < n - 1; ++i) {
int znam = sort(niz[i]);
for (j = i + 1; j < n; ++j) {
if (sort(niz[j]) < znam) {
double tmp = niz[i];
niz[i] = niz[j];
niz[j] = tmp;
}
if (znam == sort(niz[j])) {
if (apsoluta(niz[j]) < apsoluta(niz[i])) {
double cmp = niz[i];
niz[i] = niz[j];
niz[j] = cmp;
}
}
}
} |
_________________ Sedam je prost broj
Bolonja je smeće i to pod hitno treba mijenjat
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16
Spol: 
Lokacija: /sbin/init
|
Postano: 18:58 sri, 18. 3. 2009 Naslov: |
|
|
Mislim da ti fale [tt]else[/tt] izmedju dva [tt]if()[/tt]-a. 8)
Inace, ako imas dva uvjeta sorta, onda radis ovako:
[tt]if (manji1(a[j], a[i]) || (jednaki1(a[i], a[j]) && manji2(a[j], a[i]))) swap(&a[i], &a[j]);[/tt]
Pri tome, funkcije [tt]manji1()[/tt] i [tt]manji2()[/tt] vracaju istinu ako je prvi parametar manji od drugog (po prvom, odnosno drugom kriteriju sorta), a funkcija [tt]jednaki1()[/tt] vraca istinu ako su argumenti jednaki po prvom kriteriju sorta. :)
Mislim da ti fale else izmedju dva if()-a.
Inace, ako imas dva uvjeta sorta, onda radis ovako:
if (manji1(a[j], a[i]) || (jednaki1(a[i], a[j]) && manji2(a[j], a[i]))) swap(&a[i], &a[j]);
Pri tome, funkcije manji1() i manji2() vracaju istinu ako je prvi parametar manji od drugog (po prvom, odnosno drugom kriteriju sorta), a funkcija jednaki1() vraca istinu ako su argumenti jednaki po prvom kriteriju sorta.
_________________ 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] |
|
lorozic Forumaš(ica)

Pridružen/a: 08. 12. 2008. (17:11:14) Postovi: (50)16
Spol: 
|
Postano: 20:27 sri, 18. 3. 2009 Naslov: |
|
|
radi se o zadatku 9 iz prakticnih kolokvija. ako neko ima viska vremena pliz nek kompajlira ili javi ako vidi gresku.
[code:1]
#include<stdio.h>
#include<stdlib.h>
int provjera(double a[],int alfa, int n) {
int i;
for(i=2;i<=n;i++) if(a[i]==a[i-1]+alfa*a[i-2]) return 1;
return 0;
}
int main(void) {
int n,i=2,alfa=0;
double a[20];
scanf("%d",&n);
for(i=0;i<=n;i++) scanf("%d",&a[i]);
if(provjera(a,&alfa,&n))
{
printf("Niz je fibonaccijevski.\n");
system("pause");
return 0;
}
while(a[2]<a[1]+alfa*a[0]) {
alfa++;
if(a[2]==a[1]+alfa*a[0] && provjera(a,alfa,&n))
{
printf("Niz je fibonaccijevski.\n");
system("pause");
return 0;
}
}
alfa=0;
while(a[2]<a[1]+alfa*a[0]) {
alfa--;
if(a[2]==a[1]+alfa*a[0] && provjera(a,alfa,&n))
{
printf("Niz je fibonaccijevski.\n");
system("pause");
return 0;
}
}
}
[/code:1]
Pri pozivu funkcije probal sam i sa zagradama ( a[] ) i bez, u prvom slucaju veli "expected primary-expression before ']' token" a u drugom " invalid conversion from `int*' to `int' " i " initializing argument 2 of `int provjera(double*, int, int)' ". Javlja gresku uvijek u redovima di pozivam funkciju. Thx :)
radi se o zadatku 9 iz prakticnih kolokvija. ako neko ima viska vremena pliz nek kompajlira ili javi ako vidi gresku.
Kod: |
#include<stdio.h>
#include<stdlib.h>
int provjera(double a[],int alfa, int n) {
int i;
for(i=2;i<=n;i++) if(a[i]==a[i-1]+alfa*a[i-2]) return 1;
return 0;
}
int main(void) {
int n,i=2,alfa=0;
double a[20];
scanf("%d",&n);
for(i=0;i<=n;i++) scanf("%d",&a[i]);
if(provjera(a,&alfa,&n))
{
printf("Niz je fibonaccijevski.\n");
system("pause");
return 0;
}
while(a[2]<a[1]+alfa*a[0]) {
alfa++;
if(a[2]==a[1]+alfa*a[0] && provjera(a,alfa,&n))
{
printf("Niz je fibonaccijevski.\n");
system("pause");
return 0;
}
}
alfa=0;
while(a[2]<a[1]+alfa*a[0]) {
alfa--;
if(a[2]==a[1]+alfa*a[0] && provjera(a,alfa,&n))
{
printf("Niz je fibonaccijevski.\n");
system("pause");
return 0;
}
}
}
|
Pri pozivu funkcije probal sam i sa zagradama ( a[] ) i bez, u prvom slucaju veli "expected primary-expression before ']' token" a u drugom " invalid conversion from `int*' to `int' " i " initializing argument 2 of `int provjera(double*, int, int)' ". Javlja gresku uvijek u redovima di pozivam funkciju. Thx
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16
Spol: 
Lokacija: /sbin/init
|
|
[Vrh] |
|
Milojko Forumaš(ica)


Pridružen/a: 07. 11. 2008. (14:57:52) Postovi: (453)16
Spol: 
Lokacija: Hilbertov hotel
|
Postano: 21:03 sri, 18. 3. 2009 Naslov: |
|
|
a_n = a_n-1 + alfa * a_n-2 => alfa = (a_n-a_n-1)/a_n-2.
učitaj niz. uzmi si da je alfa = (a[2] - a[1])/a[0]. s tim alfa uđi u petlju
[code:1]for (i = 2; i <= n; ++i) {
if (a[i] != a[i-1] + alfa * a[i-2]) fibonaciev = 0;
}
[/code:1]
[tt]fibonaciev[/tt] je kontrolna varijabla, prvotno postavljena na 7 :) (može i na 1, isti jarac). na kraju ide ispis ak je fibonaci osto na sedmici, onda ispišeš tog alfu, ak ne, onda ništ......
a_n = a_n-1 + alfa * a_n-2 ⇒ alfa = (a_n-a_n-1)/a_n-2.
učitaj niz. uzmi si da je alfa = (a[2] - a[1])/a[0]. s tim alfa uđi u petlju
Kod: | for (i = 2; i <= n; ++i) {
if (a[i] != a[i-1] + alfa * a[i-2]) fibonaciev = 0;
}
|
fibonaciev je kontrolna varijabla, prvotno postavljena na 7 (može i na 1, isti jarac). na kraju ide ispis ak je fibonaci osto na sedmici, onda ispišeš tog alfu, ak ne, onda ništ......
_________________ Sedam je prost broj
Bolonja je smeće i to pod hitno treba mijenjat
|
|
[Vrh] |
|
bozidarsevo Forumaš(ica)


Pridružen/a: 17. 09. 2008. (10:15:01) Postovi: (1D1)16
Spol: 
Lokacija: Samobor
|
Postano: 21:45 sri, 18. 3. 2009 Naslov: |
|
|
ja sam rješio ovako:
int main(){
int n, niz[20], i, j,k , a;
printf("upisi prirodni broj n manji od 20: ");
scanf("%d", &n);
for(i=0; i<=n; i++){
printf("upisi %d-ti clan niza: ", i);
scanf("%d", &niz[i]);
}
a=(niz[2]-niz[1])/niz[0];
for(j=1;j<=n-2 ;j++){
if(a!=(niz[j+2]-niz[j+1])/niz[j]) a=0;
}
printf("ucitani niz brojeva je fibonaccijevski za alfa = %d\n", a);
tj. izračunamo alfa za ove prve,tada mora vrijedit za ostale,ako ne vrijedi..onda vrijedi jedino za alfa=0. zar ne?
ja sam rješio ovako:
int main(){
int n, niz[20], i, j,k , a;
printf("upisi prirodni broj n manji od 20: ");
scanf("%d", &n);
for(i=0; i⇐n; i++){
printf("upisi %d-ti clan niza: ", i);
scanf("%d", &niz[i]);
}
a=(niz[2]-niz[1])/niz[0];
for(j=1;j⇐n-2 ;j++){
if(a!=(niz[j+2]-niz[j+1])/niz[j]) a=0;
}
printf("ucitani niz brojeva je fibonaccijevski za alfa = %d\n", a);
tj. izračunamo alfa za ove prve,tada mora vrijedit za ostale,ako ne vrijedi..onda vrijedi jedino za alfa=0. zar ne?
|
|
[Vrh] |
|
lorozic Forumaš(ica)

Pridružen/a: 08. 12. 2008. (17:11:14) Postovi: (50)16
Spol: 
|
|
[Vrh] |
|
bozidarsevo Forumaš(ica)


Pridružen/a: 17. 09. 2008. (10:15:01) Postovi: (1D1)16
Spol: 
Lokacija: Samobor
|
|
[Vrh] |
|
kakt00s Forumaš(ica)


Pridružen/a: 17. 10. 2007. (12:19:40) Postovi: (183)16
Spol: 
Lokacija: :ɐɾıɔɐʞoן
|
|
[Vrh] |
|
|