Jesteś tu: Tibia.pl / Forum

Wróć   Forum Tibia.pl > Inne > O wszystkim i o niczym

Notki

O wszystkim i o niczym O tym wszystkim co nie pasuje gdziekolwiek indziej ;)
Odpowiedz
 
Opcje tematu
stary 24-08-2005, 19:12   #1
moo
Użytkownik Forum
 
Data dołączenia: 21 07 2005

Posty: 43
Domyślny Moj pierwszy programik :P

Siema.
Od dzis zaczelem sie uczyc C++, trodzke mi nie szlo, ale co tam
I zrobilem swoj PIERWSZY program ( o ile mozna to tak nazwac ).
Jest on banalny, ale co moglem zrobic uczac sie C++, przez kilkadziesiat minut?
Polega on na obliczaniu czasu potrzebnego do uzyskania podanej przez Was many. Podaje on go w minutach, godzianch oraz dniach.
Tak jak wspomnialem jest to moj pierwszy ehm ehm.... program, wiec prosze o wyrumialosc.

Oto link http://www.megaupload.com/?d=32AAT04O

Mam nadzieje ze nie bedzie komentarzy w stylu "Co za badziew", " Po co to komus", "Keylogger" itp. Gdyz jak juz kilka razy wspomnialem uczylem sie C++ niespelna godzine i jakos musialem "przetestowac" swoje mozliwosci. Robilem go w notatniku, a nastepnie skompilowalem Borland'em 5.5.
A dla znajacych jezyk prosze o jakies wskazowki i co zrobielm zle co niepotrzebnie dalem itp.

Kod:
#include <iostream.h>
#include <conio.h>

main ()
{
   float a ;
   float b ;
   float c ;
   float e = 60 ;
   float f = 24 ;
   float g ;
   float h ;

 cout << "Program oblicza ile potrzeba czasu na zregenerowanie sie danej ilosci many.\n" ;
 cout << "Podaj ilosc many:\n";
 cin >> a ;
 cout << "Ilosc many zdobywanej w ciagu jednej minuty\n( E.Knight i Knight 4 many, \nR.Pall 10 many, Pall 7.5 many, \nSorc i Drut po 10 many, E.Drut i M.Sorc po 15 many ):\n";
 cin >> b ;
 c = a / b ;
 g = c / e ;
 h = g / f ;

 cout << a << " many uzupelni sie w ciagu " << c << " minut, czyli " << g << " godzin, czyli " << h << " dni." ; 
 cout << "\nCya" ;

   getch () ; 
   return 0 ;
}
moo jest offline   Odpowiedz z Cytatem

PAMIĘTAJ! Źródłem utrzymania forum są reklamy. Dziękujemy za uszanowanie ich obecności.
stary 24-08-2005, 19:22   #2
daroslaw
Użytkownik Forum
 
daroslaw's Avatar
 
Data dołączenia: 03 10 2004
Lokacja: Wrocław
Wiek: 27

Posty: 171
Stan: Niegrający
daroslaw ma numer GG 9180198
Domyślny

dlaczego program odrazu sie zamyka po 1 obliczeniu? dopracuj to ;] co prawda nie znam sie c++ to ci zabardzo nie pomoge. Łatwiejszy jest pascal wdg mnie
edit: i cos z obliczaniem masz zjechane.
no i wlasnie gz pierwszego programiku
__________________
AVE GIERTYCH
NIE DZIECIOM RADIUFFKI...

Ostatnio edytowany przez daroslaw - 25-08-2005 o 11:45.
daroslaw jest offline   Odpowiedz z Cytatem
stary 24-08-2005, 20:07   #3
Vanhelsen
Użyszkodnik
 
Vanhelsen's Avatar
 
Data dołączenia: 05 02 2004
Lokacja: Festung Breslau
Wiek: 35

Posty: 4,597
Stan: Początkujący
Imię: Vanhelsen
Profesja: Druid
Gildia: Inner Circle
Świat: Auchindoun
Poziom: 80
Skille: LW/Skin
Poziom mag.: 2k
Vanhelsen ma numer GG 2690575
Domyślny

Mozna go skrócić:
Kod:
   float a, b, c, g, h ;
   float e = 60 ;
   float f = 24 ;

Co to wstukiwania drugiej częsci, to lekko nie wiadomo co zrobić, trzeba samemu wygłówkować, można to było lepiejskombinować

Oto, moja, już od dawna gdzieś potajemnie, powoli robiona wersja kalkuratorka

