Zaloguj się, aby obserwować  
Bartuc

Język C / C++ / C# / Java - pytania, problemy...

1979 postów w tym temacie

Dnia 17.10.2006 o 14:48, gmx napisał:

tykus, zazwyczaj nie robie takich przypuszczen ale... nie masz przypadkiem pirata?


NIE!!! Mam wersję trial programu - qmpel mojego brata polecił Enterprise.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 17.10.2006 o 14:48, gmx napisał:

The only problem going to version 6 was an error message that
the compiler could not find a pacage file named ''packapi''.
I had to phone BORLAND to resolve the error. They told me to
navigate Project|Options|Packages then remove ''Packapi'' from the
end of the long string of items at the bottom of the packages panel.


Czyli mam usunąć TeeChart for QuickReport Components? O to chodzi czy o coś innego???

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 17.10.2006 o 15:13, tykus napisał:

> tykus, zazwyczaj nie robie takich przypuszczen ale... nie masz przypadkiem pirata?

NIE!!! Mam wersję trial programu - qmpel mojego brata polecił Enterprise.

no to sorry za podejrzenie :)

osobiscie polecam personala - dobry do nauki, tylko na stronie borlanda trzeba sie zarejestrowac i dostajesz klucz na skrzynke. no i nie ma niespodzianek jak chcesz przeniesc projekt z enterprise na personala (w druga strone nie ma problemu.)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 17.10.2006 o 15:23, gmx napisał:

osobiscie polecam personala - dobry do nauki, tylko na stronie borlanda trzeba sie zarejestrowac
i dostajesz klucz na skrzynke. no i nie ma niespodzianek jak chcesz przeniesc projekt z enterprise
na personala (w druga strone nie ma problemu.)


A Personal ile kosztuje??? I miałś problemy z Packapi???

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 17.10.2006 o 15:22, tykus napisał:

Czyli mam usunąć TeeChart for QuickReport Components? O to chodzi czy o coś innego???

nie mem pojecia, tak jak napisalem, mam personala, teraz nawet nie zainstalowanego. kluczowe jest wejscie w
Project->Options->Packages
i gdzies na samym dole listy bedziesz mial to packapi ktore masz usunac. tyle wiem.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 17.10.2006 o 15:26, tykus napisał:

A Personal ile kosztuje??? I miałś problemy z Packapi???

hmm, personal kosztuje? z tego co pamietam do nauki i uzytku domowego byl za free (dodawali nawet do gazet), nie wiem jak jest teraz. jedynym wymogiem byla rejestracja u borlanda

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 17.10.2006 o 14:54, generalmatek napisał:

A mógłby mi ktoś polecić książkę dla kogoś kto w ogóle nie miał styczności z programowaniem?
Z góry thx.

A jaki język Cię interesuje?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 17.10.2006 o 13:55, tykus napisał:

Mam problem w c++. Używam programu c++ bulider enterprise, ale nie mam pliku backapi.bpi. > Czy można go gdzieś zdobyć???

Używasz (niedziałającego) programu kosztującego ponad 10.650 zł do nauki języka?

Jest naprawdę mnóstwo kompilatorów C++, które są darmowe i przez conajmniej dwa lata nie wykorzystasz, ani nie poznasz wszystkich ich możliwości. Użyj choćby google. Wszystko będzie działać. Z wersji entreprise połowy tekstu nawet nie zrozumiesz bo aby wykorzystać zawarte w pakienie możliwości trzeba mieć wykształcenie na poziomie wyższym informatycznym i kilkuletnie doświadczenie w projektowaniu i programowaniu.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Nie wiem czy to dobry temat .... ale napisze bo nie znalazłem nic lepszego : ) Zatem : Polećcie jakieś książki albo/i strony o pierwszych krokach w HTML-u ... Niedawno zacząłem coś o tym czytać i takie tam ... a teraz chcę sam trwożyć strony ( Tia zapał twórczy : ) ) Jak mi się spodoba to może coś liznę o " Poważniejszym " programowaniu np. w C++ .

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 31.10.2006 o 21:40, Daniel DazZy napisał:

