Programiranje

C# program koji računa volumen i oplošje kugle

gamecoder pon 28.3.2011 23:52

došao do određene faze programa u izradi programa.. dakle problem mi je učitati r/polumjer(broj) sa tipkovnice i iskoristit ga u formuli za izračun volumena i oplošja.. zasad sam napisao samo formulu za volumen. možebitno treba dodati još koji namespace, a neki su valjda i viška. tek sam danas malo ozbiljnije uzeo C# u ruke, tj. tek ga počeo učit. btw. u C++ bih znao riješit zadatak.  dobro, zanima me kako uvrstit broj koji se unese "r" u formulu ? korigirajte me ako još bilošto u kodu ne štima ...

 

 

 

 

gamecoder uto 29.3.2011 00:25
Dr. Zoidberg kaže...

nigdje nisi postavio vrijednost r

 

Daklem

 

r=Convert.ToDouble(Console.ReadLine());

 

console.readline ti vraća string, i sa convert.todouble ga konvertiraš u double da bi ga mogao pospremiti u varijablu tipa double.

 

 

e to se traži! :)probat ću pa javim. 

 

 

tnakir uto 29.3.2011 08:42
alankish kaže...
tnakir kaže...

Jos mi nije jasno zasto pisete u C# a ne koristite osnove OOP-a.

Ajde Tnakire, da vidimo klase i metode na djelu ;-)

 

Ma problem je u tome sto ljudi u startu krivo uce i na kraju dobijes spageti programera koji sebi i kolegama komplicira zivot.

alankish uto 29.3.2011 08:43
tnakir kaže...
alankish kaže...
tnakir kaže...

Jos mi nije jasno zasto pisete u C# a ne koristite osnove OOP-a.

Ajde Tnakire, da vidimo klase i metode na djelu ;-)

 

Ma problem je u tome sto ljudi u startu krivo uce i na kraju dobijes spageti programera koji sebi i kolegama komplicira zivot.

Slazem se, opet me C# privlaci.

Private uto 29.3.2011 15:37
gamecoder kaže...

došao do određene faze programa u izradi programa.. dakle problem mi je učitati r/polumjer(broj) sa tipkovnice i iskoristit ga u formuli za izračun volumena i oplošja.. zasad sam napisao samo formulu za volumen. možebitno treba dodati još koji namespace, a neki su valjda i viška. tek sam danas malo ozbiljnije uzeo C# u ruke, tj. tek ga počeo učit. btw. u C++ bih znao riješit zadatak.  dobro, zanima me kako uvrstit broj koji se unese "r" u formulu ? korigirajte me ako još bilošto u kodu ne štima ...

 

 

 

 

Ako već znaš sa c++-om riješiti zadatke to bi trebalo značiti i da znaš OOP bar osnove ,inače može se i parsiranje raditi u zadatku ,također bi trebao znati i naučiti koje su osnovne razlike između C#-a i C++-a jer to puno znači i govori o programeru .Slažem se sa tnakir-om jer kod mora biti čist i jasan a i da se zna što koji redak znači.Mislim da je suvišno bilo što reći jer može se samo ući u raspravu .Drago mi je da se C# uči ali nadam se da ideš na pravi pristup(temeljit).{#}

tnakir uto 29.3.2011 15:49
Black Deus Typhon kaže...

Ne vidim kaj fali Gamecoderovu kodu. Jednostavan i uredan source je uvijek poželjan, a OOP ionak nije garancija ničega, a pogotovo ne kvalitete koda.

Uostalom, ovak jednostavan problem ić over-engineerati je smiješno, IMHO.

Istina, ali ako na banalnim primjerima ne pocme raditi kako treba nece ni dalje. U svakom slucaju si u pravu, ali ovo moje ali jos uvijek visi tu negdje :)

PlayerOne uto 29.3.2011 15:55

Evo ja baš planiram početi s C#...

Da li se tu može početi s nikakvim znanjem OOPa,jer do sad sam se samo bavio s C++-om i zasad samo naučio napisat klasu,ništa dalje nisam radio u vezi OOPa,makar iz C++a znam arraye,petlje,spremnike,funkcije,rekurzije itd.(Sve sto je trebalo za natjecanja iz programiranja).

tnakir uto 29.3.2011 16:05
PlayerOne kaže...

Evo ja baš planiram početi s C#...

