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

Pomoć oko zadatka (zadatak)
WWW:
Idite na Prethodno  1, 2
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
pubava
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 08. 10. 2014. (13:47:07)
Postovi: (A)16
Sarma = la pohva - posuda
= 0 - 0

PostPostano: 6:31 uto, 9. 6. 2015    Naslov: Citirajte i odgovorite

Da, shvaćam. Stavila sam if(prvi) ispred i sad sve radi. Hvala! :)
Da, shvaćam. Stavila sam if(prvi) ispred i sad sve radi. Hvala! Smile


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


Pridružen/a: 08. 10. 2014. (13:47:07)
Postovi: (A)16
Sarma = la pohva - posuda
= 0 - 0

PostPostano: 21:52 pet, 12. 6. 2015    Naslov: Citirajte i odgovorite

Pokušavam riješiti zadatak 8.1.48. iz skripte, ali mi se program stalno ruši i mislim da je to kad pokušavam raditi sa elementima niza studenti. Može pomoć? :)

[code:1]
typedef struct{
char ime[51];
char prezime[51];
int ocjena[2];
} student;

...
student* studenti;
char s1[51];
char s2[51];
int i, j, n=0, o;
...
while(fscanf(in1, "%[^;];%[^;];%d ", s1, s2, &o)==3)
{
studenti=(student*)realloc(studenti, (++n)*sizeof(student));
strcpy(studenti[n-1].ime, s1);
(tu prestaje radit u prvom prolazu petlje)
strcpy(studenti[n-1].prezime, s2);
studenti[n-1].ocjena[0]=o;
studenti[n-1].ocjena[1]=0;

}
...
[/code:1]

EDIT: Mislim da sam shvatila. Nisam inicijalizirala studenti na NULL. :oops:
Pokušavam riješiti zadatak 8.1.48. iz skripte, ali mi se program stalno ruši i mislim da je to kad pokušavam raditi sa elementima niza studenti. Može pomoć? Smile

Kod:

typedef struct{
char ime[51];
char prezime[51];
int ocjena[2];
} student;

...
student* studenti;
char s1[51];
char s2[51];
int i, j, n=0, o;
...
while(fscanf(in1, "%[^;];%[^;];%d ", s1, s2, &o)==3)
    {
        studenti=(student*)realloc(studenti, (++n)*sizeof(student));
        strcpy(studenti[n-1].ime, s1);
   (tu prestaje radit u prvom prolazu petlje)
        strcpy(studenti[n-1].prezime, s2);
        studenti[n-1].ocjena[0]=o;
        studenti[n-1].ocjena[1]=0;

    }
...


EDIT: Mislim da sam shvatila. Nisam inicijalizirala studenti na NULL. Embarassed


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


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (353C)16
Spol: zombi
Sarma = la pohva - posuda
849 = 1063 - 214
Lokacija: /sbin/init

PostPostano: 13:28 sub, 13. 6. 2015    Naslov: Citirajte i odgovorite

Da, cini se da je to bio problem.

Jedna opaska: mozda izbjegavati varijablu "[tt]o[/tt]" jer je jako slicna nuli, sto moze prouzrociti bugove koje je jako tesko naci. Nazovi to "[tt]ocj[/tt]", "[tt]ocjena[/tt]", ili tako nekako.
Da, cini se da je to bio problem.

Jedna opaska: mozda izbjegavati varijablu "o" jer je jako slicna nuli, sto moze prouzrociti bugove koje je jako tesko naci. Nazovi to "ocj", "ocjena", ili tako nekako.



_________________
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
pubava
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 08. 10. 2014. (13:47:07)
Postovi: (A)16
Sarma = la pohva - posuda
= 0 - 0

PostPostano: 17:31 sub, 13. 6. 2015    Naslov: Citirajte i odgovorite

Budem, hvala :) To i inace radim, ali sam bila malo lijena ovaj put. :P
Budem, hvala Smile To i inace radim, ali sam bila malo lijena ovaj put. Razz


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


Pridružen/a: 03. 04. 2017. (11:40:10)
Postovi: (2)16
Sarma = la pohva - posuda
= 0 - 0

PostPostano: 11:46 pon, 3. 4. 2017    Naslov: Citirajte i odgovorite

Ako netko ima vremena možete i molim vas ovo pogledati i reći mi gdje sam pogriješila? To je zadatak iz aplikacije za zadaće i kaže da je netočno za input: 15 -47 -59 -39 -45 -50 -15 -65 -54 -64 -24 -15 -67 -48 -69 -64.

[quote]Napišite program koji učitava prirodni broj n ≤ 17 i niz od n cijelih brojeva. Program treba kreirati donjetrokutastu matricu M reda n kojoj se učitani brojevi nalaze na dijagonali (redom kojim su učitani), a za elemente ispod dijagonale vrijedi:

M[i][j]=(−3M[i−1][j]−5M[i][j+1]) mod 2897604,

gdje mod označava nenegativni ostatak pri dijeljenju lijevog broja s desnim. Program treba ispisati elemente posljednjeg retka matrice M (ispisane brojeve odvojite razmakom).[/quote]

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

void f(int a[17][17], int n)
{
int i, j;

for(i = 1; i < n; i++)
for(j = i-1; j >= 0; j--)
{
a[i][j] = ((-3)*a[i-1][j]+(-5)*a[i][j+1]) % 2897604;
if(a[i][j] < 0) a[i][j] *= (-1);
}
}