Nie wiem czy to dobry temat .... ale napisze bo nie znalazłem nic lepszego : ) Zatem : Polećcie
jakieś książki albo/i strony o pierwszych krokach w HTML-u ... Niedawno zacząłem coś o tym
czytać i takie tam ... a teraz chcę sam trwożyć strony ( Tia zapał twórczy : ) ) Jak mi się
spodoba to może coś liznę o " Poważniejszym " programowaniu np. w C++ .


www.kurshtml.boo.pl

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Piszę program, coś w stylu organizera, w MS Visual C++ 6.0 pod MFC AppWizard i mam do Was prośbę: potrzebuję wstawić w program jakiś zegarek, może wskazówkowy? elektroniczny... obojętnie, ważne jest żeby sam automatycznie przy starcie programu lub po kliknięciu jakiegoś przycisku pobierał czas i datę z odpowiedniego miejsca w necie (jakiś serwer czasu czy coś :P). Wszystko powinno jakoś graficznie ładnie się prezentować.

Czy macie może kod takiego zegarka? Czy możecie mnie nakierować na jakieś strony, z których taki zegarek mógłbym ściągnąć i wykorzystać jako element organizera? Będę wdzięczny za każdą pomoc :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 13.11.2006 o 17:37, Woko11 napisał:

Może mi ktoś polecić jakiś kurs C++ ?

Masz
...czyli autor próbuje przekonać do siebie czytelników (i naczelnego).

Tytułem wstępu...
Witajcie w pierwszej części kursu języka C++. Jeśli nic poważnego się nie stanie, to kolejne części kursu będą się pojawiały co miesiąc. Lub co dwa miesiące. Albo i rzadziej... :) Mimo wszystko jednak jestem dobrej myśli. Jeszcze nie wiem, ile części będzie miał ten kurs. Mam aspiracje na coś dużego i rozbudowanego, ale nie wiem, na jak długo wystarczy mi zapału. Ale na pewno 10 części będzie. Ta część jest (teoretycznie) pierwsza, jednak nie jest to jeszcze właściwy kurs programowania, a jedynie sprawy organizacyjne. Ale żeby nikogo nie zniechęcać, napiszemy chyba najprostszy z możliwych program w C++.
Dlaczego C++?
Trudne pytanie. Jest naprawdę duża ilość różnych języków programowania - od asemblera, poprzez nieco już zapomniane Cobol i FORTRAN, BASIC, Pascal aż do Delphi czy Javy. Jednak żaden z nich nie daje aż takiej swobody, jak C++, który jest kontynuacją i rozszerzeniem języka C. C++ łączy w sobie wszystkie możliwości, jakie posiadał C (operacje na pojedynczych bitach, rejestrach procesora a nawet programowanie na poziomie "żelastwa"), oraz prostotę języków wyższego poziomu - głównie dzięki możliwościom programowania obiektowego. Dlatego właśnie jest on najpopularniejszym językiem programowania. Co ważne, w C zostało napisanych wiele bibliotek Windowsa oraz fragmenty Linuxa - a że C++ jest jego rozszerzeniem, to chyba najlepiej świadczy to o potędze i możliwościach tego języka. Jednak przy tak wielu zaletach język C++ ma zasadniczą wadę - jest tak rozbudowany, że poznanie go zajmuje mnóstwo czasu i pracy. Jednak wysiłek ten się opłaca. Z resztą - mnie składnia C++ bardzo odpowiada i uważam, że jest bardzo przejrzysta. A wiem, co mówię, bo wcześniej programowałem w Pascalu, a poźniej przerzuciłem się na Delphi (Object Pascal). Jednak oba te języki w porównaniu do C i C++ są niezwykle sztywne. [•] Chyba żaden język programowania nie daje takiej swobody, co C++.
Sprawy organizacyjne
Aby programować w jakimś języku programowania, nie wystarczy tylko poznać ten język i napisać jego kod. Aby uruchomić program, potrzebny jest zestaw narzędzi, a podstawowe to kompilator i konsolidator (linker).