P.S.
Polecam zamiast a, b, c... pisać np: mana, godz, min. To ułatwia sprawę, w kapowaniu, do czego dokładniej dana wartość ma się odnosić.
Kod:
#include <iostream.h>
main()
{
/* programowanie danych */
	  short int  a, b, c, reg, menu ;  // wpisywanie danych, czas w s.
	 float	z, y, x ;			 // ilosc czasu w min i godz	 
/*----------------------------------------------------------------------------*/
menu:
/* menu wybierania */
	  cout << "|>--<[xxx MENU xxx]>--<|\n\n"
		   << ":: Wybierz program:\n[1]Licznik Many\n[2]Licznik Predkosci\n"
		   << "[3]Exit -> " ;
	  cin  >> menu ;
	  
	  switch(menu)
	  {
			  case 1 :
				   goto licznik_many ;
				 break ;				 
			  case 3 :
				   goto exit ;
				 break ;				 
			  case 2 :
				   goto licznik_predkosci ;
				 break ;				 
			  default :
				 cout << "\n\n\a[!!!] TAKA OPCJA NIE ISTNIEJE! [!!!]\n\n\n" ;
				   goto menu ;
				   break ;
	  }
/*----------------------------------------------------------------------------*/
licznik_many:
/* mechanizm liczacy */
	  cout << "\n|>--<[xxx LICZNIK MANY xxx]>--<|\n "
		   << "\n:: Czy posiadasz promocje?\n[1]Nie\n[2]Tak\n -> " ;
	  cin  >> menu ;
	  
	  switch(menu)
	  {
			  case 1 :
				   reg = 6 ;
				   break ;
			  case 2 :
				   reg = 4 ;
				   break ;
			  default :
				 cout << "\n\n\a[!!!] TAKA OPCJA NIE ISTNIEJE! [!!!]\n\n\n" ;
				   goto licznik_many ;
				   break ;
	  }
	  
	  cout << "\n:: Podaj ilosc pkt many: \n -> " ;
	 cin >> a ;							 // wpisywanie many
	  cout << ":: Podaj ilosc run/czarow do zrobienia: \n -> " ;
	 cin >> b ;						 // wstukiwanie ilosci run
	  
	  z = a * reg * b ;		   // obliczanie sekund
	 y = z / 60 ;					 // obliczanie minut
	 x = y / 60 ;					 // obliczanie godzin
	  
	  cout << "\n" ;
/* wpisywanie wynikow */
	  cout << "\a@ " << a << " many na " 
		   << b << " run/czarow zregeneruje sie w:\n\n\a@ " << z 
		 << " sec.\n\a@ " << y << " min.\n\a@ " << x << " godz.\n\n";
	  goto menu ;
/*----------------------------------------------------------------------------*/
licznik_predkosci:
/* mechanizm liczacy */
	  cout << "\n|>--<[xxx LICZNIK PREDKOSCI xxx]>--<|\n "
		   << "\n:: Podaj level postaci: \n -> " ;
	  cin  >> a ;
	  cout << "\n[1]BoH\n[2]Time Ring\n[3]BoH + Time ring\n[4]Nic\n -> " ;
	  cin  >> menu ;
	  
	  switch(menu)
	  {
			  case 1 :
				   reg = 40 ;
				 break ;				 
			  case 2 :
				   reg = 60 ;
				 break;				 
			  case 3 :
				   reg = 100 ;
				 break ;				 
			  case 4 :
				   reg = 0 ;
				 break ;				 
			  default :
				 cout << "\n\n\a[!!!] TAKA OPCJA NIE ISTNIEJE! [!!!]\n\n\n" ;
				   goto licznik_predkosci ;
				   break ;
	  }
	  
	  b = 200 + ( 2 * (a - 1 )) + reg ;
	  cout << "\n" ;
/* wypisywanie wynikow */
	  cout << "\a@ " << a << " levelowa postac osiaga predkosc "
		   << b << " jednostek.\n\n" ;
	  goto menu ;
/*----------------------------KONIEC--PROGRAMU--------------------------------*/
exit: ;
}
__________________
Kłócenie się na forum jest jak uczestniczenie w paraolimpiadzie, może i wygrasz, ale nadal będziesz zacofanym -.-"



Ostatnio edytowany przez Vanhelsen - 24-08-2005 o 20:15.
Vanhelsen jest offline   Odpowiedz z Cytatem
stary 24-08-2005, 20:11   #4
Duke Dran
Użytkownik Forum
 
Duke Dran's Avatar
 
Data dołączenia: 23 08 2005

Posty: 1,369
Duke Dran ma numer GG 13923094
Domyślny

fajna sprawa, może tez zacznę się uczyć c++
Duke Dran jest offline   Odpowiedz z Cytatem
stary 24-08-2005, 20:24   #5
binek1986
Użytkownik Forum
 
binek1986's Avatar
 
Data dołączenia: 13 03 2005
Lokacja: Elblag
Wiek: 38

Posty: 67
Stan: Niegrający
Imię: Binek
Profesja: Elder Druid
Świat: Nova
Poziom: 56
Skille: 22/26
Poziom mag.: 71
Domyślny

@Wieszok & Moo

Chlopaki chlopaki ;>
Programisci od dawna juz wiedza ze zmienne powinno sie opisywac bardziej dokladnie, zeby po paru dniach wiedziec co jest co.
Proponuje przyzwyczajac sie do tego od poczatku zeby pozniej latwiej szlo ;-), np zamiast nazwac zmienna "a" mozna bylo nazwac ja "lv", mala roznica a przy wiekszej ilosci zmiennych latwiej dojsc co jest do czego.

Tak btw gratuluje programu, widac ze nie jest to typowy "Hello World" od ktorego wiekszosc nas, programistow, uczylo sie programowac ;-).
__________________
Whoever appeals to the law against his fellow man is
either a fool or a coward. Whoever cannot take care of
himself without that law is both. For a wounded man shall
say to his assailant, "If I live I will kill you, if I die
you are forgiven". Such is the Rule of Honor.
binek1986 jest offline   Odpowiedz z Cytatem
stary 24-08-2005, 20:28   #6
Nightwalker
Użytkownik Forum
 