int main()
{
int i, j, n, niz[17][17] = {{0}};

scanf("%d", &n);

for(i = 0; i < n; i++)
scanf("%d", &niz[i][i]);

f(niz, n);

i = n-1;
for(j = 0; j < n; j++)
printf("%d ", niz[i][j]);

return 0;
}
[/code:1]
Ako netko ima vremena možete i molim vas ovo pogledati i reći mi gdje sam pogriješila? To je zadatak iz aplikacije za zadaće i kaže da je netočno za input: 15 -47 -59 -39 -45 -50 -15 -65 -54 -64 -24 -15 -67 -48 -69 -64.

Citat:
Napišite program koji učitava prirodni broj n ≤ 17 i niz od n cijelih brojeva. Program treba kreirati donjetrokutastu matricu M reda n kojoj se učitani brojevi nalaze na dijagonali (redom kojim su učitani), a za elemente ispod dijagonale vrijedi:

M[i][j]=(−3M[i−1][j]−5M[i][j+1]) mod 2897604,

gdje mod označava nenegativni ostatak pri dijeljenju lijevog broja s desnim. Program treba ispisati elemente posljednjeg retka matrice M (ispisane brojeve odvojite razmakom).


Kod:
#include <stdio.h>

void f(int a[17][17], int n)
{
    int i, j;

    for(i = 1; i < n; i++)
        for(j = i-1; j >= 0; j--)
        {
            a[i][j] = ((-3)*a[i-1][j]+(-5)*a[i][j+1]) % 2897604;
            if(a[i][j] < 0) a[i][j] *= (-1);
        }
}

int main()
{
    int i, j, n, niz[17][17] = {{0}};

    scanf("%d", &n);

    for(i = 0; i < n; i++)
        scanf("%d", &niz[i][i]);

    f(niz, n);

    i = n-1;
    for(j = 0; j < n; j++)
        printf("%d ", niz[i][j]);

    return 0;
}


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


Pridružen/a: 30. 11. 2002. (22:17:12)
Postovi: (719)16
Spol: muško
Sarma = la pohva - posuda
199 = 237 - 38
Lokacija: MPI-SWS, Kaiserslautern

PostPostano: 13:22 pon, 3. 4. 2017    Naslov: Citirajte i odgovorite

[quote="AGB"]
M[i[i][/i]][j]=(−3M[i−1][j]−5M[i[i][/i]][j+1]) mod 2897604,

gdje mod označava nenegativni ostatak pri dijeljenju lijevog broja s desnim.

[code:1]a[i][j] = ((-3)*a[i-1][j]+(-5)*a[i][j+1]) % 2897604;
if(a[i][j] < 0) a[i][j] *= (-1);[/code:1][/quote]

Problem je u tome to pogrešno interpretiraš što znači "nenegativni ostatak pri dijeljenju". Ono što se pod tim misli u zadatku je: [b]nenegativni ostatak pri dijeljenju [i]a[/i] s [i]b[/i] je najmanji nenegativni cijeli broj [i]d[/i] za koji postoji neki cijeli broj [i]k[/i] takav da je [i]k[/i] * [i]b[/i] + [i]d[/i] = [i]a[/i][/b].

Primjer: -1 mod 10 = 9, tj. (nenegativni) ostatak pri dijeljenju broja -1 s 10 je 9.

Pogledaj sad što C kaže za [tt](-1) % 10[/tt]. [code:1]#include <stdio.h>

int main() {
printf("%d", (-1) % 10); /* Ovo će ispisati -1 */
return 0;
}[/code:1]

Općenito, za C-ovski operator [tt]%[/tt] vrijedi [tt](-a) % b == -(a % b)[/tt].


Vidiš li sad u čemu je problem?
AGB (napisa):

M[i][j]=(−3M[i−1][j]−5M[i][j+1]) mod 2897604,

gdje mod označava nenegativni ostatak pri dijeljenju lijevog broja s desnim.

Kod:
a[i][j] = ((-3)*a[i-1][j]+(-5)*a[i][j+1]) % 2897604;
            if(a[i][j] < 0) a[i][j] *= (-1);


Problem je u tome to pogrešno interpretiraš što znači "nenegativni ostatak pri dijeljenju". Ono što se pod tim misli u zadatku je: nenegativni ostatak pri dijeljenju a s b je najmanji nenegativni cijeli broj d za koji postoji neki cijeli broj k takav da je k * b + d = a.

Primjer: -1 mod 10 = 9, tj. (nenegativni) ostatak pri dijeljenju broja -1 s 10 je 9.

Pogledaj sad što C kaže za (-1) % 10.
Kod:
#include <stdio.h>

int main() {
  printf("%d", (-1) % 10); /* Ovo će ispisati -1 */
  return 0;
}


Općenito, za C-ovski operator % vrijedi (-a) % b == -(a % b).


Vidiš li sad u čemu je problem?



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


Pridružen/a: 03. 04. 2017. (11:40:10)
Postovi: (2)16
Sarma = la pohva - posuda
= 0 - 0

PostPostano: 13:53 pon, 3. 4. 2017    Naslov: Citirajte i odgovorite

Shvatila sam sada, puno hvala! :)
Shvatila sam sada, puno hvala! Smile


[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 Prethodno  1, 2
Stranica 2 / 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