KOMPILATOR to program, który "tłumaczy" program napisany przez człowieka na język zrozumiały dla komputera, czyli język maszynowy. Jeśli kod programu jest napisany w kilku różnych plikach (praktyka często spotykana w dużych projektach), kompilator tworzy odpowiednią ilość plików skompilowanych. W przypadku języka C++ najczęstszy format skompilowanych plików to *.obj i *.o.

KONSOLIDATOR (linker) zajmuje się łączeniem (ang. linking) plików skompilowanych oraz bibliotek programowych i tworzeniem z nich pliku wynikowego (*.exe - program wykonywalny, *.dll - biblioteka dynamiczna, *.lib lub *.a - biblioteka statyczna).

Innymi przydatnymi programami są:

MAKE - bardzo przydatny podczas pisania dużych projektów składających się z wielu plików. Automatyzuje on proces kompilacji i konsolidacji, dzięki czemu nie trzeba wielokrotnie wpisywać całej listy plików do skompilowania czy też linkowania. Wystarczy tylko stworzyć plik makefile lub makefile.mak, a następnie wpisać z konsoli komendę make - i już. Do pisania plików makefile potrzebna jest specjalna składnia, ale po opanowaniu jej kompilacja jest samą przyjemnością. :) Oczywiście przy korzystaniu ze zintegrowanych środowisk programistycznych (tzw. IDE - ang. Integrated Development Environment), np. C++ Builder firmy Borland lub Dev-C++ firmy Bloodshed, nie musimy zawracać sobie głowy tymi rzeczami, ponieważ środowiska zintegrowane automatyzują ten proces nie gorzej od make''a.

DEBUGGER (tzw. podprogram uruchomieniowy) - również przydaje się w dużych projektach. Pozwala on na kontrolowanie przebiegu wykonania programu, a więc można za jego pomocą podejrzeć pamięć podczas wykonywania programu oraz modyfikować adresy i wartości zmiennych w celu np. poznania możliwości przyśpieszenia programu lub zlokalizowania błędów wykonania. IDE posiadają zazwyczaj wbudowanie debuggery.

EDYTOR - wprawdzie programy można pisać w zwykłym Notatniku, bo pliki źródłowe są zwykłym tekstem, jednak jest to szalenie niewygodne. Dlatego warto zainstalować edytor programisty, który pozwala na kolorowanie składni (rzecz niesłychanie przydatna) oraz numerowanie linii kodu (przy błędach kompilacji wyświetlany jest numer linii, której błąd dotyczy). Z resztą - chyba każdy się ze mną zgodzi, że każdy edytor tekstu przewyższa windowsowy Notatnik. Ważne jest, aby stworzone pliki posiadały rozszerzenie *.cpp (jest to format plików z kodem w C++; w C format pliku to *.c) lub - dla plików nagłówkowych - *.h, *.hpp lub *.hh. Co to są pliki nagłówkowe - dowiecie się później. Jeśli będziecie korzystać ze zintegrowanego środowiska, to taki edytor nie jest wam potrzebny, gdyż środowiska mają odpowiednie narzędzia. W zasadzie IDE zastąpi wam wszystko to, co do tej pory wymieniłem. Ale ja i tak korzystam z zewnętrznego edytora.

W takim razie krótkie podsumowanie:

*Kompilator (tak będę nazywał zestaw kompilator + linker) - ja korzystam z bardzo dobrego (i darmowego) Dev-C++. Jak już wspomniałem jest to środowisko IDE, jednak doskonale nadaje się do nauki programowania. Budowanie programu polega na stworzeniu pliku projektu i dodaniu do niego odpowiednich plików. Wersja kompilatora jest wystarczająco zgodna ze standardem ANSI/ISO C++. Wszystkie programy przykładowe będę pisał właśnie dla Dev-C++. Aby stworzyć program, należy wybrać z menu Plik | Nowy | projekt i wybrać odpowiedni rodzaj projektu - Windows Application (aplikacja okienkowa), Console Application (konsola DOSa), Static Library (biblioteka statyczna), DLL (biblioteka dynamiczna) lub Empty Project (pusty projekt). Po wybraniu odpowiedniej opcji zostaniemy poproszeni o wskazanie miejsca zapisu projektu, a następnie utworzony zostanie odpowiedni szablon programu (w pliku main.cpp). My będziemy tworzyć tylko aplikacje konsolowe. Bardzo przydatną funkcją jest funkcja uzupełniania kodu - podpowiada ona, jake parametry możemy wpisać do funkcji, jakie metody posiada dany obiekt itp. Czasami jest to nieoceniona pomoc.
Można korzystać również z darmowego Borland C++ Compilera 5.0 - można go pobrać ze strony www.borland.com z działu download (trzeba się zarejestrować na stronie producenta). Ten kompilator działa w trybie tekstowym. Gdy chcemy używać takiego kompilatora, warto zapoznać się z tekstem "Polecenia w DOSie", którego autorem jest UPACI. [•] Tekst znajdziecie w 12. numerze AMK. Opcje kompilacji znajdziecie w dokumentacji kompilatora lub w internecie. Niestety, C++ Compiler jest nieco starą wersją kompilatora, przez co nie obsługuje on np. przestrzeni nazw i innych nowszych opcji. Ale oczywiście możecie również z niego korzystać, wystarczy tylko nieco przerobić przykładowe programy.
Jest jeszcze jeden darmowy kompilator Borlanda, działający w środowisku IDE. Jest to Borland C++ Builder 6.0 Personal. W tej wersji program jest darmowy do użytku domowego i jakiś czas temu był dołączony do czasopisma Komputer Świat. Dobry jest również MS Visual C++, jednak nie jest on w żadnej mierze darmowy - jego cena jest wręcz astronomiczna. Jednak do nauki programowania bardziej nadaje się Dev-C++, ponieważ IDE Borlanda i Microsoftu mają tak wiele dodatkowych bibliotek oraz komponentów, że programowanie w nich ma już niewiele wspólnego z czystym C++ (chociaż jest niezwykle proste; niestety - kosztem wydajności i wielkości programu wynikowego).

*Debugger - jednym z bardziej polecanych jest narzędzie Borlanda - Turbo Debugger. Również jest darmowy i do pobrania ze strony producenta. Działa w oknie DOSa, co nie przeszkadza mu w funkcjonalności. Wręcz przeciwnie, jest bardzo przejrzysty, podzielony na kilka okien, które pozwalają na przeglądanie stanu rejestrów procesora, zawartości pamięci oraz kodu programu. Jednak w tej fazie nauki debugger jest w rzeczywistości zbędny. Ale sami dojdziecie do momentu, w którym zacznie być on niezbędny - a wtedy będziecie się zastanawiać, dlaczego wcześniej tak się męczyliście, zamiast sięgnąć po to narzędzie. :)

*Edytor - Szczególnie polecam doskonały Notepad++ (swoją drogą, to właśnie w nim piszę te słowa). Pozwala on na podświetlanie składni olbrzymiej wręcz liczby języków, jak również Makefile''a, HTMLa, XMLa, SQLa, CSS, INI File, plików zasobów (*.rc), plików wsadowych DOSa... W sumie zdefiniowanych jest 38 różnych języków, a można również definiować własne style. Ponadto pozwala na numerowanie linii kodu oraz korzystanie z systemu zakładek, dzięki czemu w jednym oknie programu można mieć otwartych wiele plików. Bardzo przydatną opcją jest również możliwość "nagrywania" makr, dzięki czemu wiele żmudnych czynności można powtórzyć wielokrotnie za pomocą kilku kliknięć, oraz funkcja podświetlania nawiasu "do pary" - zdarza się, że przy skomplikowanych wyrażeniach nie domkniemy jednego nawiasu, a że komputer głupiutki jest, to musi mieć wszystko "czarno na białym". Ta opcja pozwala wychwycić wiele, czasami poważnych, błędów. Warto również dodać, że program jest po polsku.