Nightwalker's Avatar
 
Data dołączenia: 19 08 2004
Lokacja: Wrocław
Wiek: 35

Posty: 664
Domyślny

Ja mam pytanie bardzo newbiowsko/noobowskie

Ile kosztuje C++ (By programowac) a ile Turbo Pascal 7.0?
Nightwalker jest offline   Odpowiedz z Cytatem
stary 24-08-2005, 20:28   #7
Vanhelsen
Użyszkodnik
 
Vanhelsen's Avatar
 
Data dołączenia: 05 02 2004
Lokacja: Festung Breslau
Wiek: 35

Posty: 4,597
Stan: Początkujący
Imię: Vanhelsen
Profesja: Druid
Gildia: Inner Circle
Świat: Auchindoun
Poziom: 80
Skille: LW/Skin
Poziom mag.: 2k
Vanhelsen ma numer GG 2690575
Domyślny

Cytuj:
Oryginalnie napisane przez binek1986
@Wieszok & Moo

Chlopaki chlopaki ;>
Programisci od dawna juz wiedza ze zmienne powinno sie opisywac bardziej dokladnie, zeby po paru dniach wiedziec co jest co.
Proponuje przyzwyczajac sie do tego od poczatku zeby pozniej latwiej szlo ;-), np zamiast nazwac zmienna "a" mozna bylo nazwac ja "lv", mala roznica a przy wiekszej ilosci zmiennych latwiej dojsc co jest do czego.

Tak btw gratuluje programu, widac ze nie jest to typowy "Hello World" od ktorego wiekszosc nas, programistow, uczylo sie programowac ;-).
To zalerzy, ja u ciebie, np: urzywam czterech-pięciu zmiennych, na krzyż przeplatanych raz to w jednym pod-programiku, raz to w drugim więc gdybym dla przykłądu "a" nazwał "level" a potem w kolejnym podprogramie używał go jako zmiennik ilości many, to bym chyba bardziej się mylił


@up: eee.... chyba nic tyle co książki i chęc do nauczenia się czyli coś koło 80zł + 2kg strzępek nerwów
__________________
Kłócenie się na forum jest jak uczestniczenie w paraolimpiadzie, może i wygrasz, ale nadal będziesz zacofanym -.-"



Ostatnio edytowany przez Vanhelsen - 24-08-2005 o 20:29.
Vanhelsen jest offline   Odpowiedz z Cytatem
stary 24-08-2005, 20:31   #8
Thero
Użytkownik Forum
 
Thero's Avatar
 
Data dołączenia: 30 12 2004

Posty: 2,105
Domyślny

Cytuj:
Oryginalnie napisane przez binek1986
@Wieszok & Moo

Chlopaki chlopaki ;>
Programisci od dawna juz wiedza ze zmienne powinno sie opisywac bardziej dokladnie, zeby po paru dniach wiedziec co jest co.
Proponuje przyzwyczajac sie do tego od poczatku zeby pozniej latwiej szlo ;-), np zamiast nazwac zmienna "a" mozna bylo nazwac ja "lv", mala roznica a przy wiekszej ilosci zmiennych latwiej dojsc co jest do czego.

Tak btw gratuluje programu, widac ze nie jest to typowy "Hello World" od ktorego wiekszosc nas, programistow, uczylo sie programowac ;-).
Zawsze można nawpierdzielać komentarzy ;p.

@Topic
Zrobieś ten program po kilkudziesięciu minutach nauki c++? Zdolny jesteś .
Thero jest offline   Odpowiedz z Cytatem
stary 24-08-2005, 20:43   #9
Jackal Silentdark
Zbanowany
 
Jackal Silentdark's Avatar
 
Data dołączenia: 16 07 2005
Lokacja: Stalowa Wola
Wiek: 37

Posty: 128
Stan: Na emeryturze
Jackal Silentdark ma numer GG 6339684
Domyślny

Bardzo dobrze, ucz sie C++, super język i universalny, potem nawet jak będziesz musiał sie przerzucic na pascala etc. to będzie o wiele łatwiej.
Imho po kilkudziesięciu minutach napisałeś ten program to ci wróże karierę programisty.
Jackal Silentdark jest offline   Odpowiedz z Cytatem
stary 24-08-2005, 21:03   #10
Cafe
Użytkownik Forum
 
Cafe's Avatar
 
Data dołączenia: 18 07 2005
Lokacja: Daleko
Wpisy bloga: 1

Posty: 516
Stan: Na Emeryturze
Profesja: Elder Druid
Świat: Iridia
Cafe ma numer GG 5247922
Domyślny

no stary wielkie GZ , ja dopiero od wczoraj sie tego ucze i duzo jeszcze nie rozmie ale jak to powiedzil kald C++ to jedeny słuszny jezyk do programowania =P
__________________
Kiedy czegoś gorąco pragniesz,
to cały Wszechświat działa potajemnie,
by udało ci się to osiągnąć.
Cafe jest offline   Odpowiedz z Cytatem
stary 24-08-2005, 21:21   #11
Gniew Mroku
Użytkownik Forum
 
Gniew Mroku's Avatar
 
Data dołączenia: 22 02 2004
Wiek: 36

Posty: 292
Domyślny

