Witam.
Wg Symfonii C++ taki program:
#include <iostream>
#include <stdlib>
int main()
std::cout << "Stewardzie, ilu leci pasazerow? ";
int ile;
std::cin >> ile;
int i;
for(i = 1 ; 1 <= ile ; i = i + 1)
std::cout << "Pasazer nr " << i << " prosze zapiac pasy! \n";
std::cout << "Skoro wszyscy juz zapieli, to ladujemy!\n";
system("pause");
powinien po wstawieniu pod "ile" liczby np. 4 wyświetlać taki oto wynik:
Stewardzie, ilu leci pasazerow?
ILE
Pasazer nr 1 prosze zapiac pasy!
Pasazer nr 2 prosze zapiac pasy!
Pasazer nr 3 prosze zapiac pasy!
Pasazer nr 4 prosze zapiac pasy!
Skoro wszyscy juz zapieli, to ladujemy!
a jednak po napisaniu i skompilowaniu go w C++BuilderX program "odjeżdza" z pasażerami do nieskończoności! Dlaczego?
Wg mnie klucz do zagadki tkwi w linijkach:
int i;
for(i = 1 ; 1 <= ile ; i = i + 1)
jednak sam nie wiem jak to zmienić, próbowałem - nie wychodzi. W Symfonii jest DOKLADNIE taki sam zapis i pisze, że powinno wyjść dobrze (czyli wyświetlić tą pętle np. 4 razy).
Byłbym bardzo wdzięczny za pomoc.
Z góry dziękuję i pozdrawiam :)
Po pierwsze daj pod includami "using namespace std" zebys nie musial ciagle pisac std:: przed cin i cout.
A blad jest (watpie zeby Grebosz to napisal, raczej ty sie machnales) i to idiotyczny, przyjzyj sie dokladnie petli for ;)
A tak na logike - kiedy petla sie wykonuje w nieskonczonosc? wtedy, kiedy nigdy nie zostaje spelniony warunek zakonczenia petli. A kiedy moze sie tak dziac? Zazwyczaj wtedy, kiedy zle okreslono warunek zakonczenia. Przyjzyj musie i ocen ;)
mam klasę osoba z prywatnymi zmiennymi imie , nazwisko , wiek
dla tej klasy zdefiniowany jako friend przeciążony operator << (wyświetla powyższe pola na konsolę)
wprowadziłem drugą klasę uczen dziedziczącą po klasie osoba (dodałem kilka pól i metod)
I teraz mam pytanie jak dla tej klasy pochodnej przeciążyć operator << , aby wyświetlał informacje o klasie uczeń (korzystając z przeciążonego operatora dla klasy osoba
ostream& operator<<(ostream& st, const osoba& os)
st << "Nazwisko: " << os.nazwisko << "\timie: " << os.imie
<< "\twiek: " << os.wiek << endl;
return st;
dla klasy uczen zrobiłem to tak
ostream& operator<<(ostream& st, uczen& ucz)
st << "Nazwisko: " << ucz.nazwisko << "\timie: " << ucz.imie
<< "\twiek: " << ucz.wiek << endl;
st << "uczen ma sr ocen: " << ucz.srOcen << "\tchodzi do klasy: "
<< ucz.klasa << endl;
return st;
ale czy mogę skorzystać bezpośrednio ze zdefiniowanego wcześniej operatora << dla osoba?
coś w stylu
st << (?osoba?)
Nie wiem czy dobrze zrozumialem pytanie, ale musisz to zrobic analogicznie jak dla klasy osoba (i widze ze chyba tak to zrobiles) oraz zaprzyjaznic operator << z klasa 'uczen', bo jak wiadomo, przyjazni sie nie dziedziczy, co ma zastosowanie takze w zyciu ;)
Swoja droga mogliby na GOLu wprowadzic okienko typu 'code' zeby kod w nim pisany byl pokazywany tak jak zostal wprowadzony, ze wszystkimi wciaciami itp...
OK. Chodzi mi o to: Czy jest sposób, aby przy definicji operatora << dla klasy pochodnej móc skorzystać z def. operatora(przeciążonego) dla klasy bazowej tzn. aby nie powtarzać kodu:
st << "Nazwisko: " << ucz.nazwisko << "\timie: " << ucz.imie
<< "\twiek: " << ucz.wiek << endl;
Te pola są wspólne dla obu klas.
Natomiast skorzystać ze zdefiniowanego op << dla klasy osoba
Tak aby w razie czego, przy zmianie sposobu wyświetlania info o osobie, zmienił się także sposób wyświetlania początkowych informacji dla klasy pochodnej uczeń.
Może teraz jaśniej :)
Witam z programowaniem dopiero raczkuje więc mało wiem przegladając net natknołem się na 2 "proste" programy. Jeden liczy symbol Newtona drugi ciągi niemalejące.
Ale mam kłopoty ze zrozumieniem ich:/ Czy ktoś by mógł mi wytłumaczyć co się w nich dzieje?? a oto one:
Newton Kod:
#include <iostream.h>
#include <string.h>
#define MAXNK 100
#define MAXWYNIK 1000000000
/*oblicza ile jest podzbiorów k-elementowych w zbiorze n elementowym */
int newton(int n, int k);
int main()
int t,a,b;
cin >> t; /* wczytaj liczbê testów */
while(t)
cin >> a;
cin >> b;
cout << newton(a,b) << endl;
t--;
return 0;
int newton(int n, int k)
double w= 1;
if (k>n/2)
k=n-k;
else k=k;
for (int i=n; i>=n-k+1; i--)
w=w*i;
for (int i=1; i<=k; i++)
w=w/i;
if (w>MAXWYNIK)
w=-1;
return w;
else
return w;
a chodzi mi głównie o tą część Kod:
int newton(int n, int k)
double w= 1;
if (k>n/2)
k=n-k;
else k=k;
for (int i=n; i>=n-k+1; i--)
w=w*i;
for (int i=1; i<=k; i++)
w=w/i;
if (w>MAXWYNIK)
w=-1;
return w;
else
return w;
bo tu zupełnie jestem zakręcony. Może to jest z jakiegoś wzoru wzięte??
Drugi program to Kod:
oid sumy(int, int*, int);
int main()
int t,n,tab[T_SIZE];
cin >> t; /* wczytaj liczbê testów */
while(t)
cin >> n;
assert(n<=T_SIZE);
sumy(n, tab, 0);
cout << endl;
t--;
return 0;
void sumy ( int n, int * tab, int k)
if (n==0)
for (int i= 0; i<k; i++)
cout << tab << " ";
cout<<endl;
return;
k== 0 ;
for ( int i= 1; i<=n; i++)
tab[k]=i;
sumy (n-i, tab, k+1);
return ;
Z góry dziękuje za pomoc
Ma ktoś jakiś program do zliczania i sortowania, który czyta z pliku txt? Z góry dzieki za ewentualną pomoc
hehe fakt sorki za niedomówienie :p...oczywiście wrzechobecny c++ :D a zliczać i sortować ma wyrazy z pliku txt :] , a jesli być jeszcze dokładniejszym to chodzi o to aby się jeszcze program nie zawieszał gdy dostanie plik txt wielkości paru MB
mam spory problem, mianowicie tworze tablice przy uzyciu kodu:
tabWynik=new int*[kolumny];
for (int i=0; i<kolumny;i++)
‹
*(tabWynik+i)=new int[wier];
›
i gdy probuje ja usunac za pomoca:
for (int i=0; i<kolumny;i++)‹ //zwolnienie pamieci
delete[] *(tabWynik+i);
›
delete[] *tabWynik;
to po uruchomieniu programu przy zwalnianiu pamieci wyskakuja bledy windowasa "Wystąpił problem z aplikacją Unit1.exe i zostanie ona zamknięta. Przepraszamy za kłopoty." :/
czy ktos potrafi zlokalizowac moj blad?
ja bym zwalnial tak:
w petli delete[] tabwyniki[.i];
natomaist ostatnia operacja delete[] tabwyniki;
jak rozumiem tabwyniki to int** ?
no miales racje:0 zreszta sam przed chwila to zaczailem dzieki helpowi
no ale teraz mam kolejny problem, mianowicie gdy program wykonuje petle dla 15 serii danych to tak samo sie wywala i pokazuje blad windowsa... :/, dla kazdej operacji new robie delete, wiec chyab nie jest mozliwe zeby pamiec sie zapelniala...
poza tym co ciekawe jedli bede deklarowal tablice w kolejnosci
tabTemp=new int*[kolumny];
for (int j=0; j<kolumny;j++)
*(tabTemp+j)=new int[wier];
cmaxy=new int[wier];
to wykona sie wiecej petli niz dla kolejnosci
cmaxy=new int[wier];
tabTemp=new int*[kolumny];
for (int j=0; j<kolumny;j++)
*(tabTemp+j)=new int[wier];
nie bardzo wiem co sie dzieje bo nie widze deklaracji tych tabTemp, cmaxy itd, gdybys mogl je dolaczyc byloby mi latwiej;)
ps. pewnie kolejnosc ewaluacji operatorow sie sypie: zrob (*(tabtemp+j)) = ... albo eleganciej i lepiej tabtemp[j] = new int[];
int **tabTemp;
int *cmaxy;
najbardziej dziwi mnie to ze osobno odpalony dla kazdych dancyh nawet bardzo duzych (500x20) liczy wszsystko dobrze, ale gdy ma za jednym odpaleniem przeliczac to sie wysypuje wlansie przy ktorychs dancyh...
a tymczasem przerobie to co zaproponowales
EDIT: zmiany nie pomogly :/
ciezko mi cos powiedziec bo nie widze calego kodu, dlatego napisalem cos takiego na szybko:
kurwa jakie to glupie ze znaczniki [.i] to akurat italic, jakby nie dalo sie zrobic <i>
int** tabT = new int*[10];
for (int i = 0; i<10 ; ++i)‹
tabT[.I] = new int[10];
for (int j = 0; j<10; ++j) ‹
tabT[.I][j] = 2;
›
›
std::cout << *(tabT[9]+9) << std::endl;
for (int j = 0; j<10; ++j) ‹
delete[] tabT[j];
›
delete[] tabT;
to tworzy macierz 10x10, ale to oczywiscie ltawo zmienic, pozniej wypelnia ja samymi 2. mozna odczytac jej koniec, wiec jak dla mnie powinno dzialac. nie ma bledow przy wyjsciu.
ps. w czym to kompilujesz?
kompiluje w Borland c++ builder ale spod konsoli
i troche sie nie zrozumielismy bo caly program dziala mi dobrze (wszystkie tablice sa robione prawidlowo, wszystkie obliczenia tez i wynik tez prawidlowy) az do uruchomienia ktorejs tam iteracji gdzie sie wysypuje... wyglada to tak jakby windows dawal programowi jakis bloczek pamieci ( a nie caly ram) i po jego wykorzystaniu program sie wysypuje... chociaz chyba nei powinno sie tak dziac skoro kasuje na bierzaco wszytsko co tworze dynamicznie... :/
coz, skoro dziala, ale w pewnym momencie przestaje tzn. ze gdzies wylazi poza zadeklarowana pamiec, zamiast == jest =, zuywasz jakiegos nullpointera. ciezko trafic, ale na pewno nie jest to wina kompilatora;)
tylko wlasnei nei wiem gdzie mzoe wychodzic poza ta pamiec skoro od poczatku do konca wykonuje sie poprawnie dla kilku danych, a przy ktoryms opaleniu while wszystko sie konczy... :/
jest moze jakas funkcja ktora pozwala wyswietlic ilosc zajmowanej pamieci?
nie spotkalem sie nigdy z czyms takim. od tego jest przeciez debuger;)
wklej ewentualnie _caly_ kod, ale jak mowie - predzej gdzies nie masz poprawnej inicjalizacji (czyli wyczyszczenia smieci z pamieci).
ehc calym kodem to nie bede meczyl bo tojest ponad 300 linii ;)
przejrze to jeszcze raz moze cos znajde...
panowie na gwałt potrzebny mi Turbo Pascal 7.1, nie żaden FreePascal czy Borland 5.5, ma ktoś ? :) prosiłbym o linka, albo wysłanie na [email protected]
już znalazłem ale dzięki :)
to jest ten z poprawionym błędem dzielenia przez 0 ? :)
Witam! Mam mały problem... Dopiero zaczynam programować w Windows. Chcę wyświetlić pewną bitmapę w oknie z tym, żeby był brany pod uwagę także kanał alfa. Chodzi mi o całkowitą przezroczystość, bo wstrętnie wyglądają różne obrazki z widocznym czarnym prostokątem wokół nich... Nie umiem ustawić przezroczystości na konkretny kolor... Może ktoś z Was będzie w stanie mi pomóc?
to moze napisz co to za jezyk jakiej biblioteki uzywasz i jaki format jest tego pliku graficznego
bitmapa=bmp = brak kanalu alpha ;-)
Język - C++, biblioteka - windows.h, format - bmp.
Mówisz, że w formacie bmp nie ma kanału alfa? To w takim razie co mam zrobić, żeby konkretny kolor był uznawany za przezroczysty? Zmienić format bitmapy? A może jest po prostu jakaś funkcja służąca do tego, tylko ja nie umiem jej znaleźć?
Niedawno zabrałem się za programowanie w C++ i mam mały problem :P Chciałm napisać prosty DOS-owy programik obliczający średnią kilku liczb, ale coś mi nie wychodzi. Możecie mi powiedzieć co tu jest źle?
#include <cstdlib>
#include <iostream>
using namespace std;
short int a,licznik=0;
float wynik=0;
int main(int argc, char *argv[])
cout << "Podaj liczby." << endl;
while(1)
cin >> a;
licznik=licznik+1;
wynik=(a+wynik)/licznik;
if(a==0)
break;
cout << "Srednia to: " << wynik << endl;
system("PAUSE");
return EXIT_SUCCESS;
najpierw napisz co nie dziala i jakie sa tego objawy?
Gdy podaję liczby, wszystko jest ok, na końcu wciskam zero i wychodzi mi jakaś "dziwna" liczba. Np. średnia liczb 2,3,4 to 0.541667.
BTW: bawić się z programowaniem dopiero zaczynam więc bądźcie wyrozumiali :)
sa dwa bledy:
sprawdzanie warunku po wykonaniu operacji - zawsze dodajesz to 0 i dzielisz przez licznik+1, dopiero wychodzsz z programu.
obliczanie sredniej jest po prostu bledne. to co masz, to cos jak szereg potegowy, chociaz to nie szereg pod wzgledem matematycznym;P
po prostu powinienes najpierw zakumulowac liczby, czyli wynik = wynik + a; w petli, a po wyjsciu z niej zrobic wynik/licznik i bedzie ok
RockyX===>kanal alpha maja gif jpg png - te sa najpopularniejsze i masz ich wbudowana obsluge konwersja danego koloru zeby oznaczal kanal alpha moze troche kosztowac czasu i jesli zaczynasz lepiej uzyj gotowca dla podanych przemnie wyzej formatow
Prosiłbym o pomoc w zatrzymaniu rekurencji w jednych z wczesniejszych wersji cbuildera. Sprawa wyglada tak- zapetlona procedura rysuje krecaca sie spirale, podczas wykonywania procedury inne obiekty w programie sa nieaktywne. Szukam pomyslu na to, zeby procedura dalej sie wykonywala, ale mzona bylo w niej na bizaco zmieniac pewne parametry / wylaczyc program normalnie. Z gory dizeki za pomoc
Pomoc przy 2 programach w C++
Mam zadane z programowanie w c++ 2 zadania.
Poniżej zamieszczam treść zadania z c++, opis z czym mam problem oraz kody programów.
------------------------------------------------------------------------------------------
1
Dana jest dwuwymiarowa tablica liczb całkowitych, zadeklarowana jako
int t[N,M]; Zapisz program, który tworzy tablice jednowymiarowa s[M],
zawierająca sumy wszystkich kolumn tablicy t . Program wczytuje dane z klawiatury.
--------------------------------------------------------------------------------------------
2
Dana jest dwuwymiarowa, kwadratowa tablica liczb całkowitych, zadeklarowana
globalnie jako int t[N,N]; Zapisz funkcje, która oblicza i zwraca poprzez wartość,
sumę elementów leżących na głównej przekątnej tablicy. Zapisana funkcje
przetestować w funkcji main( ). Tablice wypełnić losowo wartościami 0 lub 1.
---------------------------------------------------------------------------------------------
W zadaniu pierwszym nie umiem sobie poradzić z przepisaniem sumy kolumn do tablicy s[M].
Zadaniu 2 mam problem z napisaniem funkcji sumującej luczby na przekątnej.
!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@
KOD z zadania 1:
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
‹
int N;
int M;
int t[N][M];
int s[M];
int b;
cout<<"Podaj liczbe wierszy i kolumn.\n\n";
cout<<"Podaj liczbe wierszy N: ";
cin>>N;
cout<<endl;
cout<<"Podaj liczbe kolumn M: ";
cin>>M;
cout<<endl;
cout<<"Wprowadzaj elementy kolejno wierszami\n";
for(int i=0;i<N;i++)
for(int j=0;j<M;j++)
cin>>t[j];
cout<<endl;
for(int i=0;i<N;i++)
‹
for(int j=0;j<M;j++)
cout<<t[j]<<" ";
cout<<endl;
›
for(int i=0;i<N;i++)
for(int j=i+1;j<M;j++)
b=t[j];
cout<<b;
system("PAUSE");
return EXIT_SUCCESS;
›
@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@!@
KOD z zad 2:
#include <cstdlib>
#include <iostream>
#include <stdlib.h>
using namespace std;
int N;
int suma=0;
void sumaa()
‹
int t[N][N];
for(int i=0; i<N; i++)
for(int j=i+1; j<N; j++)
suma=suma+t[j];
cout<<suma<<endl;
›
int main(int argc, char *argv[])
‹
srand(static_cast<unsigned>(time(0)));
int t[N][N];
cout<<"Podaj liczbe pol tablicy kwadratowej: ";
cin>>N;
for(int i=0;i<N;i++)
for(int j=0;j<N;j++)
t[j]=rand()%15;
for(int i=0;i<N;i++)
‹
for(int j=0;j<N;j++)
cout<<t[j]<<" ";
cout<<endl;
›
sumaa();
system("PAUSE");
return EXIT_SUCCESS;
›
Z góry dziękuje.
a wiec po kolei:
ad 1. nie czytalem nawet kodu :P
rozwiazanie :
for(i=0;i<N;i++)
temp=0;
for(j=0;j<M;j++) temp+=t[j];
s=temp;
ad 2.
suma=0;
for(i=0;i<N;i++) suma+=t;
slowik nie kapuje ad2;P to jest ta funkcja? możesz to wstawić w kod? albo chodziarz wyjaśnić?
Możecie jeszcze mi powiedzieć czemu w zad 2 rand ustawia mi kolumny w te same liczby(każda kolumna ma jednakowe liczby np
2 3
2 3
2 3
2 3
zadne rozwiazanie nie jest funkcja to tylko istoty zadania
ups w ad2 jest babol
suma=0;
for(i=0;i<N;i++) suma+=t[ I][ I]; - edit widze ze gol jest nadgorliwy :P
co do samego rand'a to liczby pseudolosowe i mozliwe jest ze za kazdym razem te same uzyskujesz ;-)
jeszcze pierwsze
for(i=0;i<N;i++)
‹
temp=0;
for(j=0;j<M;j++) temp+=t[ i][j];
s=temp;
›
Pytanko do javy, może uda się komuś odpowiedzieć:
jak zmienić wartość selected jcheckbox-a wywołując inną metodę?
Witam! Mam problem: Załóżmy, że gdzieś tam w kodzie aplikacji graficznej Windows API dopisuję sobie następującą linijkę:
HBITMAP Obrazek = (HBITMAP) LoadImage(hInstance, "obrazek.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
W Dev-C++ jest wszystko cacy, ładnie się kompiluje, lecz niedawno przerzuciłem się na MS Visual C++ 2008 Express Edition. Po naciśnięciu przycisku odpowiedzialnego za kompilację w oknie błędów wyskakuje coś takiego:
(...) error C2664: 'LoadImageW' : cannot convert parameter 2 from 'const char [12]' to 'LPCWSTR'
Czy w MS VC++ korzysta się jakoś inaczej z funkcji LoadImage();???
Jestem w tym początkujący i za dużo jeszcze nie wiem...
Witam,
Nie chcę zakładać nowego wątku, chociaż pewnie w nowym dostałbym szybciej odpowiedź ;)
Przeczytałem kilka ostatnich wątków, ale nadal mam niedosyt...
Co prawda matura na karku, ale pomyślałem, że może jednak fajnie byłoby odnowić wiedzę z programowania.
Generalnie to uczyłem się tylko i wyłącznie C++, tak więc generalnie mój umysł nie został zaśmiecony przez inne języki... Jednakże jeśli chodzi o tego C++ to sprawa wygląda tak, że w sumie niewiele pamiętam ;) Zapewne po przeczytaniu kilku linijek kodów z moich poprzednich skromnych programów coś sobie przypomnę, ale nie ukrywam, że może jakiś inny język by mi również mógł wejść bez większego problemu :)
Tak więc pytanie brzmi: C++, Java, C(opłaca się jeszcze?), Python czy coś innego?
Planuję już nabyć więdzę minimalnie pod kątem studiów - po co później mam tracić czas by na nowo to sobie przypominać/uczyć się...
Pytanie drugie: Jakie kursy polecacie? Symfonia już chyba trochę starawa...
Przede wszystkim ma być trchę podstaw oraz duży zaawansowanych rzeczy :)
Mogą być nazwy książek. Biblioteke mam niedaleko, mam w niej znajomą więc wypożyczę co się będzie dało, posprawdzam i wybiore coś szczególnie interesującego/dobrze napisanego/łatwo przyswajalnego :P
Z góry dzięki :)
Po mojemu C# albo Java. Do tego pierwszego poleca sie "C#. Programowanie" Jesse'go Liberty (sam nie czytalem) a do drugiego - "Core Java 2" obydwa tomy.
a wiec po kolei
c/c++ wciaz jest dobry ze wzgledu na wydajnosc programow
jesli celujesz w rozwiazania wbudowane to jeszcze asm sie przyda ;-)
co do reszty jezykow ...
java - ze wzgledu na popularnosc w uslugach
python - latwosc pisania w nim alg i sprawdzania na bierzaco tego co piszesz (sam w nim duze rzeczy pisze i jest przyjemnie)
c# - java przepleciona z c ktora probuje byc python'em - wg mnie niestrawna rzecz przynajmniej dla osob znajacych jezyki typu python/ruby
php5 - dobre do zabawy w olaczeniu z html'em
ada95 - programowanie wspolbierzne niezbedna pozycja ;-)
prolog/clips - sztuczna inteligencja
co do studiow ... kwestia tego gdzie pojdziesz u mnie jest wszystko i nie dasz rady tego ogarnac swoim rozumem w tak krotkim czasie (0.5 roku) no i nie patrz na studia pod katem jezykow programowania
Hm.. No cóż.. Planuję dostać się do Wrocławia..
Może jednak zdecyduje się na C++, Jave oraz pythona :) Przypomne sobie ten pierwszy i zerknę na drugi i trzeci :P
Jesli pod katem studiow - tylko C++.
Jesli dla siebie - Python.
Jesli po trochu dla siebie, po trochu ze wzgledu na studia + perspektywa pracy jako programista - Java.
A na PWr (na Infie na Elektronica) Java zdecydowanie nie kroluje - ja w ciagu 5 sem. studiow mialem 1 sem. Javy. W przyszlym tez sie nie zapowiada - dopiero pozniej. Ale to nie zmienia fakty, ze Java jest warta uwagi. Python, pomimo ze jest obecnie chyba moim ulubionym jezykiem, poki co sobie w wielu zastosowaniach radzi slabo (szybkosc!), a w przypadku maszyn wielordzeniowych/wieloprocesorowych jest wrecz nieporozumieniem, o ile nie uzywasz zewnetrznych bibliotek pisanych w C.
Do zastosowan inzynierskich to kroluje C++ albo Matlab ;)
C++ jest i bedzie dobrym wyborem, ale naprawde polecam rozwazyc .net - i nie sluchac opinii ortodoksyjnych linuxowcow. Cala platforma .net to potezna inicjatywa, a ze wsparciem Microsoftu, ktory duza czesc swoich srodkow operacyjnych przeznacza na jej rozwoj - nie moze byc zlym wyborem.
To mnie Regis dobiłeś :D
Wychodzi na to, że najlepiej nauczyć się wszystkich trzech :)
A Ty jakie książki polecasz? (odnośnie wszystkich)
Który - według Was - jest najprostszy do nauczenia się?
I ostatnie jakie mi do głowy przychodzi - jest gdzieś jakaś strona z rozpisanym zastosowaniem poszczególnych języków - do jakiego typu programów głównie/przeważnie są używane? Czy pozostaje mi tylko Wikipedia? :)
Wychodzi na to, że najlepiej nauczyć się wszystkich trzech :)
Sama prawda. Tylko nie na raz, rzecz jasna ;) Ja bym na twoim miejscu - w ramach 'odpoczynku' od C++ - 'ugryzl' nieco Pythona (zeby zrozumiec jak latwo da sie pisac programy ;) ), a potem zabral sie porzadnie za Jave ;)
A Ty jakie książki polecasz? (odnośnie wszystkich)
C++ - Symfonia/Pasja C++
Java - Thinking in Java, Java Core 2
Python - Programming Python (nie znam polskiego tytulu) autorstwa M. Lutza
Który - według Was - jest najprostszy do nauczenia się?
Kiepskie kryterium jesli chodzi o wybor jezykow. Ale skoro pytasz - Python, bo wymaga najmniej niskopoziomowej wiedzy, nie ma wskaznikow itp. Pisze sie w nim zdecydowanie bardzo przyjemnie - jak poszukasz watkow o ostatnich wyborach, to znajdziesz watek w ktorym dalem link i kod zrodlowy mojego prostego programu zliczajacego glosy oddawane na forum. Calosc napisalem w parenascie-paredziesiat minut (wliczajac to wertowanie dokumentacji, odnosnie urllib'a ;) ), glownie dzieki temu ze Python ma ogromna ilosc wbudowanych struktur danych i wiele, wiele przydatnych bibliotek. Niestety, jest bardzo wolny (ostatnio testowalem trzy identycznie dzialajace programy [pisane na projekt na uczelni] - napisany w C++ dzialal srednio w 0.12 sek, pisany w Javie w 0.85 sek, a pisany w Pythonie... 11,5 sekundy :/ ), dlatego poki co nadaje sie glownie do prostych programow - oczywiscie mozna na nim robic wieksze rzeczy (na Pythonie dziala grono.net), ale ja podchodze do takich rozwiazan bardzo ostroznie poki co. No i od razu mowie - jesli interesuje Cie obsluga komputerow wielordzeniowych, to od razu odpusc Pythona...
I ostatnie jakie mi do głowy przychodzi - jest gdzieś jakaś strona z rozpisanym zastosowaniem poszczególnych języków - do jakiego typu programów głównie/przeważnie są używane? Czy pozostaje mi tylko Wikipedia? :)
Moze nie wypisze wszystkiego, ale ktos moze uzupelnic ;)
C++ - programy 'inzynierskie' i obliczeniowe; gry; skomplikowane algorytmy, gdzie liczy sie kazda miloisekunda dzialania; programy uzywane na codzien
Java - duze aplikacje [tzw. enterprise], szczegolnie te ktore musza byc latwo skalowalne i w 100% przenosne - najczesciej te 'serwerowe' ; JSP; w mniejszym stopniu programy uzywane na codzien
Python - skrypty, mniejsze programy i aplikacje, strony www (tzn. ich czesc 'server side')
Tak przy okazji... wiecie, że jest już 8 i 9 część tego wątku?
https://www.gry-online.pl/s043_archiwum.asp?ID=5655460
Tak naprawdę języki programowania są do siebie bardzo podobne. We wszystkich są zmienne, operatory, struktury kontrolne, funkcje i ewentualnie system obiektowy. Różnice są w szczegółach (np. wskaźniki w C, czy rozbudowany system klas Javy) i zapisie graficznym. Jeżeli nauczysz się porządnie programowania w jednym języku, nauka kolejnego to kwestia kilku wieczorów spędzonych z dokumentacją.
Ja na początek polecam nauczyć się C. Jest to język wymagający, ale też wyrabiający dobre nawyki programistyczne i kształtujący odpowiedni sposób myślenia. A jak już opanujesz podstawowe algorytmy i zapragniesz przejść do programowania obiektowego, będziesz mógł szybko przerzucić się na C++ (C++ to po prostu rozszerzona wersja C), potem na Javę (składnia Javy jest oparta na C, więc nie będziesz się czuł obco).
No to proponuję przenosiny do części 10 przy najbliższej okazji :)
Post 199 tego wątku powinien być ostatnim tutaj, ale ktoś po ponad 8 miesiącach podbił go.
Ja tam ekspertem nie jestem, ale oto co by powiedział mój wykładowca (a on już jest ekspertem ;):
1. Na początek - Pascal (darek_dragon: gdybyś powiedział w/w osobie o tym że C wyrabia dobre nawyki, delikatnie mówiąc, nie zgodziłby się z Tobą);
2. Dobrze opanowany jeden język => nauka kolejnego trwa kilkanaście-kilkadziesiąt minut... (tu akurat racja)
[!!!] http://www.physd.amu.edu.pl/~tomekkaz/ [Podstawy C++]
[!!!] http://www.keeller.kompozytor.net/ [Kurs C++]
[!!!] http://3miasto.net/~chq/ [Kurs C++]
editnijcie bo linki nie dzialaja :d
1. Na początek - Pascal
<-- Takie rady mozna bylo dawac 5-10 lat temu... ;)
gdybyś powiedział w/w osobie o tym że C wyrabia dobre nawyki, delikatnie mówiąc, nie zgodziłby się z Tobą
A ile ow wykladowca ma lat? Zapewne jest 60-cio letnim informatycznym dinozaurem, ktory nauczyl sie kiedys-tam Pascala i jako czlowiek staly w uczuciach za nic juz tego nie zmieni...
Zenada - polecanie Pascala na poczatek, to tak jakby polecac skorzana, recznie szyta grubymi nicmi pilke (taka z lat '50 ;) ) komus, kto chce zostac pilkarzem, z komentarzem 'tym nauczysz sie lepiej kopac i lepiej opanujesz przyjmowanie pilki tak, zeby ten gruby wezel z przodu nie zlamal Ci nosa'...
No i jakiez sa te 'dobre nawyki'? Coz to takiego? Po czym mozna poznac, ze ktos je ma? Podaj przyklad :P
2. Dobrze opanowany jeden język => nauka kolejnego trwa kilkanaście-kilkadziesiąt minut... (tu akurat racja)
<-- Raz jeszcze ;D
Chociaz generalnie zasada jest prawdziwa. Gdyby nie te nieszczesne 'kilkanascie minut' ;D
Regis: co do 60 lat może i masz rację, nie wiem; ja tam wiem że facet zna się na rzeczy. Być może to kwestia podejścia do samego programowania - my koncentrujemy się na algorytmach...
Sir Skull: tak właśnie.
Podejrzewam, ze nie sam pascal jako taki, ale fakt dobrze opisanych komunikatow bledow; do tego krzaczenie sie po wyjechaniu zaraz za tablice (C++ wywala wtedy, gdy wyjedziesz dopiero poza swoja pamiec).
ja tam wiem że facet zna się na rzeczy
Nie przekonales mnie.
Być może to kwestia podejścia do samego programowania - my koncentrujemy się na algorytmach
Co ma jezyk do algorytmow? Praktycznie kazdy algorytm mozna sensownie zaimplementowac w dowolnym jezyku... Coz takiego ma Pascal, czego nie maja inne jezyki?
Dla mnie akurat do algorytmow najlepszy jest Python - nie trzeba sie skupiac na niskopoziomowych detalach, tylko na samym algorytmie. Ale moze to juz kwestia 'podejscia, do podejscia, do pisania algorytmow' ;D
"Nie przekonales mnie. "
Jak mi przykro ;)
Ja tylko mowie jak jest u mnie ;) Jestem na pierwszym roku informatyki na UW i podobno to dobry kierunek ;)
Regis===>cos mi kumpel mowil o java ale widac jak go sluchalem :P (tez jet na pwr)
Katane===>nie jestem ortodoksyjnym linux'owcem jednak irytuje mnie fakt ze musze kupic kompilator(dobre kompilatory do wszystkiego kosztuja i to nie malo ale darmowe tez sa) do malych zastosowan no i sam jezyk ewidentnie dazy w kierunku python'a
wsparcie m$ i jego lobby to kolejny powod zeby stawac okoniem w tej sprawie ;-)
zeby bylo ciekawiej sam chodze na kurs .net w tej chwili prowadzacy jest nim oczarowany ... mnie to oczarowanie smieszy
do obliczen inzynierskich jest matlab (dobra zabawka swoja droga) niemniej programy jeszcze sie pisze w pascalu no i jesli jest ostro nastawiona na wspolbieznosc to ada95
Arxel===>ksiazki ?
do c/c++ reference manual ;-) i 'wstep do algorytmow' (taka ksiazeczka do poduszeczki ;-) ) i do nauki sameog jezyka - napisz cos wiekszego zmierzysz sie z wieloma problemami ktorych w ksiazce nie znajdziesz i zdobedziesz o wiele wiecej doswiadczenia
co do python'a na poczatek napewno - google i lamerskie wprowadzenie do python'a
jesli zaglebiac sie bardziej chcesz to mam kilka publikacji tylko musisz okreslic temat no i ostatnio na polski przetlumaczyli divine into python jest dostepne na jakims wiki(nie piedii)
Regis===>co do samego python'a nie sztuka napisac w nim program ale takze napisac go trzeba optymalnie jezyk posiada kilka pulapek na ktorych bardzo wytracasz wydajnosc i stad te 11s moglo sie wziasc no i samo zastosowanie jezyka jakich stuktur uzywales itd tez sie liczy i glowna zaleta jezyka jest mozliwosc uzywania bibliotek c (w konsu sam python jest napisany w c)
to co najbardziej w python'ie sie podoba to to ze jesli chce sie mi dlubac na niskim poziomie to po prostu to robie jesli nie interesuja mnie trybyki mode uzyc gotowego modulu i mam spokuj czego efektem sa sterowniki pisane przez hp w python do drukarek (przynajmniej na linux mialem okazje spotkac)
co do samej obslugi wielordzeniowej co masz na mysli ? mechanizmy synchronizacji programow wspolbieznych czy moze cos innego ?
Sir Skulll===>nie zauwazylem linka :P
darek_dragon===>jest kilka rodzin jezykow i ich ramach jezyki programowania sa podobne a same grupy miedzy soba sie znaczaco roznia (w jaki sposob ? a no taki ze ludzie u mnie maja mega problem z prologiem ;-) )
[dRaXer]===>apage satana! jaki pascal !? na szczescie ten jezyk za jakis czas umze smiercia naturalna ;-)
sproboj wyzej wymienionego prolog'u ;-)
no i nieszczesne algorytmy mozna pisac w jakimkolwiek jezyku ;-)
Regis===>swieta prawda badania potwierdzaja Twoja opinie (moja tez) ze lepiej napisac cos w python jak bedzie dzialalo to przepisac do c/c++ efektem sa znacznie mniejsze koszty tworzenia softu
[dRaXer]===>no tak uw jest dobre w alg tylko kwestia tego ze 99% programow nie uzywa tego co sie nauczysz o tych algorytmach ;-) wystarczy kilka na krzyz + biblioteki i masz spokuj (sam wyzej wspomniany .net ma struktury generic zawierajace gotowce i akurat to jest dobre ;-) )
co do samego python'a nie sztuka napisac w nim program ale takze napisac go trzeba optymalnie jezyk posiada kilka pulapek na ktorych bardzo wytracasz wydajnosc i stad te 11s moglo sie wziasc no i samo zastosowanie jezyka jakich stuktur uzywales itd tez sie liczy (...)
Idea byla taka, zeby kazdy program wygladal mozliwie identycznie - dlatego program w Pythonie zostal skopiowany zywcem do projektu w javie i tam zostal dostosowany do skladni i struktur danych tego jezyka. Dlatego problem z samym algorytmem odpada - bo jest wszedzie identyczny. Ja osobiscie podejrzewam modul Threading, ale o tym za chwile... ;)
co do samej obslugi wielordzeniowej co masz na mysli ? mechanizmy synchronizacji programow wspolbieznych czy moze cos innego ?
Zasadniczo tak - chodzi o GIL :) On tez zapewne spowalnia mocno moj program - podejrzewam ze mase czasu traci na wywlaszczanie, przelaczanie watkow, operacje zwiazane z GIL itp. Bylem w ciezkim szoku, kiedy okazalo sie, ze na nic moje watki i kombinowanie z nimi, bo GIL i tak serializuje dostep do obiektow i API i chocbym nie wiem co robil, to wiecej z modulu Threading nie wycisne - bo po prostu sie nie da. Owszem, jest modul Thread, ktory zapewnia dostep niskopoziomowy (z tego co sie orientuje, to chyba korzysta on po prostu z pthreads), dzieki czemu korzystanie z watkow wraca do 'normalnosci'. Mimo wszystko jednak nie jest to moim zdaniem szczesliwe rozwiazanie - poza tym chyba nie kazdy system korzysta z PThreads (wszak bylo to pomyslane dla systemow Unixowych, Windows ma ledwie nieoficjalna implementacje - nie wiem jak w innych systemach, np. na Mac OS). Z tego tez powodu (i z racji tego, ze Python byl przykladem jezyka 'bardzo wysokiego' poziomu , wiec uzywanie w nim niskopoziomowej biblioteki bylo by nie do konca w porzadku ;) ) tescie ktory robilem [na projekt] bralem pod uwage tylko Threading - i tu sie mocno rozczarowalem. Aczkolwiek ma to tez swoje zalety - tam gdzie watki pelnia tylko funkcje organizacyjna (np. serwer jakiejs uslugi odpalany na maszynie jednoprocesorowej/jednordzeniowej) jest to rozwiazanie jak znalazl, bo nie da sie ukryc, ze latwo sie pisze aplikacje wielowatkowe, jesli nie trzeba sobie zwracac glowy synchronizacja ;)
Regis===>mac os to unix wiec pthreads sa ;-) no i nie mam zadnych wyrzutow przy dlubaniu w tym na poziomie python'a w koncu jego elastycznosc to kolosalna zaleta ;-) nie tylko b wysoki poziom ale takze dosc niski przez co wg mnie uzycie niskopoziomowej biblioteki jest obowiazkiem przy braku zadowalajacej wydajnosci na wysokim poziomie
aplikacja wspolbiezna bez synchronizacji ? od kiedy :>
i zeby bylo zabawniej win tez ma odpowiednik pthreads ... nieco kulejacy w stosunku do pthreads ale jednak dziala ;-)
nie tylko b wysoki poziom ale takze dosc niski przez co wg mnie uzycie niskopoziomowej biblioteki jest obowiazkiem przy braku zadowalajacej wydajnosci na wysokim poziomie
Dla mnie to tez nic zlego (tym razem nie skorzystalem z tego tylko dlatego, ze zalozeniem projektu bylo sprawdzenie mechanizmow wielowatkowosci w roznych jezykach - gdybym uzyl w Pythonie biblioteki niskopoziomowej pisanej w C, to testowanie Pythona jako takiego mialo by niewielki sens ;) ). Rzecz w tym, ze w przypadku Threading ow 'wysoki poziom' daje wydajnosc nie tyle 'niezadowalajaca', co dramatycznie niska. Ten sam program uruchomiony w dwoch watkach wykonywal sie - jak juz pisalem - ponad 11 sekund, podczas gdy jego odpowiednik, ktory nie korzystal z watkow, robil swoje w zaledwie 6 sekund z malutkim hakiem...
aplikacja wspolbiezna bez synchronizacji ? od kiedy :>
Wtedy, kiedy watki nie wspoldziela zasobow :)
Poza tym nie 'bez synchronizacji', ale 'bez zawracania programiscie glowy synchronizacja' ;)
Prosta sprawa - piszesz sobie serwer komunikatora. Serwer dostaje znak, ze ktos chce pogadac. Tworzy nowy watek, ktory nie robi NIC innego, procz przekazywania informacji pomiedzy rozmowcami.
Albo jeszcze lepiej - watki wspoldziela dostep do paru zmiennych, ale wiesz jednoczesnie, ze predkosc dzialania programu ma marginalne znaczenie (bo watki pelnia tylko funkcje organizacyjna). Czy jest sens kombinowac z synchronizacja itp? Python zrobi to za Ciebie :) Wolniej, ale jak juz pisalem - predkosc nie zawsze ma znaczenie.
Generalnie: czy - jako programista - odczuwasz potrzebe, zeby zawracac sobie glowe synchronizacja wtedy, kiedy nie musisz? Ja nie - dlatego w pewnych zastosowaniach dostrzegam zalety taqkiego rozwiazania jakim jest GIL. Ale mimo wszystko - pozostaje pewien niedosyt ;)
i zeby bylo zabawniej win tez ma odpowiednik pthreads
To akurat wiem; chyba Boost z tego korzysta nawet ;)
jesli watki nie wspoldziela zasobow to nie jest aplikacja wspolbiezna ;-)
pisalem juz sporo w ada95 i zostalo mi chyba takie odchylenie ;-)
no i wciaz uwazam ze powinienes uzyc biblioteki niskopoziomowej ;-) (mimo wszystko dedykowana dla python'a)
jesli watki nie wspoldziela zasobow to nie jest aplikacja wspolbiezna ;-)
Ani slowem nie wspomnialem o aplikacjach 'wspolbieznych' - tylko o wielowatkowych ;)
Watki to nie tylko sposob na zrownoleglenie przetwarzania, ale takze na odpowiednia organizacje aplikacji ;)
no i wciaz uwazam ze powinienes uzyc biblioteki niskopoziomowej ;-)
Niezgodne z zalozeniami projektu, o czym juz wspominalem, a poza tym - wracamy do kwestii pthreads na roznych OS'ach :) Interpreter pythona jest chyba nawet na PalmOS - a tam juz pthreads raczej nie ma :) Inna rzecz, to ze nie ma tez pewnie wieloprocesorowych maszyn dzialajacych na palmOS, ale... ;D
Regis===>nokia rozwija na symbina python'a no i jesli nie ma wymagan zaawansowanych aplikacji wspolbierznych takie pthreads nie sa potrzebne ;-) pozatym mnie zbytnio nie interesuje jak to dziala wazne ze jest i spisuje sie w dobrze (rownie dobrze w wersji win moze dzialac na obiktach synchronizacji wbudowanych w os'a)
Witam:) mam do napisania takowy program (jezyk C) :
Labirynt. Dana jest macierz nxm zawierająca opis labiryntu. Opis składa się z trzech symboli o,x,*. "o" oznacza drogę, którą można przejść, "x" ścianę (blokadę), a "*" - kwiatek leżący na drodze (można przechodzić przez kwiatek). Znaleźć drogę (jeśli istnieje) z jednego końca labiryntu na drugi zawierającą najwięcej kwiatków (jeżeli istnieje kilka dróg wybrać tę najbardziej ukwieconą).
Postanowiłem drogi szukać sprawdzając rekurencyjnie pole po polu. Ale mam problem, nie wiem jak zapamiętywać przebyte drogi. Jak już zapamiętam wszystkie prowadzące do mety to wybiorę najbardziej ukwieconą i gotowe. Macie może jakieś propozycje? Przyznam że programowanie w C zacząłem w październiku dopiero.
tomazzi --> Stwórz strukturę, która będzie przechowywać liczbę kwiatków na drodze i tablicę/listę współrzędnych (numery kolumn i wierszy macierzy) tej drogi.
slowik: kope lat ;)
Co do tego nieszczesnego Pascala: za duzego wyboru to nie mam, bo wszystkie zadania z labow musze oddawac w Pascalu :) Ale oczywiscie interesuje sie tez innymi jezykami (scislej mowiac, powoli kombinuje w C++). A ze kolega zadal pytanie, to ja odpowiedzialem ;)
Slowik --> Za kompilator Microsoftu trzeba placic tylko, jesli chcesz tworzyc aplikacje dla zysku. Visual Studio Express jest darmowe. Sam .net od wersji 3.5 jest open source (a przynajmniej mial byc). C# to teraz wg mnie jedyny rozsadny jezyk do szybkiego (w sensie szybszego niz C++) tworzenia aplikacji desktopowych pod windowsy (i Maci :) ), a wiec pod to, czego uzywa wiekszosc swiata i za co moga wlasciwie Ci zaplacic. Fakt natomiast, ze J2EE wydaje sie na razie bardziej rozwiniete niz ASP .NET jesli chodzi o zastosowania enterprise'owe.
Sir Skull -> o tym nie pomyślałem, dzięki ;)
[dRaXer]===>dopiero pol roku :P nie szerz herezji ;-)
Katane===>wersja express jest dosc okrojona (z lms'a moge miec wersje enterprise)
.net 3.5 nie jest open source przynajmniej nic mi o tym nie wiadomo ...
szybciej sie tworzy banalne aplikacje w python ;-) i raczej w karierze zawodowej jestem zainteresowany klasa enterprise uzeranie sie z klientami koncowymi mnie nie bawi ;-)
no i jesli juz to java mi bardziej odpowiada z tych bardziej znanych jezykow
slowik --> Wersja Express jest okrojona z takich elementów, których wielu ludzi w domowych warunkach by po prostu nie wykorzystała. Żeby coś komercyjnie robić i tak musisz wykupić licencję.
W pracy używam team edition, w domu express i specjalnie nie narzekam. Czegoś konkretnego Ci brakuje w Express? :)
A nie jest tak, ze VS Enterprise ma support dla C#, WebDeveloper, C++ itd., a wersje Express sa pod konkretne zagadnienie (Visual C# Express np.)?
express jest okrojone tylko do c# z tego co pamietam i nie posiada innych rozszerzen plus okrojone biblioteki zeby nie bylo za dobrze ;-)
slowik ==> Expressy to po prostu osobno popakowane VB, C# i web. Musisz pobrać wszystkie trzy, żeby mieć (poza dwoma elementami) to samo, co w VS2008 Professional.
Z możliwości Enterprise nie skorzystasz nigdy. Przynajmniej bez wykorzystania komercyjnego przy pracach dla dużych klientów.
legrooch===>interesujace :-) czyli chyba jednak skozytam z expres'a wygodniejszy dla mnie bedzie ...
Czy w C jest coś takiego jak tablica dynamiczna w której mogę w dowolnym momencie zwiększyć ilość komórek? Np: sprawdzam wszystkie liczby po kolei z jakiegoś zakresu a do tablicy dodaje tylko liczby które są pierwsze.
Drodzy Gol'owscy Programosci :] mam do was prosbe !
Czy jakis dobry bajt :] moglby napisac prosta baze danych w pascalu :P ?
Temat: Charakterystyka samochodów
Pola Rekordu:
-Pojemność
-Moc silnika
-Prędkość maksymalna
-Waga
-Czas na 1/4 mili
+ opcja wyszukiwarki :) o wyswietlaniu wspominac nie musze ;]
Naprawde dzieki :) pozdrawiam !
Takie info: wersje Express komponentów Visual Studio _pozwalają_ na komercyjne wykorzystywanie bez kupowania licencji.
No to muszę na listach operować :/
Ma może ktoś chwile czasu i chęci żeby spojrzeć na mój projekt? [274] Niby wszystko napisałem ale gdzieś jest błąd i program nie działa tak jak zamierzałem. Jakby co to gg w profilu. Z góry za wszelką pomoc dziękuje ;)
tomazzi --> Wklej tutaj odpowiedni fragment kodu http://pastebin.com i opisz, w którym miejscu i co nie działa. Jak będę miał 5 minut to zajrzę.
Sir Skull-> tu masz cały program http://212.33.80.181/~karmelus/Labirynt/ . Problemem są (chyba) funkcje 'skad' oraz 'gdzie'. A raczej przekazywanie parametru k pomiędzy nimi. Jakbyś mógł sie odezwać na gg to bym Ci dokładnie wyjaśnił mój pomysł na ten program.
Chyba najwyższy czas zmienić kompilator... Dev C++ już trochę za stary jest... :)
Visual C++ Express Edition 2008
http://dobreprogramy.pl/index.php?dz=2&id=2468&t=134
Eclipse 3.3.1.1
http://dobreprogramy.pl/index.php?dz=2&id=1915&t=134
Użytek komercyjny - a czemu nie ;-) Niech będzie na przyszłość...
Który wybrać? Czy może coś innego?
Coś innego darmowego do użytku komercyjnego? :P
Czyli uważasz, że nie ma najmniejszego sensu zmieniać?
Nigdy nie korzystałem z dodatkowych funkcji programu... Może jednak czas zacząć? Nie wiem jak z nimi w DEVie, ale chya zbyt ogato wyposażony nie jest ;-)
Ja bym bral Eclipse. Wygodniejszy moim zdaniem, poza tym jest do niego masa przydatnych wtyczek.
Arxel===>jesli piszesz w c/c++ nie ma sensu do zastosowan komercyjnych i tak slono sie placi za kompilatory ;-)
Regis===>zapomniales dodac ze pod warunkiem ze ma sie duzo ramu albo komus nie przeszkadza migotanie stron ;-)
Hm... Jak to C++ nie ma sensu w przypadku zastosowań komercyjnych?
Visual C++ jest darmowy i jest do użytku komercyjnego - po co płacić niewiadomo ile za kompilatory jak można wszystko robić na darmowym :)
2GB wystarczy? :P
Plus drugie tyle pamięci wirtualnej ;)
edit: Chodzi normalnie... :P
zapomniales dodac ze pod warunkiem ze ma sie duzo ramu albo komus nie przeszkadza migotanie stron
Jakie duzo ramu? Uzywalem go na 512 i dawalo sie korzystac, tylko czasem przymulil. Na 1GB jest 100% komfort. A 1GB to raczej nie jest duzo dzisiaj ;P
Regis===>zeby nie mulil min to 1gb (nidgy nie mam otwartej jednego okna ;-) ) jesli masz wynalazek taki jak vista 2 gb to min
Arxel===> to moze inaczej : jesli piszesz w c/c++ nie ma sensu. Do zastosowan komercyjnych i tak slono sie placi za kompilatory ;-)
dlaczego ? ano optymalizacja ;-)
i pamiec wirtualna spowalnia ....
Witam. Mógłbym wysłać mi ktoś z Was na maila ([email protected]) trzy pliki: tasm.exe, tlink.exe i td.exe. Assembler wzywa (kolegę), a nigdzie tych trzech plików nie może znaleźć :/
Heh, kumpel ostatnio potrzebowal cos takiego na laborke z trybu chronionego, wiec zmontowal DOSa na pendrive'a. Nie testowalem, wiec nie wiem jak dziala, ale zgodnie z tym co pisal, to wszystko tam jest (byc moze da sie tez luzem wyciagnac tasma i reszte):
http://rs283.rapidshare.com/files/81669376/moj_pendrive.zip
Regis - Wielkie dzięki :)
btw Co tu jest nie tak :/ ?
DANE SEGMENT
txt1 dv 'to jest tekst$'
DANEENDS
STS SEGMENT STACK
DB 256 DUP(0)
STSENDS
PROGRAM SEGMENT
ASSUME DS:DANE, SS:STS, CS:PROGRAM
START
MOV AX,SEG DANE
MOV DS,AX
mov ah,9
mob dx,offset txt1
int21h
MOV AH,4CH
INT 21H
PROGRAMENDS
startends
wywala błąd "(21) Unexpected end of file encountered"
ja wlasnie skonczylem swoja przygode z asemblerem i trybem chronionym (mini os ...)
spacji brakuje przed ends
start: powinno byc
i na koncu end start
i niech pisze malymi znakami ... tasm nie rozroznia ich wielkosci
mam problemik z napisaniem programu w Ansi C
Napisać program wyświetlający zadaną liczbę w systemie dwójkowym
Napisać program wypisujący wszystkie liczby pierwsze z zadanego zakresu
programy musza byc oparte na pętlach
pomożecie ? :-) // dopiero zaczynam sie uczyc programowania :P
nie chce być niegrzeczny TAILEREKKu ale pomożecie to miniona epoka.. pomoc na pewno dostaniesz.. ale pozwól że zwrócę ci uwagę na pare rzeczy.. mówiąc zaczynasz uczyc sie programowania co masz na myśli? jesteś po pierwszych zajęciach? bo nie przedstawiłeś niczego.. zadnej próbki kodu który napisałeś i który nie działa.. żadnych sugestii co do tego jak chciałbyś dany problem rozwiązać.. dla mnie wygląda to na "zróbcie mi zadanie z fizyki". Pewnie jakiś dobry samarytanin zaraz ci to napisze.. ale wiedz ze jesli chcesz sie bawic w programowanie to albo na serio albo odpuść;)
Zatem w czym problem ?
Toolism -> czasami jest lepiej nic nie napisac .... niz napisac głupoty
gdyby mi wyszło - to zapewne bym tutaj nie pisał
ale chcesz to masz :-) tylko sie nie smiej
#include <stdio.h>
#include <conio.h>
int main()
int a;
for (a=20; a=0; 2%a=a)
if ( a%2 ==0)
printf("0");
else
printf("1");
getch();
return 0;
Toolism napisal prawde pomoc != odwalanie roboty za kogos
co do programu w petli uzywasz przypisania zamiast porownania no i czesc wykonywana po kazdej iteracji nie ma dla mnie zbytnio sensu najpierw da a=2 pozniej a=0
próbowałem i z = oraz ==
kombinowałem na wiele sposobów - efekt nadal zle
skoro nie ma sensu
wiec jakie rozwiazanie proponujesz ?
Zainstalowałem także VC++ ale mam problem - nie może się skompilować...
Wywala kominukat, że w programie jest błąd - żadnych konkretnych danych gdzie coś jest źle - niby odpala, ale okienko zmyka się automatycznie...
Podobnie miałem w przypadku DEV-a, ale tutaj nawet return 0; nie pomaga...
Argh... Znalazłem jakiś przykładowy programik z VC++, ale też nie działa... WTF?
Mam taki programik:
W DEVie działa bezproblemowo..
W VC++ wywala błędy:
1>------ Build started: Project: nauka, Configuration: Debug Win32 ------
1>Compiling...
1>nauka.cpp
1>c:\documents and settings\artur\moje dokumenty\visual studio 2008\projects\nauka\nauka\nauka.cpp(1) : warning C4627: '#include <iostream.h>': skipped when looking for precompiled header use
1> Add directive to 'stdafx.h' or rebuild precompiled header
1>c:\documents and settings\artur\moje dokumenty\visual studio 2008\projects\nauka\nauka\nauka.cpp(2) : warning C4627: '#include <fstream.h>': skipped when looking for precompiled header use
1> Add directive to 'stdafx.h' or rebuild precompiled header
1>c:\documents and settings\artur\moje dokumenty\visual studio 2008\projects\nauka\nauka\nauka.cpp(237) : fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?
1>Build log was saved at "file://c:\Documents and Settings\Artur\Moje dokumenty\Visual Studio 2008\Projects\nauka\nauka\Debug\BuildLog.htm"
1>nauka - 1 error(s), 2 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Chyba nie ma znaczenia, że mam zainstalowanego DEV-a, Eclipse i Visual C++? :P
"Did you forget to add '#include "stdafx.h"' to your source? "
Wszystko jest w komunikatach o błędach :)
Przy okazji - mam wrażenie, że przydałaby się nowa część (oznaczona numerem 10 - patrz post 253).
Zapomniałem już edytować..
Doszedłem do czegoś takiego, że jak mam tylko
#include "stdafx.h" to zaczyna mi pluć, że 'cout' : undeclared identifier
Jak dodam oba to błąd taki co w poprzednim poście :-)
Utworzyłem nowy projekt - było tam kilka linijek kodu... skompilował i uruchomił... W logu pisało, że 1: successful, ale i tak okienko się zamykało...
Nie pomagało nawet system("pause");
Taikun za moim pośrednictwem chce was szanownych forumowiczów o coś spytać.
"Program ma odczytywać z klawiatury liczbe w dec, a potem zwracać jej wartość w bin. Ale nie mogę sobie poradzić z jednym błędem. Oto kod programu:
dane segment
tekst1 db 'Podaj liczbe dec: ','$'
tekst2 db 10,13,'Liczba BIN: ','$'
tekst3 db 10,13,'Zle wprowadziles DEC ','$'
linia db 10,13, '$'
max db 6
dlu db ?
buf db 0,0,0,0,0,0
dane ends
stosik segment stack
db 256 dup (?)
stosik ends
program segment
ASSUME ds: dane, ss: stosik, cs: program
start:
mov ax, seg dane
mov ds, ax
mov ah,9
mov dx, offset tekst1
int 21h
mov ah,10
mov dx, offset max
int 21h
xor cx,cx
mov cl,dlu
mov bx, offset buf
petla1:
mov al,[bx]
cmp al,' '
jne pom1
mov al,'0'
pom1:
sub al,30h
cmp al,10
jb ok1
jmp blad
ok1:
mov [bx],al
inc bx
loop petla1
xor cx,cx
mov cl, dlu
mov bx, offset buf
mov ax,0
petla2:
mov dx,10
mul dx
add al,[bx]
adc ah,0
inc bx
loop petla2
;AX to co wpisalismy DEC (pierwsza czesc zadania - odczyt hexa)
mov bx,ax
mov ah,9
mov dx, offset tekst2
int 21h
mov cx,16
petla3:
shl bx,1
jc jeden
mov dl,'0'
mov ah,2
int 21h
jmp koniec_p3
jeden:
mov dl,'1'
mov ah,2
int 21h
loop petla3
jmp koniec_p3
blad:
mov ah,9
mov db, offset tekst3
int 21h
koniec_p3: mov ah,4ch
program ends
end start
kompilator pokazuje że błąd jest przy "mov db, offset tekst3" - 104 linia chyba, potrafi to ktoś naprawić ? :)
nie mozesz do db zapisywac ze wzgledu ze nie ma czegos takiego
db jest slowem kluczowym znaczacym doslownie data byte
"NO dobra, zmieniam db na ds ale wtedy mimo że kompilator nie wywala błędów to przy kompilacji wywala jakiś błąd offsetu i nie wiem co z ty mzrobić. Pewnie gdzieś wewnątrz programu jest jeszcze jeden bląd. Może to ktoś naprawić?"
Kompilator - TASM, potem pliki exe robię TLINKiem
Dzień dobry:P
Mam taki mały studencki problem...
#include <iostream>
using namespace::std;
class zespolona
//Zdefiniuj klasę zespolona z polami prywatnymi double Re i double Im
private:
double Re;
double Im;
public:
static int licznik;
//konstruktorem dwuargumentowym z argumentami double Re i double Im
//posiadającymi wartosci domyslne = 0,
zespolona(double Re = 0, double Im = 0)
this->Re = Re;
this->Im = Im;
licznik++;
;
//konstruktorem kopiującym,
zespolona(const zespolona &z1)
Re = z1.Re;
Im = z1.Im;
licznik++;
;
//destruktorem,
~zespolona()
licznik--;
;
//oraz następującymi operatorami:
//Operator Działanie
//+ zespolona = zespolona1 + zespolona2 -> Re = Re1 +Re2 oraz Im = Im1 + Im2
friend zespolona operator+ (zespolona &zespolona1, zespolona &zespolona2); //potrzebne do operatora +, który znajduje się niżej
//<< wypisac wartosci Re i Im na standardowe wyjscie
friend ostream & operator<< (ostream &wyjscie, const zespolona &z1); //potrzebne do operatora <<, który znajduje się niżej
//= operator przypisania, przypisujący wartosci Re i Im
zespolona operator= (zespolona z1)
Re = z1.Re;
Im = z1.Im;
;
//[] zespolona[0] ma zwróci wartosc Re, zespolona[1] ma zwrocic wartosc Im, jezeli wystapi inny indeks to zwrocic wartosc Re.
double zespolona :: operator[](int i)
double wynik;
if (i==1)
wynik = Im;
else
wynik = Re;
return wynik;
;
zespolona operator+ (zespolona &zespolona1, zespolona &zespolona2)
zespolona suma;
suma.Re = zespolona1.Re + zespolona2.Re;
suma.Im = zespolona1.Im + zespolona2.Im;
return suma;
;
ostream & operator<< (ostream &wyjscie, const zespolona &z1)
wyjscie << "Re: " <<z1.Re<< "\nIm:" <<z1.Im<<"\n";
return wyjscie;
//Dodatkowo należy zdefiniowa pole statyczne int licznik (zdefiniowane jest w klasie zespolona) zliczające ile obiektów klasy zespolona zostało utworzonych
int zespolona::licznik=0;
//oraz metodę statyczną wypisz_licznik() wypisującą na standardowe wyjscie wartosc pola licznik
void wypisz_licznik()
cout<< "Licznik:" <<zespolona::licznik<<"\n";
void main()
//W funkcji main należy utworzy 3 obiekty klasy zespolona, jeden statycznie z wartoscia Re=5, Im pozostawic domyslnie równe 0, drugi statycznie z wartosciami Re=10 i Im=20,
zespolona a(5), b(10, 20);
//a trzeci dynamicznie jako kopię pierwszego.
zespolona *c = new zespolona;
//Wykorzystac wszystkie zdefioniowane operatory i wypisac wyniki na standardowe wyjscie operatorem<<
cout<< "a= " <<a;
cout<< "b= " <<b;
cout<< "c= " <<c;
c=a;
cout<< a[0] <<"\n";
cout<< a[1] <<"\n";
cout<< a[2] <<"\n";
a=a+b;
cout<< "a=a+b=" <<a;
//Wywołac metodę wypisz_licznik() i następnie usuną stworzony dynamicznie obiekt.
wypisz_licznik();
getchar();
delete c;
c=NULL;
Takie cuś dostałem do zrobienia na laborkach. Treść jest w komentarzach. I teraz: dlaczego zaznaczony fragment nie działa? i co muszę zrobić, żeby działało? Wywala błąd przy kompilacji:
[C++ Error] Unit1.cpp(120): E2034 Cannot convert 'zespolona' to 'zespolona *'
Sprawa nr 2: co jest nie tak z licznikiem? bo liczy o jeden utworzony obiekt za mało...
PatriciusG===>niech poda jaki to blad wtedy sie pomysli ;-)
Promyk===>rzutowanie typow sie klania ;-)
z licznikiem sam powinienes sobie poradzic jako student
Wnioskuje iż chcesz, by do adresu na który wskazuje „c” zapisać „a” wtedy powinno to wyglądać jakoś tak na przykład:
*c=a;
cout<< "c="<< c << endl; //adres
cout<< "c="<< *c << endl; // wartość
Jeśli o to ci chodziło…
Zdążyłem to poprawić do dzisiaj:P
Głupie błędy spowodowane późną porą:P
a w liczniku był problem z niezwiększaniem licznika przy dodawaniu, a zmniejszaniem w tej samej funkcji przy destruktorze;)
Siema,
Tak ostatnio się zastanawiam nad nauką C#. W szkole ucze się javy i c++ jednak fajnie by było pouczyć się czegoś tak sam dla siebie. Moje pytanie jest następujące znacie może jakieś dobre książki nt c# .NET?
znajac dobrze java czy c++ wystarczy sama dokumentacja ;-) same ksiazki sa dobre dla nowicjuszy ...
Siema. Mam problem. Muszę napisać program który dla zadanego n wypisuje na ekranie Trójkąt Pascala. Szukam w necie ale jakoś nie mogę znaleźć.
sam napisz to banalny program ;-)
tylko kwestia jest taka ze jaki to jezyk programowania jest :-)
Tomal_P - proszę:
#include <iostream>
#include <stdlib.h>
using namespace std;
int rzedow;
int wiersz[ 34];
int main(int argc, char* argv[])
cout << "Ile rzedow ?" << endl;
cin >> rzedow;
cout << endl;
// jeśli typ int jest 32-bitowy, to wierszy
// o numerach większych od 33 już nie policzymy:
// max: (33 po 16) = 1166803110 = 0x458C00A6
if( rzedow > 34)
rzedow = 34;
for (int i = 0; i < rzedow ; ++i)
int j;
wiersz = 1;
for (j = i-1; j > 0; --j)
wiersz[j] += wiersz[j-1];
for (j = 0; j <= i; j++)
cout << wiersz[j] << " ";
cout << endl;
while(1);
Odkopuję dinozaura, bo potrzebuję natychmiastowej praktycznie pomocy :)
Każdy zna dziennik zdarzeń w Windows chyba. Muszę napisać kawałek kodu, który mi zliczy ilość wpisów w nim (zarówno Application jak i System).
I teraz początek sprawy - potrzebuję algorytmu (ewentualnie pseudokodu) wykonującego następującą czynność:
Posiadam kolekcję wszystkich elementów wymaganych przeze mnie w pamięci. Zaczynam ją przeglądać element po elemencie. Muszę na koniec działania aplikacji wyświetlić informacje o ilości powtórzeń dla każdego źródła z takim samym numerem ID. Mogą wystąpić takie same ID dla różnych Source, jak i dla jednego Source różne ID. Pomoże ktoś? :)
Tzn idąc tropem screenu:
Source - WMI; ID - 63; Count - 6;
Source - .NET Runtime Optimization blabla; ID - 1107; Count - 6;
Source - ESENT; ID - 215; Count - 1;
Source - ESENT; ID - 211; Count - 3;
o ile id sa int'ami mozna to wygodnie zrobic na tablicy rzadkiej lub po protu na slownikach(tablice z #) co bedzie dla Ciebie wygodniejsze wtedy jesli nie istnieje dany wezel w tablicy lub w slowniku wtedy tworzysz nowy jesli juz istnieje dodajesz 1 pozniej tylko zczytac to wszystko musisz
Rozwiązałem problem inaczej - datatable .NETowe z użyciem zapytań SQL. Dużo szybszy wynik, niż operacje na jakichkolwiek tablicach/listach/słownikach/hashtable.
legrooch===>szybsze w dzialaniu czy napisaniu ? obsluga prymitywnych struktur jest szysza od bazy z sql ;) a sam kod to raptem kilkanascie linijek
Biorąc pod uwagę, że nadzorujesz 4 pola (dla Datatable kolumny), gdzie każde pole ma równą ważność (odpada hashtable), gdzie ilość rekordów może iść w miliony oraz ma na tych rekordach być przeprowadzone zliczanie (wiem, że to tylko counter, ale trzeba go gdzieś upchnąć), to w obu przypadkach będzie szybsze :) I działaniu i napisaniu :)
po to masz id zeby sie nie meczyc z innymi polami :]
jesli potrafiles napisac zapytanie sql dasz rade tez naskrobac odpowiednie haslo do slownika ;) co wciaz bedzie szybsze tylko wymaga wiecej przygotowan
slowik ==> Jezeli dane EventID zdarzenia oraz Source zdarzenia są równoważne, wymagać to będzie dla dwóch różnych logów utworzenia 4 słowników, prawda? :)
W dodatku przy założeniu, że dany Source może mieć kilka EventID jak i EventID może mieć kilka source'ów zaczyna tworzyć troszkę bardziej skomplikowane skakanie, right? :) Dodając do tego dla każdego słownika około 5-10mln rekordów ciekawy jestem, jakby to działało :)
I gdzie byś przy tym chciał poruszać się po ID i czego by to było ID? :)
Jak chcesz, możemy sprawdzić czas wykonywania się aplikacji. Dam Ci cały modul w C# pobioerający elementy. Ty usprawnisz sobie kolekcję, ok?
Robiłem swego czasu testy wydajności .NET kontra C z chłopakiem tworzącym update'y dla uBuntu. Do testów podaliśmy duże pliki tekstowe (>30MB) i przeszukanie ich pod kątem konkretnych tekstów oraz elementów z nimi związanych. Razem ustaliliśmy zresztą zależność.
.NET skopał o dziwo dupę C. I to przy pomocy zwykłych arraylistów :)
leegrooch===>to jest mozliwe m$ po prostu zadbal o konstrukcje i obsluge list
Garret===>python ;)
Garret -> Ja polecam na początek C#. Nie jest trudny, a daje ogromne możliwości, ma porządną bibliotekę standardową i świetne, darmowe IDE.
http://www.microsoft.com/express/vcsharp/
Garret===>niestety nie jest za bardzo popularny mimo to jest latwy (google i 'lamerskie wprowadzenie do pythona') i potezny ze wzgledu na to ze juz ma wiele w sobie i taki murzynski c# wymieka ;)
Podpisuję się pod pythonem - jest prosty, ale potężny (choć nie za szybki). Doskonały na początek, bo uwalnia piszącego od dbania o masę nisko- i 'średniopoziomowych' detali.
Moim jakby pierwszym językiem był ActionScript z Flasha :P Tylko, że ograniczało się to do instrukcji goto... ;p Zanim nadeszły egzaminy gimnazjalne uczyłem się C++, teraz odłożę już tą naukę chyba na wakacje, bo w szkole i tak mnie męczą codziennie sprawdzianami ;/
Regis===>nie przesadzaj z ta szybkoscia ;) wszystko zalezy od talentu programistu i jakosci uzywanych bibliotek grono dziala na python bez wiekszych zgrzytow :)
legrooch===>jak dla mnie C# probuje sie stac czyms na wzor python'a dodatkowo c# bez masy marketingu m$ bylby martwy ;-)
Liczę na odpowiedź na zadanie pytanie, a nie na informację czyj to jest język :)
Firma ma tu małe znaczenie :P
dobrze wiesz ze m$ tutaj ma ogromne znaczenie ;) bez tego murzyni z m$ nie stworzyliby tyle bibliotek i marketing daje sporo ;)
co do tego co ma to pozniej sie rozpisze :)
Witam. Zacznę może od tego, że tworzę sobie pewną gierkę z użyciem języka C++ i biblioteki Allegro, za której pomocą obsługuję grafikę i dźwięk.
Chciałbym się dowiedzieć (jeśli to w ogóle możliwe), jak z pomocą Allegro mogę odtworzyć plik z muzyką w formacie .mp3, ponieważ dłuższe kawałki z rozszerzeniem .wav zajmują niekiedy po 40MB, albo i więcej. To nieco zbyt dużo... Czy może mnie ktoś oświecić?
slowik ==> Długo jeszcze? :P
Jeżeli ich bibliotetki z implementacjami podstawowych elementów języka obiektowego są tak wydajne, to chyba tylko plus dla nich, prawda? :)
Pamiętaj, że języki otwarte są rozwijane nie przez 100-200 osób siedzących w Redmond, a przez kilka tysięcy jak nie więcej internautów. Różni je tylko kwestia pomysłu. Te kilka tysięcy gdyby było dobre pracowałoby w Redmond :) Jaki pan, taki kram :)
legrooch===>myslisz ze w pierszym wolnym od dluzszego czasie weekend'ie mysle o programowaniu ? ;)
dobrze przemyslane konstrukcje i zoptymalizowane zawsze beda bezkonkurencyjne wobec 'jakichs' rozwiazan ;)
nie te kilka k osob nie chce miec nic wspolnego z m$(swoja doroga bardziej mnie interesuje ibm ... ) dzieki temu powstal taki linux ;) a ze m$ skupia jakichs utalentowanych 'murzynow' nie mam nic przeciw
co najbardziej sie rzuca w oczy jako roznica miedzy python'em a c# a no
dynamiczne typy danych i ich alokacja
brak koniecznosci definiowania typu zmiennych (miodzio)
wspieranie roznych typow programowania liniowe sturkturalne obiektowe funkcyjne to bardzo duzy plus nie trzeba budowac klas do banalnych rozwiazan i nie ma problemow z konstrukcja pozniej na tej bazie czegos wiekszego
mam irytujacy problem, mianowicie program dziala gdy jest w jednym pliku ale gdy chce umiescic kazda klase w osobnym pliku, wyskakuje linker error (tak jakby nie widzial definicji klas) chociaz wszystko jest dobrze opisane i w jednym folderze... jakies pomysly?
skoro sie nie linkuje to jest zle opisane albo kompilator nedzny.
dev c++ 4.9.9.2 ;] pokombinuje jeszcze z opisem... ale imho wszystko jest dobrze
dev jest ok. wklej moze blad i kod do ktorego sie odnosi.
a dobrze napisales pliki .h ? i do nich odpowiednio .cpp ? czasami tez trzeba uzywac slowa kluczowego extern
Hej! Może ktoś z was będzie się orientował w kwestii kompilatorów w VS08. Chodzi mi konkretnie o to czy VS08 posiada oddzielne kompilatory do C i do C++. Niby VS08 obsługuje C/C++ ale jeśli np. chce dodać nowy plik to nie mam możliwości wybrania pliku „.c” jak i nie mam możliwości wybrania nowego projektu w czystym C (Jest za to „.cpp”) . Wiadomo, że C++ obsługuje to co było zawarte w C ale ogólnie mówi się by nie korzystać w C++ z narzędzi z C. Więc jak to jest, czy VS jest już nastawione tylko na C++? Czy pisanie w C w VS jest oparte tylko na jego zawartości w C++?
Dla porównania dodam tylko że np. Eclipse i NetBeans korzystają z dwóch kompilatorów gcc i g++, czyli obsługują C i C++ oddzielnie.
To tyle, mam nadzieje że nie zagmatwałem za bardzo i znajdzie się może jakiś pojęty student informatyki zdolny mi wyjaśnić tą tajemnice VS :)
@slowik
tak, dobrze wszystko opisalam... przynajmniej tak jak pisze w Symfonii ;]
a kiedy trzeba uzywac extern?
hm chyba juz wiem ocb... ale teraz mam inny problem i to nie jeden ;]
mam dwie klasy w osobnych plikach, jedna dziedziczy od drugiej i kompilator nie rozpoznaje nazwy tej dziedziczonej przy deklaracji klasy dziedziczącej... i pozniej przez to wszystko sie sypie. co z tym zrobic?...
Krokowina===>symfonia nie jest najszczesliwszym wyborem ;)
a zapakowales do plikow naglowkowych klasy klase z ktorej dziedziczysz ? jesli nie dziala wciaz to uzyj extern
Wściekła Owca ==> MS wycofuje się z czystego C. Dlatego nie ma go w template'ach.
moze sie nie znam, ale pod unixem bez c to jak bez reki. win32 to tez c, nieprawdaz (tzn. takie jest moje odczucie)?
peanut ==> Napisz coś pod Windows w gołym C a masz browara, o jakim Ci się nie śniło :)
peanut===>napisanie czegos wielkiego w c graniczy z cudem jest to mozliwe ale nieoplacalne i ryzykowne :)
No właśnie sęk w tym, że czyste C jest wykorzystywane przeważnie w aplikacjach systemowych (zarówno Windows jak i wszelakie Linux/Unixy)... więc szczerze mówiąc nie ma co go bagatelizować, bo jego zastosowanie jest wciąż ogromne (elektronika też). Dlatego ciężko mi zrozumieć to dziwne "nie istnienie" C w VS08... no ale cóż trzeba będzie chyba zainstalować MinGw, co by uzupełnić ten brak. A VS zawsze zostanie do C++,C# i innych śmiesznych rzeczy... ;)
za jednego to mi sie nie chce vs wlaczac;P
a tak serio, moglbym napisac cos, a nawet cos wiecej, w win32 w c. tyle, ze ja znam jej pewnie z 10%. zreszta, lepienie programow z obiekcikow w c# tez w pewnym momencie spotyka sie z koniecznoscia uzycia pinvoke, a to juz prawie win32. no wiec, chyba jednak c to nie jest taki archaizm.
w ogole mysle, ze takie gadanie, ze pisanie w c jest ryzykowne i nieoplacalne to urban legend bo jesli ktos potrafi czarowac w c to nawet w duzym projekcie da rade. ja nie potrafie czarowac, ale i tak c przedkladam opnad np. c#. jave mam w dupie wiec sie nei wypowiadam.
ps. odchodzac od tematu, threading w win32 jest posix compilant?
W elektronice bez C, to jak bez reki.
I tez nie zgodze sie z tym, ze nie da sie w C duzych projektow pisac. Sam widzialem naprawde spore projekty dla elektroniki wlasnie w C stworzone, dzialaja fajnie i nie sprawiaja problemow.
Wogole gdybani, ze cos jest lepsze, a cos gorsze, to totalnie pusta dyskusja. To tak jak ze zwyklymi narzedzami, wiadomo, ze mlotkiem srube zakrecic trudno, a srubokretem gwodz wbic tez latwo nie jest..
wszystko da sie zrobic tylko kwestia jest to jak duzo jestesmy przeznaczyc na produkcje programu dlatego jest to w tej chwili nieoplacalne ... dlaczego trudne do utrzymania w duzym projekcie ? brak jakiegos mechanizmu trzymajacego wieksze elementy w kupie i koniecznosc pracowania na dosc niskim poziomie abstrakcji
Owca===>te aplikacje nie maja wiecej jak kilkadziesiat kb do wiekszych uzywa sie obiektowego
ale fakt c# jest smieszny troche ...
peanut===>'jesli ktos potrafi czarowac' jedna osoba nie pisze wielkiego systemu ale przetacza sie to przez mase ludzi ;) gwarantuje ze przy obecnych wymaganiach klientow co do poziomu aplikacji malo kogo byloby stac na taki soft
Voutrin===>spore projekty to jakie ? i wciaz dla elektroniki ktora ma zupelnie inna specyfike niz pc'ty
sam z najwieksza przyjemnoscia pisze w python w ktorym mozna pisac znacznie przyjemniej (ostatnio musialem wrocic do c++ ale sie trzeba przy tym meczyc ... )
Wściekła Owca, slowik -> Co takiego śmiesznego jest w C#? Czytałem trochę o nim i wygląda na całkiem przyzwoity język.
slowik -- spore to takie do sterowania np mikroelektronika w eksperymentach w CERN etc.
A uwagi o pctach nie rozumiem.. sprowadzasz programowanie jedynie do pctow?
maVes===>od lat juz cos pisze i znam strategie m$ i zazwyczaj wychodza im potworki jesli chca wprowadzac jakies wlasne pomysly i tak wlasnie powstal c# (pierwotnie twor borland) ktory jest dobry ze wzgledu na duza ilosc rzeczy ktora juz jest w bibliotekach :)
Voutrin===>dla elektroniki niema duzych projektow najwieksze to zlorzone sterowniki :) ktore wzgledem przedsiewziec softu na pc (czy tez inne sprzety ktore musza byc wielofunkcjonalne ...) sa projektami niewielkimi i dosc latwymi w utrzymaniu
dodatkowo dorzuc do tego czynnik ludzki - po prostu ludzie dobrze znaja ten jezyk i w nim pisza
Wściekła Owca, slowik -> Co takiego śmiesznego jest w C#? Czytałem trochę o nim i wygląda na całkiem przyzwoity język.
Jest za malo h4x i za latwy i jest od 3vil Micro$oft i w ogole...
EDIT: A nie mowilem, evil corp M$.
slowik -- pracowales kiedys nad porzadnym projektem elektronicznym? Ale takim wiekszym jak wlasnie oprogramowanie dla elektroniki w duzym eksperymencie czy cos podobnego?
Katane===>popisz troche w innych jezykach zauwaz roznice ;)
dodatkowo nadinterpretujesz moje slowa
Voutrin===>porzadny projekt elektroniczny ? mnie interesuje jedynie programowanie ;) dodatkowo nie biore pod uwagi zlorzonosci algorytmicznej
Katane===>popisz troche w innych jezykach zauwaz roznice ;)
Moze mnie nakieruj, bo sposrod tych, ktorych probwalem w C# pisze sie najwygodniej.
dodatkowo nadinterpretujesz moje slowa
Pewnie troche owszem, ale juz wiele razy spotykalem sie z dyskredytowaniem .net z uwagi na firme-matke.
No wiec na jakiej podstawie twierdzisz, ze nie ma zlozonych projektow programistycznych dla elektroniki? Kolega Ci powiedzial ? ;]
Zareczam, ze sa baaardzo zlozone projekty, do tego wymagajace bardzo duzej uniwersalnosci.
Katane===>sproboj python'a
firma matka jest jaka jest tego sie nie zmieni ;) efektem tego jest dosc duza biblioteka wszystkich funkcji
Voutrin===>na Twoje nieszczescie w tej chwili realizuje swoj projekt elektroniczny ;) mozliwe ze nie jest az tak wielki jak cern ale jest troche zabawy :)
trudnoscia w utrzymaniu kodu w c jest jedynie jego zlorzonosc pod wzgledem ilosci kodu zadna inna ten jezyk nie posiada mechanizmow dzialajacych tak jak klasy ktore ulatwiaja panowanie nad kodem ;)
slowik -- ok, i wyrobiles sobie na swoim projekcie opinie co do C? Ze nadaje sie tylko do mnijszych rzeczy? :-]
Z tym zapanowaniem nad projektem, to sie zgodze, ze C daaleko do kilku innych jezykow. Ale przy dobrej organizacji, mozna w miare sprawnie w nim tworzyc.
Voutrin===>niestety na studiach dosc duzo pisalem w C ;) i to byly zwykle programy ...
projekt oprogramowania elektroniki w okreslony sposob to moj wlasny wymysl tego juz na studiach nie mialem tj mialbym na innej specjalnosci ...
elektronike bardzo przyjemnie sie programuje w c (po przygodach z asm to dopiero jest radocha ;) )
idealizujesz a ani to co wytworzysz nie jest idealne (zawsze sa jakies bledy) ani nie tworzy sie tego w sposob idealny ;)
Katane==> Akurat w moim poście "śmieszne" było użyte potocznie, i w pojęciu ogólnym... nie tyczyło się konkretnie C#.
W C# pisałem ostatnio projekt, był to mój pierwszy większy kontakt z tym językiem i co mogę o nim powiedzieć. Wrażenie robią biblioteki .net naprawdę, dużo i bardzo przydatnych funkcji ma się odrazu pod ręka i są dość wygodne do używania. Język ogólnie bardzo podobny do C/C++ ma kilka zmian jak np. brak wskaźników do czego nie mogłem się na początku przyzwyczaić, jak i dziedziczenie wszystkiego po klasie Object. Osobiście do języka nic nie mam, jest na pewno wolniejszy od C/C++, ale w sumie chyba również łatwiejszy. Dlatego nadaje się do mniejszych i średnich projektów, ogólnie wydaje mi się że ten język o dziwo ma sporą przyszłość przed sobą dzięki właśnie możliwościom platformy .NET i VS.
Ogólnie to C/C++/C# to języki bardzo do siebie podobne, taka jakby "rodzina języków" i chyba nie ma co jednego dyskryminować a inne stawiać na piedestał.
Osobiście w przyszłości chciałbym najlepiej jak się da poznać oczywiście C++, ale nie odrzucam również C (wykorzystywanie w aplikacjach systemowych, które też chciałbym kiedyś lepiej liznąć) jak i C# ( ze względu na możliwości i rozwój .NET).
No i tyle :)
Pozdrawiam!
Witam,
mam do napisania program hybrydowy w C++/Asembler (na rejestrach 16-bitowych). Nie wiem jednak czym polaczyc oba moduly. Chodzi mi o sama kompilacje i zlinkowanie. Jakies sugestie?
mam pytanie jak polaczyc ISS z MySQL w skrypcie ASP?
z gory dzieki :)
mam pytanie jak polaczyc ISS z MySQL w skrypcie ASP?
WTF is ISS?! Stacja kosmiczna? :O
Jest jakiś inny sposób na losowanie liczb (interesuje mnie przedział 0-8) niż:
srand((time(NULL)));
zmienna = rand() % 9 ;
Potrzebuję szybszego obkręcania maszyny niż 1x/sek.
mam pytanie jak polaczyc ISS z MySQL w skrypcie ASP?
Pisząc skrypt do strony ASP w VBScript lub Javascript lub Jscript łączący się przez ODBC do bazy? Podstawowy element skryptowy do baz....
lo0ol===>zawsze mozesz zrobic
rand()*8
;) jesli to jeszcze nie spelnia Twoich wymagan rozpisz sie jakie efekty Ciebie interesuja
Zależy mi na tym aby rand nie losował zawsze tych samych liczb. Najlepiej żeby działało to podobnie do srada z timem w nawiasie ale nie było zależne od sekundy, a od milisekundy. Czy jest to możliwe?
chyba ze chcesz okreslone generatory o okreslonych rozkladach wtedy wpisz w googlach 'random library C' ;)
Mam takie pytanie, czy da rade w javie zrobić, w przypadku interfejsu graficznego funkcje undo i redo, bez wykorzystania actionlistener'a (bo to jednak sporo roboty, a czas nagli :) )?
Nie jest to dla mnie jakoś specjalnie istotne, teraz to już bardziej z czystej ciekawości.
Dokladnie chodzi np. o cofnięcie usunięcia/dodania zaznaczonego rzędu z tabeli, bądź ponowne jego usunięcie / dodanie
Czy ktoś może mi krótko odpowiedzieć na poniższe pytania? Zbliża mi się kolokwium z programowania w C++ i właśnie analizuję sobie pytania z poprzednich lat i muszę przyznać, że mam problem z odpowiedzią na nie.
Czym się różni klasa abstrakcyjna od klasy czysto abstrakcyjnej?
Co to jest odwikłanie stosu?
Z góry dziękuję.