Tutaj przedstawiam tematy kolejnych kursów. Ich kolejność może ulec zmianie, być może kilka tematów zostanie połączonych w jeden - lub odwrotnie - ale te tematy zostaną zrealizowane:

1. Wprowadzenie (już się ukazało :))
2. Zmienne - typy, deklarowanie, używanie
3. Typy złożone, tablice i wskaźniki
4. Zasięg zmiennych i przestrzenie nazw
5. Sterowanie przebiegiem programu
6. Funkcje
7. Wprowadzenie do programowania obiektowego
8. Wykorzystanie klas
9. Dziedziczenie, polimorfizm, metody wirtualne
10. Obsługa wejścia/wyjścia
11. Obsługa wyjątków
Pierwszy program
Jak już wspomniałem wcześniej, przedstawiam tutaj prościutki program (a wręcz programik, żeby nie powiedzieć programiątko) w C++ (na zachętę):

hello.cpp
#include <cstdlib> // lub stdlib.h
#include <iostream> // lub iostream.h

using namespace std; // usunąć w przypadku starszych kompilatorów

int main(int argc, char *argv[])
{
cout << "Hello, World!" << endl;
system("PAUSE");
return EXIT_SUCCESS;
}

Wywołanie tego programu spod konsoli DOSa spowoduje wyświtlenie napisu "Hello, world!". Można również program uruchomić, klikając dwukrotnie na jego ikonie.

Teraz pora na krótki opis programu. Pierwsze dwie linie to tzw. dyrektywy preprocesora. Nakazują one włączenie do programu pliku iostream oraz cstdlib. Są to dwa główne pliki biblioteczne w C++. Plików alternatywnych (z rozszerzeniem *.h) należy użyć w przypadku korzystania ze starszej wersji kompilatora - są to po prostu starsze wersje plików. Również przy starszych kompilatorach konieczne będzie usunięcie linii czwartej - using namespace std;. W różnych plikach bibliotecznych i nagłówkowych znajdują się prototypy wielu funkcji oraz typów i klas, które można wykorzystywać w programie.

Dwa ukośniki oznaczają komentarz - jest to dowolny tekst, który jest całkowicie ignorowany przez kompilator i nie wpływa na wielkość pliku wynikowego; jest on umieszczany dla wygody i pamięci programisty i przydaje się zwłaszcza, gdy czytamy kod programu po, powiedzmy, trzech miesiącach. Komentarz pomaga uniknąć sytuacji, gdy musimy zadać sobie elementarne pytanie: "Jak to @#$%* działa?!". [•] W C++ mamy dwa rodzaje komentarza:

// komentarz
Zwany komentarzem liniowym; komentarz zaczyna się od dwóch ukośników i ciągnie się do końca linii programu.

/* komentarz */
Często nazywany komentarzem blokowym, pochodzi jeszcze z języka C. Komentarz zaczyna się znakiem /*, a kończy na */, i może mieć wiele linii - stąd jego określenie.

Linia czwarta programu zostanie wyjaśniona później - na razie musicie przyjąć, że trzeba ją wstawiać. Dotyczy ona przestrzeni nazw, która jest niesamowicie przydatną rzeczą w C++.

Szósta linia kodu to początek funkcji main(). Jest ona nadrzędną funkcją w każdym programie i wszelki kod musi zawierać się właśnie w niej (lub w innych funkcjach, o których dowiemy się w najbliższym czasie). Słowo przed nazwą funkcji to nazwa typu zwracanego przez funkcję - o typach liczbowych dowiecie się już w następnej części kursu. Między nawiasami klamrowymi zawarty jest właściwy kod funkcji. Natomias wartości podane w nawiasach nie trzeba wpisywać - potrzebne są one tylko do pobierania parametrów wejściowych programu i zajmiemy się nimi kiedy indziej.