@Nightwalker & inni którzy chcą się w c++ bawić: zalecam DARMOWY kompilator Dev-cpp ( http://www.bloodshed.net/ ). Zajmuje pare mega.

@cafe (inni nie czytać, bo coś źle możecie zrozumieć): Kald i Vall uważają że #C rox. Popytaj ich jakie to qul

@topic: Nawet ładnie jak na początek programowania w c++. Podejrzewam, że masz jakąś znajomość programowania, ale i tak szybko uczysz się c.
__________________
Gniew Mroku jest offline   Odpowiedz z Cytatem
stary 25-08-2005, 00:31   #12
binek1986
Użytkownik Forum
 
binek1986's Avatar
 
Data dołączenia: 13 03 2005
Lokacja: Elblag
Wiek: 38

Posty: 67
Stan: Niegrający
Imię: Binek
Profesja: Elder Druid
Świat: Nova
Poziom: 56
Skille: 22/26
Poziom mag.: 71
Domyślny

@Nightwalker:
Wszystko jest w internecie ;>, wystarczy tylko przylozyc sie i poszukac .
Kursy za darmo, nie potrzeba az tak bardzo ksiazek, znalezc forum jakies lub grupe dyskusyjna pozniej i wszystkiego mozna sie nauczyc. Kompilatory tez sa dostepne za darmo, cala masa razem z calymi srodowiskami do programowania, debuggerami i wszystkim innym co jeszcze jest potrzebne.

@Wieszok:
Skoro tak to widac ze zle troche zaczales ;-). Powinienes od samego poczatku nauczyc sie odpowiednio nazywac zmienne i bylby luuz, albo w ostatecznosci wystarczy, tak jak Thero napisal, powstawiac komentarze do zmiennych na samym poczatku co tez bardzo ulatwi prace nad programem w przyszlosci.

@Jackal Silentdark:
Jak bedzie umial C/C++ to nie bedzie potrzeby przesiadania sie na pascala ;-).

@Gniew Mroku:
Hehe. Ja do programowania osobiscie podchodzilem jak do nauki jezyka obcego. Nauczyc sie polecen, skladni a pozniej to juz sama logika i doswiadczenie ktore bedzie przybywac z dnia na dzien ;>.
__________________
Whoever appeals to the law against his fellow man is
either a fool or a coward. Whoever cannot take care of
himself without that law is both. For a wounded man shall
say to his assailant, "If I live I will kill you, if I die
you are forgiven". Such is the Rule of Honor.
binek1986 jest offline   Odpowiedz z Cytatem
stary 25-08-2005, 01:01   #13
Vanhelsen
Użyszkodnik
 
Vanhelsen's Avatar
 
Data dołączenia: 05 02 2004
Lokacja: Festung Breslau
Wiek: 35

Posty: 4,597
Stan: Początkujący
Imię: Vanhelsen
Profesja: Druid
Gildia: Inner Circle
Świat: Auchindoun
Poziom: 80
Skille: LW/Skin
Poziom mag.: 2k
Vanhelsen ma numer GG 2690575
Domyślny

Cytuj:
Oryginalnie napisane przez binek1986
@Wieszok:
Skoro tak to widac ze zle troche zaczales ;-). Powinienes od samego poczatku nauczyc sie odpowiednio nazywac zmienne i bylby luuz, albo w ostatecznosci wystarczy, tak jak Thero napisal, powstawiac komentarze do zmiennych na samym poczatku co tez bardzo ulatwi prace nad programem w przyszlosci.
Tylko, ze te zmienne opisują wiele rozmaitych, nie zawsze takich samych danych, w tym przypadku łatwiej mi jest korzystać z a/b/c ale normalnie to bawie się w lev/mp/hp/sec itp
__________________
Kłócenie się na forum jest jak uczestniczenie w paraolimpiadzie, może i wygrasz, ale nadal będziesz zacofanym -.-"


Vanhelsen jest offline   Odpowiedz z Cytatem
stary 25-08-2005, 01:27   #14
binek1986
Użytkownik Forum
 
binek1986's Avatar
 
Data dołączenia: 13 03 2005
Lokacja: Elblag
Wiek: 38

Posty: 67
Stan: Niegrający
Imię: Binek
Profesja: Elder Druid
Świat: Nova
Poziom: 56
Skille: 22/26
Poziom mag.: 71
Domyślny

@Wieszok:
Spox, nie mam zamiaru nikogo uczyc na sile, w koncu kazdy ma wlasny styl
:-).
__________________
Whoever appeals to the law against his fellow man is
either a fool or a coward. Whoever cannot take care of
himself without that law is both. For a wounded man shall
say to his assailant, "If I live I will kill you, if I die
you are forgiven". Such is the Rule of Honor.
binek1986 jest offline   Odpowiedz z Cytatem
stary 25-08-2005, 09:04   #15
moo
Użytkownik Forum
 
Data dołączenia: 21 07 2005

Posty: 43
Domyślny

Cytuj:
Oryginalnie napisane przez Gniew Mroku
@topic: Nawet ładnie jak na początek programowania w c++. Podejrzewam, że masz jakąś znajomość programowania, ale i tak szybko uczysz się c.
Fakt, kiedys probowalem uczyc sie Pascala, stad latwo mi bylo pojac zmienne itp. Ale znudzilo mi sie po kilku godzinach nauki.