Da li se tu može početi s nikakvim znanjem OOPa,jer do sad sam se samo bavio s C++-om i zasad samo naučio napisat klasu,ništa dalje nisam radio u vezi OOPa,makar iz C++a znam arraye,petlje,spremnike,funkcije,rekurzije itd.(Sve sto je trebalo za natjecanja iz programiranja).

OOP nije vezan za programski jezik. Klase, objekti, metode, propertiji postoje i u C++u, i u Javi i u VB.Netu i u PHP-u i u neznam ni ja cemu.

 

Moze se poceti sa nikakvim znanjem iz filozofije OOP-a.

PlayerOne uto 29.3.2011 16:11
tnakir kaže...
PlayerOne kaže...

Evo ja baš planiram početi s C#...

Da li se tu može početi s nikakvim znanjem OOPa,jer do sad sam se samo bavio s C++-om i zasad samo naučio napisat klasu,ništa dalje nisam radio u vezi OOPa,makar iz C++a znam arraye,petlje,spremnike,funkcije,rekurzije itd.(Sve sto je trebalo za natjecanja iz programiranja).

OOP nije vezan za programski jezik. Klase, objekti, metode, propertiji postoje i u C++u, i u Javi i u VB.Netu i u PHP-u i u neznam ni ja cemu.

 

Moze se poceti sa nikakvim znanjem iz filozofije OOP-a.

Hvala {#}

Može preporuka nekog IDE-a?

Floki sri 30.3.2011 17:11

 

namespace Kugla

{

   class Kugla

   {

     private double r;

 

     public Kugla(double polumjer)

     {

       r = polumjer;

       Oplosje = 4 * Math.Pow(r, 2) * Math.PI;       // preko kostruktora instanciramo objekt kugla sa polumjerom kao argumentom

       Volumen = (4 * Math.Pow(r, 3) * Math.PI)/3;  // svojstva volumen i oplošje smo izračunali i postavili već u konstruktoru

     }                         // pošto nam samo ova dva podatka trebaju, dakle instaciranjem objekta sa

                           // određenim polumjerom već dobijamo izračun opošja i volumena

     public double Oplosje

     {

       get;

       private set;             // podatke iz klase možemo jedino pročitati preko svojstava, ona se jedino mogu

     }              // postaviti u ovoj klasi, a iz ostalih samo čitati

     public double Volumen

     {

         get;

         private set;

 

     }

   }

   class Program

   {

     static void Main(string[] args)

     {

       double polumjer;

       Console.Write("Unesi polumjer kugle u cm: ");

       double.TryParse(Console.ReadLine(), out polumjer);           // u klasi program jedino možemo instanirati objekt kugla

       Kugla A = new Kugla(polumjer);                 // i očitati svojstva volumen i oplošje određenog objekta 

       Console.WriteLine("Kugla polumjera {0} cm: oplošje: {1:0.000} cm2, volumen: {2:0.000} cm3", polumjer, A.Oplosje, A.Volumen);

     }

   }

}

 

1domagoj1 sri 30.3.2011 17:22
tnakir kaže...

OOP nije vezan za programski jezik. Klase, objekti, metode, propertiji postoje i u C++u, i u Javi i u VB.Netu i u PHP-u i u neznam ni ja cemu.

 

Moze se poceti sa nikakvim znanjem iz filozofije OOP-a.

Zaboravio si napomenuti i C. ;)

 

@Floki

Ne bih htio kritizirati trud, ali mogel si to ljepše malo napisati :P. Hint: kad pišeš u kodu, koristi Shift + Enter za prelazak u novi red. :)

Floki sri 30.3.2011 17:24
1domagoj1 kaže...
tnakir kaže...

OOP nije vezan za programski jezik. Klase, objekti, metode, propertiji postoje i u C++u, i u Javi i u VB.Netu i u PHP-u i u neznam ni ja cemu.

 

Moze se poceti sa nikakvim znanjem iz filozofije OOP-a.

Zaboravio si napomenuti i C. ;)

 

@Floki

Ne bih htio kritizirati trud, ali mogel si to ljepše malo napisati :P. Hint: kad pišeš u kodu, koristi Shift + Enter za prelazak u novi red. :)

Reci, kako bi ti, ja sam preko svojstava

1domagoj1 sri 30.3.2011 17:28
Floki kaže...

