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

Zadatak 11.17
WWW:

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


Pridružen/a: 04. 09. 2007. (15:33:59)
Postovi: (399)16
Sarma = la pohva - posuda
70 = 95 - 25
Lokacija: Exotica

PostPostano: 19:01 sub, 2. 2. 2008    Naslov: Zadatak 11.17 Citirajte i odgovorite

[i]Zadatak 11.17. Napišite funkciju koja za zadani prirodni broj n ∈ N vraća sumu i produkt svih prirodnih brojeva strogo manjih od n.[/i]

Moje rješenje:
[code:1]
#include <stdio.h>

void f(int n, int *suma, int *produkt){

int i;
*suma = 0;
*produkt = 1;
for (i = 1; i < n; ++i){
*suma += i;
*produkt *= i;
}
return;
}

int main(void)
{
int suma, produkt, n;
printf ("Unesite n: "); scanf ("%d", &n);
f(n,&suma,&produkt);
printf ("Suma iznosi %d a produkt %d.", suma, produkt);
scanf("%%");
return 0;
}
[/code:1]

Sad, mene zanima jesam li dobro shvatio zadatak. Rješenje mi djeluje čudno, a ne znam je li stvar samo u mojoj nenaviknutosti na pointere...

U tekstu zadatka piše da funkcija treba vraćati sumu i produkt, a u napomeni da funkcija ne može vratiti više od jedne vrijednosti, što znači da ne može vraćati sumu i produkt. :D
Znači li to da funkcija treba vraćati jednu od tih vrijednosti a druga da se dohvaća preko varijabilnog argumenata, ili se obje smiju dohvaćati preko varijabilnih argumenata, kao kod mene? Sve u svemu, zadatak mi je pomalo maglovit pa bih molio objašnjenje... :)
Zadatak 11.17. Napišite funkciju koja za zadani prirodni broj n ∈ N vraća sumu i produkt svih prirodnih brojeva strogo manjih od n.

Moje rješenje:
Kod:

#include <stdio.h>

void f(int n, int *suma, int *produkt){

int i;
*suma = 0;
*produkt = 1;
     for (i = 1; i < n; ++i){
         *suma += i;
         *produkt *= i;
         }
return;
}

int main(void)
{
int suma, produkt, n;
printf ("Unesite n: "); scanf ("%d", &n);
f(n,&suma,&produkt);
printf ("Suma iznosi %d a produkt %d.", suma, produkt);
scanf("%%");
return 0;
}


Sad, mene zanima jesam li dobro shvatio zadatak. Rješenje mi djeluje čudno, a ne znam je li stvar samo u mojoj nenaviknutosti na pointere...

U tekstu zadatka piše da funkcija treba vraćati sumu i produkt, a u napomeni da funkcija ne može vratiti više od jedne vrijednosti, što znači da ne može vraćati sumu i produkt. Very Happy
Znači li to da funkcija treba vraćati jednu od tih vrijednosti a druga da se dohvaća preko varijabilnog argumenata, ili se obje smiju dohvaćati preko varijabilnih argumenata, kao kod mene? Sve u svemu, zadatak mi je pomalo maglovit pa bih molio objašnjenje... Smile


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


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

PostPostano: 19:08 sub, 2. 2. 2008    Naslov: Citirajte i odgovorite

Pa, moze na oba nacina (poanta zadatka je isforsati da barem jedan argument bude varijablini ;)), no ovako kako si ti napisao je smislenije (suma i produkt su "ravnopravni"). :)

Sitnica: [tt]return;[/tt] na kraju funkcije nije nuzan jer ne vraca nikakvu vrijednost (sto je ok za void-funkciju), a nakon njega nema koda, pa ne treba niti prekinuti izvrsavanje funkcije. :)
Pa, moze na oba nacina (poanta zadatka je isforsati da barem jedan argument bude varijablini Wink), no ovako kako si ti napisao je smislenije (suma i produkt su "ravnopravni"). Smile

Sitnica: return; na kraju funkcije nije nuzan jer ne vraca nikakvu vrijednost (sto je ok za void-funkciju), a nakon njega nema koda, pa ne treba niti prekinuti izvrsavanje funkcije. Smile



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


Pridružen/a: 04. 09. 2007. (15:33:59)
Postovi: (399)16
Sarma = la pohva - posuda
70 = 95 - 25
Lokacija: Exotica

PostPostano: 19:10 sub, 2. 2. 2008    Naslov: Citirajte i odgovorite

Hvala. :)
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.
Stranica 1 / 1.

 
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