Co do nazywania zmiennych np. mana, lvl to nie pomyslalem ze bedzie przydatne. Dzieki wszystkim za dobre slowa i za pomoc. Mam nadzieje ze kiedys napisze cos lepszego
moo jest offline   Odpowiedz z Cytatem
stary 25-08-2005, 09:59   #16
Cafe
Użytkownik Forum
 
Cafe's Avatar
 
Data dołączenia: 18 07 2005
Lokacja: Daleko
Wpisy bloga: 1

Posty: 516
Stan: Na Emeryturze
Profesja: Elder Druid
Świat: Iridia
Cafe ma numer GG 5247922
Domyślny

Cytuj:
@cafe (inni nie czytać, bo coś źle możecie zrozumieć): Kald i Vall uważają że #C rox. Popytaj ich jakie to qul
a no, jest qul =P

tutaj macie kompilator:
Kod:
http://sm00f.boo.pl/download/devcpp_v4_990*****
jest po polsku

a tu macie poradniki do C++
Kod:
http://it.hk.pl/
__________________
Kiedy czegoś gorąco pragniesz,
to cały Wszechświat działa potajemnie,
by udało ci się to osiągnąć.

Ostatnio edytowany przez Cafe - 25-08-2005 o 10:05.
Cafe jest offline   Odpowiedz z Cytatem
stary 25-08-2005, 11:05   #17
Nightwalker
Użytkownik Forum
 
Nightwalker's Avatar
 
Data dołączenia: 19 08 2004
Lokacja: Wrocław
Wiek: 35

Posty: 664
Domyślny

@wszsycy co pomogli
Wielkie dzięki niedługo wezme sie do nauki
Nightwalker jest offline   Odpowiedz z Cytatem
stary 25-08-2005, 11:06   #18
Nequss
Użytkownik Forum
 
Nequss's Avatar
 
Data dołączenia: 08 07 2005
Lokacja: z nienacka
Wiek: 36

Posty: 74
Nequss ma numer GG 4495053 Nequss ma login Tlenu osdlep
Domyślny

a teraz was troche zgasze :

1 stycznia 1998 roku Bjarne Stroustrup udzielił wywiadu dla jednego z czasopism komputerowych - "IEEE Computer". Wydawcy myśleli, że będzie to nawiązanie do minionych siedmiu lat programowania obiektowego za pomocą języka, który sam stworzył. W trakcie wywiadu, prowadzący go redaktor został dość niemile zaskoczony przez swojego rozmówcę, co było powodem późniejszej chęci zatajenia treści wywiadu przez wydawców, tłumaczonej "dbaniem o dobro przemysłu komputerowego". Jednak jak to zwykle bywa w takich przypadkach, również i tutaj wystąpił tzw. przeciek informacji. Oto kompletny odpis tego co zostało powiedziane, bez jakichkolwiek obróbek merytorycznych. Dlatego też nie wygląda to tak, jak w przypadku innych, wcześniej uzgadnianych wywiadów. Jednak myślę, że spotka się to z zainteresowaniem....

