PC Ekspert Forum

PC Ekspert Forum (https://forum.pcekspert.com/index.php)
-   Web dizajn, programiranje i ostalo (https://forum.pcekspert.com/forumdisplay.php?f=39)
-   -   kako ovo isprogramirati? (https://forum.pcekspert.com/showthread.php?t=66583)

ZMAJ 13.04.2007. 21:10

kako ovo isprogramirati?
 
Imam 2 zadatka koja moram rijesiti.

1. Trebam napraviti funkciju koja ce izracunati zbroj i umnozak broja unesenog u glavnom programu (znaci npr ako se radi o 84 onda 8+4 i 8*4)

E sad problem mi je to sto mi ne pada na pamet kako da dodem do znamenki tog broja.

jedino sto mi je palo na pamet je da podijelim broj sa %10 i onda dobim zadnju znamenku no onda sam skuzio da uneseni broj moze biti bilo koji prirodni broj a ne nuzno dvoznamenkasti.

2. ovaj zadatak uopce ne kuzim (vjerojatno zato sto se ne sijecam tog dijela matematike...)

ugl glasi ovako:
"Napisati funkciju koja ce kut u sekundama pretvoriti u stupnjeve, minute i sekunde. U glavnom programu učitati kut u sekundama, pozvati funkciju i ispisati dobivenu vrijednost za stupnjeve, minute i sekunde."

pa bi molio ako netko zna i da mu se malo razmisliti da mi pomogne

hvala

frANZi 13.04.2007. 22:50

Koji programski jezik?:chears:

rendula 13.04.2007. 22:54

ako je pascal napisem ti to sutra.

inace, znamenke dobivas broj mod 10, pa broj dijelis sa 10, pa opet mod pa dijelis i tako dok ne dodjes do nule.

ZMAJ 13.04.2007. 23:00

jezik je "C"

h-tomek 13.04.2007. 23:14

Ako je bilo koji broj u pitanju modaš ga s 10 tako dugo dok ne dobiš 0.

Dakle, napraviš neko polje, i u to polje redom spremaš znamenke. I u neku varijablu pamtiš koliko je točno bilo. To bi ja rješio s jednom while petljom.

A onda, kad imaš sve znamenke u polju, i u nekoj varijabli točan broj znamenaka, u jednoj for petlji to sve pozbrojiš i pomnožiš. I to je to.

A što se tiče drugog zadatka. Tu moraš napraviti jednostavnu pretvorbu, najprije to pretvaraš u minute. Modaš sa 60 opet tako dugo dok ne dobiješ broj manji od 60. Brojiš koliko si to puta napravio i imaš ukupan broj minuta, a ono što je ostalo to su ti sekunde u konačnom rezultatu.
Nakon toga istu stvar ponoviš s minutama, i dobio si stupnjeve, a opet, ono što je ostalo, onaj broj manji od 60 jesu minute.

Nadam se da sam bio dovoljno jasan.

ZMAJ 14.04.2007. 00:14

Citiraj:

Autor h-tomek (Post 699045)
Ako je bilo koji broj u pitanju modaš ga s 10 tako dugo dok ne dobiš 0.

Dakle, napraviš neko polje, i u to polje redom spremaš znamenke. I u neku varijablu pamtiš koliko je točno bilo. To bi ja rješio s jednom while petljom.

hm nije mi jasno zasto mi treba varijabla za brojanje koliko je znamenki bilo?

SPLiFF 14.04.2007. 01:41

Citiraj:

Autor ZMAJ (Post 699076)
hm nije mi jasno zasto mi treba varijabla za brojanje koliko je znamenki bilo?

zato sto za for petlju treba broj izvodjenja, odnosno korak i krajnja vrijednost jel, a ta varijabla koja pokazuje broj znamenki tada odredjuje koliko puta ce for petlja zbrojiti polja iz vektora, tj. do kojeg polja ce zbrajati.

for(i=1;i<=broj_znamenki;i++)

horza 14.04.2007. 09:10

i don't get it. zašto bi išli dijeliti broj da dobijete znamenke? kaj se ne smije koristiti interrupt za pritisnutu tipku? naime, ako se radi samo o jednom trenutku i jednom unosu brojeva, zašto ne biti prljav? getch i getche bi brijem lijepo odradili posao :)

h-tomek 14.04.2007. 10:18

Citiraj:

Autor horza (Post 699157)
i don't get it. zašto bi išli dijeliti broj da dobijete znamenke? kaj se ne smije koristiti interrupt za pritisnutu tipku? naime, ako se radi samo o jednom trenutku i jednom unosu brojeva, zašto ne biti prljav? getch i getche bi brijem lijepo odradili posao :)

Smatram da je moj način najčišći i najlakše ga shvatiti. Ja bi to tako napravil. Kako ovdje nije bitna ni brzina ni ništa mislim da je najbolje pobacati znamenke u polje.

ZMAJ 14.04.2007. 12:11

iskreno nisam bas skuzio kako bi zgledalo to modanje...

jel bi bio problem napisati taj dio gdje se radi to modanje i ubacuje u polje?

SPLiFF 14.04.2007. 13:00

int i=0, b=0, a;
...
while(a!=0)
{
b=a%10;
v[i]=b;
i++;
a=a/10;
}

otprilike tako, to sam nabrzaka

a je uneseni broj, v je vektor sa odredjenim brojem polja (maksimalni broj decimali)

i onda sa for petljom zbrajas i mnozis

int zbroj=0, umnozak=1;
...
for(j=0;j {
zbroj+=v[j];
umnozak*=v[j];
}


mozes i odma zbrajat i mnozit:
int zbroj=0, umnozak=1;
...
while(a!=0)
{
b=a%10;
zbroj+=b;
umnozak*=b;
a=a/10;
}

Mihael 14.04.2007. 13:37

Kolega, jel to kod Grgeca?

ZMAJ 14.04.2007. 14:09

@Spliff: hvala, budem se bavio time kad nadem vremena... moram sad ucit ovu dole navedenu digitalnu briju...

@Mihael: nene, Grgec ove godine nije asistent na programiranju vec predavac iz Digitalnih sklopova i uredaja... ugl. koma

btw. vidim da imas ovog supertalenta... jesi li probavao dokle ide na 4-4-4 i 5-5-5?

Mihael 14.04.2007. 14:21

Nama grgec predaje programiranje.... TEŠKA KOMA :D...

Nisam probavao, uglavnom do 1000 sam išao, dalje mi se nije dalo...

ZMAJ 14.04.2007. 14:41

Citiraj:

Autor Mihael (Post 699335)
Nama grgec predaje programiranje.... TEŠKA KOMA :D...

Nisam probavao, uglavnom do 1000 sam išao, dalje mi se nije dalo...

hehe ma ok on meni predaje ali ovaj predmet mu je uzasan...

tih 1000 je sa 5-5-5 jeli tako?

Mihael 14.04.2007. 17:44

Da na 5-5-5 jer mi se nije dalo spuštat latencije i još zafrkavat s kompom, nemam toliko vremena jer mi se ne zavlači stalno iza da brišem cmos.


Sva vremena su GMT +2. Sada je 23:46.

Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 1999-2024 PC Ekspert - Sva prava pridržana ISSN 1334-2940
Ad Management by RedTyger