[ st_jimmy @ 21.03.2006. 14:08 ] @
dobili smo C ovaj semestar na faxu, ali mi baš ne ide najbolje! uspem da razumem ono sa vežbi, ali smo dobili domaći koji je obavezan i koji ocenjuje! za neke je lak, za mene i te kako težak, ako je iko raspoložen da mi pomogne ... jako bih mu bio zahvalan!!! i naravno, ako mi nesto ne bude jasno, da mi samo malo objasni, pošto trebam i da "odbranim" rad!

Napisati C program koji omogućava unošenje vrednosti R1, R2 i R3 (uz kontrolu unosa svakog otpornika), a zatim na osnovu izabrane opcije izračunava ekvivalentnu otpornost.
Prilikom startovanja programa korisniku se pojavljuje sledeci izbor opcija:

Moguće kombinovane veze:
--------------------------------
1. R1*R2*R3
2. R1||R2||R3
3. R1+(R2||R3)
4. (R1||R2)+R3
5. (R1+R2)||R3
6. R1||(R2+R3
--------------------------------
Vaš izbor je:

U prikazanom meniju znak + označava rednu, a || paralelnu vezu otpornika. Korišćenjem naredbe switch, bira se jedna od opcija unosom odgovarajućeg broja (1-6), ekran se nakon unosa izbora briše, a potom se unose vrednosti otpornika i prikazuje odgovarajuća ekvivalentna otpornost.


HVALA PUNO UNAPRED!
[ Pharos @ 21.03.2006. 14:14 ] @
Reci samo šta ti nije jasno. Šta konkretno treba da ti se objasni i da li treba da ti se uradi ceo zadatak?
Meni je ovde sve jasno napisano, pa ne znam šta ne razumeš.
pOz
[ Pharos @ 21.03.2006. 14:29 ] @
Code:

#include<stdio.h>

double prvi(argumenti)
{
    // odradis f-ju;
    return rezultat;
}

double drugi(argumenti)
{
    // odradis f-ju;
    return rezultat;
}

double treci(argumenti)
{
    // odradis f-ju;
    return rezultat;
}

double cetvrti(argumenti)
{
    // odradis f-ju;
    return rezultat;
}
double peti(argumenti)
{
    // odradis f-ju;
    return rezultat;
}

double sesti(argumenti)
{
    // odradis f-ju;
    return rezultat;
}

int main(){
    printf("
        // ispises meni
        ");
        int izbor;
    scnaf("%d",&izbor);
    switch(izbor){
        case 1:
            system("CLS");
            scanf("%lf%lf%lf",&R1,&R2,&R3);
            resenje = prvi(R1,R2,R3);
            printf("Rezultat = %.3f",resenje);
            // ili 
            // system("CLS");
            // scanf("%lf%lf%lf",&R1,&R2,&R3);
            // printf("Rezultat = %.3f",prvi(R1,R2,R3);
            break;

            // Ovde nastavak za ostale slucajeve
    }

    return 0;
}


Ovo ti je samo mala skica. Naravno radićeš to u malo izmenjenom obliku. Da li je potrebno da se učita meni, ti izvršiš odabir, izračuna se vrednost i program se ugasi? Ako nije već se ponavlja dok ne odeš na izlaz ili ne uneseš neku nedozvoljenu vrednost, onda ćeš ubaciti jednu while petlju ispred switch, pa ti treba jedno system("PAUSE") da bi mogao da vidiš rezultat na ekranu. Pa lepo svuda da deklarišeš šta je potrebno, ubaciš recimo const gde treba, malo optimizuješ kod pošto ti se system("CLS") u ovom mom primeru svuda ponavalj, a nije lepo da ostane tako, itd. Reci ako ti i dalje ništa nije jasno.

pOz

[Ovu poruku je menjao Pharos dana 21.03.2006. u 15:34 GMT+1]
[ st_jimmy @ 21.03.2006. 17:44 ] @
auuu .... kakvu f-ju da odradim??? ako nekoga ne mrzi, nek uradi ovo, pa cu, nadam se da provalim sta je sta uz pomoc ovih komentara!

treba da se pojavi taj spisak kombinacija, izabere se, meni nestane, unesu se vrednosti za otpornike i izracuna se ....

hvala ti punoi!!!!!
[ Pharos @ 21.03.2006. 17:56 ] @
Ovo ti je medveđa usluga. Ništa naučiti nećeš, a možda i hoćeš :D
Code:

#include <stdio.h>

// Deklaracija f-ja
double prva(const double, const double, const double);
double druga(const double, const double, const double);
double treca(const double, const double, const double);
double cetvrta(const double, const double, const double);
double peta(const double, const double, const double);
double sesta(const double, const double, const double);

int main(void)
{
    int izbor;
    double r1,r2,r3;
    while(1)
    {
        system("CLS");
        printf("\nMoguce kombinovane veze:\n"
            "---------------------------\n"
            "1. R1*R2*R3\n"
            "2. R1||R2||R3\n"
            "3. R1+(R2||R3)\n"
            "4. (R1||R2)+R3\n"
            "5. (R1+R2)||R3\n"
            "6. R1||(R2+R3)\n"
            "0. Kraj\n"
            "---------------------------\n\n"
            "Vas izbor je: ");        
        scanf("%d",&izbor);
        system("CLS");
        
        switch(izbor)
        {
        case 1:case 2: case 3: case 4: case 5: case 6:
            printf("R1, R2, R3? ");
            scanf("%lf%lf%lf",&r1,&r2,&r3);
            switch(izbor)
            {
            case 1:
                printf("Rezultat = %.3f\n",prva(r1,r2,r3));
                break;
            case 2:
                printf("Rezultat = %.3f\n",druga(r1,r2,r3));
                break;
            case 3:
                printf("Rezultat = %.3f\n",treca(r1,r2,r3));
                break;
            case 4:
                printf("Rezultat = %.3f\n",cetvrta(r1,r2,r3));
                break;
            case 5:
                printf("Rezultat = %.3f\n",peta(r1,r2,r3));
                break;
            case 6:
                printf("Rezultat = %.3f\n",sesta(r1,r2,r3));
                break;
            }
            break;
        case 0:
            exit(1);
            break;
        }
        system("PAUSE");
    }
    return 0;
}

double prva(const double r1, const double r2, const double r3)
{
    return r1*r2*r3;
}

double druga(const double r1, const double r2, const double r3)
{
    return 1.0/(1.0/r1 + 1.0/r2 + 1.0/r3);
}

double treca(const double r1, const double r2, const double r3)
{
    return r1+1.0/(1.0/r2+1.0/r3);
}

double cetvrta(const double r1, const double r2, const double r3)
{
    return treca(r3,r2,r1);
}

double peta(const double r1, const double r2, const double r3)
{
    return 1.0/(1.0/(r1+r2)+1.0/r3);
}

double sesta(const double r1, const double r2, const double r3)
{
    return peta(r3,r2,r1);
}
[ st_jimmy @ 21.03.2006. 21:05 ] @
vidis, ja bas mislim suprotno ...

-ona deklaracija f-ja, dosad to nismo radili ... isli smo include (sta treba), void main(void) i odmah {, pa program! da li su te deklaracije obavezne?
-system(CLS) je za brisanje ekrana, jel'?
-zar nam ne treba i math.h?
-za sta mi je onaj system(pause)?
-za sta je while?
-kod unosenja podataka, zar nije malo amaterskije da radima kao printf(r1=), pa scanf(r1), pa printf(r2=) ....? mislim provalice me .. hehe
-slucaj 0??!! ne verujem da treba!
-da li su brakeovi obavezni?
[ Pharos @ 21.03.2006. 21:32 ] @
Ma zadatak je odrađen školski onako kako Laslo Kraus obožava(imao sam 10 mada...) s tim što deklaracije funkcija, same funkcije i glavni program idu u odvojenim fajlovima, no dobro. Ne znam ko tebi predaje. Sve je odrađeno kako treba. Sad ovo možeš odraditi na više načina. Kako god da ti se sviđa. Ne postoji univerzalno rešenje. Math.h kao što vidiš ne treba. Prelistaj malo literaturu, mrzi me da ti komentarišem ceo kod od početka do kraja. Za to postoje privatni časovi :D

pOz
[ Yu Raider @ 21.03.2006. 21:57 ] @
Citat:
st_jimmy: vidis, ja bas mislim suprotno ...

-ona deklaracija f-ja, dosad to nismo radili ... isli smo include (sta treba), void main(void) i odmah {, pa program! da li su te deklaracije obavezne?
-system(CLS) je za brisanje ekrana, jel'?
-zar nam ne treba i math.h?
-za sta mi je onaj system(pause)?
-za sta je while?
-kod unosenja podataka, zar nije malo amaterskije da radima kao printf(r1=), pa scanf(r1), pa printf(r2=) ....? mislim provalice me .. hehe
-slucaj 0??!! ne verujem da treba!
-da li su brakeovi obavezni?


1. Ne - nisu obavezne. Tu gde je recimo:
Code:

printf("Rezultat = %.3f\n",prva(r1,r2,r3));


... mozes da zamenis sa:
Code:

printf("Rezultat = %.3f\n",r1*r2*r3);


Funkcije uglavnom sluze za sredjivanje koda. Zamisli da pravis novi M$ Windows i da sve ono sto on treba da radi
strpas u void main(). Bilo bi malo glupo, zar ne?

2. Tako je. Kasnije cu ti reci nesto vise o ovim system(""); komandama.

3. U ovom slucaju ne, zato sto i bez math.h mozes raditi sve osnovne racunske operacije (+, -, *, /),
a koliko vidim u ovom primeru se naprednije od toga ne koriste. Recimo da hoces da koristis funkciju pow(),
koja stepenuje neki broj, trebao bi ti math.h.

4. Sada malo reci o system(""); komandama . Ako bi usao u Command Prompt (Start -> All Programs -> Accessories -> Command Prompt) i tu kucao bilo koju od ovih komandi video bi isti rezultat kao kada bi u nekom C programu ukucao system("komanda"), gde je "komanda" ta komanda koju si otkucao predhodno u Command Promptu. system("PAUSE"); sluzi da se izbaci "Press any key to continue..." poruka, zato sto kad nje ne bi bilo program bi se prebrzo izvrsio i ti ne bi mogao da vidis rezultat. Nisam siguran da system(""); komande rade na svim kompajlerima, ali evo, u Dev-CPP (MingW) radi provereno.

5. Ako nisi ucio petlje recicu ti ovo ovako:
Petlje su delovi programa koji se izvrsavaju iznova i iznova sve dok neki uslov nije popunjen. Evo primera za to, copy/pasteuj ovo u svoj c++ kompajler:
Code:

#include <iostream>

using namespace std;

int krajpetlje = 0;
int brojac = 0;

void main()
{
 while(krajpetlje==0)
 {
   brojac++; // Ovde takodje moze stojati i brojac = brojac + 1, dakle povecava vrednost promenljive 'brojac' za 1
    cout << brojac << endl; 
   if(brojac == 5) {krajpetlje = 1;} // Kada vrednost promenljive 'brojac' dostigne 5, vrednost promenljive 'krajpetlje' se postavlja na 1
 }
}


Dakle analiza koda:
Kao sto vidis ako znas engleski sve ti je jasno . Prevedeno na srpski: Dok "(while) je krajpetlje = 0, povecaj brojac za jedan, ispisi na ekranu njegovu vrednost, ako je brojac 5, izadji iz petlje."
Kao sto vidis petlja ce se ponoviti tacno 5 puta i onda prestati. Za to se postaralo ovo if(). Ako ti nesto povodom ovoga nije jasno, vichi .

6. Da - to bi se moglo smatrati amaterskije . Ako nista drugo bar neurednije...

7. Verovatno ga je covek stavio zato sto treba .

8. "break" je komanda kojom se izlazi iz petlje. Recimo da imas:

Code:

 while(krajpetlje==0)
 {
   brojac++; // Ovde takodje moze stojati i brojac = brojac + 1, dakle povecava vrednost promenljive 'brojac' za 1
    cout << brojac << endl; 
   if(brojac == 3) {break;} // Nateraj petlju da se zaustavi
   if(brojac == 5) {krajpetlje = 1;} // Kada vrednost promenljive 'brojac' dostigne 5, vrednost promenljive 'krajpetlje' se postavlja na 1
 }


Ovo "if(brojac == 3) {break;}" ce naterati petlju da se zaustavi iako uslovi za to nisu ispunjeni (krajpetlje je i dalje 0).

----------------------

Nadam se da ti je ovo pomoglo!
Pozdrav od 14-godisnjeg YuRaidera (neki me zovu i Ivan)

[Ovu poruku je menjao Yu Raider dana 21.03.2006. u 22:58 GMT+1]

[Ovu poruku je menjao Yu Raider dana 21.03.2006. u 22:59 GMT+1]
[ st_jimmy @ 21.03.2006. 22:13 ] @
14 godina??? rada ili godina? hehe .... hvala vam puno, mada cu ja tu jos lomiti glavu oko ovoga ... kuci nemam linux (radimo u linuxu) ja sam na NS faxu ... tu mi predaju malbaski dusan, ali korstimo krausove knjigu! dobili smo mi knoppix, ali nece me ni to ... sve sam probao ... ali nece! ne znam sta mu je ... jel ima negde na netu da se proveri zadatak???

-i nije mi jos jasno onaj int izbor na pocetku!
[ Pharos @ 21.03.2006. 22:58 ] @
Znaš zašto je int izbor. Toliko si naučio. Pogledaj malo bolje kod i videćeš.
Deklaracija se uči na početku svake knjige :D
Kakve veze ima ako nemaš lin da bi učio programiranje. Nabavi Inter DevC++ ako ne nađeš ništa bolje.
A evo ti i test da vidiš dal radi i kako radi.
Mislim da je dosta od mene.
[ st_jimmy @ 21.03.2006. 23:08 ] @
hvala pharos puno ...... zvuci glupo i debilno i sramotno .. ali ovo je tek 1/10 zadataka koji se ocenjuju, svake nedelje po jedan ... tako da, ako neko zeli da mi pomogne ovih 10 nedelja ... ima pice od mene, ako se ikada vidimo!! ;)
[ Yu Raider @ 22.03.2006. 15:32 ] @
Hehe, samo ih ti postavljaj ovde, videcu sta mogu da ucinim za tebe .

P.S. Da da - 14 GODINA .
[ Yu Raider @ 22.03.2006. 15:34 ] @
Sto se tice C++ kompajlera pod Windows-om, poseti sledecu stranu:
www.bloodshed.net i skini najnoviju verziju Dev-C++ kompajlera.
[ st_jimmy @ 22.03.2006. 23:09 ] @
Code:

#include <stdio.h>

// Deklaracija f-ja
double prva(const double, const double, const double);
double druga(const double, const double, const double);
double treca(const double, const double, const double);
double cetvrta(const double, const double, const double);
double peta(const double, const double, const double);
double sesta(const double, const double, const double);

int main(void)
{
int izbor;
double r1,r2,r3;
while(1)
{
system("CLS");
printf("\nMoguce kombinovane veze:\n"
"---------------------------\n"
"1. R1*R2*R3\n"
"2. R1||R2||R3\n"
"3. R1+(R2||R3)\n"
"4. (R1||R2)+R3\n"
"5. (R1+R2)||R3\n"
"6. R1||(R2+R3)\n"
"0. Kraj\n"
"---------------------------\n\n"
"Vas izbor je: ");
scanf("%d",&izbor);
system("CLS");

switch(izbor)
{
case 1:case 2: case 3: case 4: case 5: case 6:
printf("R1, R2, R3? ");
scanf("%lf%lf%lf",&r1,&r2,&r3);
switch(izbor)
{
case 1:
printf("Rezultat = %.3f\n",prva(r1,r2,r3));
break;
case 2:
printf("Rezultat = %.3f\n",druga(r1,r2,r3));
break;
case 3:
printf("Rezultat = %.3f\n",treca(r1,r2,r3));
break;
case 4:
printf("Rezultat = %.3f\n",cetvrta(r1,r2,r3));
break;
case 5:
printf("Rezultat = %.3f\n",peta(r1,r2,r3));
break;
case 6:
printf("Rezultat = %.3f\n",sesta(r1,r2,r3));
break;
}
break;
case 0:
exit(1);
break;
}
system("PAUSE");
}
return 0;
}

double prva(const double r1, const double r2, const double r3)
{
return r1*r2*r3;
}

double druga(const double r1, const double r2, const double r3)
{
return 1.0/(1.0/r1 + 1.0/r2 + 1.0/r3);
}

double treca(const double r1, const double r2, const double r3)
{
return r1+1.0/(1.0/r2+1.0/r3);
}

double cetvrta(const double r1, const double r2, const double r3)
{
return treca(r3,r2,r1);
}

double peta(const double r1, const double r2, const double r3)
{
return 1.0/(1.0/(r1+r2)+1.0/r3);
}

double sesta(const double r1, const double r2, const double r3)
{
return peta(r3,r2,r1);
}




da li je ovo obavezno ... cini mi se da nije bas, kao ni ono na pocetku ... ali, znam, ako to izbacim, moram da menjam ono u caseovima ... pocinjem da kapiram, woohoo!

ono double r1,r2,r3 je deklaracija promenljivih, a int izbr? sta je to? profa insistira na komentarima (linijskim!) :{

jos nesto .... npr. hocu da program napravim neozbiljnim ... i umesto pitanja vas izbor je: stavim koju ces kombinaciju? ono scanf("%d", izbor) moze da ostane, i ono pod switch (izbor)??

[Ovu poruku je menjao st_jimmy dana 23.03.2006. u 00:13 GMT+1]

[Ovu poruku je menjao st_jimmy dana 23.03.2006. u 00:31 GMT+1]
[ del-boy @ 22.03.2006. 23:15 ] @
Imam i ja par komentara na ovu temu, pošto sam ja u prvom semestru imao Programske jezike i strukture podataka na FTNu (E2)

Prvo, vi za sada niste učili funkcije, pa ne možete ni da ih koristite. U stvari možete (kako kod kog asistenta), ali kada budete branili program pitaće vas o argumetnima f-je, povratnoj vrednosti i još štošta samo da vam dokaže da ne treba da koristite ono što ne znate i da vam neko drugo radi domaći...

Alternativa tome je da umesto
Code:

case 1:
                printf("Rezultat = %.3f\n", prva(r1,r2,r3));
                break;


staviš
Code:

case 1:
                printf("Rezultat = %.3f\n", r1*r2*r3);
                break;


Uradiće istu stvar, ali koristite samo ono što ste učili...

Naravno, u tom slučaju možeš da brišeš i funkcije i njihove deklaracije...


Drugo, pošto na vežbama korstite linux, ne bi trebalo (čak mislim da ne radi, nisam proveravao) da korstite system("CLS") nego clrscr ako me sećanje dobro služi. Za ime ove funkcije nisam siguran, pa neka me neko ispravi ako grešim...


Što se domaćih tiče možeš da pogledaš na http://progc.blogspot.com moje domaće koje sam radio u prvom semestru, mada ne znam koliko ćete vi to detaljno raditi. Ovo su domaći sa E2...


PS: I ja sam u prvom semestru koristio windows, pa neki od onih programa možda ne budu radili kako treba na linuxu, ali uglavnom su to sitne stvari koje sam ja prepravljao na licu mesta pre pregledanja domaćeg tako da ni tebi ne bi trebalo to da bude problem...

PPS: Što se linuxa tiče, moja preporuka ti je da batališ knopix koji asistenti dele. Jeste da je on OK ako nećeš da instaliraš linux, ništa ne ne košta da probaš da ga instaliraš (sem možda par gigabajta na HDDu). Za početak uzmi SuSE ili Mandrivu, jer su najlakši za početnike! I ja ga trenutno koristim kao priomarni OS, a debian tek nameštam! Ako ti treba mogu ti narezati SuSE (možemo se naći na faxu), ali moraš naći Double layer DVD (8,5 GB), a ja ga nisam nigde našao u NSu (do duše nisam ni tražio), a imaš i po netu da naručiš (pogledaj linux forum)!

edit: greške u kucanju

[Ovu poruku je menjao del-boy dana 23.03.2006. u 00:17 GMT+1]
[ Goran Arandjelovic @ 22.03.2006. 23:34 ] @
Čišćenje ekrana u Shellu:

Code:

system("clear");
[ st_jimmy @ 22.03.2006. 23:51 ] @
....
case 6:
Re6=(R1*(R2+R3))/(R1+R2+R3);
printf("Ekvivalentna otpornost je:”);
printf(“Re = %.2f\n”,Re6);
break;

default:
printf("Rekao sam od 1–6!\n");


ovo sam negde nasao .... za default, ukoliko korisnik unese neki broj koji nije od 1-6, ovo se pojavi .... a, kako korisnik da se vrati na pocetak i da izabere broj koji moze da prodje ...?

i oni silni \n\n\n\n\n, jel to cisto zbog estetike??? ne znam gde treba da ga stavim, gde ne ...

@del boy
dobar je meni windows .... koliko god linux bio besplatan i sve ... neka ga ... probacu sa jednim drugom da odradim to oko debiana, cisto da mogu kuci da proveravam sta sam uradio ... jesi li ti prva godina na e2? jste li i vi imali kod companyje malbaski, markoski i neki dimitrije?


da li ima negde na netu da se proveri program, ja sam ga napokon odradio, izmenio .... pa da vidim valja li ....

[Ovu poruku je menjao st_jimmy dana 23.03.2006. u 00:52 GMT+1]
[ Yu Raider @ 23.03.2006. 12:49 ] @
Ako hoces da se vratis na odredjeni deo koda koristi goto.
Tu gde stoji:

Code:

while(1)
{
system("CLS");
printf("\nMoguce kombinovane veze:\n"
"---------------------------\n"
"1. R1*R2*R3\n"
"2. R1||R2||R3\n"
"3. R1+(R2||R3)\n"
"4. (R1||R2)+R3\n"
"5. (R1+R2)||R3\n"
"6. R1||(R2+R3)\n"
"0. Kraj\n"
"---------------------------\n\n"
"Vas izbor je: "); 

scanf("%d",&izbor);
system("CLS");

switch(izbor)
{
case 1:case 2: case 3: case 4: case 5: case 6:
printf("R1, R2, R3? ");
scanf("%lf%lf%lf",&r1,&r2,&r3);
switch(izbor)
{
case 1:
printf("Rezultat = %.3f\n",prva(r1,r2,r3));
break;
case 2:
printf("Rezultat = %.3f\n",druga(r1,r2,r3));
break;
case 3:
printf("Rezultat = %.3f\n",treca(r1,r2,r3));
break;
case 4:
printf("Rezultat = %.3f\n",cetvrta(r1,r2,r3));
break;
case 5:
printf("Rezultat = %.3f\n",peta(r1,r2,r3));
break;
case 6:
printf("Rezultat = %.3f\n",sesta(r1,r2,r3));
break;
}
break;
case 0:
exit(1);
break;


... neka ti stoji:

Code:

start:
while(1)
{
system("CLS");
printf("\nMoguce kombinovane veze:\n"
"---------------------------\n"
"1. R1*R2*R3\n"
"2. R1||R2||R3\n"
"3. R1+(R2||R3)\n"
"4. (R1||R2)+R3\n"
"5. (R1+R2)||R3\n"
"6. R1||(R2+R3)\n"
"0. Kraj\n"
"---------------------------\n\n"
"Vas izbor je: "); 

scanf("%d",&izbor);
system("CLS");

switch(izbor)
{
case 1:case 2: case 3: case 4: case 5: case 6:
printf("R1, R2, R3? ");
scanf("%lf%lf%lf",&r1,&r2,&r3);
switch(izbor)
{
case 1:
printf("Rezultat = %.3f\n",prva(r1,r2,r3));
break;
case 2:
printf("Rezultat = %.3f\n",druga(r1,r2,r3));
break;
case 3:
printf("Rezultat = %.3f\n",treca(r1,r2,r3));
break;
case 4:
printf("Rezultat = %.3f\n",cetvrta(r1,r2,r3));
break;
case 5:
printf("Rezultat = %.3f\n",peta(r1,r2,r3));
break;
case 6:
printf("Rezultat = %.3f\n",sesta(r1,r2,r3));
break;
}
break;
case 0:
exit(1);
break;


A tu gde ti stoji:
Code:

....
case 6:
Re6=(R1*(R2+R3))/(R1+R2+R3);
printf("Ekvivalentna otpornost je:”);
printf(“Re = %.2f\n”,Re6);
break;


... neka ti stoji:
Code:

case 6:
Re6=(R1*(R2+R3))/(R1+R2+R3);
printf("Ekvivalentna otpornost je:”);
printf(“Re = %.2f\n”,Re6);
goto start;


OVO JE NETESTIRANO!!! Ali bi trebalo da radi...
[ st_jimmy @ 23.03.2006. 12:54 ] @
bolje je da se ja ne pravim pametan!
[ Yu Raider @ 23.03.2006. 13:22 ] @
Hehehehe . Slusaj najvaznija ti je zelja da naucis... Sve ostalo ide samo po sebi... To jest ako imas IQ>80
[ st_jimmy @ 23.03.2006. 16:32 ] @
ovako sam ja nesto iskombinovao i sveo na sto amaterskije!!! verovatno cu ovako i da ga predam!

Code:

/* ovaj program racuna ekvivalentnu otpornost tri otpornika prema vrsti veze, koju bira korisnik*/

#include <stdio.h>
void main(void)
{
int izbor;
double R1, R2, R3; //deklaracija promenljivih

printf("Moguce kombinacije: \n");
printf("-------------------------------\n\n");
printf(" 1. R1-R2-R3 \n");
printf(" 2. R1||R2||R3\n");
printf(" 3. R1-(R2||R3)\n");
printf(" 4. (R1||R2)-R3\n");
printf(" 5. (R1-R2)||R3\n");
printf(" 6. R1||(R2-R3)\n\n");
printf("-------------------------------\n");
printf("Vas izbor je:");
scanf("%d", &izbor);

switch (izbor) //ubacuje se izbor i testira se svaka od mogucnosti
{
/* unos podataka za svih sest slucajeva*/
case 1: case 2: case 3: case 4: case 5: case 6:
printf(“R1=”);
scanf(“%lf”,&R1);
printf(“R2=”);
scanf(“%lf”,&R2);
printf(“R3=”);
scanf(“%lf”,&R3);
switch (izbor);
{
case 1: //ukoliko se izabere kombinacija R1+R2+R3 (1.)
Re1=R1+R2+R3;
printf("Ekvivalentna otpornost je:”); 
printf(“Re=%.2f\n",Re1);
break; 
case 2:
Re2=(R1*R2*R3)/(R2*R3+R1*R3+R1*R2);
printf("Ekvivalentna otpornost je:”);
printf("Re=%.2f\n",Re2);
break;
case 3:
Re3=(R1*R2+R1*R3+R2*R3)/(R2*R3);
printf("Ekvivalentna otpornost je:”);
printf("Re=%.2f\n",Re3);
break;
case 4:
Re4=(R1*R2+R1*R3+R2*R3)/(R1+R2);
printf("Ekvivalentna otpornost je:”);
printf(“Re=%.2f\n”,Re4);
break;
case 5:
Re5=((R1+R2)*R3)/(R1+R2+R3);
printf("Ekvivalentna otpornost je:”);
printf(“Re=%.2f\n”,Re5);
break;
case 6:
Re6=(R1*(R2+R3))/(R1+R2+R3);
printf("Ekvivalentna otpornost je:”);
printf(“Re=%.2f\n”,Re6);
break;
}
}
}
[ Drole @ 23.03.2006. 18:12 ] @
Citat:
st_jimmy: ovako sam ja nesto iskombinovao i sveo na sto amaterskije!!! verovatno cu ovako i da ga predam!

Code:

/* ovaj program racuna ekvivalentnu otpornost tri otpornika prema vrsti veze, koju bira korisnik*/

#include <stdio.h>
void main(void)
{
int izbor;
double R1, R2, R3; //deklaracija promenljivih

printf("Moguce kombinacije: \n");
printf("-------------------------------\n\n");
printf(" 1. R1-R2-R3 \n");
printf(" 2. R1||R2||R3\n");
printf(" 3. R1-(R2||R3)\n");
printf(" 4. (R1||R2)-R3\n");
printf(" 5. (R1-R2)||R3\n");
printf(" 6. R1||(R2-R3)\n\n");
printf("-------------------------------\n");
printf("Vas izbor je:");
scanf("%d", &izbor);

switch (izbor) //ubacuje se izbor i testira se svaka od mogucnosti
{
/* unos podataka za svih sest slucajeva*/
case 1: case 2: case 3: case 4: case 5: case 6:
printf(“R1=”);
scanf(“%lf”,&R1);
printf(“R2=”);
scanf(“%lf”,&R2);
printf(“R3=”);
scanf(“%lf”,&R3);
switch (izbor);
{
case 1: //ukoliko se izabere kombinacija R1+R2+R3 (1.)
Re1=R1+R2+R3;
printf("Ekvivalentna otpornost je:”); 
printf(“Re=%.2f\n",Re1);
break; 
case 2:
Re2=(R1*R2*R3)/(R2*R3+R1*R3+R1*R2);
printf("Ekvivalentna otpornost je:”);
printf("Re=%.2f\n",Re2);
break;
case 3:
Re3=(R1*R2+R1*R3+R2*R3)/(R2*R3);
printf("Ekvivalentna otpornost je:”);
printf("Re=%.2f\n",Re3);
break;
case 4:
Re4=(R1*R2+R1*R3+R2*R3)/(R1+R2);
printf("Ekvivalentna otpornost je:”);
printf(“Re=%.2f\n”,Re4);
break;
case 5:
Re5=((R1+R2)*R3)/(R1+R2+R3);
printf("Ekvivalentna otpornost je:”);
printf(“Re=%.2f\n”,Re5);
break;
case 6:
Re6=(R1*(R2+R3))/(R1+R2+R3);
printf("Ekvivalentna otpornost je:”);
printf(“Re=%.2f\n”,Re6);
break;
}
}
}

Nisi naveo tip Re1-Re6 i program ti zbog toga nece raditi, druga stvar otpornost otpornika
ne moze da bude negativna a ti nemas nikakvu zastitu protiv toga.
[ st_jimmy @ 23.03.2006. 18:31 ] @
aha, re1, re2, re3.... dodam tamo kod double r1,r2,r3 ...

a sta da radim sa tom zastitom???
[ del-boy @ 23.03.2006. 19:06 ] @
Što se tiče zaštite ubaci posle svakog scanf-a (za učitavanje otpornosti)
Code:

if(R*<0) {
        printf ("Otrornost ne moze biti negativna"); 
        exit;
 }


Naravno, zvezdicu zemeni sa brojem otpornika koji si učitao pre ove naredbe!

To ti je najjednostavnija varijanta. Možeš i da ga teraš da unosi ponovo dok god ne unese pozitivnu vrednost, ali niste učili pretlje, koliko mi se čini!

Citat:
@del boy
dobar je meni windows .... koliko god linux bio besplatan i sve ... neka ga ... probacu sa jednim drugom da odradim to oko debiana, cisto da mogu kuci da proveravam sta sam uradio ... jesi li ti prva godina na e2? jste li i vi imali kod companyje malbaski, markoski i neki dimitrije?


da li ima negde na netu da se proveri program, ja sam ga napokon odradio, izmenio .... pa da vidim valja li ....


OK, ovo za linux je bio samo predlog da ti bude malo lakše...

Da, jesam prva godina i predavao mi je Malbaški, ali vežbe mi je držao Žarko a ne Markoski... I kod nas je nekim grupama Markoski držao vežbe, ali mene nije zadesio, što kontam da je dobro jer sam bio sasvim zadovoljan Žarkom!





[Ovu poruku je menjao del-boy dana 23.03.2006. u 20:09 GMT+1]
[ st_jimmy @ 23.03.2006. 19:10 ] @
zarko, marko, darko, sve je to isto ... samo ona predavanja su mi malo zajebana .... on tmo prica prica ... a ja nista ne kontam! vezbe su zakon! (kao i iz svih ostalih predmeta ... analiza - , diskretna
na kojoj si ti sad godini derek?

a sto se ovog R*<0 tice, da li taj exit znaci kraj programa, ili se korisniku omogucuje ponovan unos vrednosti?

[Ovu poruku je menjao st_jimmy dana 23.03.2006. u 20:44 GMT+1]
[ del-boy @ 24.03.2006. 17:31 ] @
Mene pitaš koja sam godina?

Piše ti dva posta ispod, prva...


Što se tiče predavanja, ja nisam ni išao na njih, samo na vežbe! Imao sam neko predznanje i pohvatao neke stvari iz knjige i izgurao sam C! A što se tiče drugog dela predmeta (strukture podataka) to sam za jednu noć naučio iz skripte koju imaš u elektri i dobio 10!


Exit u programu ti znači kraj... Da bi omogućio ponovo unost moraš uraditi nešto ovako:
Code:

printf("Unesi R1: ");
scanf("%lf", &R1);
while (R1<=0) {
       printf("Pogresan unos!\n");
       printf("Unesi R1: ");
       scanf("%lf", &R1);
}


To će terati korisnika da unosti otpor dok god ne bude veći od nule!


btw: Šta da ti kažem za analizu, srećno... Ne bih ti sad bio u koži
[ sucur @ 24.03.2006. 18:18 ] @
Da nisi deklarisao vrijednosti Re1-Re6 i program nece proci kompajliranje, dalje i da si deklarisao svaki, to je bespotrebno, jer dovoljan ti je jedan Re koji bi koristio u svakom slucaju.
poz
[ st_jimmy @ 27.03.2006. 20:50 ] @
ljudi, prijatelji .... dobili smo 9 !!!! sam zadatak nosi 6, pa jos asistent malo ispituje, ovo-ono .... i ja ni manje ni vise nego 9! sad biste me radije ubili, ali zadatak za sledecu nedelju je:

napisati program u prog jeziku C, oji unosi n kapaciteta kondenzatora (1<n<11) koji su vezani paralelno i prikljuceni na napon U i prikazuje koliko se opterecenje razvija na svakom kondenzatoru i kolika je ekvivalentne kapacitivnost veze. kondenzatori imaju kapacitet izrazen u nF. prilikom realizacije programa formirati prvo polja za unos podataka N, U i C. prilikom svakog unosa kapacteta novog kondenzatora u novom redu se stampa redni broj unosa kondenzatora, njegov kapacitet i opterecenje koje se razvija na tom kondenzatoru.

test primer:

N=5 U=10V C=20nF

C1=10nF Q1=100nC
C2=30nF Q2=300nC
C3=50nF Q3=500nC
C4=60nF Q4=600nC
C5=20nF Q5=200nC

Ce=170nF