Redaktor: Minęło już parę lat odkąd zrewolucjonizowałeś świat programowania. Co o tym myślisz, patrząc wstecz na swoje dokonania?
Stroustrup: Właściwie myślałem o tym tuż przed twoim przyjściem. Pamiętasz?... Wszyscy pisali w C, a problemem było to, że byli w tym cholernie dobrzy. Również uniwersytety były dobre w nauczaniu tego języka. W bardzo szybkim tempie wypuszczali na świat wykwalifikowanych (podkreślam słowo: wykwalifikowanych) absolwentów. To właśnie spowodowało problem.
Redaktor: Problem?
Stroustrup: Tak, problem. Pamiętasz jak dawniej wszyscy pisali w Cobol-u?
Redaktor: Oczywiście, ja też w tym pisałem...
Stroustrup: Więc na początku ci ludzie byli jak półbogowie. Mieli wysokie pensje, i traktowani byli niemalże jak członkowie rodziny królewskiej.
Redaktor: To były czasy..., prawda?
Stroustrup: Właśnie! I co się stało? Firma IBM miała tego dosyć, więc zainwestowała miliony dolarów na wytrenowanie tylu programistów, aż było ich dosłownie na pęczki.
Redaktor: Z tego właśnie powodu ja też odszedłem. Pensje spadły w przeciągu roku na tyle, że bardziej opłacało się pisanie artykułów do magazynów.
Stroustrup: Dokładnie. To samo stało się z programistami piszącymi w C.
Redaktor: No tak. Ale do czego zmierzasz?
Stroustrup: Otóż pewnego dnia, kiedy siedziałem w swoim biurze, myślałem nad czymś co wprowadziłoby trochę równowagi do ówczesnej sytuacji. Zastanawiałem się co by było, gdyby istniał język na tyle skomplikowany i trudny do nauczenia, że nikt nie byłby w stanie zalewać rynku programistami. Miałem parę pomysłów z X10, no wiesz, X windows. To dopiero było okropne środowisko graficzne... chodziło tylko na maszynach typu Sun 3/60. Ale miało wszystkie składniki jakich potrzebowałem: naprawdę śmiesznie skomplikowaną składnię, mętne i niejasne funkcje oraz pseudo obiektową strukturę. Nawet w dzisiejszych czasach, nikt kto chce pozostać przy zdrowych zmysłach, nie pisze w czystym kodzie X-windows.
Redaktor: Chyba żartujesz...?
Stroustrup: Ani trochę. Był też kolejny problem. Unix został napisany w C, a to znaczyło że każdy programista piszący w tym języku, mógł bardzo łatwo przejść na pisanie systemów operacyjnych. Pamiętasz chyba ile wtedy programista takich głównych systemów zarabiał ?
Redaktor: Jasne że tak, sam też się tym zajmowałem....
Stroustrup: Zatem ten nowy język musiał oddzielić się od Unix-a, ukrywając wszystkie wywołania systemowe. To umożliwiłoby zarobienie paru groszy również tym, którzy znali tylko DOS-a.
Redaktor: Nie wierzę, że to powiedziałeś...
Stroustrup: No cóż, minęło już trochę czasu i moim zdaniem większość ludzi odkryła, że całe C++ to tylko strata czasu, choć muszę powiedzieć, że zajęło im to o wiele dłużej niż przypuszczałem.
Redaktor: Zatem, jak udało ci się osiągnąć taki sukces ?
Stroustrup: To miał być tylko żart. Nigdy nie sądziłem, że ludzie mogliby brać moją książkę na poważnie. Każdy, nawet półgłówek dostrzeże, że programowanie zorientowane obiektowo jest nielogiczne, niewydajne i działa wbrew intuicji.
Redaktor: Co?
Stroustrup: A co do wielokrotnego wykorzystywania kodu... - kiedy słyszałeś, żeby jakaś firma działała w ten sposób ?
Redaktor: No..., właściwie to nigdy, ale...
Stroustrup: No właśnie! To znaczy, kilka próbowało w tamtych czasach. Była taka firma z Oregonu - Mentor Graphics, która w '90 albo '91-szym roku próbowała przepisać wszystko na C++ i niestety nie wyszło im to na dobre. Było mi ich naprawdę żal ale uważam, że ludzie powinni uczyć się na własnych błędach.
Redaktor: Dokładnie. A im się to nie udało ?
Stroustrup: Niestety ani trochę. Problem w tym, że większość firm ma tendencję do tuszowania swoich poważniejszych zaniedbań, a wytłumaczenie się akcjonariuszom ze straty 30 milionów dolarów, byłoby dość trudne. Sprawiedliwości stało się zadość, jednak w końcu udało im się jakoś wyjść na prostą.
Redaktor: Naprawdę? No więc sam widzisz, że programowanie obiektowe skutkuje.
Stroustrup: Prawie. Pliki ***** były tak duże, że ich załadowanie na maszynie HP ze 128MB RAM-u, trwało pięć minut. Programy uruchamiały się w ślimaczym tempie. Właściwie myślałem, że będzie to główną wadą nowego języka, jednak nikogo to nie obchodziło. Firmy takie jak Sun czy HP były zbyt zadowolone ze sprzedaży swoich mocnych komputerów z ogromnymi zasobami, a wszystko po to tylko, żeby uruchamiać na nich proste, banalne programy. Wyobraź sobie, że kiedy pojawił się pierwszy kompilator C++ na komputerze AT&T, skompilowałem pod nim zwykłe "Hello World" i wprost nie mogłem uwierzyć rozmiarowi tego pliku - 2.1 MB.
Redaktor: Co? Zgoda, ale kompilatory bardzo się od tamtego czasu zmieniły.
Stroustrup: Czyżby? Weźmy na przykład ostatnią wersję g++ - nie uzyskasz większej redukcji objętości jak zaledwie o niecałe 0.5 MB. Mógłbym przytoczyć ci jeszcze kilka innych przykładów z całego świata. Swego czasu firma British Telecom miała z tego powodu nie lada katastrofę, ale na szczęście udało im się w porę usunąć problemy i zacząć od nowa. Australian Telecom nie miała tyle szczęścia, co ich brytyjski odpowiednik. Teraz dochodzą mnie słuchy, że Siemens buduje kolejnego "dinozaura" martwiąc się coraz bardziej o to, aby sprzęt równoważył wymagania programów. Czy zatem wielopoziomowe dziedziczenie nie jest po prostu pomyłką ?
Redaktor: Przecież C++ jest bezpiecznym językiem.
Stroustrup: Naprawdę w to wierzysz ? Czy kiedykolwiek pracowałeś nad projektem w C++? Oto co się dzieje: po pierwsze, w C++ istnieje wystarczająco dużo pułapek, dzięki którym tylko najbanalniejsze projekty działają za pierwszym razem. Weź np. przeładowanie jakiegoś operatora. Pod koniec projektu, prawie każdy moduł je posiada, bo w mniemaniu programistów powinno ono wystąpić, przecież o tym mówiono im na kursach szkoleniowych. Zatem ten sam operator w każdym kolejnym module oznacza coś zupełnie innego. A spróbuj nad tym zapanować, kiedy będziesz miał około setki modułów... A co do ukrywania danych: O Boże, czasami nie sposób się nie roześmiać, kiedy słyszę o firmach starających się sprawić aby ich moduły ze sobą współpracowały. Myślę, że słowo "synergetyczny" zostało specjalnie wymyślone, aby można było szefowi projektu "przekręcać nóż w żebrach".
Redaktor: Muszę przyznać, że zaczynam być tym wszystkim przerażony. Mówisz, że stworzyłeś ten język po to, aby wzrosły pensje programistów? To okropne!
Stroustrup: Nie zupełnie. Przecież każdy ma wybór. Nie przypuszczałem, że aż tak bardzo wymknie się to spod kontroli, jednak stało się. C++ już stopniowo wymiera, ale programiści dalej są dobrze opłacani - szczególnie ci, którzy zajmują się tworzeniem projektów za pomocą tego steku bzdur. Zdajesz sobie sprawę, że pracowanie nad dużym modułem programu w C++ nie jest możliwe, jeśli sam go nie napisałeś ?
Redaktor: Jak to ?
Stroustrup: Nie kojarzysz o czym mówię, prawda? A pamiętasz dyrektywę: typedef?
Redaktor: Oczywiście że tak.
Stroustrup: Przypomnij sobie ile czasu zabiera śledzenie "po omacku" plików nagłówkowych tylko po to, aby dowiedzieć się że np. 'RoofRaised' to liczba typu double. Wyobraź sobie ile czasu zabiera znalezienie wszystkich konkretnych dyrektyw typedef we wszystkich klasach jakiegoś większego projektu.
Redaktor: Po czym zatem poznałeś swój sukces ?
Stroustrup: Pamiętasz ile zajmowało stworzenie średniej objętości projektu w C ? Około 6 miesięcy. To trochę za krótko, aby facet mający żonę i dzieci mógł zarobić na utrzymanie i w miarę godziwy standard życia. A weź teraz napisz ten sam projekt używając C++...i co otrzymasz? Powiem ci - jeden do dwóch lat. Czyż to nie wspaniałe zapewnienie sobie pracy? Kolejna rzecz. Uniwersytety nie nauczały C od tak dawna, że teraz brakuje porządnych programistów piszących w tym języku. Szczególnie tych, którzy wiedzą coś na temat programowania pod systemami z rodziny Unix-a. Ilu teraz wiedziałoby co zrobić z 'malloc', skoro przez tyle lat używali 'new' - i nigdy nie zaprzątali sobie głowy sprawdzaniem wartości zwracanego kodu. W rzeczywistości, większość z programistów C++ pomija te zwracane wartości. Co się stało ze starym, dobrym '-1' ? Przynajmniej wiedziałeś, że masz błąd, bez grzęźnięcia w cały ten bałagan z 'try', 'throw' i 'catch'.
Redaktor: Ale przecież dziedziczenie oszczędza mnóstwo czasu i pracy...
Stroustrup: Tak sądzisz? Czy kiedykolwiek zauważyłeś różnicę między planowaniem projektu w C, a planowaniem projektu w C++? To drugie jest trzy razy dłuższe. Musisz dokładnie upewnić się, że wszystko co powinno być dziedziczone, jest dziedziczone, a wszystko co nie powinno - nie jest. A potem i tak występują w tym błędy. Kto przedtem słyszał o jakiejś konsumpcji pamięci przez program napisany w zwykłym C? A teraz znajdywanie ich, to chleb powszedni. Większość firm pod tym względem poddaje się, wypuszczają na rynek swój produkt, wiedząc że cieknie z niego jak z dziurawego worka, no ale wtedy unikają kosztów związanych z łataniem tych dziur.
Redaktor: Są do tego odpowiednie narzędzia...
Stroustrup: ...z których większość została napisana w C++.
Redaktor: Czy zdajesz sobie sprawę z tego, że jeśli opublikujemy ten wywiad, to prawdopodobnie zostaniesz "zlinczowany" ?
Stroustrup: Wątpię. Jak już powiedziałem, C++ minął już swój szczyt rozkwitu i popularności i żadna firma przy zdrowych zmysłach nie zacznie tworzenia projektu w C++ bez wstępnych prób. One powinny ich przekonać, że zmierzają prosto ku katastrofie. A jeśli tego nie zauważą, to niech mają na co zasłużyli. Wiesz, próbowałem kiedyś przekonać Dennis'a Ritchie, aby przepisał Unix-a w C++.
Redaktor: O mój Boże..., i co powiedział?
Stroustrup: Na szczęście ma poczucie humoru. Myślę że obaj, on i Brian Kernighan już wtedy zorientowali się o co mi chodzi, ale trzymali to w tajemnicy. Dennis powiedział, że jeśli chcę, to pomoże mi napisać w C++ wersję DOS-a.
Redaktor: A chciałeś ?
Stroustrup: Właściwie to napisałem DOS-a w C++. Jak skończymy, to dam ci wersję demo. Działa to u mnie na Sparc 20. Chodzi jak rakieta przy czterech procesorach i zajmuje tylko jakieś 70 MB twardego dysku.
Redaktor: A jak się sprawuje na zwykłym PC ?
Stroustrup: Teraz to sobie żartujesz. Czy nigdy nie widziałeś Windows'95? Myślę o nim jak o moim największym sukcesie. Prawie przegrałem, zanim cokolwiek się zaczęło.
Redaktor: Wiesz, ten pomysł na Unix++ naprawdę mnie zastanawia. Gdzieś na świecie ktoś na pewno się za to weźmie.
Stroustrup: Na pewno nie, jeśli przeczyta ten wywiad.
Redaktor: Przykro mi, ale nie wydaje mi się, żebyśmy mogli cokolwiek z tego opublikować.
Stroustrup: Ale to jest opowieść stulecia. Ja chcę tylko, żeby wszyscy moi koledzy po fachu pamiętali mnie za to, co dla nich zrobiłem. Wiesz ile zarabia w dzisiejszych czasach programista znający C++ ?
Redaktor: Ostatnio słyszałem, że ci najlepsi dostają $70 - $80 za godzinę.
Stroustrup: Widzisz? I założę się, że są tyle warci. Śledzenie wszystkich tych "pułapek" jakie umieściłem w C++ nie jest wcale łatwe. Tak jak już mówiłem wcześniej, każdy programista piszący w C++ czuje się związany jakąś mistyczną obietnicą do używania w swoich projektach każdego przeklętego elementu tego języka. Czasami to naprawdę mnie denerwuje, nawet jeśli jest zgodne z moim pierwotnym celem. Po tych wszystkich latach, prawie polubiłem ten język.
Redaktor: To znaczy, że przedtem go nie lubiłeś ?
Stroustrup: Nienawidziłem go. Wydaje się nawet niezgrabny, zgodzisz się? Ale kiedy zaczęły przychodzić do mnie tantiemy..... no cóż, sam rozumiesz.
Redaktor: Chwileczkę. A co z referencjami? Musisz przyznać, że ulepszyłeś wskaźniki zwykłego C.
Stroustrup: Hmm... Zawsze się nad tym zastanawiałem. Najpierw myślałem, że faktycznie je ulepszyłem. Potem jednak rozmawiałem o tym z pewnym facetem, który od początku pisał wszystkie swoje programy w C++. Powiedział mi, że nigdy nie może zapamiętać czy jego zmienne przekazywane są przez referencję czy przez dereferencję, więc zawsze używa wskaźników. Powiedział, że ta mała gwiazdka zawsze mu przypomina.
Redaktor: Cóż, w tym momencie zwykle mówię: 'dziękuję ci bardzo za wywiad', ale tutaj nie wydaje się to stosownym.
Stroustrup: Obiecaj mi, że to opublikujesz. Po prostu gryzie mnie sumienie, dlatego cię o to proszę.
Redaktor: Dam ci znać, ale już przeczuwam co powie mój wydawca.
Stroustrup: Ale kto by w to uwierzył? Mimo wszystko, czy możesz przysłać mi kopię taśmy z tym wywiadem ?
Redaktor: OK, to mogę zrobić.