Reci, kako bi ti, ja sam preko svojstava

Joj joj, krivo si me skužil, nisam mislil na sam program, već na izgled tvog posta :P. Svaki novi red si rascjepal u novi kod tag. Htio sam ti reći, kad već pišeš, daj onda ovak:

 

#include <iostream>

int main()
{
     //ovo je neki moj program
     return 0;
}

 

Kužiš? :P

Samo sam na urednost mislil, ništa zlonamjerno. :)

Floki sri 30.3.2011 17:33
1domagoj1 kaže...
Floki kaže...

Reci, kako bi ti, ja sam preko svojstava

Joj joj, krivo si me skužil, nisam mislil na sam program, već na izgled tvog posta :P. Svaki novi red si rascjepal u novi kod tag. Htio sam ti reći, kad već pišeš, daj onda ovak:

 

#include <iostream>

int main()
{
     //ovo je neki moj program
     return 0;
}

 

Kužiš? :P

Samo sam na urednost mislil, ništa zlonamjerno. :)

a ne, nisam ja za naljutiti se, uvijek volim dobru ideju, ili savjet , sve pet{#}

ma ne znam zašto mi ovako iz Visual Studia rascijepi kod, tamo izgleda čisto OK, a onda preko Chromea ga ne mogu uopće ubaciti, a preko FF mi ima ovakav izgled

Floki sri 30.3.2011 17:44

 

namespace ConsoleApplication6

{

   class Program

   {

     static void Main(string[] args)

     {

       // ogledni kod

       // koristio shift + enter

       // za prelazak u novi red

     }

   }

}

Ovo mi je najbolje što mogu postići, išao sam najprije kopirati kod u NotePad a onda preko Chrome-a.
izmjenio sam onaj gornji kod, koliko je išlo

 

rustweaver sri 30.3.2011 18:12
Floki kaže...
Ovo mi je najbolje što mogu postići, išao sam najprije kopirati kod u NotePad a onda preko Chrome-a.
izmjenio sam onaj gornji kod, koliko je išlo

Ne znam kako lijepis inace, ali meni ovo pomaze (koristim firefox). Kada kopiram kôd iz deva ili notepada, u bugovom editoru prebacim se u novu liniju, stil prebacim u kôd i onda opalim ctrl+v. Fino se zalijepi tekst i bude mi ureden kako bog zapovjeda. Inace kad god bih jednostavno zalijepio kôd, te ga naknadno oznacio i stil prebacio u "kôd" dobio bih zivi uzas...

Floki sri 30.3.2011 18:25
rustweaver kaže...
Floki kaže...
Ovo mi je najbolje što mogu postići, išao sam najprije kopirati kod u NotePad a onda preko Chrome-a.
izmjenio sam onaj gornji kod, koliko je išlo

Ne znam kako lijepis inace, ali meni ovo pomaze (koristim firefox). Kada kopiram kôd iz deva ili notepada, u bugovom editoru prebacim se u novu liniju, stil prebacim u kôd i onda opalim ctrl+v. Fino se zalijepi tekst i bude mi ureden kako bog zapovjeda. Inace kad god bih jednostavno zalijepio kôd, te ga naknadno oznacio i stil prebacio u "kôd" dobio bih zivi uzas...

Pokušat ću tako.

Floki sri 30.3.2011 19:24

double.TryParse(Console.ReadLine(), out polumjer) 

 

Ovdje ima jedna zamka za sve nas naučene na C/C++

Mi smo naučili na konzoli unositi decimalne brojeve sa točkom koja razdvaja cijeli od decimalnog dijela (američki format)

Međutim kod C# u konzolnom unosu se treba paziti da se brojevi unose u formatu na koji je namješten OS (ako ne staviimo drukčije u programu),

pošto imamo na OS defaultno namješten HR jezik i kulturu brojevi se moraju unjeti u formatu koji razdvaja cijeli dio broja od decimalnog zarezom (europski format)

 

Ako se unese u konzolu decimalni broj sa točkom, a OS je postavljen na HR jezik i kulturu - npr 5.25 (točka za odvajanje cijelog dijela od decimalnog) - metod TryParse() i Convert.ToDouble() će se izvršiti,

ali će u program spremiti broj 525. On u našoj europskoj notaciji misli da ta točka označava tisućice.