Ósma linia kodu nakazuje programowi wypisanie na standardowe wyjście konsoli tekstu "Hello, world!". Tekst (tzw. łańcuch tekstowy) w C++ podaje się w cudzysłowie, np "Cześć". Słowo endl nakazuje przejście do następnej linii. Więcej o obiekcie cout oraz cin (działającym w drugą stronę - czyli wczytującym dane z klawiatury do programu) dowiecie się w lekcji dziesiątej, jednak będziemy stopniowo odkrywać ich możliwości w miarę uczenia się języka. Każda instrukcja MUSI zakończyć się średnikiem, który w C++ musi kończyć każdą instrukcję. W zasadzie moglibyśmy zapisać każde słowo w osobnej linii - to nie ma znaczenia. Końcem instrukcji nie jest koniec linii, lecz średnik.

Kolejna instrukcja - system("PAUSE"); - powoduje wywołanie systemowej funkcji pause. Powoduje ona wypisanie na ekranie tekstu: "Aby kontynuować, naciśnij dowolny klawisz...". Powoduje to zatrzymanie programu do czasu, gdy użytkownik wciśnie jakiś przycisk. Gdy nie dodamy tej linii, zaraz po wypisaniu tekstu program zakończy swoje działanie i nie zdążymy zauważyć wyniku programu.

Ostatnia instrukcja - return EXIT_SUCCESS; - oznacza zwrócenie przez funkcję wartości EXIT_SUCCESS, która w procesie kompilacji jest zamieniana na 0. Ponieważ funkcja main() jest wywoływana przez system operacyjny podczas uruchamiania programu, to wartość 0 zostanie zwrócona do systemu operacyjnego właśnie. Przyjęte już zostało, że zwrócenie wartości 0 oznacza zakończenie programu z powodzeniem (stąd EXIT_SUCCESS). Każda inna zwrócona liczba stanowi kod błędu, z jakim program został zakończony. W rzeczywistości nie jest ważne, jaką wartość zwraca program, bo nie jest ona weryfikowana przez system operacyjny. Jednak może się zdarzyć, że ktoś w swoim programie będzie wywoływał nasz program, a na podstawie zwracanej wartości będzie sprawdzał, czy program zakończył się powodzeniem. Jeżeli lubimy stroić żarty z użytkowników, możemy zwrócić wartość 3. Tylko lepiej tego nie robić, żeby przypadkiem nie wpaść we własne sidła... :)

I jeszcze jedna, BARDZO ważna uwaga: C++ rozróżnia wielkość liter. Musicie więc zwracać na to uwagę. Ja sam, gdy zaczynałem programować w C++, nie byłem w stanie skompilować mojego programu, bo nazwę funkcji main() rozpoczynałem z wielkiej litery (taki nawyk z Pascala :)). Pamiętajcie więc - wielkość MA znaczenie. ;) A przynajmniej w świecie C++.

I to tyle na dziś. Jeśli wszystko pójdzie dobrze, to w przyszłym miesiącu pojawi się następna część kursu, a w niej nauczymy się deklarować i używać zmienne. No to - na razie!
ArchiE

Jeśli macie jakieś pytania, piszcie. Niestety, nie mogę zagwarantować natychmiastowej odpowiedzi, bo w domu nie mam neta, a nie stać mnie na codzienne chodzenie do kafejki. Mimo wszystko postaram się odpowiedzieć na każdy mail, który nie jest bluzgami. :) Możecie pisać z pytaniami, wątpliwościami, mogę wam coś wyjaśnić, możecie przesyłać własne programy, którymi chcielibyście się pochwalić... Mogą to być również tematy niekoniecznie związane z programowaniem. ;)

PS. No właśnie... Ale ja nie wiem, czy naczelny w ogóle dopuści ten tekst. :/ To w takim razie... WRIM! Jesteś geniuszem! Jeśli chcesz, aby dowiedział się o tym cały świat (a przynajmniej świat AMagowców) - zamieść ten tekst w AMK. :D

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Utwórz konto lub zaloguj się, aby skomentować

Musisz być użytkownikiem, aby dodać komentarz

Utwórz konto

Zarejestruj nowe konto na forum. To jest łatwe!


Zarejestruj nowe konto

Zaloguj się

Masz już konto? Zaloguj się.


Zaloguj się
Zaloguj się, aby obserwować