i wielkie gratz dla moo bo ja po kilku godzinach nauki c++ to jescze mniej rozumiałem niż przed jej rozpoczęciem
__________________

klikajcie codziennie i wspomagajcie ^^
dla Ciebie to ok. 5 sec* dla mnie duża pomoc!
*na necie 512
Nequss jest offline   Odpowiedz z Cytatem
stary 25-08-2005, 11:19   #19
Matek
Użytkownik Forum
 
Matek's Avatar
 
Data dołączenia: 21 09 2004
Lokacja: Węgorzewo/Gdańsk

Posty: 1,859
Matek ma numer GG 3933509
Domyślny

fajny art A dla niekumatych: nie traktujcie go serio
__________________


"Miła, błagam, nie zrozum mnie źle
Kocham cię tak jak swoje przestworza pokochał wiatr"

Moj jogger
Matek jest offline   Odpowiedz z Cytatem
stary 25-08-2005, 11:39   #20
Knight Simon Dark lord
Użytkownik Forum
 
Knight Simon Dark lord's Avatar
 
Data dołączenia: 29 08 2004
Lokacja: Carlin
Wiek: 34

Posty: 756
Stan: Aktywny gracz
Profesja: Master Sorcerer
Gildia: Evil Shadows
Świat: Harmonia
Poziom: 36
Skille: 20/24
Poziom mag.: 45
Knight Simon Dark lord ma numer GG 2398454
Domyślny

Cytuj:
Oryginalnie napisane przez Gniew Mroku
@Nightwalker & inni którzy chcą się w c++ bawić: zalecam DARMOWY kompilator Dev-cpp ( http://www.bloodshed.net/ ). Zajmuje pare mega.

@cafe (inni nie czytać, bo coś źle możecie zrozumieć): Kald i Vall uważają że #C rox. Popytaj ich jakie to qul

@topic: Nawet ładnie jak na początek programowania w c++. Podejrzewam, że masz jakąś znajomość programowania, ale i tak szybko uczysz się c.
dzięki za stronke też chce się uczyć i nie wiedziałem z kąd kompilatora wziąść
__________________


Cytuj:
Oryginalnie napisane przez Paciorro Pokaż post
czyli skoro dali darmowy onwtibia to wszystko jest ok????

Knight Simon Dark lord jest offline   Odpowiedz z Cytatem
Odpowiedz


Użytkowników czytających ten temat: 1 (zarejestrowanych: 0, gości: 1)
 
Opcje tematu

Zasady postowania
Nie możesz dodawać tematów
Nie możesz odpowiadać
Nie możesz dodawać załączników
Nie możesz edytować swoich postów

BB Kod jest Włączone
UśmieszkiWłączone
[IMG]Włączone
Kody HTML są Wyłączone
Przejdź do forum


Wszystkie czasy podano w strefie GMT +2. Teraz jest 14:32.


Powered by vBulletin 3