
Sir Skull [ Charr Shaman ]
(Programowanie w C/C++ i nie tylko)----(Dla laików i ekspertów)----(cz.9)
cout << "--------------------------[Przydatne strony]............... ";
"NEW - Nowe Linki";
[!!!] [Kurs C#]
[!!!] [.NET QuickStart Tutorials]
"[PL]";
[Tutorial winapi]
[Tutorial winapi]
[Programowanie w praktyce - piszemy gry logiczne]
[Kurs C++]
[Podstawy C++]
[Kurs C++]
[m.in. kursy C++: /pliki do pobrania/teksty/.../]
[Kurs C++]
[materiały o C++ z Politech. Wroc.]
[O programowaniu]
[Kursy, nie tylko Cpp]
[C++, Kursy, Algorytmy, Artykuły, Zagadki]
[materiały o C++ z Politech. Wroc.]
[Podstawy C++]
[Programowanie w C/C++ pod DOS, WIN, LINUX]
[Ciekawe rzeczy do ściągnięcia]
"[ANG]";
cout << " ...............[DOWNLOAD]............... ";
//(Dev-C++ 4.9.9.0 PL - kompilator C/C++)
// "Thinking in C++" Tom 2
// "Thinking in C++" Tom 3
// Darmowe pubikacje elektroniczne o programowaniu
//Borland C++ 3.1
cout << " ...............[INNE]............... ";
czasopismo WARP
cout << " ...............[Literatura programisty]............... ";
Symfonia C++ J.Grębosza
Thinking in C++
Pasja C++ J.Grębosza
Mój pierwszy program wydawnictwa HELP
Książeczka "Programowanie w C++" od Komputer Swiat - Dla BARDZO początkujących ( )
"C++ Styl Programowania" Tom'a Cargill'a.
"Język ANSI C" Kernighan, Ritchie.
"PHP i MySQL. Dynamiczne strony WWW. Szybki start"
"PHP. Tworzenie stron WWW. Szybki start" []
cout << " ...............[Poprzedni wątek]............... ";
https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=5539138&N=1
loksp [ ...silent hill... ]
ktos mi pomoze???
Regis [ ]
loksp -> Nie. Wroc jak napiszesz cokolwiek sam i bedizesz mial KONKRETNY problem. Odwalanie zadan domowych za tych ktorym sie nie chce, to nie tutaj.

fifalk [ fifalkowiec ]
za rada Lookasha - pomoze ktos: https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=5660457&N=1 ?

fifalk [ fifalkowiec ]
tak tylko wpadlem napisac, ze moje pytanie nieaktualne :-)

«Malakai» [ Pretorianin ]
Witam mam do napisania na za 2 tygodnie projekt (w C, bez ++). Dodaje jeszcze ze jestem ciemny w te klocki... Temat projektu to ---->
Chodze na wszystkie wyklady i cw z pp i cos tam kojarze ale nie mam w ogole pomyslu jak to zaczac, jakich instrukcji uzyc w tym projekcie :(
Moje podstawowe pytania to:
- czego trzeba uzyc zeby program mozna bylo uruchamiac z parametrem (<rzym.exe> liczba)?
- jak do diabla mam zrobic zeby zamienial mi liczby arabskie na rzymskie, bo chyba nie przeciez skorzystac z stalej #define? :/
Prosilbym kogos o wytlumaczenie mi tego jak dla kompletnego debila :) I jesli mozna o podanie przykladow (nie zwiazanych z moim konkretnym projektem), a ja droga dedukcji postaram sie dojsc jak to przekminic na moj projekt...
Nie prosze o zrobienie projektu za mnie! Z checia (mniejsza, lub wieksza) napisze go sam, chcem poprostu miec jakis punkt oparcia zeby wiedziec przynajmniej na czym to ma polegac (jak to ma wygladac)...
Z gory dziekuje za pomocne posty, a reszty nie bede komentowal...
BLAGAM POMOZCIE :(
fifalk [ fifalkowiec ]
co do 1 pytania, to wg mnie chodzi o wykorzystanie main w postaci
int main(int argc, const char* argv[] )
liczby wydaje mi sie, ze trzebaby podzielic na jednosci, 10, 100 i pozniej to pozamieniac na odpowiedniki rzymskie
main przyklad:
#include <stdio.h>
int main( int argc, const char* argv[] )
// Prints each argument on the command line.
for( int i = 0; i < argc; i++ )
printf( "arg %d: %s\n", i, argv );
fifalk [ fifalkowiec ]
kurcze, nie da sie poprawic, zeby wylaczyc znaczniki.... tutaj ten przyklad:
#include <stdio.h>
int main( int argc, const char* argv[] )
// Prints each argument on the command line.
for( int i = 0; i < argc; i++ )
printf( "arg %d: %s\n", i, argv[i] );

«Malakai» [ Pretorianin ]
Ok teraz moje pytanie drugie w jaki sposob mam pozamieniac arabskie na rzymskie? Bo rozumiem ze bede musial to zrobic tak jak sa pozapisywane, czyli pierwsza 10, pozniej 50, 100, 1000, 10 000 itd, ale nie wiem jak tro zrobic... Wie ktos?

«Malakai» [ Pretorianin ]
^^UP^^ Pomoze ktos? :(
maVes [ Generaďż˝ ]
Malakai - mi przychodzi do głowy tylko jeden pomysł jak to zrobić.
Zauważ że w rzymskim systemie liczbowym jest 7 znaków, ale występują też takie kombinacje jak IV, więc je też musimy wziąć pod uwagę.
Po rozpisaniu wygląda to tak:
1 I
4 IV
5 V
9 IX
10 X
40 XL
50 L
90 XC
100 C
400 CD
500 D
900 CM
1000 M
z tego robimy dwie tablice - jedną typu int, a drugą string. Jak łatwo zauważyć, obydwie będą miały po 13 elementów. Następnie liczbę przesłaną do funkcji porównujemy po kolei od największej wartości w tabeli, do najmniejszej. Jeżeli liczba jest większa lub równa wartości z tabeli, to pomniejszamy przesłaną liczbę o tę wartość, a do jakiegoś wcześniej utworzonego stringu dopisujemy znaczek z tablicy (tej drugiej). Jeżeli pętla zakończy się, zwracamy string z wynikiem.
Wiem że może niejasno to napisałem, ale to już praktycznie całe rozwiązanie zadania. fifalk wyżej napisał już jak odbierać argumenty przesłane do programu.

«Malakai» [ Pretorianin ]
Doceniam to ze chciales mi pomoc, ale ja nadal nie rozumiem :( Jesli to nie problem to czy moglbys podac jakis przyklad juz dzialajacego przypisania? Z okreslonymi tymi tablicami i stringami, bo tak bedzie latwiej mi to skumac...

fifalk [ fifalkowiec ]
«Malakai» --> nie obraz sie, ale w google sa algorytmy zamiany arabskie -> rzymskie. sam z reszta pisales, ze nie chcesz, zeby ktos za Ciebie zrobil ten program ;-)
np. tu: (przyklad z pascala, ale latwo sie polapac w kodzie w tym jezyku)
tu: (c++ - chociaz jak zobaczylem kod, to jest to program dosc... hm... "malo algorytmiczny" ;-)
Kijano [ Generaďż˝ ]
tu masz z 2 tablicami kod do zamieniania arabskich na rzymskie na odwrót już sobie poradzisz :)
#include<stdio.h>
#include<stdlib.h>
#include<string>
static int tab1[13] = 1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1 ;
static char* tab2[13] = "M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I" ;
void zamien( int x, int n )
int g = x/(tab1[n]);
if( g > 0 )
for( int i = 0; i < g; i++ )
printf("%s", tab2[n] );
x = x - g*(tab1[n]);
if( x > 0 && n < 13 )
zamien( x, n+1 ); /* n +1 -> kiedy zaczynasz od 1000; n-1 -> kiedy zaczynasz od 1 */
int main()
/* przykladowa liczba to 1212 */
zamien( 1212, 0 ); /* 0 -> zaczynaj od 1000 ;12 -> zaczynaj od 1 */
printf("\n");
#if SYSTEM==SYSV
system("PAUSE");
#else
return 0;
#endif

«Malakai» [ Pretorianin ]
Acha czyli jak mam rozumiec teraz te liczby arabskie z pierwszej tablicy tab1 sa przypisane tym z 2 tablicy czyli tab2 w tym kodzie:
static int tab1[13] = ‹ 1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1 ›;
static char* tab2[13] = ‹ "M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I" ›;
Wytlumaczcie mi na bierzaco czy dobrze rozumuje (jesli gdzies sie pomyle to mnie poprawcie), bo pozniej bede musial wytlumaczyc co, dlaczego i jak to dziala...
Tutaj program ta liczbe z tablicy 1 podmienia na liczbe jej przypisana z tablicy 2 tak?
‹
int g = x/(tab1[n]);
if( g > 0 )
for( int i = 0; i < g; i++ )
‹
printf("%s", tab2[n] );
›
Tylko teraz co dokladnie robi ta 2 petla?
x = x - g*(tab1[n]);
if( x > 0 && n < 13 )
zamien( x, n+1 );
›
Kijano [ Generaďż˝ ]
1) Tak tablice sa odpowiednio przypisane do siebie
2) program dzieli liczbe na poszegolny element w tablicy 1. Jesli po takim dzieleniu g >0 to wypisuje odpowiednio przypisana cyfre
3) To nie jest petla od naszego x odejmuje g(liczbe calkowita) pomnozona przez wartosc jej odpowiadajaca. If odpowiada za to czy program ma skoncyzc dzialanie(x=0) czy nadal liczyc przy czym zmienia sie n(czyli element w tablicy )
fftc [ Generaďż˝ ]
Program w pascalu do obliczania pierwiastków równania kwadratowego. Mam coś takiego i nie mogę się doszukać błędów.. help:)
PROGRAM PIERW;
USES CRT;
VAR
A, B, C, DELTA, X1, X2:REAL;
BEGIN
CLRSCR;
WRITE('A: ');
READ(A);
IF A=0 THEN
WRITELN('TO NIE JEST ROWNANIE KWADRATOWE ')
ELSE
BEGIN
WRITE('B: ');
READ*(B);
WRITE('C: ');
READ<'C: ');
DELTA:=B*B-1*A*C;
IF DELTA<0 THEN
WRITELN9'BRAK PIERWIASTKOW RZECZYWISTYCH!!')
ELSE
IF DELTA=0 THEN
BEGIN
X1;=B/(2*A);
WRITELN('X0=',X1);
END
ELSE
BEGIN
X1:=(-B-SQRT(DELTA))/(2*A);
X2:=(-B+SQRT(DELTA))/(2*A);
WRITELN('X1=',X1);
WRITELX('X2=',X2);
END;
END;
READKEY;
END.
fftc [ Generaďż˝ ]
Przepraszam za beznadziejną formę kodu ale nie uwzględniło spacji:/ Nie zdążyłem edytować..
Pirix [ ! KB ! Góry górą ]
A czy delta to nie jest czasem b*b-4ac? Ty masz w kodzie b*b-1ac

«Malakai» [ Pretorianin ]
Witam ponownie :>
1. Zrobilem juz cos takiego:
#include<stdio.h> // funkcje printf i scanf
#include<stdlib.h>
#include<string.h>
#include<conio.h> // funkcja getch i clrscr
static int tab1[13] = ‹ 1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1 ›; // tablica z liczbami arabskimi
static char* tab2[13] = ‹ "M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I" ›; // tablica z liczbami rzymskimi
// algorytm zamieniajacy liczby arabskie na rzymskie
void zamien( int x, int n )
‹
int g = x/(tab1[n]);
if( g > 0 )
for( int i = 0; i < g; i++ )
‹
printf("%s", tab2[n] );
›
x = x - g*(tab1[n]);
if( x > 0 && n < 13 )
zamien( x, n+1 ); /* n +1 -> kiedy zaczynasz od 1000; n-1 -> kiedy zaczynasz od 1 */
›
int main(int argc, char* argv[])
// program wlasciwy
‹
int L1;
clrscr();
printf("\rProgram zamieniajacy liczby arabskie na rzymskie:\r\n\n");
printf("\rWprowadz calkowita liczbe arabska z przedzialu od 1 do 9999: ");
for(int i=1; i<argc; i++) // program wczytuje parametry przy uruchamianiu
‹
printf("\n arg %d: %s ", i, argv);
›
scanf("%d",&L1);
if (L1>0 && L1<10000)
‹
printf("\r\n%d -> ", L1);
zamien( L1, 0 ); /* 0 -> zaczynaj od 1000 ;12 -> zaczynaj od 1 */
›
else
printf("\r\nNieprawidlowa liczba!");
printf("\r\n\nNacisnij dowolny klawisz aby zakonczyc dzialanie programu.\n\n");
getch();
return 0;
›
Program wypisuje mi na ekranie liczbe ktora wprowadzam wpisujac parametr np: arab2rzym.exe 60, to pokazuje mi ta liczbe ktora wpisalem, ale za cholere nie moge jej polaczyc z tym zeby od razu mi ja zamienial na rzymska :/ Probowalem wszystkich znanym mi sposobow (wskazniki, przypisanie itp.) i nie udalo mi sie :( Blagam ma ktos jakis pomysl jak to zrobic?
2. Drugie moje pytanie brzmi: co trzeba wpisac w Run -> Arguments zebym mogl w procesie krokowym sledzic na bierzaca jak zmienia sie jakas zmienna na przyklad i ? Z gory dzieki za odpowiedz :)
Edit:
fftc --> w swoim kodzie masz w pewnym miejscu READ<'C: '); moze to m.in. przez to? Ja sie tam nie znam jakby co :P
fifalk [ fifalkowiec ]
1 - nie wglebialem sie w kod, bo te robaczki z c zamiast zwyklego cout z c++ mnie odstraszaja ;-), ale np. zmien funkcje zamien tak, zeby zwracala tablice char i wyswietlajac komunikat zrob
printf(zamien(...))
2- jakie srodowisko?
«Malakai» [ Pretorianin ]
Ok tylko teraz jak zmieniam tablice na int to po wpisaniu w funkcji zamien wywala mi jakis blad :/
Srodowiski to Borland C for DOS...
diabelek1 [ szczęśliwy ]
Witam, mam pytanko dotyczace C++.
Jak wczytac dowolny plik do programu? Otoz pisze program do kompresji/dekompresji. Wczytywanie plikow tekstowych i skopresowanie ich nie stwarza zadnego problemu. Natmiast jak czytuje grafike, to zaleznie od pliku zosatje wczytanych tylko kilka pierwszych bajtow. Poki co korzystam z:
if (OpenDialog1->Execute())
FILE *plik;
char temp;
sourceName=OpenDialog1->FileName;
plik = fopen(sourceName.c_str(),"r");
while(fscanf(plik, "%c", &temp)!=EOF)
source->Text=source->Text+temp;
source to jest obiekt typu TEdit (program pisze w bulderze)

slowik [ NightInGale ]
moze i tutaj dam zapytanie :-)
https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=5687619&N=1
Karl_o [ maniaC ]
ja mam taka mala prosbe, otoz moglby mi ktos pokrotce wyjasnic jak dziala typ wyliczeniowy enum? Najlepiej na jakims prostym przykladzie. Z gory dziekuje.
Karl_o [ maniaC ]
^up
fifalk [ fifalkowiec ]
Karl_o --> generalnie chodzi o to, zeby np. zamiast uzywac zapisow typu
dzien_tygodnia = 1;
uzywac zapisow bardziej zrozumialych typu:
dzien_tygodnia = poniedzialek.
tutaj masz ladnie opisane z przykladami:
orofarek [ Legionista ]
Czesc, mam pewien problem z programikiem. Mianowicie ma on za zadanie sprawdzic, czy zawartosci dwoch tablic, jesli sa tej samej dlugosci, sa takie same i wypisac TAK lub NIE. Wymyslilem cos takiego:
if (dlugosc1==dlugosc2)
‹
for (i=0; i<dlugosc1; i++)
‹
if (liczba1<i>==liczba2<i>)
temp=1;
if (liczba1<i>!=liczba2<i>)
‹
temp=0;
break;
›
›
if (temp==1)
printf("%s","TAK");
else printf("%s","NIE");
›
gdzie dlugosc1 i dlugosc2 to dlugosci tablic odpowiednio liczba1 oraz liczba2. Nie wiem czemu, ale program nie wchodzi w ogole do fora. Jakby go ignorowal. Co bym do petli for nie wpisal, program zawsze wypisuje NIE, nawet jesli powinien wpisac TAK. Za zmienne na pewno podstawiane sa prawidlowe wartosci, bo sprawdzalem je wielokrotnie i na rozne sposoby. Nie wiem tylko dlaczego program olewa tego fora. Ktos moze pomoc?
Nawiasy kwadratowe zastapilem <>.
hotDog [ Outsider ]
Używasz gdzieś wcześniej zmiennej "i"?
zdefiniuj nową zmienną lokalną "i" lub "j" dla for'a
for (int i=0; i<dlugosc1; i++)
lub
for (int j=0; j<dlugosc1; j++)
bo z tego co widzę to prawdopodobnie wcześniej gdzieś używasz "i" i ona już ma wartość równą lub większą od zmiennej dlugosc1 i dlatego for w ogóle się nie wykonuje.
Katane [ Useful Idiot ]
Witam.
Jak powszechnie wiadomo, na ogol wszystkie metody klas opartych na szablonach definiuje sie w plikach naglowkowych. Podobno prawie kazdy kompilator udostepnia zmienna czasu kompilacji, ktora sprawia, ze kompilator akceptuje definicje tych funkcji w plikach cpp - tak jak wtedy, gdy nie uzywamy szablonow. Czy ktos moze tego uzywal w g++ i moze mi podac to polecenie? Oszczedzi mi tym samym przekopywania sie przez dokumentacje :) Bylbym bardzo wdzieczny.
cwirek [ Centurion ]
Mam malutki problem, muszę napisać program wypełniający wielokąty danym kolorem. Problem jest w tym, że chcę żeby użytkownik sam wpisywał kolor wypełnienia. Niestety nie wiem jak podstawić wpisaną przez użytkownika wartość, tak żeby została podmieniona w programie.
Tak ustalam kolor rysowania:
Form1->Canvas->Pen->Color=clRed;
Wpisany przez użytkownika kolor pobieram z Edita.
Przy próbie podstawienia tego koloru:
Form1->Canvas->Pen->Color=clRed=Form1->Edit1->Text;
co oczywiste nie jest możliwe kompilator wyrzuca błąd:
"Cannot convert 'AnsiString' to 'TColor'".
Jest jakiś inny sposób na podstawienie tekstu z edita albo jak mnożna skonwertować ten tekst na 'TColor'.
cwirek [ Centurion ]
Pomoc już nie jest potrzebna, znalazłem funkcję konwertującą. Poniżej ją zamieszczam, może komuś się przyda:
AnsiString ansi_string = "clBtnText";
TColor color = StringToColor(ansi_string);
AnsiString color_string = ColorToString(clWhite);
Moshimo [ FullMetal ]
Problem :/.
Potrzebuje wykonac program, ktory wczyta jako obiekt klasy string jakies zdanie z klawiatury. Nastepnie podzieli je na konkretne wyrazy i jeszcze pare innych rzeczy.
Aby dojsc do dzielenia, pomyslalem, ze bede po kolei sprawdzal kolejne literki obiektu i gdybym trafil na spacje, to bym jakos zapisywal wyraz w innej zmiennej czy cos..
Problem sie niestety juz pojawia w samej spacji, gdy zalozmy wpisze (za pomoca cin) do obiektu o nazwie zdanie: "jakies zdanie"
i pozniej probuje sie odwolac do poszczegolnych literek za pomoca zdanie[0], zdanie[1] itd..
to wyswietla mi sie
j
a
k
i
e
s
N
S
E
R
Nie rozumiem skad te koncowe litery? Takze gdy chce wyswietlic cale zdanie, to wypisuje mi tylko "jakies", jakby kompilator spacje traktowal jako symbol konca lancucha..
Moglby mi to ktos wytlumaczyc jakos? Bardzo prosze.
hotDog [ Outsider ]
Strumień cin spacje lub przejście do nowej linii (enter) traktuje jako znak końca i przerywa wczytywanie.
Musisz użyć funkcji getline lub podobnych, np.

Moshimo [ FullMetal ]
Zgadza sie :).
Dziekuje Ci serdecznie

fifalk [ fifalkowiec ]
w c/c++ pisalem glownie pod windowsem. mam taki problem w linuksie - prosty kod:
struct mojtyp
‹
int nr;
int nr2;
›;
int main(int argc, char* argv[])
‹
mojtyp a; //<--- blad
›
nie kompiluje sie pod gcc - dostaje komunikat, ze mojtyp jest undeclared. inne kompilatory (win) lykaja ten kod bez problemow. co jest nie tak?
hotDog [ Outsider ]
Spróbuj skompilować pod g++ zamiast gcc
slowik [ NightInGale ]
fifalk===>to prawa dzialac niema zdefiniowales strukture a nie wlasny typ
zmienne pozniej deklarujesz w sposob: struct mojtyp zmienna;
albo tworzysz odrazu typ czyli : typedef struct mojtyp;
i wtedy dziala: mojtyp zmienna;

fifalk [ fifalkowiec ]
hotDog --> tak, pod g++ sie kompiluje, tylko ze musze to pozniej przekompilowac pod gcc - takie wymagania co do zadania.... :-/
slowik --> a jednak w VS i g++ dziala bez definiowania typu :-) dzieki za pomoc - zrobilem tak jak pisales i smiga :-)
edit: chociaz teraz widze, ze w VS mialem projekt jako c++ - moze tu jest ten szczegol.
umek [ Szczęśliwy Konfident ]
Witajcie. Mam zadanie na infę, w którym muszę albo a. dodać do siebie 2 liczby w systemie trójkowym, albo b. przeliczyć liczby z systemu trójkowego na dziesietny i z powrotem... wiecie, jak to zrobić?

hotDog [ Outsider ]
fifalk --> heh zawsze czegoś nowego się człowiek nauczy :-)
umek --> na litość... 23 sekundy szukania w google:

slowik [ NightInGale ]
fifalk===>jest jednak roznica pomiedzy c a c++ ;-)
umek [ Szczęśliwy Konfident ]
wybaczcie, faktycznie, poszedłem na łatwiznę... thx za odp

hotDog [ Outsider ]
Internet rozleniwia ;-)
Scatterhead [ łapaj dzień ]
fifalk ->
Ten błąd to pozostałości po C. Żeby korzystać dalej w programie z poprostu z typu mojtyp - możesz dodać linijkę:
typedef struct mojtyp mojtyp
(mam nadzieję że się nie pomyliłem w składni, dawno temu to robiłem)
Jan Maria Rakieta [ Konsul ]
Pytanie o Pythona. Jak skompilować projekt?
Znalazłem np. kod źródłowy kalkulatora razem z obrazkiem: niestety nie mam pojęcia co zrobić, aby widzieć kalkulator jak na dołączonym obrazku?
Dzięki.

slowik [ NightInGale ]
Rakieta===>google i 'lamerskie wprowadzenie do pythona' ;-) i www.python.org sciagniej sobie interpreter
kompilacja tego to juz troche wiecej zabawy ja uzywam do tego bat'a i kilku dodatkowych bibliotek pyton'a
Jan Maria Rakieta [ Konsul ]
Mam interpreter, mam nawet lamerskiego PythonWina ;-P ale nie mam pojęcia o komiplacji. W LWP nie ma ani słowa o kompilacji, CTRL+F + "kompilacja" = zero wyników, coś tam tylko o tym wspominają, zupełnie jakby to była przy Pythonie czarna magia. Widzę po tym co napisałeś, że tak jest naprawdę. Jakich bibliotek używasz i jakiego bata? :) Już wbrew pozorm trochę piszę (kilka godzin ^^), nawet kalkulator nasmarowałem (i działał!). Trochę mnie przytłoczyło to, że zamiast tego skryptu można przecież wpisać "2+2" i osiągnie się taki sam wynik, ale... :-P
slowik [ NightInGale ]
te 2+2 to uroki interpretowania skryptu :-) jak kompiluje ? gdzies znalazlem go i opis czego wymaga potrzebowac napewno bedziesz py2exe gtk jakiegos 7zip'a moge na maila podrzucic go jesli chcesz

Jan Maria Rakieta [ Konsul ]
Jakbyś mógł byłbym bardzo wdzięczny :)
[email protected] ;)))
Veladorn [ Legionista ]
Witam,
mam pewien (zdawałoby się) trywialny problem - przepisanie danych (typu int) z jednego pliku, do dwóch innych z podziałem na te ze znakiem i bez. O ile, w przypadku klasycznego C nie ma tu większej filozofii, to jeśli idzie o C++ - stoję w miejscu.
Próbowałem korzystać z metod ifstream, ale większość z nich działa z użyciem typu char, a to mi nie odpowiada. Również "typowe" przypisanie strumienia (obiektu klasy ifstream, przypisanego do mojego pliku) do zmiennej nie działa, ponieważ ostatni element pliku zostaje przepisany dwukrotnie. Powoli kończą mi się pomysly, więc byłbym wdzięczny za ewentualne sugestie.
Pozdrawiam,
veladorn.
Pirix [ ! KB ! Góry górą ]
Witam
Dawno tu nie zaglądałem, ale konieczność mnie zmusiła do wizyty w kąciku.
Mam taki problem. Program, który piszę łączy kilka podprogramów za pomocą menu. Jeden z podprogramów zamienia znaki tabulacji w pliku na trzy znaki spacji. I dopóki był to osobny program nie było problemu. Gdy stał się on funkcją w programie zbiorczym to problem wystąpił. Plik, w którym ma nastąpić zmiana tabulacji na spacje podaje użytkownik w trakcie działania programu. Podobnie jest z plikiem, do którego program zapisuje wynik działania.
Problem polega na tym, że plik wynikowy po zakończeniu działania programu pozostaje pusty. Nie widzę błędu w kodzie - może ktoś z Was go znajdzie. Fragment kodu odpowiadający za zmiany znaków pozostał bez żadnych zmian z pierwszej wersji, gdy był to osobny program - wtedy wszystko działało.
Kod funkcji zamieniającej tabulacje na spacje:
#include<stdio.h>
#include<stdlib.h>
FILE *wej;
FILE *wyj;
int tab()
char wejt[20];
char wyjt[20];
printf("plik wejsciowy: \n");
scanf("%s", &wejt);
printf("plik wyjsciowy: %s\n", wejt);
scanf("%s", &wyjt);
wej = fopen(wejt, "r");
wyj = fopen(wyjt, "w");
int c;
if (!wej)
printf("Nie udało się otworzyć pliku %s!\n", wej);
fclose(wej);
exit(1);
if (!wyj)
printf("Nie udało się otworzyć pliku %s!\n", wyj);
fclose(wyj);
exit(1);
while (!EOF)
c = fgetc(wej);
if(c == '\t')
int i;
for(i=0; i<3; i++)
fputc(' ', wyj);
else
fputc(c, wyj);
fclose(wej);
fclose(wyj);
menu();
Próbowałem pobierać nazwy plików wejściowego i wyjściowego za pomocą funkci gets() lub fgets() jednak wtedy program nie czekał na wpisanie tych nazw nawet. Dopiero wersja ze scanf() zadziałała.
slowik [ NightInGale ]
Veladorn===>a czegos takiego jak odczyt binarny probowales ?
Pirix===>moze po prostu do funkcji przekazuj wskaznik do pliku nad ktorym pracujesz lub przed wywolaniem funkcji od tabulacji zamknij plik nad ktorym pracujesz przemiel go i ponowinie otworz
Pirix [ ! KB ! Góry górą ]
slowik---> przed wywołaniem funkcji tab() nie jest używany żaden inny plik. Dopiero po uruchomieniu tej funkcji użytkownik ma podać jaki plik chce zmieniać. Nie mogę go zapytać o to wcześniej bo nie wiem, czy będzie chciał uruchamiać ten podprogram czy też inny.
slowik [ NightInGale ]
Pirix===>rozumiem ze ten podprogram jest odzielnie kompilowany
nagytow [ Firestarter ]
Pirix -->
Troche czasu minelo od kiedy programowalem w C, ale z tego co pamietam, to tam nie ma stalej EOF. W zwiazku z tym program nigdy nie wchodzi do petli while. Moja modyfkacja:
while ((c = fgetc(wej))!=EOF)
‹
if(c == '\t')
‹
int i;
for(i=0; i<3; i++)
‹
fputc(' ', wyj);
›
›
else
‹
fputc(c, wyj);
›
›
Dodatkowo przy wyswietlaniu bledow przy otwieraniu plikow, wg mnie powinno byc tak, ze jesli jest blad otwarcia pliku wej, to uzywasz fclose(wyj), bo wej i tak nie zostal otwarty, a wyj byc moze tak.
Pirix [ ! KB ! Góry górą ]
slowik--->tak, każdy jest oddzielnie kompilowany.
nagytow ---> w c jest stała EOF, i jak wcześniej pisałem ta wersja funkcji działała prawidłowo gdy była oddzielnym programem, aczkolwiek spróbuję zastosować Twoją sugestię. Co do zamykania pliku podczas błędu otwarcia to faktycznie wprowadzę drobne zmiany i dodam zamykanie również drugiego pliku.
Moshimo [ FullMetal ]
Mam takie pytanko, czy da sie tak zrobic, zeby w instrukcji switch...case ktorys case obslugiwal np dwie liczby? W sensie ze przykladowo gdy wybierzemy 4 lub 5, to wywola sie jeden case.
Sir Skull [ Charr Shaman ]
Moshimo --> Wszystko się da.
case 'cos":
case 'cos innego':
wykonajCos();
Moshimo [ FullMetal ]
wykonajCos();
Nie do konca rozumiem. Jakim poleceniem mam sie cofnac do poprzedniego case'a?
Sir Skull [ Charr Shaman ]
W moim przykładzie wykonajCos() wywoła się dla 'cos' i dla 'cos innego'. Taki jest switch po prostu.
Moshimo [ FullMetal ]
Aha czaje. No fakt, dosyc przyjemne rozwiazanie :). Dzieki!

Moshimo [ FullMetal ]
Znow mam problem. Nie mam pojecia jak w C wyslac do funkcji macierz - tablice dwuwymiarowa. Jednowymiarowa wysyla bez problemu - poprzez wskaznik. Ale przy dwuwymiarowej juz krzyczy kompilator, ze jest blad, a konkretniej:
cannot convert `int (*)[2]' to `int*' for argument `1' to `int funkcja(int*)'
Kompilowane w DevC++. Niestety nie mowi mi zbyt duzo ten komunikator. Poratuje mnie ktos?
edit. hmm podwojny mowisz? probowalem ale tez cos sie krzaczylo. Pokombinuje jeszcze.
maczu [ Konsul ]
dawno nie bawilem sie w C, nie chce zadnych demagogii pisac, ale moze podwojny wskaznik..? jest cos takiego **tablica ?
hotDog [ Outsider ]
Wklej kod to będzie łatwiej trochę.
Moshimo [ FullMetal ]
Kod ponad 200 linijek, wiec tak w skrocie:
Mam zadeklarowana tablice dwuwymiarowa macierz1[8][8] przechowujaca macierz zadeklarowana przez uzytkownika (moze do byc dowolna macierz o rozmiarach maksymalnie 8x8).
Nastepnie wklepuje sie tam dane.
I problem jest zeby policzyc odwrotna, gdyz:
Sa na to dwa sposoby:
1. Doczepia sie do niej macierz jedynkowa i probuje sie tak zrobic, zeby to w tej pierwotnej byla macierz jedynkowa - poprzez operacje na wierszach (dodawanie, mnozenie) - automatycznie te same operacje robi sie na doczepionej macierzy. To co wychodzi na koncu z doczepionej to jest wlasnie macierz odwrotna.
Caly algorytm w zasadzie na to mam, jednak jest problem, gdy pojawiaja sie 0 na przekatnej pierwotnej macierzy. Wtedy trzeba poprzestawic wiersze na inne miejsce, zeby nie bylo zadnego 0 na przekatnej. I wlasnie nie mam pojecia, jak to zrobic. Jaki algorytm zapisac, zeby komputer na pewno sprawdzil wszystkie mozliwosci.
2. Korzysta sie z pewnego wzoru, ktory wymaga dzielenia podstawowej macierzy na mniejsze (tzw. dopelnienia macierzy) i wyliczanie z nich wyznacznika. Aby wyliczyc wyznaczniki takich mini-macierzy (tych wyznacznikow jest duzo, bo az tyle ile pol pierwotnej macierzy), najlepiej byloby je wyliczyc w funkcji. Ponownie, samo wyliczenie wyznacznikow umiem zrobic - jesli mam dana macierz. Tu sie wlasnie pojawia problem wyslania macierzy do funkcji, gdyz motyw z dwiema gwiazdkami nie dziala za bardzo :/.
deklaracja funkcji tak wyglada:
float wyznacznik(float *macierz,int il_wierszy, int il_kolumn);
wywolanie
wyznacznik(macierz1,il_wierszy1,il_kolumn1);
Niestety kompilator krzyczy o bledzie, tak jak napisalem wyzej.
Sorki ze tak duzo suchej teorii, ale nie wiem czy jest sens wklepywac caly kod, gdyz problem jest natury wymyslenia sposobu na to.
edit. prawdopodobnie wpadne dopiero w nocy, tylko wtedy bede mial jeszcze czas zeby nad tym posiedziec. Za wszelka udzielona pomoc bede bardzo wdzieczny.
DarkStar [ magister inzynier ]
stworz tablice dynamicznie:
float ** tablica = new float * [8];
for(int i = 0; i < 8 ; i++)
‹
tablica[ i ] = new float[8];
›
deklaracja funkcji powinna wygladac tak:
void funkcja(float ** tab);
wywolanie:
funkcja(tablica);
nie zapomnij na koniec skasowac tablicy
Pirix [ ! KB ! Góry górą ]
DarkStar--->Moshimo pisze to w C a tam nie ma operatora new. Musiałby chyba użyć zamiast tego malloc();

przemek__ [ PRZEMEK ]
if(zaladowano==0)
while(blad==1)
blad=0;
printf("\n\rPodaj liczbe A:");
if(scanf("%lu",&a)!=1)
blad=1;
fflush(stdin);
printf("\n\rPodaj liczbe B:");
if(scanf("%lu",&b)!=1)
blad=1;
fflush(stdin);
if(a>1000000||b>1000000)
blad=1;
if(a==0||b==0)
blad=1;
if(blad==1)
printf("\nBLAD: wprowadziles bledne dane\n");
printf("\nPodaj dane ponownie (2 LICZBY!)\n");
fflush(stdin);
----------------------------------
Program jest odporny na wprowadzanie liter za sprawą if(scanf("%lu",&a)!=1),
jednak nie wiem czemu, gdy podana liczba A jest liczbą ułamkową to jest zaokrąglana do całości,
a pobieranie liczby B jest pomijane !? Za to jeżeli A jest liczba całkowitą to B jest ładnie zaokrąglana itd. Co zrobić, aby po zaokrągleniu liczby A, nie było pomijane wczytywanie liczby B ???? Liczby A,B to całkowite.
nagytow [ Firestarter ]
Zmien wczytywanie %lu na %f. Zaokraglenie mozesz pozniej sobie zrobic.
Icm [ Konsul ]
Napisać program, który wczytuje napisy podawane przez użytkownika (dopóki nie zrezygnuje on z ich wprowadzania), a następnie podaje liczbę wystąpień wszystkich wprowadzonych napisów. Np. po wprowadzeniu napisów Aaa, Bbb, Aaa, Ccc, Aaa, Bbb powinniśmy otrzymać raport: Aaa 3, Bbb 2, Ccc 1.
Mam takie zadanko do napisania w javie ale mniejsza o język chodzi mi o pomysł. Jak wyciągnąć ilość takich samych wyrazów?
Proszę o pomoc :)
Regis [ ]
Moze cos z HashSet albo Hashmap? O ile pamietam - nie uzywalem tego nigdy - to kazdy string wygeneruje Ci innego hasha (za pomoca metody hashcode), wiec po prostu sprawdzasz (chyba metoda contain) czy w tablicy jest juz element o takim indeksie i jesli tak, to zwiekszasz pole jej odpowiadajace o 1.
Zaznaczam ze pisze 'w ciemno' - byc moze napisalem jakas bzdure w kwestii tego contain, ale generalnie ja bym wlasnie probowal sie oprzec na hashowaniu.
Ew. mozna po prostu wpakowac wszystkie kolejne wyrazy do listy i potem je zliczyc na koniec (bierzesz pierwszy element, sprawdzasz wystapienia takich samych el. i usuwasz potem wszystkie takie same, przechodzac do kolejnego el.)
nagytow [ Firestarter ]
Zalezy jak bardzo to ma byc optymalne, efektywne itp. Najprostsza metoda to chyba zrobic tablice asocjacyjna i zwiekszac jej wartosci. Np:
Aaa -> tab[Aaa]++
Bbb -> tab[Bbb]++
itd.
Potem wystarczy wypisac klucze i wartosci z tablicy.
hotDog [ Outsider ]
Miałem podobne zadanie na zajęciach w poprzednim semestrze.
Zadanie 6b
Zaprojektowac, zaimplementowac oraz przetestowac program pozwalaj , acy
wyznaczyc statystyk, e wyst,epowania znakow ASCII w ci , agu znakow pobranym
ze standardowego wejscia. W rozwi , azaniu pos lu_zyc si , e zasobnikiem asocjacyjnym
map<T, D>.
Zadanie dodatkowe
Program z zadania 6b przebudowac w celu wyznaczania statystyki wyst ,epowania
s low ignoruj , ac wielkosc znakow oraz znaki przestankowe.
rozwiązanie:
#include<iostream>
#include<string>
#include<map>
#include<iterator>
using namespace std;
typedef map<string, int> stat;
int main()
stat s;
string c;
string::size_type pos = c.find_first_of(" ./,\|:;");
while(cin >> c)
s[c]++;
while (pos != string::npos)
//erase
pos = s.find_first_of(" .", pos + 1);
stat::const_iterator i = s.begin();
while (i != s.end())
cout << (*i).first << ": " << (*i).second << " "; i++;
return 0;

przemek__ [ PRZEMEK ]
Panowie, dzisiaj 5tka i 4ka z kolokwium (C) :)
Ale nie spoczywam na laurach ;) Jeszcze nie raz będę prosił was o radę i nie raz postaram się pomóc.
Pozdrawiam :)
Moshimo [ FullMetal ]
Panowie, ostatni problem z tym programem.
Wczytywanie z pliku.
Potrzebuje zrobic tak, by macierz (max rozmiary 8x8) byla wpisana w plik, np:
1 0 3
4 -5 6
-7 8 0
Musimy odczytac ten plik i pobrac z niego zmienne do kolejnych elementow tablicy (zalozmy ze mamy z gory dana tablice macierz1[8][8] przewidujaca ewentualny maksymalny rozmiar macierzy.
Szczerze mowiac nie wiem kompletnie jak to zrobic. Wiem juz, jak wczytac plik, ale nie umiem isc strumieniem wdluz i pobierac zmiennych, jak i przejsc do nastepnej linii :/. Niestety nie mam juz kiedy sie na to doksztalcic, dlatego wychodze z prosba do Was, czy moglibyscie napisac przykladowo, jak to powinno wygladac. Wiem ze to lamersko tak o caly kod prosic, ale juz jestem troche zdesperowany.. pozdrawiam
hotDog [ Outsider ]
Zapisuj na początku pliku 2 zmienne dodatkowe - liczba wierszy i liczba kolumny. Po ich wczytaniu odczytasz resztę.
przykładowy plik z macierzami:
3 3
1 0 3
4 -5 6
-7 8 0
1 0 3
4 -5 6
-7 8 0
1 0 3
4 -5 6
-7 8 0
po wczytaniu dwóch pierwszych liczb, czyli po plik >> wiersze >> kolumny;
teraz piszesz pętlę while(!plik.eof()) (czy jakoś tak - nie pamiętam dokładnie)
robisz 2 pętle for z warunkami - pierwsza( i < wiersze), druga zagnieżdżona (i <kolumny)
wczytujesz w każdej dane z pliku do macierzy
zamykasz while'a i po sprawie.

Moshimo [ FullMetal ]
Dzieki bardzo!
milanista [ Brother Of Metal ]
prosze o pomoc przy PHP
mam nastepujacy problem:
mam formularz z buttonem, przekazujacy dane do pliku .php , po kliknieciu ktorego chcialbym zeby uruchomiona zostala instrukcja. I tu pytanie - jakiego warunku uzyc do if-a zeby okreslić wcisniecie tego przycisku?
czyli:
if (button jest wcisniety)
intrukcje
wiem ze to sa podstawy ale jestem z tego zupelnie zielony ;(
z gory dzieki za pomoc

Arxel [ Legend ]
Hm... Ostatnio w szkole zaczęliśmy C++ (nareszcie.. :D)
Korzystamy z Visual C++ ale ja zainstalowałem sobie dev c++ (przyzwyczajenie)
I pojawił się problem. po wykonaniu programu pojawia się wynik i znika okno...
return 0;
nie pomaga...
Znalazłem na sieci jakąś inna komendę, że pojawia się napis Aby zakończyć kliknij dowolny przycisk czy jakoś tak :)
Wie ktoś dlaczego okno się zamyka przy return 0; ? Kiedyś też o to pytałem i w domu normalnie chodziło...
Co do samego programiku to było to bodajże obliczanie miejsc zerowych funkcji kwadratowej. Niestety nie mam go u siebie w domu;]
Regis [ ]
Arxel --> A dlaczego ma sie nie zamykac przy return 0? Jedno z drugim nie ma nic wspolnego. Po return 0 program konczy dzialanie i tyle go widzieli. Ja zawsze przed return pisze while(1). To wybitnie nieelegancka metoda, wiekszosc kompilatorow mnie mocno za to opieprza (ale program kompiluja), ale do testowania programow nadaje sie w sam raz.

Arxel [ Legend ]
ehh..
Jaki ja głupi :D
Faktycznie jest while(1), a nie żadne return 0 :D
Ok Dzięki za pomoc;]
W sumie nie byłoby pytania jakbym odpalił dev c++ i sprawdził na swoje dawne programiki :P
Sainim [ Chor��y ]
Arxel -> Zawsze możesz użyć funkcji specjalnie do tego przeznaczonej: system("pause");
Pirix [ ! KB ! Góry górą ]
Arxel---> można też uruchamiać taki program z wiersza poleceń - wtedy nie trzeba nic do zatrzymywania go na ekranie. A do zatrzymania można też użyć getchar() o ile dobrze pamiętam.
maVes [ Generaďż˝ ]
Ja zawsze do zatrzymania programu używam cin.get(); Po wciśnięciu dowolnego klawisza program wykonuje się dalej.

hotDog [ Outsider ]
Witam!
Szukam dobrego debuggera na gwałt! :-)
Potrzebuję prędko (zaliczenia, zaliczenia!) jakiegoś dobrego i sprawdzonego debuggera, który mi powie czy i gdzie są jakieś wycieki pamięci - coś na kształt Valgrinda na linuxie.
Muszę oddać projekt, a niestety piszę go w bibliotece SDL, której nie mogę zainstalować pod linuxem i muszę pracować na windowsie :C
Polećcie coś do leaków

Sir Skull [ Charr Shaman ]
hotDog --> Ściągnij triala Rational Purify.

Aceofbase [ El Mariachi ]
Drodzy koledzy mam straszliwy, naglacy problem ;/ mam na zaliczenie napisac program - pol-ang slownik; zdecydowalem sie na operacje na stringach, mam jednak ciezka zagwozdke:
W jaki sposob wczytac dane z pliku tekstowego do tablicy stringow tak aby jedna komorke zajmowal jeden wyraz? W pliku mam wszystkie wypisane w jednej linii, oddzielone sa jedynie spacja
Jak ma wygladac funkcja/czesc kodu odopowiedzialna za to?
Jezeli ktos ma jakies inne pomysly czy sugestie tez milo ich wyslucham, szczegolnie ze mam na to jeszcze ok. 9 godzin...
fanlegii79 [ Generaďż˝ ]
Slwonik na tablicy? hmmm, Slownik powinienes zrobic na drzewie sufixowym.
Aceofbase [ El Mariachi ]
dwie tablice - komorki jednej z nich sa przyporzadkowane do komorek drugiej
T1[1]="kot" i T2[1]="cat" itepe
i nie jestem do konca pewien czy wiem nawet co to jest drzewo sufixowe, a juz z pewnoscia czegos takiego uwzgledniac w projekcie nie musze ;] 1 semestr w koncu (i mam nadzieje ze nie ostatni )
fanlegii79 [ Generaďż˝ ]
Drzewno suffixowe znalazlem w podreczniku z pierwszego semestru :)
Jaki jezyk? Rozumiem ze masz dwa pliki w jednym slowa po polsku drugim angielsku, kazdy plika ma jedna linie i sa oddzielone spacjami?
Aceofbase [ El Mariachi ]
heheh, juz sobie (dzieki nieodzownej pomocy pewnego pana z forum wyspecjalizowanego w programowaniu ;)) poradzilem ;]
Jezyk C++, i tak dwa pliki w kazdym wyrazy w jednej linii oddzielone spacjami, a do wczytywania poszlo w ruch otworzenie i zamkniecie strumienia z prosciutka petla wewnatrz. Jeden przedmiot zaliczony ;p zostaly juz tylko cztery xD
DarkStar [ magister inzynier ]
wlasnie, znacie jakies dobre fora poswiecone c++?
Sainim [ Chor��y ]
DarkStar:
Aceofbase [ El Mariachi ]
takze:

DarkStar [ magister inzynier ]
thx:)
Taszunko_Sapa [ Junior ]
Witam. Tak się złożyło, że przyszło mi ostatnimi czasy napisać program, który przy pomocy algorytmu interpolacyjnego Neville'a ma obliczać W(-1) dla konkretnych liczb. Napisałem program w pascalu, jak poniżej z tym, że po uruchomieniu pojawia się "błąd 207: błędna operacja zmiennoprzecinkowa". Byłbym wdzięczny za pomoc w poradzeniu sobie z tym problemem.
Oto program:
program neville;
$N+
uses
crt;
type real= extended;
const
n= 5;
X= -1;
xp: array[0..5] of real= (-2, -1, 2, 6, 10, 11);
yp: array[0..5] of real= (8, 5, -1, -4, 7, 3);
var
i,k: integer;
prog: array[0..n, 0..n] of real;
begin
clrscr;
writeln(' i xi y[xi]');writeln;
for i:=0 to n do
begin
writeln(i:3,' ',xp:8:1,' ',yp:8:1);
end;
writeln;
readkey;
clrscr;
for i:= 0 to n do
begin
for k:= 0 to n do
if k= 0 then prog[i,0]:= yp else
prog[i,k]:=(((X-xp[i-k])*prog[i,k-1]-(X-xp)*prog[i-1,k-1])/(xp-xp[i-1]));
end;
writeln(' k=0 k=1 k=2 k=3 k=4 k=5 ');writeln;
for i:=0 to n do
begin
for k:=0 to n-i do
write(prog[i,k]:6:3,' ');
writeln;
writeln;
end;
readkey;
end.
oraz link do algorytmu Neville'a: (na wszelki wypadek)
Prosiłbym o możliwie jak najszybszą pomoc.
Qbaa [ Senator ]
Taszunko_Sapa
nie wiem co to algorytm nevilla, ale w linijce
prog: array[0..n, 0..n] of real;
walnąłem typ double zamiast real i program hula :)

Taszunko_Sapa [ Junior ]
Qbaa: thx wielkie za pomoc

ronn [ moralizator ]
Wybrałem, że będę pisał "inżynierkę" w Javie. Jako, że wczesniej nie brałem żadnego przedmiotu z Javy, a obowiązkowo programowaliśmy właściwie tylko w c/c++/assembler czy matlab, to kupilem sobie Thinking in Java. Teraz mam pytanie. Eclipse, czy netbeans, czy może nie ma to wielkiego znaczenia?

slowik [ NightInGale ]
a netbeans to nie przypadkiem na komore ?
Katane [ Useful Idiot ]
Eclipse, czy netbeans, czy może nie ma to wielkiego znaczenia?
Przeciez to tylko edytor, sprawdz oba i wybierz ten, ktory bardziej Ci sie spodoba.
ronn [ moralizator ]
No, ale czy oba są tak samo wygodne i funkcjonalne (wiem, ze to kwestia gustu)? Chyba netbeans wezmę.
Mam zamiar napisać aplikacje działającą w sieci pakietowej. Słyszeliście może o sieciach Petriego? Poszukuję jakiejś literatury na ten temat. Po polsku lepiej, mogłaby być po angielsku, ale na komputerze nie mogę długo czytać, a w ksiegarni angielska książka to będzie kilkaset złotych :/

ronn [ moralizator ]
Mój pierwszy banalny program w J :)
Main.java
package program_1;
import java.util.Date;
public class Main
public static void main(String[] args)
System.out.println("Dzisiaj jest :");
System.out.println(new Date());
NewClass test = new NewClass();
test.wypisz();
NewClass.java
package program_1;
import java.util.*;
public class NewClass
static int b = 66;
static char c = 'G';
public NewClass()
void wypisz()
System.out.println("Oto wartości B i C :");
System.out.println(c);
System.out.println(b);
return;
:D Trzeba szybko iść dalej :)
Trzeba przyznac, ze ciekawa jest, nawet main to obiekt :)

Regis [ ]
Raczej nie obiekt, tylko klasa, ktorej statyczna metode wywolujesz w kazdym programie - wszak obiektu klasy main raczej nigdzie nie tworzysz ;)
A to ze Java jest ciekawa - zgadzam sie. Momentami mnie wkurza tym ze trzeba co chwile przeczesywac dokumentacje, zeby znalezc klase/interfejs ktory robi akurat to, czego potrzebujesz, ale poza tym jest ok ;) Szczegolnie robienie GUI w Javie jest fajne. A jeszcze jak sie to robi w NetBeansach - poezja. Prawie jak w C++ Builderze ;)
SpaceCowboy [ Jenerał ]
Bawi się ktoś może w programie Keil µVision3?
Generalnie rozchodzi się o to, że robie 5efektów migania diodek na jakims porcie, i 6efekt polega na tym, że program zapętla po 5razy każdy z efektów, tzn. 5x efekt1, nastepnie 5x efekt2 itd.
Mógłby mi ktos pomóc to rozminic, bo wszelkie samoistne próby coś nie wypaliły, poza 5krotnym skopiowaniem każdego z efektów, ale to nie to chodzi, mimo że efekt jest chyba identyczny.

SpaceCowboy [ Jenerał ]
Ok nieaktualne. Jakoś sobie poradziłem i zamiast pętli 'while' użyłem 'for'
Wikipedia ftw!
master53 [ PSP User - Sony Fan ]
Mam problem z instalacją Visual C++ 5.0 Express Edition. Pobrałem instalator z MSDN (dziwnie mały, nie całe 3 MB) i po włączeniu, pojawia się małe okienko z paskiem postępu i napisami "Setup is loading installation components. This may take a minute or two.". I tak czekam już godzinę i nic. Jak to zainstalować ?
maVes [ Generaďż˝ ]
master53 -> 5.0? Toż to jakaś staroć :) Ja aktualnie używam VC++ 2005 EE - jest również darmowy, przyjemnie się w nim pracuje i nie miałem żadnych problemów z instalacją.
master53 [ PSP User - Sony Fan ]
maVes ----> Och tak. Chodziło mi o 2005 :) Czy instalator ściąga jakieś pliki w trakcie instalacji z serwera MS ? Może przez to, że firewall go blokuje nie chce instalować.
Regis [ ]
Tzn. sciagnales z MSDN ten plik 'Delivery Client' a potem sciagnales instalator przy jego uzyciu? Czy jak? Ja zawsze sciagalem obrazki .iso plyt, wiec nie wiem jak to przebiega przy pobieraniu samego instalatora. Ale nie licz, ze Visual ma tylko 3Mb - albo cos Ci sie zle sciagnelo i instalator nie dziala jak powinien, albo te "This may take a minute or two" zamienia sie w godziny, albo tez okaze sie ze faktycznie firewall cos blokuje.. Chyba ze to na prawde jakas "Express Edition" - notatnik z kolorowaniem skladni + kompilator C++ :P
master53 [ PSP User - Sony Fan ]
Regis ----> Pobrałem instalator z tego linka ( ). Jak można pobrać obrazki .iso płyt ? Czy nie są one dostępne tylko w MSDN AA ?
DarkStar [ magister inzynier ]
master53 --->
master53 [ PSP User - Sony Fan ]
DarkStar ----> Dzięki ;) Pewnie z .iso będzie śmigać jak marzenie. Mam jeszcze jedno pytanko. Czy do korzystania z Visuala, potrzebna jest jakaś rejestracja ?
maVes [ Generaďż˝ ]
master53 -> z tego co pamiętam, to Visual chodzi bez rejestracji przez 30 dni. Potem trzeba dokonać rejestracji, która jest darmowa :)

ronn [ moralizator ]
Regis --> Fakt, troche nieściśle się wyraziłem. Pisze sobie ciągle łatwe programy. Aktualnie typy wyliczeniowe. Program :
package wyliczenie;
import java.util.*;
enum smak SLODKI, GORZKI, OSTRY, LAGODNY;
class potrawa
smak jaki;
public potrawa (smak jaki)
this.jaki = jaki;
System.out.println("Oto działa konstruktor klasy potrawa");
System.out.println("Z parametrem smak : " +this.jaki);
public void opisz_smak()
System.out.println("Ta potrawa jest : ");
switch (jaki)
case SLODKI : System.out.println("Smak : słodki");
break;
case GORZKI : System.out.println("Smak : gorzki");
break;
case OSTRY : System.out.println("Smak : ostry");
break;
case LAGODNY : System.out.println("Smak : lagodny");
break;
default : System.out.println("Brak argumentu");
return;
public class Main
public static void main(String[] args)
potrawa deser = new potrawa(smak.SLODKI);
potrawa cytryna = new potrawa(smak.GORZKI);
potrawa jalapeno = new potrawa(smak.OSTRY);
potrawa herbata = new potrawa(smak.LAGODNY);
deser.opisz_smak();
cytryna.opisz_smak();
jalapeno.opisz_smak();
herbata.opisz_smak();
Tutaj mam błąd. Dlaczego nie moge wywolac metody opisz_smak() na rzecz obiektów typu potrawa?

ronn [ moralizator ]
Dobra, już wiem. Głowiłem się nad tym 45 minut, aż zauważyłem, że po wykomentowaniu tego fragmentu i uruchomieniu programu, konstruktor nie informuje o swoim działaniu. Wtedy zorientowałem się, że błąd musi być z gatunku debilnych i w rezultacie zauważylem, że w main() mam jeden nawias za wcześnie :)

ronn [ moralizator ]
Ok, znowu ja :)
Program :
package rzutowanie;
import java.util.*;
class amphibian ‹
int a, b;
String str;
amphibian ()‹
this.a = 3;
this.b = 99;
this.str = "Jestem płazem, a to działa mój konstruktor";
›
public String toString()‹
return " A = "+a+" B = "+b+"STR = " +str;
›
static void funkcja(amphibian a)‹
System.out.println(a);
return;
›
›
class frog extends amphibian ‹
String s;
frog()‹
String s = "Jestem żabą, podtypem płaza";
›
public String toString()‹
return "drugi string "+s+ super.toString();
›
›
public class Main ‹
public static void main(String[] args) ‹
frog zaba = new frog();
amphibian.funkcja(zaba);
System.out.println(zaba);
›
›
Efekt : To co chcialem, zeby dzialalo : dziala. Problem w tym, ze string "s" z klasy zaba wyswietla sie jako null po skompilowaniu, a przecież konstruktor go inicjalizuje.

Deton [ Konsul ]
Dopiero zaczynam sie uczyc C++, napisałem coś takiego:
#include <iostream.h>
int main()
cout << "Czolem, ludziska!";
I niestety po skompilowaniu, stworzony plik .exe nie chce sie wyswietlic tzn. nic sie nie dzieje.
W kursie ( przeczytalem:
"Możliwe, że zaraz po wyświetleniu tekstu okienko konsoli zniknie, bo system zazwyczaj zamyka okna programów konsolowych, które się zakończyły. Ustaw więc w systemie tak, żeby okna nie zamykały się automatycznie, bo inaczej nie zobaczysz efektów działania twoich programów. "
Niestety nie wiem jak to zrobić, pomocy!
peanut [ kriegsmaschine ]
system("PAUSE");
Deton [ Konsul ]
#include <iostream.h>
int main() ‹
cout << "Czolem, ludziska!";
system("PAUSE");
›
TAK?
Skompilowałem to i otwiera sie okienko z napisem "Aby kontyunowac wcisnij dowolny klawisz..."
gdy wciskam to okienko sie zamyka, o co chodzi?!
Napiszcie jak powinno byc poprawnie, please?
hctkko [ The Prodigy ]
a nie lepiej
getchar();
? nic dodatkowego sie nie wyswietla, system tylko czeka na wcisniecie klawisza.
czyli w sumie trzeba to zrobic tak:
#include <iostream>
#include <cstdio>
using namespace std;
int main()
‹
cout << "Czolem, ludziska!";
getchar();
return 0;
›

Deton [ Konsul ]
Dzieje sie to samo co poprzednio...
Nie wiem co robię źle...
hctkko [ The Prodigy ]
Kod jest poprawny :P Tylko nie zapomnij zmienić ">" na nawias (po int main() i na samym koncu, bo po cout jest zamierzony ;)
powiedz jeszcze jaki masz kompilator - na dev-c++ wszysko jest ok:

Deton [ Konsul ]
uzywam dev, tylko 5 beta, wlasnie sciagam wersje 4.
Mi sie pojawialo to okienko ale pisalo tylko:
"Aby kontyunowac wcisnij dowolny klawisz..."
Nie było ścieżki do pliku tylko o ile pamietam
C:/(..)cmd32 ;/
moze wersja dev 4 rozwiąze problem...
hctkko [ The Prodigy ]
z betą 5 też miałem problemy. dlatego korzystam z 4 wersji :) a najlepszy i tak jest g++ pod linuxem ;)

Deton [ Konsul ]
Nie idzie mi... Co źle robię?
hctkko [ The Prodigy ]
1) Włączasz Dev-c++
2) File --> New Source File
3) wpisujesz swój kod
4) Execute --> Compile and Run
5) zapisujesz plik jako cpp, plik sie kompiluje i uruchamia

Deton [ Konsul ]
Udało się!
Wielkie dzięki za pomoc i cierpliwość :)
Może sie jeszcze czegos naucze :P
DarkStar [ magister inzynier ]
siemka
znacie jakas metode na wyciagniecie czasu systemowego z dokladnoscia do tysiecznej sekundy?
Mago8 [ Pretorianin ]
Potrzebne są mi definicja obiektu i definicja implementacji w Visual Studio .NET
Jeśli ktoś wie coś na ten temat to bardzo proszę o pomoc.
thenaturat [ Konsul ]
Jak zamienić duże litery w tablicy na małe, nie używając strlwr
maVes [ Generaďż˝ ]
thenaturat ->
W pętli for przejeżdżasz po każdej literze i sprawdzasz warunek:
if ((str >= 'A') && (str <= 'Z'))
str += 32; // bo małe litery leżą o 32 miejsca dalej
maVes [ Generaďż˝ ]
Dopiero teraz zauważyłem, że z mojego posta znikły nawiasy kwadratowe :)
Wszędzie ma być oczywiście str [j] gdzie j to licznik pętli (wcześniej napisałem zamiast j - i, co zapewne skutkuje zmianą formatowania :))
Qbaa [ Senator ]
if ((str[i] >= 'A') && (str[i] <= 'Z'))
str[i] += 32; // bo małe litery leżą o 32 miejsca dalej
maVes wystarczy odznaczyć w okienku dodawania postu "znaczniki"
ps. pomysłowy sposób :)
wishram [ lets dance ]
wpisuje liczbę powiedzmy 123450 do tablicy char jak potem mogę sprawdzić ile ona ma cyfr?
mógłbym jechać od końca aż nie będzie zera ale to wyjdzie mi liczba 12345.
konkretnie to muszę znaleźć dwie ostatnie cyfry liczby powiedzmy 200 cyfrowej jak to zrobić w C?
peanut [ kriegsmaschine ]
char* s = new char[200]; ?
cout<< char[strlen(s)-1]<<char[strlen(s)-2]<<endl;
albo liczyc najpierw dlugosc, a potem tylko -1 i -2, ewentualnie string s i pozniej jakos cout<<s[s.length-1] czy cos, nie wiem bo wole char* ;)
wishram [ lets dance ]
nic z tego nie rozumiem :( poza tym programuje w C
peanut [ kriegsmaschine ]
masz tablice char czyli liter, nie cyfr. tablica znakow to tak naprawde nie tablica a wskaznik do znaku, tylko wskazujacy na odgornie zadeklarowana dlugosc obszaru w pamieci -> char*
char tablica[100] to jest to samo co char* tablica = (char *)malloc(sizeof(char)*101); 101 bo to miejsce na terminator czyli '\0'. dlatego, nie szukasz '0' tylko '\0' jesli masz char* albo char[] bo to jest to samo;)
jesli chcesz dwie ostatnie litery (nie cyfry1), to przy deklarowaniu tablicy uzupelnij ja automatycznie '\0', zeby byla pusta, inaczej pewnie sa w niej jakies ochlapy z pamieci.
pozniej 1 litera od konca:
char ostatniaLitera = tablica[strlen(tablica)-1]
char przedostatniaLitera = tablica[strlen(tablica)-2]
a pozniej rzutowanie albo bezpieczniejsze zdaje sie atoi(), ktore zamienia znak ascii na inta i masz cyfry.
wishram [ lets dance ]
Co robię źle, że to nie działa?
char tablica[200];
char ostatniaLitera;
char przedostatniaLitera;
scanf("%s", &tablica);
ostatniaLitera = tablica[strlen(tablica)-1];
przedostatniaLitera = tablica[strlen(tablica)-2] ;
printf("%s", ostatniaLitera );
printf("%s", przedostatniaLitera );
Regis [ ]
Do 200 elementowej tablicy wpisujesz prawdopodobnie mniej niz 200 znakow i byc moze (nie sprawdzilem, a nie pamietam dokladnie jak ma sie sprawa z takimi 'sztywno' zdefiniowanymi stringami) nie trafiasz w koniec slowa. Sprobuj zamiast "strlen(tablica)" wpisac "strchr(tablica,'\0')" - ta funkcja poda Ci miejsce wystapienia znaku konca slowa (a wiec tego co potrzebujesz) wiec cofniecie sie o jeden znak da Ci rzeczywista ostatnia litere slowa, a nie przedostatnia wartosc z tablicy.
Chociaz przyznam, ze wydawalo mi sie, ze strlen zwroci rzeczywista dlugosc slowa, a nie rozmiar tablicy.
Moze napisz co to znaczy 'nie dziala' - program sie wiesza? Wyskakuja dziwne znaczki?
Regis [ ]
Edit sie skonczyl...
Ech, oczywiscie ze to nie to... Szukalem jakiegos bledu w dobieraniu sie do znakow, a zrobiles podstawowy blad przy wypisywaniu:
printf("%s", ostatniaLitera );
printf("%s", przedostatniaLitera );
POJEDYNCZE ZNAKI WYPISUJEMY PRZEZ %c
wishram [ lets dance ]
po zmianie na:
ostatniaLitera = tablica[ (strchr(tablica,'\0')) -1];
przedostatniaLitera = tablica[ (strchr(tablica, '\0'))-2] ;
wyskakuje błąd kompliacji na tych liniach
array subscript is not an integer
a wcześniejszy program wiesza się
edit// %c : już działa dzięki :) uczę się C dopiero od niedawna i nawet podstaw dobrze nie znam
wishram [ lets dance ]
int a,b,c;
(...)
scanf("%s", &tablica);
ostatniaLitera = tablica[strlen(tablica)-1];
przedostatniaLitera = tablica[strlen(tablica)-2] ;
a = atoi(ostatniaLitera);
b = atoi(przedostatniaLitera) ;
printf("%d\n", a);
printf("%d\n", b);
ale to już się wiesza, o co chodzi?
DarkStar [ magister inzynier ]
pewnie musisz dodac jakas biblioteke - obstawiam stdlib.h
wishram [ lets dance ]
dodałem ale dalej to samo
wyskakuje ostrzeżenie (x2)
[Warning] passing arg 1 of `atoi' makes pointer from integer without a cast
Hansvonb [ Konsul ]
Po prostu błąd konwersji typu.
Jak zadeklarowałeś zmienne 'ostatnialitera' i 'przedostatnialitera' ?
wishram [ lets dance ]
char ostatniaLitera;
char przedostatniaLitera;
peanut [ kriegsmaschine ]
zadeklaruj to jako:
char *ostatniaLitera = tablica[strlen(tablica)-1];
char *przedostatniaLitera = tablica[strlen(tablica)-2];
a pozniej:
int cyfra = atoi(&ostatniaLitera);
int drugaCyfra = atoi(&przedostatniaLitera);
wishram [ lets dance ]
dzięki teraz wszystko chodzi

Filevandrel [ czlowiek o trudnym nicku ]
Jakby ktoś mi mógł wytłumaczyć działanie poleceń fseek, fread i ftell w języku C byłbym niezmiernie wdzięczny
PS. Sprawdzałem w helpie, ale jakos nie jestem w stanie z pomoca samego tylko helpa tego zrozumieć

Czesiek_Alcatraz [ Senator ]
offtop mały
Qbaa [ Senator ]
może ta Pani programowała, jak Ciebie nie było jeszcze na świecie, a teraz chce przejść z asma na c++? :P
Sainim [ Chor��y ]
Filevandrel ->
Raynor [ Big Man ]
Witam,
Studiuję informatykę na pierwszym roku. Mam w tym semestrze naukę C/C++. Są to absolutne podstawy. Pierwsze w moim życiu programy. Chcę zakupić książkę która mi w przejrzysty sposób wydłumaczy podstawy. Macie coś godnego polecenia? Może któraś z książek wymienionych w pierwszym poście? Zależy mi na ksążce łatwej do zrozumienia ale z drugiej strony nie opisującej problemów jak dla pięciolatka. :)
Profesor polecił tą książkę ale może Wy znacie coś lepszego?
Regis [ ]
Bez cienai watpliwosci polece - tradycyjnie juz - "Symfonie C++" J. Grębosza - najlepsza ksiazka o podstawach C++ jaka widzialem.
Qbaa [ Senator ]
ja słyszałem dużo dobrego o "C++. Potęga języka. Od przykładu do przykładu", Andrew Koenig, Barbara E. Moo
mam zamiar ją kupić
peanut [ kriegsmaschine ]
jezyk c++ stroustrupa
maVes [ Generaďż˝ ]
Raynor - ja również polecam Symfonię Standard, gdyż jest to naprawdę świetna książka. A jeśli nie chcesz wydawać kasy, to bardzo dobry jest Megatutorial Xiona "Od zera do gier kodera". Nie przerażaj się nazwą, gdyż tak naprawdę ten kurs opisuje bardzo dokładnie C++ od podstaw. Nie podoba mi się w nim jedynie stosowanie notacji węgierskiej, bo moim zdaniem tylko zaciemnia kod.
peanut - ta książka też jest dobra, napisana wkońcu przez twórcę C++, ale zdecydowanie nie jest to dobra pozycja dla osób które dopiero zaczynają swoją przygodę z programowaniem.
Słyszałem też wiele pozytywnych opinii o "Thinking in C++", jednak mnie ta książka wogóle nie przypadła do gustu :P
peanut [ kriegsmaschine ]
jesli kupowac to akurat stroustrupa, reszte mozna pozyczyc, a thinking in cpp za darmo jest w necie. symfonie widzialem i wydala mi sie jakas taka mocno prymitywna, nie wiem czemu wam sie tak podoba;)

slowik [ NightInGale ]
maVes===>co jest nieczytelnego w tej notacji ? jak dla mnie jest dosc czytelna (sam uzywam GNU )
Raynor===>kumple ryli w 'szkoła programowania - język C' (tez jest do c++) i sie im to podobalo
do symfonii nic nie mam jednak powinna zostac w tej chwili troche przerobiona jednak na poczatek w sam raz

Raynor [ Big Man ]
Dziekuje wszystkim za tytuły. Chyba zdecyduję się na tą "Symfonię C++".
maVes [ Generaďż˝ ]
slowik -> moim zdaniem taka notacja może trochę odstraszać początkujących. Uważam że stosowanie jej w takich językach jak C++ mija się z celem, co innego np. w PHP. Oczywiście z czasem każdy wyrabia swój własny styl pisania :)
Raynor -> tylko nie kupuj przypadkiem "zwykłej" Symfonii, tylko tę nową, Symfonia Standard. Najnowsze wydanie jest chyba dwutomowe.

âřßůž® [ Pretorianin ]
Witam
Mam prosbe. Zna ktos moze jakies ciekawe linki odnosnie javy? i nie chodzi mi tu o tutoriale z firmy sun :) tylko najlepiej polskie strony ( ale nie koniecznie) . Bardzo by mi sie przydaly te linki - dodatkowe pkty z przedmiotu :)
z gory thx
Kozako2 [ Pretorianin ]
najlepiej jest i tak czytać instrukcje albo samemu wymyślać komendy ja tak sie osobiście uczę
slowik [ NightInGale ]
âřßůž®===>zajrzyj tutaj (trzeba sie zarejestrowac tylko) no i podstawy jakiegos innego jezyka juz powinienes miec od poczatku moze byc troche ciezko
Kozako2===> jakie komendy !? o zgrozo ...

âřßůž® [ Pretorianin ]
Ponawiam prosbe o linki z tutorialami itp. do javy.
Moj cwiczeniowiec zbiera ciekawe stronki traktujace o javie, kto podesle mu linki dostaje dodatkowe punkty (moze sie wczesniej zle wyrazilem :D) - dlatego to dla mnie takie wazne ;]
ronn [ moralizator ]
Jaka jest najlepsza biblioteka do rysowania 2d w Javie?
Regis [ ]
Swing :P
ronn [ moralizator ]
;P
[edit]
Wywaliłem problem, bo mam rozwiazanie :
float a1 = java.lang.Float.parseFloat(xA);
(pozbycie sie dwuznacznosci)
Qbaa [ Senator ]
âřßůž®
- czytając "ciekawe" i "java" w jednym zdaniu przypomniałem sobie tylko o Perlinie :)
- a tylko tego linka znalazłem u siebie

Golem6 [ Gorilla The Sixth ]
A ja mam takie pytanie.
Zajmował się ktoś już kiedyś POV-Ray'em?
Prosty w obsłudze program do programowania obrazów. Prosty przykład mojej roboty w chwili nudy ->
Regis [ ]
Ja sie zajmowalem. Ale na moim Duronie 650 ktory wtedy mialem wyrenderowanie byle gownianego kieliszka zajmowalo parenascie minut, wiec sobie darowalem ;)

hotDog [ Outsider ]
no Pov-Ray jest ciekawy.
Widziałem animację jednego gościa z wyższego roku i byłem pod wrażeniem możliwości Pov-Ray'a.

ronn [ moralizator ]
Hm, jeśli ktoś byłby w stanie pomóć. Oto kod źródłowy :
1.
public class Main ‹
public static void main(String[] args) ‹
SwingConsole.run(new Function(), 500, 450);
›
›
2.
public class SwingConsole ‹
public static void run (final JFrame f, final int width, final int height)‹
SwingUtilities.invokeLater(new Runnable()‹
public void run()‹
f.setTitle(f.getClass().getSimpleName());
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(width, height);
f.setVisible(true);
›
›);
›
›
3.
public class Draw extends JPanel ‹
private Point2D.Double[] res;
private int points;
JTextField a = new JTextField("7", 8),
b = new JTextField("4", 8),
c = new JTextField("8", 8);
JTextField range_s = new JTextField("-100", 8),
range_e = new JTextField("100", 8);
public Point2D.Double calculate(int x)‹
String xA = a.getText();
String xB = b.getText();
String xC = c.getText();
float a1 = java.lang.Float.parseFloat(xA);
float a2 = java.lang.Float.parseFloat(xB);
float a3 = java.lang.Float.parseFloat(xC);
double r = a1*x*x + a2*x + a3;
return new Point2D.Double(x, r);
›
public Point2D.Double[] calculateAll()‹
String start = range_s.getText();
String end = range_e.getText();
int st = java.lang.Integer.parseInt(start);
int en = java.lang.Integer.parseInt(end);
Point2D.Double[] wyniki = new Point2D.Double[en-st];
int ta = 0;
for(int x = st; x<en ;x++)‹
wyniki[ta] = calculate(x);
ta++;
›
return wyniki;
›
public void paintComponent(Graphics g)‹
super.paintComponent(g);
Point2D.Double dane[] = calculateAll();
g.setColor(Color.GREEN);
for(int i = 0 ; i < dane.length - 1 ; i++)‹
g.drawLine((int)dane.getX(), (int)dane.getY(), (int)dane[i+1].getX(), (int)dane[i+1].getY());
›
›
public Draw()‹
set();
›
public void set()‹
repaint();
›
class Function extends JFrame ‹
private Draw dr = new Draw();
Function()‹
JButton but = new JButton("Rysuj");
setLayout(new FlowLayout());
add(dr);
add(but);
but.addActionListener(new MyListener());
›
class MyListener implements ActionListener ‹
public void actionPerformed(ActionEvent e)‹
set();
›
›
›
›
--
Program ma rysować wykres funkcji kwadratowej wprowadzonej przez uzytkownika. Mam kilka pytan :
1. Program, "cos-tam" rysuje, ale rozmiar jest mikroskopijny.
2. Dlaczego nie widac w ramce JTextFieldow z klasy Draw?
3. Jak to naprawić? :)
ronn [ moralizator ]
Domyślam się, że przyda mi sie jakis scalling albo autoscalling, jednak na razie ciekawi mnie dlaczwgo, te pola tekstowe nie sa widoczne? Probowalem juz roznych rzeczy, umieszczalem je w odzielnej klasie dziedziczacej po JFrame.. ;/
peanut [ kriegsmaschine ]
mam dziwny problem ze wskaznikami w cpp.
mam dwie klasy, ktore nie dziedzicza nic po sobie. obie posiadaja wenetrzne funkcje, a dodatkowo wskazniki na odrebne klasy, tzn. sa ze soba polaczone.
przed implementacja klasy deklaruje ich istnienie poprzez class A; class B;
problem pojawia sie przy wywolaniu funkcji dla klasy B, poprzez wskaznik na B z klasy A;
czyli mam:
class A; class B;
class A
B* ptrb;
ptrb->jakasfunkcja;
class B
A*ptra;
jakasfunkcja()
;
dev zglasza takie oto bledy:
\Dev-Cpp\main.cpp invalid use of undefined type `struct B'
\Dev-Cpp\main.cpp forward declaration of `struct B'
domyslam sie, ze cos jest zle zadeklarowane, ale google mi pomoc nie potrafi...
Andrzej Lepparkour [ Konsul ]
Jak brzmi nazwa trybu napisowego C++?
Chciałem wprowadzić tekst przez konsolę, niestety w C++ niewiele pisałem a i kursy mi nie pomogły. Używam najnowszego DevC++ dla Windows. Wyczytałem, że wystarczy dołączyć plik nagłówkowy string.h i wrzucić na początku programu string blabla i powinno działać, niestety tak nie jest. Przykładowy kod (wprowadzenie imienia):
#include <stdio.h>
#include <iostream.h>
#include <string.h>
int main(int argc, char *argv[])
string imie;
cout << "Podaj imie: ";
cin >> imie;
getchar();
return 0;
Wyglada na to, ze typ "string" w ogole nie istnieje (przynajmniej moj kompilator go nie rozpoznaje). Pewnie trzeba zrobic jakis myk z charem, zeby moc wprowadzac przez konsole dluzsze teksty? Dzieki za pomoc.
hotDog [ Outsider ]
Musisz określić przestrzeń nazw dla typu string. Robi się to pisząc: std::string
Przestrzeń nazw std odnosi się również do cout oraz cin, więc przed nimi też musisz to dopisać.
Żeby nie dopisywać std:: wszędzie tam gdzie się korzysta z tej przestrzeni, można napisać po includach (a przed main)taką linijkę:
using namespace std;
i już nie potrzeba wtedy dopisywać w kodzie std::

Andrzej Lepparkour [ Konsul ]
hotDog, to wina DevCpp w takim razie? Nie muszę "std" dopisywać przed cout/cin, a jak dopiszę przed "string" lub za nagłówkami mam 5 błędów.
Wersja DevCpp to stabilna non-beta 4.0... Więc pewnie ja coś robię nie tak, bo słyszałem, że ten kompiler jest całkiem przyzwoity?
Dzięki.
hotDog [ Outsider ]
spróbuj:
#include <iostream>
#include <string>
Andrzej Lepparkour [ Konsul ]
Dzieki, zaraz sprawdze, ale chyba to to :)

wishram [ lets dance ]
mam tablicę:
char tablica1[200];
potem wczytuję ją:
scanf("%s", &tablica1); //powiedzmy, że wczytuje: 1234
następnie chce dopisać na końcu np. 0
i robię:
tablica1[ strlen(tablica1) ] = 48;
otrzymuje 1234%$* i jakies krzaczaki czyli jest blad
w ostatniej komorce przechowywany jest znak null i co nie moge juz nic do niej dopisac? miejsce jest (char tablica[200]), jak to zrobic (dopisac cos do tej tablicy) czemu nie dziala?
peanut [ kriegsmaschine ]
bo nie wyzerowales tablicy przed jej uzyciem. daj jakas petle na dlugosc tablicy, ktora ja uzupelni w stylu c '\0' ;)
wishram [ lets dance ]
rzeczywiscie teraz dziala, dzieki :)
PAW666THESATAN [ PIF PAF ]
Witam, pierwszy raz zaglądam do tego wątku ;))
Potrzebuję pomocy.. i to ogromnej. Czy ktoś mógłby mi opisać zagadnienie kolejkowania (stosu?) LIFO ? Muszę wykonać projekt, który na tym bazuje, ale nie mam zielonego pojęcia co to jest, z czym to się je i jak to stosować (jestem raczej cienki w c++), więc jeżeli jakaś dobra duszyczka mogłaby mi przybliżyć problem zagadnienia LIFO byłbym ogromnie wdzięczny :)
Mile widziany jakiś przykład :) Thanks from the mountain ! :)
EDIT: aha, interesuje mnie wytłumaczenie problemu w języku c++ strukturalnie :)
ronn [ moralizator ]
LIFO to znaczy :
Last In First Out. Czyli działa jak stos. Element, który wkładasz jako ostatni, zdejmujesz jako pierwszy.

PAW666THESATAN [ PIF PAF ]
Oki, dzięki wielkie Ronn, na pewno się przydadzą te informacje :) Mam jeszcze kilka tygodni na zrobienie projektu, więc jak co to będę pytać :))

slowik [ NightInGale ]
c++ i strukturalnie ? to nie ta bajka ;-)
PAW666THESATAN [ PIF PAF ]
Slowik - wiem, ale cóż poradzę... taki mam program studiów, a tam jest strukturalne :/

hotDog [ Outsider ]
Mam pytanie o Delphi (wersja 6), a raczej o pascala...
kod:
type
Ikonka = class
public
grafika: TImage;
guzik: TButton;
constructor Create;
procedure zaladuj;
end;
moje pytanie:
jak zdefiniować (w kodzie oczywiście) np. metodę onClick (reakcja na kliknięcie) dla TButton będącego elementem tej klasy?

hotDog [ Outsider ]
OK, z powyższym problemem sobie poradziłem.
Teraz mam kolejny :-)
Mam klasę Ikonka, w niej się mieści obrazek (klasy TImage) oraz przycisk (TButton). Chciałbym, aby po kliknięciu w przycisk cały obiekt typu Ikonka (czyli obrazek oraz przycisk) były niszczone. Czyli: mam obrazek a nad nim przycisk "x", gdy się kliknie w ten przycisk to usuwa się obrazek wraz z jego przyciskiem "x".
Mój kod niestety nie działa tak jak należy (wyskakuje błąd naruszenia pamięci) :-/ najgorsze jest to, że nie wiem gdzie popełniam błąd. Może ktoś z was coś wychwyci.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, GifImage;
type
TForm1 = class(TForm)
Image1: TImage;
Label1: TLabel;
procedure FormCreate(Sender: TObject);
procedure Image1Click(Sender: TObject);
procedure klikPrzycisku(Sender: TObject);
private
Private declarations
public
Public declarations
end;
type
Ikonka = class
private
grafika: TImage;
guzik: TButton;
public
constructor Create;
destructor Destroy; override;
procedure testuj;
end;
var
Form1: TForm1;
implementation
$R *.dfm
constructor Ikonka.Create;
begin
grafika := TImage.Create(Form1);
grafika.Picture.LoadFromFile('bobas.gif');
grafika.Parent := Form1;
grafika.Left := Mouse.CursorPos.X - Form1.ClientOrigin.X;
grafika.Top := Mouse.CursorPos.Y - Form1.ClientOrigin.Y;
guzik := TButton.Create(Form1);
guzik.Parent := Form1;
guzik.Width := 20;
guzik.Height := 20;
guzik.Caption := 'X';
guzik.Left := grafika.Left + grafika.Width - 20;
guzik.Top := grafika.Top - 20;
end;
destructor Ikonka.Destroy;
begin
inherited Destroy;
//grafika.Free;
//guzik.Free;
self.grafika.Free;
self.guzik.Free;
inherited;
end;
procedure Ikonka.testuj;
begin
Form1.Label1.caption := 'test';
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Image1.Transparent := true;
Image1.Picture.LoadFromFile('mapa_polski.gif');
Form1.DoubleBuffered := true;
end;
procedure TForm1.Image1Click(Sender: TObject);
var i: Ikonka;
begin
i := Ikonka.Create;
i.guzik.OnClick := klikPrzycisku;
end;
procedure TForm1.klikPrzycisku(Sender: TObject);
begin
Label1.Caption := TButton(Sender).Caption;
Ikonka(Sender).testuj;
Ikonka(Sender).Free;
end;
end.
peanut [ kriegsmaschine ]
byc moze ktos orientuje sie z czego powinienem skorzystac implementujac lista zbudowana na template'ach, a konkretnie jak przekazywac do metody dodajacej argumenty, ktore beda dopasowywane do aktualnego typu przechowywanych elementow?
mam przeczucie, ze chodzi o allocator<T>, ale nie wiem konkretnie jak go uzywac?
slowik [ NightInGale ]
zasada taka sama jak przy reszcie template <typ> zmienna ;-)
peanut [ kriegsmaschine ]
nie bardzo rozumiem te odpowiedz bo wiem jak uzywac template, nie wiem jak wymusic w templacie alokacje pamieci w konstruktorze pod dany typ T, jednoczesnie przekazujac tylko dane potrzebne do skonstruowania tego obiektu T;
template <class T >
class klasa
T* ptrT;
public:
klasa(allocator<T> c)
ptrT = new T(c);
~klasa () delete ptrT;
;
a w main cos jakby:
klasa<int > obiekt(25) ;
oczywiscie jako T intersuje mnie przekazanie dowolnego obiektu z dowolnymi parametrami konstruktora. czy to w ogole mozliwe?

hotDog [ Outsider ]
Ja dalej drążę temat Delphi...
Nie wiecie może jak zrealizować takie coś w postaci:
Button we własnym zdarzeniu OnClick ma wywołanie swojego własnego destruktora...
czyli jak wywołać destruktor buttona po jego kliknięciu? Jak to wykonać?
używam do tego Free();
KogUteX [ cziken ]
Napisz program, który wczytuje z wejścia ciąg liczb i wypisuje go w odwróconej kolejności.
Wejście
Na wejście programu podana zostanie pewna niewielka ilość liczb całkowitych rozdzielonych spacjami.
Wyjście
Na wyjściu ma się pojawić ciąg liczbowy, którego i-ta pozycja jest równa (n+1-i)-tej liczbie wczytanej z wejścia, gdzie n to ilość wczytanych liczb. Poszczególne liczby należy rozdzielić spacjami.
Przykład
Wejście:
1 2 3
Wyjście:
3 2 1
Tak z nudów rozwiązuje sobie zadania i natknąłem się na śmieszny problem. Zadanie jest banalne, ale jak to zakodować, by program wczytał dane i przeszedł do dalszych operacji, tzn. jak mu dać znać, że już nie powinien oczekiwać na kolejne liczby. Prosiłbym o odpowiedź w prostym C :) Dzieki
nagytow [ Firestarter ]
Kodu ci jeszcze nie podam, powiem tylko, ze liczby sie skoncza, jak lancuch znakow sie skonczy ;)
Arxel [ Legend ]
Macie jakieś stronki z zadaniami właśnie? :) Bo te co są we wstępniaku nie zawierają żadnych zadań.
I mam pytanie. Chciałbym zrobić przypisanie literom.
a=b
b=c
c=d
etc
litery po prawej stronie wpisywałem w systemie szesnastkowym. I teraz mam problem.
Jak zrobić aby program automatycznie w locie zmieniał litery po wpisaniu jakiegoś słowa?
Np.
Podaj tekst:
abc
Po zmianie: bcd
Regis [ ]
Ty to robisz w C? Zrob sobie tablice/liste i uzywaj dziesietnych kodow ascii do rozpoznawania i zamiany znakow. Pobierasz znak, zapisujesz kod ascii w jakiejs zmiennej (np. 'a') a potem tylko w petli (licznikiem jest 'x') zamieniasz znak po znaku:
tekst_docelowy[x] = tablica_zamiany_znakow[a]
Zeby rozwiazanie bylo optymalne, dobrze by bylo, zeby tablica nie zaczynala sie od 0 i ciagnela do stu ilus, ale od kodu pierwszej litery alfabetu i miala tyle elementow ile liter ma alfabet. Oczywiscie tak latwo nie ma, nie mozna indeksowac od 65 wiec lepiej sobie zrobic do tego osobna klase, przeciazyc operator [] i kazac mu automatycznie zmniejszac podany indeks o 65. Dzieki czemu podajac mu w indeksie 65 dostaniesz 0, czyli pierwszy element Twojej tablicy, 'pod ktorym' bedzie siedziec zamiennik litery A. Dzieki temu tablica bedize miala tylko tyle el. ile trzeba.
Oczywiscie jesli przypisanie ma miec postac taka jak podales (i zadna inna) to lepiej po prostu dodawac 1 do kodu ascii danego znaku i wtedy tylko przy 'z' trzeba bedize 'recznie' zamienic kod na 65.
Dobrze zrozumialem, ze o cos takiego Ci chodzi?
Co do zadan:

Arxel [ Legend ]
Ale ja głupi... zapomniałem napisać, że chodzi o C++, a nie C :D
Znalazłem coś podobnego na necie...
Opiera się to o przesunięcie, ale kurde tam są takie rzeczy, którysz jeszcze nie doczyałem :)
Długa nauka przede mną. Choć już dawno podchodziłem do próby napisania własnego programu kodującego :D (gorzej by było z deszyfratorem ale kit... hehe)
edit: I dzięki za zadania :)
Regis [ ]
Pytajac czy chodzi o C, mialem na mysli C/C++ - tym bardziej ze napisalem o klasach, a to juz domena C++ :) Zasada pozostaje ta sama.
master53 [ PSP User - Sony Fan ]
Może mi ktoś powiedzieć, jak do cholery włączyć debuger w Visualu C++ 2005 Express Edition ? Chcę sobie skompilować programik, a przyciski debugera są stale niedostępne.
Edit: -= Nieaktualne =-
maev [ immamentna smuga ]
Czy moglibyście mi polecić coś na kształt QT ale dla czystego C?
Rzeczywiście nie ma prostszych biblotek niż dłubanie w winapi?

slowik [ NightInGale ]
wxwindows/wxwidgets ,gtk, opengl
dawideo [ Legionista ]
Witam i pozdrawiam wszystkich. Muszę napisać program (a jestem bardzo początkujący) w Cktóry będzie się składał z kilku modułów. Może być to najprostszy pod słońcem. Więc niech to będzie program np do obliczania pól figur, (może dodam jeszcze objętość i więcej figur). Oto kod programu:
#include <stdio.h>
#include<stdlib.h>
int main ()
int a, b, h, P;
char klawisz;
puts("Oblicz pole:n");
puts("1 - Prostokąta:");
puts("2 - Trojkata:");
puts("3 - Trapezu");
scanf("%c", &klawisz);
system("cls");
switch (klawisz)
case '1':
printf ("Podaj bok a: ");
scanf ("%d", &a);
printf("Podaj bok b: ");
scanf ("%d", &b);
P=a*b;
printf("Pole prostokata wynosi:n%dn" ,P);
break;
case '2':
printf ("Podaj bok a: ");
scanf ("%d", &a);
printf("Podaj wysokosc h: ");
scanf ("%d", &h);
P=(a*h)/2;
printf("Pole trójkąta wynosi:n%dn" ,P);
break;
case '3':
printf ("Podaj bok a: ");
scanf ("%d", &a);
printf ("Podaj bok b: ");
scanf ("%d", &b);
printf("Podaj wysokosc h: ");
scanf ("%d", &h);
P=((a+b)*h)/2;
printf("Pole trapezu wynosi:n%dn" ,P);
break;
default:
puts("Niewłasciwy parametr");
system("pause");
return 0;
I teraz jak mam go podzielić na te moduły i napisać makefile do tego??? Szukałem w google ale mało co znalazłem (nic nie rozumiem). A może wogóle ten program jest zły. Jeśli tak to teżmnie poprawcie
Z góry dziękuje za pomoc

slowik [ NightInGale ]
moduly w postaci plikow naglowkowych czy moze czegos na wzor bibliotek ?
dawideo [ Legionista ]
Pewnie raczej nagłówki. tak mi się zdaje (czytałem troszke po necie) ale i tak bardzo mało wiem i nie rozumiem
Chodzi mi o to że napisałem powyższy program, rozszeże go o powiedzmy obliczanie objętości + dodam kilka figur i może coś jeszcze. Ale program narazie jest w 1 pliku a ma być w kilku. Ja jak już wspomniałem jestem zupełny laik w tej dziedzinie i dopiero raczkuje.
hotDog [ Outsider ]
Z kodów w poszczególnych case'ach zrób funkcje. I te funkcje osadź w oddzielnych plikach *.h (deklarację funkcji) i *.c (definicję funkcji)
I potem pliku głównym w case'ach po prostu wywołuj te funkcje.
potem wpisujesz g++ *.c -o program
(g++ - to do c++, nie wiem jak w przypadku czystego c)
Tak na szybko, jeśli o to chodzi oczywiście.
dawideo [ Legionista ]
tak dokładnie o coś takiego chodzi:).Czyli poprostu stworzyć z tego funkcjie. potem stworzyć plik z rozszerzeniem *.h gdzie będą deklaracje, i plik *.c z wywołaniem funkcji. Jeszcze coś powinienem wiedzieć???
Pirix [ ! KB ! Góry górą ]
Przy kompilacji czystego c używasz oczywiście gcc zamiast g++.
hotDog [ Outsider ]
dawideo --> Tak, z tym, że w plikach *.c piszesz tylko definicje funkcji, a wywołujesz je w pliku głównym (w tym ze switch). To chyba wszystko co powinieneś wiedzieć. Zresztą wszystko wyjdzie w praniu. Dodatkowo pliki *.h możesz zabezpieczyć przed ponownym includowaniem umieszczając ich kod pomiędzy dyrektywami:
#ifndef _ENGINE_H_
#define _ENGINE_H_
// tutaj Twój kod
#endif
_ENGINE_H_ - to oczywiście tylko przykład, najlepiej zmień używając w tym miejscu nazwy pliku *.h, w tym przypadku jest to kod pliku engine.h
Pirix --> Właśnie, dzięki.
wishram [ lets dance ]
mam taką funkcję
int suma (char tablica1[200], char tablica2[200])
........
zwraca mi ona tablice powiedzmy char wynik[200];
wczytuje dwie tablice tablica3 i tablica4
potem chcę wpisać to tablicy char oto_suma[200] to co mi wyjdzie z funkcji:
oto_suma = suma(tablica3, tablica4);
ale to nie działa
próbowałem jeszcze
strcpy(oto_wynik, suma(tablica3, tablica4);
ale nadal nie mam wyniku w oto_wynik
jak to zrobić?
wishram [ lets dance ]
up
jak funkcja zwraca mi tablicę znaków char to jak mam ją przypisać do zmiennej?
peanut [ kriegsmaschine ]
tablicy nie zwrocisz, co najwyzej jakis wskaznik
wishram [ lets dance ]
mam tablice char wynik[200];
a na końcu funkcji
return wynik;
to wychodzi że zwraca i działa jak wezmę od razu printf("%s", i tu wywołam funkcję)
ale jak to zapisać
peanut [ kriegsmaschine ]
moze dziala, ale z konwersja niejawna.
zrob sobie tak:
char* f ( char* tab1, char* tab2 ) ‹
return tab3;
›
char* ptr = f(a,b);
tylko musisz zaalokowac pamiec w funkcji
ps. tam nie zwracasz z funkcji czasem jakiegos autmatycznego obiektu, ktory znika po wyjsciu z fnkcji?
wishram [ lets dance ]
lol zauważyłem że miałem takie coś:
int funkcja(char tab1[200], char tab2[200])
..........
return wynik;
czyli zwracałem tablice char z funkcji int..! O_O czemu to mi działało?
wypisywałem wartość int przez printf("%s", ..) i też działało
a jak teraz chce poprawić i int zamieniam na char to program sie wiesza he?

slowik [ NightInGale ]
poczytaj czlowiek o wskaznikach ;-)
Regis [ ]
w ktorym miejscu niby zwracales tablice? Bo ja w tym kodzie widze tylko ze zwracasz wskaznik na tablice, a odbierasz go jako pojedynczy int...

wishram [ lets dance ]
slowik -
z chęcią tylko, że muszę to zrobić na jutro, a jeszcze mam do napisania parę rzeczy
na razie muszę to zrobić trochę na odwal, żeby działało a potem postaram się co nieco pojąć
btw. mogę sobie poczytać o wskaźnikach z książki o C++, jak programuje w C (są różnice?)
slowik [ NightInGale ]
w c++ sa wygodniejsze referencje ale wskazniki dzialaja tak samo i sie tak samo uzywa :-)
robisz tak:
char * funkcja(char tab[200]) return tab
w main
char *tab
tab=funkcja(costam)
i jest cacy
paladin [ Konsul ]
mam mala prosbe
kumpel mnie ciagle meczy zebym mu napisal skrypt w c++ a ja nie znam c++...
potrzebuje skrypt który zlicza liczby parzyste od 1 do 10
jakby ktos bylby taki mily :) to bylbym wdzieczny
wishram [ lets dance ]
slowik ===>
zrobiłem i jest ok
ale czy moge teraz działać na tym wskaźniku tab zmieniać go dodawać do niego znaki itp.
albo dać jako argument do funkcji
funkcja(tab);?

hotDog [ Outsider ]
paladin --> to powiedz kumplowi, że nie znasz c++. Błyśnij dobrą poradą i odeślij go do google'i. Nikt Ci skryptu w c++ nie napisze.
peanut [ kriegsmaschine ]
na wskazniku typu char* mozesz dzialac tak jak na 'tablicy znakow' z uzyciem opreatora[], byle zakresu nie przekroczyc bo nie wiadomo co sie stanie.
liczby parzyste 1-10
short s = 0;
for (short i=1;i<6;++i)s+=i*2;

slowik [ NightInGale ]
wishram===>w tym przypadku mozesz sie bawic jak tablica :-) poczytaj tez o typach danych w c ... ;-)
hotDog===>w sumie da sie zaimplementowac w c++ jakis jezyk sryptowy i na nim oprzec ten skrypt ;-)
peanut===>jakto nie wiadomo ? :-) program pojdzie w sina dal albo zacznie jakies cuda wypluwac na ekran wlacznie z piszczacymi znakami ;-)
dawideo [ Legionista ]
Czy mógłby mi ktoś pomóc. Zmieniłem (narazie) program na łatwiejszy by poczwiczyć ten make file na prosty kalkulator (dodaje, odejmuje, mnoży i dzieli dwie liczby) podzieliłem na moduły. Ale coś mi nie działa:/ Ote one
calc.c Cytat:
#include <stdio.h>
#include "mat.h"
int main (void)
double a=5, b=20;
printf ("\na =%8.2f\nb = %8.2f\n\n",a,b);
printf ("a + b = %8.2f\n", suma(a,b));
printf ("a - b = %8.2f\n", roznica(a,b));
printf ("a * b = %8.2f\n", iloczyn(a,b));
printf ("a / b = %8.2f\n", iloraz(a,b));
printf ("\n");
return 0;
mat.c Cytat:
/* mat.c*/
#include "mat.h"
double suma (double a, double b)
return a + b;
double roznica (double a, double b)
return a - b;
double iloczyn (double a, double b)
return a * b;
double iloraz (double a, double b)
return a / b;
mat.h Cytat:
#ifndef _MAT
#define _MAT
double suma (double, double);
double roznica (double, double);
double iloczyn (double, double);
double iloraz (double, double);
#endif /* _MAT*/
a oto mój makefile Cytat:
calc: calc.c mat.c mat.h
gcc mat.c calc.c -o calc
czysc
rm -f calc
Czy może ktoś mi pomóc??
slowik [ NightInGale ]
gcc clac.c -o clc i po bolu :] nic wiecej nic mniej

hotDog [ Outsider ]
slowik --> no jakby nie patrzeć masz rację :-)))
dawideo [ Legionista ]
Aha no dobra a może ktoś powiedziećczemu tak:) a nie inaczej. Sorki za głupie pytania ale nadal niezbyt kumam ten make
slowik [ NightInGale ]
dawideo===>co sie napaliles na ten makefile ? jesli juz tak bardzo chcesz to wpisz ta jedna linijke i bedzie cacy
dawideo [ Legionista ]
słowik===> to nie ja się napaliłem tylko mój nauczyciel:P
dawideo [ Legionista ]
Mam pytanko (jeszcze jedno) wkleiłem ten Twój makefile zapisałem jako makefile.mak w konsoli napisałem make a ona mi wyżuca że nie znalazł żadneko makefile::/ potem zauważyłem że zamiast
gcc calc.c-o calc
masz
gcc clac.c-o clc
Poprawiłem to ale znowu to samo:(
P.s
czytałem gdzieś że makefile musi mieć cel, reguły i komendy. Wiem że się nie znam:) ale ja tu widze tylko komendy:]
dawideo [ Legionista ]
Aha i może ta informacja pomoże. W konsoli podaje ścieżke do katalogu z programem
i gdy znajduję się już w tym katologu wydaje komende make a konsola mi na to:
No targets specified and no makefile found. Stop.
:(
dawideo [ Legionista ]
Hmm chwilke się pobawiłem. I teraz konsola wywala mi coś takiego:/
awideo@dawideo:~/Desktop/kalkulator$ make calc
cc calc.o -o calc
calc.o: In function `main':
calc.c:(.text+0x4b): undefined reference to `suma'
calc.c:(.text+0x6d): undefined reference to `roznica'
calc.c:(.text+0x8f): undefined reference to `iloczyn'
calc.c:(.text+0xb1): undefined reference to `iloraz'
collect2: ld returned 1 exit status
Sorki że tak męcze (pewnie niektórzy już mnie wyklinają:]) ale dla mnie to naprawde ważne jest:/
hotDog [ Outsider ]
poczytaj:
oraz:
pamiętaj i dokładnie czytaj to co jest napisane wszędzie a na pewno się przydadzą te linki :-)
zwróć uwagę na:
UWAGA Przed komendą musi obowiązkowo wystąpić znak tabulacji.
patrząc na przykład z tego drugiego linka, po linijce
hello: hello.c aux.c
powinien nastąpić enter oraz tabulator i dopiero komenda:
gcc hello.c aux.c -o hello
Oraz zmień pliku nazwę na "makefile". Wywołujesz kompilację poleceniem "make" w konsoli.
EG2006_43991898 [ Nadworny krasnal ]
Poszukuje kursu delfi dla laików dopiero zaczynam zabawę z tym....
Pirix [ ! KB ! Góry górą ]
dawideo---> spróbuj kompilować z dyrektywą -c. powinno pomóc. Czyli: gcc -c -o nazwa.o nazwa.c
dawideo [ Legionista ]
Pirix--> próbowałem i tym sposobem na to samo wychodziło.
Troszku się pobawiłem i wyżuca mi
makefile:8: *** missing separator. Stop.
hotDog--> dzięki ten drugi ling znałem i według niego robiłem:)
Dziwi mnie tylko to że jak mam to wszystko w jednym pliku to działa bez problemowo. Dopiero jak rozbiłem na moduły to zaczeło się chrzanić:/ No nic idę męczyć dalej:)
dawideo [ Legionista ]
Dobra chłopaki dzięki wam za waszą cierpliwośc dla nowicjusz, program działa bez zarzutu. Przy najbliższym spotkaniu stawiam kolejke ;)
dawideo [ Legionista ]
To znowu ja słuchajcie wczoraj program działał wyśmienicie dziś chciałem go uruvhomić i lipa nie działa:/ nie wiem czemu:/
Pisze w Linuxie w narzedziu zwanym GEANY i jak prubyje uruchomić program na samym dole wyświetla mi
"Nie udało się wykonanie /home/dawideo/Desktop/calc/calc (sprawdź czy jest już zbudowany)
O co chodzi?? Przecież nie jest uruvhomiony dopiero chce go uruchomić i co to znaczy że może być zbudowany??
slowik [ NightInGale ]
do czego jest ten geany ? "./calc" - tak powinien dzialac
dawideo [ Legionista ]
geany To coś takiego jak w Windowsie Borland, lub Dev c++, czy inne do pisania programów, Na linuxie mam jeszce Kdevelop (ale jakoś mi nie pasi) Czyli piszesz tam program:)
dawideo [ Legionista ]
"./calc nie działa:/ znów wyrzuca mi:
cc cal.o -o cal
cal.o: In function `main':
cal.c:(.text+0x4b): undefined reference to `suma'
cal.c:(.text+0x6d): undefined reference to `roznica'
cal.c:(.text+0x8f): undefined reference to `iloczyn'
cal.c:(.text+0xb1): undefined reference to `iloraz'
collect2: ld returned 1 exit status
make: *** [cal] Error 1
Ale nie rozumiem przecież wczoraj działał:/ a nic od wczoraj nie zmieniałem
slowik [ NightInGale ]
hymm a kompilowales za pomoca gcc czy makefile ? po gcc jest tak samo ? moze pliki sie 'przeterminowaly' ;-)
dawideo [ Legionista ]
Hmm co to znaczy przeterminowały:] przez gcc tak samo. Dla mnie dziwne że wczoraj działało a dziś nie tylko ta informacja wyskoczyła o tym "zbudowaniu"

slowik [ NightInGale ]
zmien nazwy plikow i skompiluj w innej lokalizacji recznie ;-)
dawideo [ Legionista ]
kurcze no nie działa:(
EG2006_43991898 [ Nadworny krasnal ]
post 238 plz help me

YackOO [ Konsul ]
Witam
Od razu zastrzegam, że w programowaniu jestem ultra-lamą i do zabawy w te klocki zmusza mnie jedynie przedmiot na uczelni
Muszę na zaliczenie stworzyć program "Gra w życie", pewnie sporo osob o tym slyszalo. Program pisany jest w języku Pascal (uzywam Delphi 7).Mam to robic powolnymi kroczkami, na razie mam zrobione takie cos:
program zycie;
‹$APPTYPE CONSOLE›
uses
SysUtils;
const rozmiar_planszy=20;
type plansza=array[1..20,1..20] of char;
var t:plansza;
procedure wypisz_tab(var tab:plansza);
var i,j:integer;
begin
for i:=1 to rozmiar_planszy do
begin
for j:=1 to rozmiar_planszy do
write (tab[i,j]);
writeln;
end;
end;
begin
wypisz_tab(t);
readln;
‹ TODO -oUser -cConsole Main : Insert code here ›
end.
Musze teraz zrobić taki myk, żebym mógł edytować plansze i wpisać w interesujace mnie miejsca punkty X. nie musze na razie określać zasad w samej grze itp. Chodzi o to, zeby nie bylo pustej tablicy po skompilowaniu, tylko zeby dodac tam kilka X'ow i zeby miejsca tych X'ow mozna bylo zmieniac. Nie trzeba zadnego ladowania z pliku itp (na razie). Nie wiem w sumie jak to zrobic i tutaj zwracam się do Was :)
slowik [ NightInGale ]
dawideo===>podeslij mi kody zrodlowe obejrze je...(mail pod nick'iem)
EG2006_43991898===>delphi ? naprawde musisz sie nudzic ... wybierz cos uzyteczniejszego i przyjemniejszego ;-)
YackOO===>nie rozumiem co tak ludzi na kierunkach nieinformatycznych katuja tym pascal'em ... o tablice nie musisz sie martwic sa one dynamicznie alokowane wiec da sie zyc ;-)
ale od poczatku:
1.kartka i dlugopis(cokolwiek do pisania) w reke
2.projektujesz po kolei co ma sie dziac
3.projektuje interface(czyt do czego chcesz miec dostep)
4.rozwijasz poszczegolne galezie funkcji spelnianych przez interface
5.zaczynasz kodowac/zadawac pytania w razie problemow
bez przejscia takiej drogi ciezko bedzie ci uzyskac odpowiedz bo pytania typu 'jak powinien wygladac kod zrodlowy programu ktory mam napisac' sa conajmniej nie na miejscu
dawideo [ Legionista ]
słowik---> już Ci wysyłam
slowik [ NightInGale ]
dawideo===>mi wydaje sie ze makefile ma odwrotna kolejnosc ... wieczorem odpale linux'a i tam sie pobawie ... :-)
dawideo [ Legionista ]
Hmmmm kurcze nadal nie działa Kompilacja konczy się sukcesem a jak chce uruchomić program to nie działa:(
słowik--> program uruchomiłem u kolegi i działał więc powinno być dobrze ale jaka może być przyczyna że u mnie nie działa???
slowik [ NightInGale ]
moze wklep make clean ? jakies pliki tymczasowe moze zostaly
dawideo [ Legionista ]
To już próbowałem i nic:/ nie dało. Z rozpaczy zrobiłem reinstalke Ubuntu (głupota) ale nawet to nic nie dało:/:/:/
dawideo [ Legionista ]
słowik--> masz moje pliki słuchaj jak wkleje zawartość pliku mat1.c do pliku kalk.c na końcu kodu to wszystko działa bez zarzutu Natomiast jak próbuje to "normalnie" wywala mi
cc kalk.o -o kalk
kalk.o: In function `main':
kalk.c:(.text+0x4b): undefined reference to `suma'
kalk.c:(.text+0x6d): undefined reference to `roznica'
kalk.c:(.text+0x8f): undefined reference to `iloczyn'
kalk.c:(.text+0xb1): undefined reference to `iloraz'
collect2: ld returned 1 exit status
make: *** [kalk] Error 1
Mi to osobiście nic nie mówi ale może Tobie powie
EG2006_43991898 [ Nadworny krasnal ]
EG2006_43991898===>delphi ? naprawde musisz sie nudzic ... wybierz cos uzyteczniejszego i przyjemniejszego ;-)
Wiem dlaczego to biorę ale niechce dostać po ranku wiec tu nie napisze :D
dawideo [ Legionista ]
słowik już się nie zawracaj sobie głowy wystarczyło dodać opcje "-l". Ale dzięki za pomoc przy okazji wiele się nauczyłem:)
EG2006_43991898 [ Nadworny krasnal ]
Dobra niech będzie biorę się za c++ ale jest jakiś polski kompilator?
Pirix [ ! KB ! Góry górą ]
Proponuje Dev-Cpp
slowik [ NightInGale ]
polski kompilator ? :-) jakby gcc nie wystarczylo ... ale pewnie jakies polskie sa
EG2006_43991898 [ Nadworny krasnal ]
e dobra mam dev-c++ 5 ma polska wersje ale inny problem wpisałem
#include <iostream.h>
int main()
cout << "Czolem, ludziska!";
I jak to otwieram od razu mi się zamyka :/
slowik [ NightInGale ]
sie dziwie ze sie to skompilowalo
1.brakuje return 0
2. #include<iostream> bez .h
3. program nie powinien sie zatrzymywac na koncu bez wyraznego zyczenia programisty np system('PAUSE')
EG2006_43991898 [ Nadworny krasnal ]
w8 w8 w8 nie tak szybko
1, gdzie to wpisać
2, to łapie
3, znowu dużo się dowiedziałem.
i laików :D
EDIT: mam już (ctrl+ f XD)
.Jacek 99. [ Senator ]
Znacie dobre zrodla o programowaniu generycznym? najlepiej w C#:P
Znajomy pisze licencjat o tym a dobrych materialow ma jak na lekarstwo.
EG2006_43991898 [ Nadworny krasnal ]
Dobra wam to powie więcej niż mi....
slowik [ NightInGale ]
poszukaj sobie takiej ksiazki jak symfonia c++ ;-)
brakuje srednikow i po #include
using namespace std;
DarkStar [ magister inzynier ]
wez wywal tego syfnego deva i zainstaluj sobie visiual studio 2005
slowik [ NightInGale ]
Dark===>bo visual pozwala na wieksza ilosc niezgodnosci ze standardami ? poprawnie zapisany kod powinine dzialac na wszystkim ;-)
DarkStar [ magister inzynier ]
bo jest latwe, proste i przyjemne:) chlopak pisze hello world przeciez:)
zreszta w tym programie jest blad, powinno byc system("pause");

slowik [ NightInGale ]
w sumie :-) o srednikach pisalem :P
ja ostatnio pisze na linux'a uzywaja nano/mcedit i recznie wszystko kompilujac ... nie jest zle ;-)
Regis [ ]
Mam pytanie - mialem do napisania algorytm rozwiazujacy problem plecakowy. Zadanie samo w sobie trywialne, ale okazalo sie po fakcie (po tym jak juz napisalem program), ze musze nie tylko podac max. wartosc plecaka, ale takze elementy wchodzace w jego sklad. Jako ze zadanie rozwiazalem - nie wiedzac jeszcze o tym wymogu - na tablicy jednowymiarowej (bo niby czemu nie - po co marnowac wiecej miejsca), mam teraz problem, a w zasadzie pytanie: czy dla tablicy jednowymiarowej przy problemie plecakowym mozna przeprowadzic w jakis sposob backtracking? Oczywiscie chodzi w gre dorzucenie jakichs flag, czy nawet calej tablicy pamietajacej jakies dane wskazujace na uzyte przedmioty - grunt zebym nie musial pisac algorytmu od nowa dla tablicy dwuwymiarowej, bo zwyczajnie mi sie nie chce :P
slowik [ NightInGale ]
Regis===>w jaki sposob zaimplementowales ten algorytm ? bo bez tego raczej trudno zgadnac gdzie upchnac ten 2 wymiar
jesli ten 2-gi wymiar to flagi to moze upchaj funkcje zwracajaca wartosc 'cegly' ? w miejsce starego podstawienia
Regis [ ]
Standardowa implementacja tego problemu na jednowymiarowej tablicy - 'ksiazkowa', powiedzialbym nawet. Chocby taka jak tu: - pod koniec jest jak to zrobic dla tablicy jedno wymiarowej.
dawideo [ Legionista ]
Witam ponownie.
Szukam odpowiednika gotoxy (x,y) dla C. pisze pod Linuksem Czym moge to zastąpić
Ncurses???? a czy jest coś jeszcze??
Kijano [ Generaďż˝ ]
zrob wlasna funkcje gotoxy
np.
int gotoxy( int x, int y )
for( y = y; y >= 0; y-- )
printf("\n");
for( x = x; x>=0; x-- )
printf(" ");
dawideo [ Legionista ]
Dzięki funkcja gotoxy bardzo mi pomogła mam jeszcze jeden mały problem. Chodzi mi o funkcje "rysuj"
wywala mi : " 'rysuj' was not declared in this scope" a oto kod
#include <stdio.h>
#include <stdlib.h>
int gotoxy( int x, int y )
void rysuj(int xst, int yst, int szer, int wys, char znak);
int main()
int x, y;
char znak = '*';
char klawisz;
int c, d;
x=10; //rozmaiar poczatkowy figury
y=10;
c= 15;
d= 15;
do
system("clear");
rysuj(x, y, c, d, znak);
klawisz = getchar();
if((klawisz >='0')&&(klawisz<='9')) znak = klawisz; //zmiana znaku
if(klawisz==0)
klawisz= getchar();
switch(klawisz)
case 'K': if(x>1) x--; break; //przesuwanie figury
case 'M': if((x+2*c)<79) x++; break;
case 'P': if((y+2*d)<50) y++; break;
case 'H': if(y>1) y--; break;
if(klawisz== 'a') //zmiana rozmiaru figury
if(c>5) c--;
if(klawisz== 'd')
if(c<30) c++;
if(klawisz== 's')
if(d>5) d--;
if(klawisz== 'w')
if(d<20) d++;
while (klawisz!=27);
return 0;
int gotoxy( int x, int y )
for( y = y; y >= 0; y-- )
printf("\n");
for( x = x; x>=0; x-- )
printf(" ");
void rysuj(int xst, int yst, int szer, int wys, char znak) //rysowanie figury
int a;
int x;
gotoxy(xst, yst);
for(a=0; a<szer; a++)
printf (&znak);
gotoxy(xst+ szer, yst+ 2*wys);
for(a=0; a<(szer+1); a++)
printf (&znak);
for(a=0; a<wys; a++)
gotoxy(xst, yst+a);
printf (&znak);
for(a=0; a<wys; a++)
gotoxy(xst+ 2*szer, yst+ wys+ a);
printf (&znak);
if (szer>=wys)
for(x=xst; x<(xst+ szer); x++)
gotoxy(x, (-wys*(x-xst)+ szer*(yst+ wys))/szer);
printf (&znak);
for(x=(xst+ szer); x<(xst+ 2*szer); x++)
gotoxy(x, ((-wys*(x-xst-szer))+szer*(yst+ 2*wys))/szer);
printf (&znak);
for(x=(xst+ szer); x<(xst+ 2*szer); x++)
gotoxy(x, ((wys*(x-xst-szer)+szer*yst))/szer);
printf (&znak);
for(x=xst; x<(xst+ szer); x++)
gotoxy(x, (wys*(x- xst)+szer*(yst+ wys))/szer);
printf (&znak);
if (szer<wys)
for(a=yst; a<(yst+wys);a++)
gotoxy((-szer*(yst+wys-a)+wys*(xst+ 2*szer))/wys, a);
printf (&znak);
for(a=(yst+ wys); a<(yst+ 2*wys); a++)
gotoxy((szer*(yst+2*wys-a)+wys*(xst+szer))/wys, a);
printf (&znak);
for(a=(yst+ wys); a<(yst+ 2*wys); a++)
gotoxy((wys*xst+szer*(a-yst-wys))/wys, a);
printf (&znak);
for(a=yst; a<(yst+ wys); a++)
gotoxy((szer*(yst+wys-a)+wys*xst)/wys, a);
printf (&znak);
dawideo [ Legionista ]
Oki poradziłem sobie:) już działa no prawie bo zamiast rysować mi figure się uruchamia i jakaś kropka przez chwile lata po ekranie a potem czysty ekran. O co chodzi?????
P.s Program przerobiłem z C++ na C (może ta informacja pomoże:)

maVes [ Generaďż˝ ]
dawideo - nie chce mi się analizować kodu tej funkcji, ale wydaje mi się że w tym wypadku taka postać funkcji gotyxy nie spełni swojego zadania, bo ona działa na takiej zasadzie, że wszystko przed miejscem w które wskakujesz "zasłaniają" spacje i entery.
Druga sprawa to to, że takie wywołania funkcji
gotoxy(5,5);
gotoxy(1,5);
Spowoduje przeskok w punkt (1,10). Wyjściem byłoby czyszczenie ekranu, ale wtedy nadal pozostanie problem z zamalowywaniem.
Poza tym wypisywanie dużych ilości znaków na ekran konsoli samo w sobie jest wolne, czego dowodem jest to latanie kropki.
[edit]
Znalazłem takie coś, pisze coś o Linuxie, więc możesz spróbować :)
dawideo [ Legionista ]
Dzięki bardzo :) Figura już jest na ekranie:) teraz tylko musze wykombinować jak ją przesówać ( w c++ działało) oraz zwiększanie i zmniejszanie no i ogranicznia do brzegów ekranu:)
dawideo [ Legionista ]
Jaki jest odpowiednik sqrt (C++) w C i w jakiej biblotece się znajduje???
Sir Skull [ Charr Shaman ]
dawideo --> Również sqrt. Znajduje się w math.h
dawideo [ Legionista ]
Hmm tak też myślałem ale program mi nie działa:/ To też się spytałem. Więc możę ktoś powie w czym tkwi problem??
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[])
double a,b,c;
double delta;
double x1,x2;
printf( "\nWczytywanie trójmianu ax^2 + bx + c =0");
printf (" Podaj a");
scanf ("%lf", &a);
printf("Podaj b");
scanf ("%lf", &b);
printf("Podaj c");
scanf ("%lf", &c);
if (a==0)
printf( "\nTo nie jest trójmian kwadratowy\n");
else
delta = b*b - 4*a*c;
if (delta>0)
x1=(-b-sqrt(delta))/(2*a);
x2=(-b+sqrt(delta))/(2*a);
printf( "Trójmian ma dwa miejsca zerowe:");
printf ("x1=%lf\n",x1);
printf ("x2=%lf\n",x2);
else
if (delta==0)
x1=(-b)/(2*a);
printf( "Trójmian jedno miejsce zerowe:");
printf("x0=%lf\n",x1);
else
printf( "\nTrójmian nie ma miejsc zerowych!\n");
return 0;
Sir Skull [ Charr Shaman ]
Co nie działa? U mnie działa :)
dawideo [ Legionista ]
Wywala mi undefined reference to `sqrt' biblioteke math mam zainstalowaną więc nie mam pojęcia o co chodzi
maVes [ Generaďż˝ ]
dawideo - math.h to tylko nagłówek z deklaracjami funkcji. Błąd 'undefined reference' oznacza że musisz dolinkować odpowiednią bibliotekę (praktycznie w każdym środowisku robi się to nieco inaczej więc z tym Ci nie pomogę).
Chociaż trochę mnie to dziwi, bo wszystkie standardowe biblioteki C/C++ powinny być zintegrowane z każdym środowiskiem tak, że włączamy tylko nagłówek i o resztę się nie martwimy.
dawideo [ Legionista ]
Też mnie to dziwi to też myslałem że trzeba jakąś inną bibloteke dodatkowo:/ A może ktoś ma jakieś pomysły:)
dawideo [ Legionista ]
Już sobie poradziłem Nie wiem od czego to zależy ale wyczytałem iż w takich przypadkach kompiluje się w ten sposób:
gcc -o nazwa_pliku.c -lm nazwa_pliku. (z dodatkowym -lm)
Ale pojawił się kolejny problem otóż tworze makefile i podczas kompilacji wywala mi
"troj.c:7: error: expected identifier or ‘(’ before ‘double’ '
"troj.c:40:3: warning: no newline at end of file"
Oto ten modół:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "def.h"
double (double a, double b, double c, double delta, double x1, double x2)
printf( "\nWczytywanie trójmianu ax^2 + bx + c =0\n");
printf (" Podaj a= ");
scanf ("%lf", &a);
printf("Podaj b= ");
scanf ("%lf", &b);
printf("Podaj c= ");
scanf ("%lf", &c);
if (a==0)
printf( "\nTo nie jest trójmian kwadratowy\n");
else
delta = b*b - 4*a*c;
if (delta>0)
x1=(-b-sqrt(delta))/(2*a);
x2=(-b+sqrt(delta))/(2*a);
printf( "Trójmian ma dwa miejsca zerowe:\n");
printf ("x1= %lf\n",x1);
printf ("x2= %lf\n",x2);
else
if (delta==0)
x1=(-b)/(2*a);
printf( "Trójmian jedno miejsce zerowe:");
printf("x0=%lf\n",x1);
else
printf( "\nTrójmian nie ma miejsc zerowych!\n");
Że niby oczekuje gdzieś "(" ale moim zdaniem jest ok.
DarkStar [ magister inzynier ]
po pierwsze nie mozesz nazwac funkcji double, poniewaz ta nazwa jest zastrzezona dla typu.
po drugie funkcja musi zwracac jakas wartosc, w twoim przypadku nic nie zwraca wiec powinna byc void.
dawideo [ Legionista ]
Chyba źle się zrozumieliśmy:) to jest tylko jeden modół całego programu W main mam funkcję void itp a zresztą sami sprawdzcie na moją czache to powinno działać no ale cóż Oto mój progs:
#include <stdio.h>
#include <stdlib.h>
#include "def.h"
int main ()
puts("Prosty program matematyczny obliczający uk równań, pierwiastki równania kwadratowego");
scanf("%c", &klawisz);
system("clear");
switch (klawisz)
case '1':
puts("Rozwiąż uk równań");
uk (a,b,c,d,e,f,W,Wx,Wy,x,y);
break;
case '2':
puts ("Wyznacz pierwiastki równania");
troj (a,b,c,delta,x1,x2);
break;
default:
puts("Niewłasciwy parametr");
return 0;
#include <stdio.h>
#include <stdlib.h>
#include <tgmath.h>
#include "def.h"
double (double a, double b, double c, double delta, double x1, double x2)
printf( "\nWczytywanie trójmianu ax^2 + bx + c =0\n");
printf (" Podaj a= ");
scanf ("%lf", &a);
printf("Podaj b= ");
scanf ("%lf", &b);
printf("Podaj c= ");
scanf ("%lf", &c);
if (a==0)
printf( "\nTo nie jest trójmian kwadratowy\n");
else
delta = b*b - 4*a*c;
if (delta>0)
x1=(-b-sqrt(delta))/(2*a);
x2=(-b+sqrt(delta))/(2*a);
printf( "Trójmian ma dwa miejsca zerowe:\n");
printf ("x1= %lf\n",x1);
printf ("x2= %lf\n",x2);
else
if (delta==0)
x1=(-b)/(2*a);
printf( "Trójmian jedno miejsce zerowe:");
printf("x0=%lf\n",x1);
else
printf( "\nTrójmian nie ma miejsc zerowych!\n");
Pierwszego modułu (uk równań ) nie wrzuciłem bo działa poprawnie, mam również nagłówek def.h w którym umieściłem deklaracje, więc coś musi być w tym module odpowiadającym za obliczanie trójmianu (tak przynajmniej sądze
DarkStar [ magister inzynier ]
nie czaje tego kodu, to wszystko jest w funkcji main?
dawideo [ Legionista ]
Main to główny (program) w innym pliku znajduje się funkcja licząca uk równań, a w 3 pliku znajduje się funkcja licząca trojmian. Funkcje wybieramy za pomocą case.

DarkStar [ magister inzynier ]
double (double a, double b, double c, double delta, double x1, double x2)
‹
printf( "\nWczytywanie trójmianu ax^2 + bx + c =0\n");
printf (" Podaj a= ");
scanf ("%lf", &a);
printf("Podaj b= ");
scanf ("%lf", &b);
printf("Podaj c= ");
scanf ("%lf", &c);
if (a==0)
printf( "\nTo nie jest trójmian kwadratowy\n");
else
‹
delta = b*b - 4*a*c;
if (delta>0)
‹
x1=(-b-sqrt(delta))/(2*a);
x2=(-b+sqrt(delta))/(2*a);
printf( "Trójmian ma dwa miejsca zerowe:\n");
printf ("x1= %lf\n",x1);
printf ("x2= %lf\n",x2);
›
else
if (delta==0)
‹
x1=(-b)/(2*a);
printf( "Trójmian jedno miejsce zerowe:");
printf("x0=%lf\n",x1);
›
else
printf( "\nTrójmian nie ma miejsc zerowych!\n");
››
Pierwszego modułu (uk równań ) nie wrzuciłem bo działa poprawnie, mam również nagłówek def.h w którym umieściłem deklaracje, więc coś musi być w tym module odpowiadającym za obliczanie trójmianu (tak przynajmniej sądze
›
a ten twor do czego ma sluzyc?:) i czy jest w tym samym pliku co main?
dawideo [ Legionista ]
To jest funkca licząca trojmian, wywołujesz ją w funkcji main za pomocą case "2" (zobacz main) to co wywołujesz za pomocą casse "1" działa dla przykładu wrzuce i ten moduł)
#include <stdio.h>
#include <stdlib.h>
#include <tgmath.h>
#include "def.h"
double uk (double a, double b, double c,double d, double e, double f,double W, double Wx,double Wy,double x, double y)
printf( "Program UK£AD RÓWNAÑ" );
printf( "\nWczytywanie pierwszego równania ax+by=c\n" );
printf( "a = ");
scanf("%lf", &a);
printf( "b = ");
scanf("%lf", &b);
printf( "c = ");
scanf("%lf",&c);
printf( "\nWczytywanie drugiego równania dx+ey=f\n");
printf( "d = ");
scanf("%lf", &d);
printf("e = ");
scanf("%lf", &e);
printf( "f = ");
scanf("%lf", &f);
W = a*e-d*b;
Wx = c*e-b*f;
Wy = a*f-c*d;
if (W==0)
if ((Wx==0) && (Wy==0))
printf( "\nUklad nieoznaczony.\n");
else
printf( "\nUkład sprzeczny.\n");
else
x=Wx/W;
y=Wy/W;
printf( "x=%lf\n",x);
printf("y=%lf\n", y);
Makefile stworzyłem również jak chcesz zobaczyć oto on:
CFLAGS=-g
LFLAGS=
CC=gcc
OBJS=main.o uk.o troj.o
prog: $(OBJS)
$(CC) $(LFLAGS) $(OBJS) -o main
main.o: main.c def.h
gcc -c main.c
uk.o: uk.c def.h
gcc -c uk.c
troj.o: troj.c def.h
gcc -c troj.c
clean:
rm -f *.o
dawideo [ Legionista ]
Oki chłopaki już mam aż dziw że wcześniej tego nie zauważyłem :)
zamiast double (double...)
powinno być double troj (double...)
Sorki za kłopot
DarkStar [ magister inzynier ]
dawideo --->
ten program nie zadziala dopuki nie poczytasz o funkcjach, ich argumentach i zwracanych wartosciach

Father Michael [ Iscariot Paladin ]
Potrzebuje malej pomocy. W C++ jestem totalnym laikiem, ale musze napisac program na zaliczenie zajec na studiach. Kompiluje sobie w Dev-C++ i wszystko idzie swietnie, ale napotkalem na maly problem. Kompilator domaga sie abym dla klasy napisal konstruktor. Szukalem w necie, po roznych tutorialach i wszedzie pisza aby w definicji destruktora wpisac po prostu 'delete zmienna'. Jednak to nie dziala.
Mam klase Kontrahent, ktora zawiera zmienne nazwa, adres, nip. Tworzac nowy obiekt tej klasy, zmiennym tym sa przypisywane wartosci. Jaka powinna byc definicja destruktora?
Kontrahent::~Kontrahent
??
I od razu na wszelki wypadek spytam czy dobrze w ogole go wywoluje:
Kontrahent firma;
firma.~Kontrahent();
Dziekuje z gory za pomoc :)
fanlegii79 [ Generaďż˝ ]
To zalezy jakie zmienne ma twoj obiekt, jeżeli alokowane statycznie (czy jak to zwal) jak np int czy char[256], to nic nie musisz robić. natomiast jak twój obiekt jako zmienne ma wskaźniki na inne obiekty, tworzone za pomoca new w konstruktorze, lub wskazniki do dynamicznie allokowanych tablic mallockiem, to musisz je zwolnic za pomoca delete, albo free, odpowiednio.
Father Michael [ Iscariot Paladin ]
Dwie zmienne typu string.
Konkretnie to wywala mi taki blad:
mam w switch'u umieszczone w jednym z case'ow tworzenie nowego obiektu klasy. Po utworzeniu obiektu standardowo jest break; i kolejny case. Jednak kompilator pokazuje, ze w miejscu, gdzie jest wpisany kolejny case, jest blad: crosses initialization of 'Kontrahent nowy' oraz Warning: destructor needed for 'nowy'.
Tak wiec wnioskuje, ze error zniknie gdy przed breakiem umieszcze destruktor obiektu klasy.
fanlegii79 [ Generaďż˝ ]
Stworz obiekt przed switchem, a w switch tylko moze ustawiaj mu zmienne jakimis metodami.
Do czego służy switch?

Father Michael [ Iscariot Paladin ]
Wcisnalem tworzenie obiektu, razem z paroma innymi linijkami kodu, do funkcji i dopiero ta funkcje wywoluje w switchu. I problem zniknal :|
Dzieki za pomoc :)
dawideo [ Legionista ]
Witam
Mam mały problem, chodzi o to iż chciałbym aby kod działał tak że jak wprowadze błędne dane to aby poprosił mnie bym wprowadził jeszcze raz niestety coś mi nie wychodzi:/ Oto kawałek kodu
printf("Program liczy dwumian Newtona\nPodaj liczby naturalne n oraz k: ");
scanf("%d %d", &n, &k);
if (n >= k)
/* Uwaga, w int miesci sie max silnia(12) */
printf("Dwumian Newtona z n=%d i k=%d wynosi %d\n", n, k,
silnia1(n) / (silnia1(n - k) * silnia1(k)));
else
while (n<k)
printf("n musi byc wieksze lub równe k\n");
return 0;
Zastosowałem tu pętle while ale na ekranie pojawia mi się setki razy napis "n musi byc wieksze lub równe k" A powinnienen tylko raz a potem chciałbym wprowadzić znowu dane
Haron [ the boatman ]
hej
spróbuj tak:
do‹
printf("Program liczy dwumian Newtona\nPodaj liczby naturalne n oraz k: ");
scanf("%d %d", &n, &k);
if (n >= k) ‹
/* Uwaga, w int miesci sie max silnia(12)
printf("Dwumian Newtona z n=%d i k=%d wynosi %d\n", n, k,
silnia1(n) / (silnia1(n - k) * silnia1(k)));
› else
printf("n musi byc wieksze lub równe k\n");
›while(n<k);
return 0;
›
ew. pierwszego printf możesz wyrzucić przed do-while, to program nie będzie powtarzał tego tekstu.
peanut [ kriegsmaschine ]
heil,
zastanawiam sie nad wyborem jakiejs biblioteki do pisania gui, laze po forach w necie, ale generalnie nigdzie nie moge znalezc jakiegos sensownego porownania wxwdigets / qt / gtk.
na podstawie tego co na razie wyczytalem, najlepiej uzywac wxwidgets. w zwiazku z tym, czy ktos moglby na podstawie wlasnego doswiadczenia wypowiedziec sie w tym zakresie? (przeznaczenie to windows)
dawideo [ Legionista ]
Czy może mi ktoś wytłumaczyć jak się rysuje te schematy algorytmów (tak to się chyba nazywa) chodzi mi o to co się składa z prostokatów i odwróconych kwadratów połączonych strzałkami przy których jest tak lub nie:) Wkońcu napisałem ten program (ten składający sięz kilku modułów) i teraz musze każdy moduł rozrysować ale nie mam pojęcia jak to się robi.:/
maVes [ Generaďż˝ ]
peanut - kilka dni temu postanowiłem się zmierzyć z wxWidgetsami. Przeczytałem ze 2 króciutkie tutoriale typu "hello world" i to już wystarczyło żeby dalej radzić sobie z samą dokumentacją :) Pisze się całkiem przyjemnie, chociaż denerwuje strasznie to, że ta biblioteka używa własnych klas, a nie tych z STLa.
Wcześniej wcześniej zetknąłem się tylko z WinApi więc nie mam zbytnio do czego porównywać, ale chyba już zostane przy tym wxWidgets.
dawideo - chodzi Ci o schematy blokowe? Tutaj masz opis:

Król Afryki [ Centurion ]
Nigdy tego nie robiłem - czy ktoś mi wytłumaczy (wystarczy fajny link, może być anglojęzyczny) jak pod WINDOWS dodać dodatkową bibliotekę/API? (można API stosować naprzemiennie z biblioteką, czy to dwie różne sprawy? czytam Wikipedię i z pozoru podobne ;)).
Chodzi mi o jakiś ~ogólny opis, bo rozumiem, że wszystkie biblioteki mają dołączane pliki README? Chyba, że instalka to indywidualna sprawa każdej biblioteki - to jeszcze jestem w stasnie pojąć, tego co umieściłem w ostatnim akapicie - nie do końca.
Sprawa wygląda tak:
- uczę się MySQL,
- uczę się C++,
Postanowiłem połączyć obie te rzeczy i zacząć pisać aplikacje w C++ współdziałające z MySQL. Przeczytałem, że najlepiej wrzucić sobie MySQL++.
Pobrałem kod źródłowy MySQL++, bo to chyba najlepsze wyjście - kod źródłowy mogę skompilować na ~dowolnym OS-ie, więc postanowiłem, że warto się tego nauczyć.
Trochę to źrodło pomotane, masa plików, ale tak już chyba wyglądają źródła :P
Odpaliłem plik README i znalazłem linijkę, w której napisano, że "README.vc - for Visual C++".
Dobra to da się skompilować tylko w Visual C++ - może mi ktoś powiedzieć dlaczego? I dlaczego autorzy nie umieszczają w takim wypadku wersji dla Windows już skompilowanej? Problem polega na tym, że ja Visual C++ nie mam a używam DevC++. Czy z większością API tak jest, że wymagają określonego kompilatora?
maVes [ Generaďż˝ ]
jak pod WINDOWS dodać dodatkową bibliotekę/API?
dołączenie biblioteki zwykle wiąże się z dołączeniem odpowiednich nagłówków oraz dolinkowaniem plików tejże biblioteki (w każdym środowisku robi się to inaczej, np. w Devie wchodzisz do opcji projektu i w polu konsolidator wpisujesz nazwy plików).
Dobra to da się skompilować tylko w Visual C++ - może mi ktoś powiedzieć dlaczego?
Wydaje mi się, że powodem tego jest fakt, że każde środowisko posiada własne formaty zapisu projektów. Luźne pliki cpp, porozrzucane w wielu folderach trudno byłoby połączyć w całość jako projekt, a i to nie dawałoby gwarancji, że będzie działać. Dlatego dostarczane są gotowe projekty dla wielu środowisk.
I dlaczego autorzy nie umieszczają w takim wypadku wersji dla Windows już skompilowanej?
Tu również nie mam pewności, ale powodem jest chyba wielkość plików wyjściowych,. U mnie wspomniany wcześniej wxWidgets po kompilacji zajmuje blisko 500MB. Skompilować można na kilka sposobów, w zależności od potrzeb, więc w sumie byłoby do ściągnięcia ładnych kilka GB...
Problem polega na tym, że ja Visual C++ nie mam a używam DevC++.
Może więc warto zainteresować się Visualem? Nie wiem od jak dawna zajmujesz się programowaniem, ale dla mnie teraz pisanie czegoś większego w Devie to po prostu męka. Używam go tylko do małych programików pisanych na szybko, bo nie wymaga tworzenia całego projektu.
Bajt [ Ariakan ]
Witam, mam maly problem. Pisze program z wykorzystaniem list jednokierunkowych. Jedna z funkcji to sortowanie, ktore chcialbym moc przeprowadzic wzgledem kazdego (osobno oczywiscie) pola struktury. Nie chce jednak przepisywac tego samego kodu pare razy zmieniajac tylko odnosnik do danego pola. Jak to uproscic?
Mam np. cos takiego
if(p->next->nazwisko > max->nazwisko)
...
Chcialbym, zeby w zaleznosci od parametru z funkcji, zamiast do pola "nazwisko", bylo odwolanie do czegos innego np. imie, adres. Nie mam za bardzo pomyslu jak to zrobic, uzyc jakiejs zmiennej, wskaznika?
Troche pogmatwalem, ale mam nadzieje, ze wiadomo o co mi chodzi :P
Pozdrawiam i dzieki z gory
Drag [ Pretorianin ]
Moze to sie przyda:
--
#include <iostream>
using namespace std;
struct Test
int p1;
int p2;
int p3;
;
template<typename T>
void compare(Test *a, T Test::* fa, Test *b, T Test::* fb)
cout << (a->*fa == b->*fb) << endl;
int main(int argc, char *argv[])
Test a = 1, 2, 3;
Test b = 4, 2, 5;
compare(&a, &Test::p1, &b, &Test::p1);
compare(&a, &Test::p2, &b, &Test::p2);
compare(&a, &Test::p3, &b, &Test::p3);
return 0;
--
Nie wiem czy kod robi dokladnie to co chciales ale chodzilo mi o sama idee zastosowania T Test::* jako parametru funkcji.
Pozdrawiam :)
Drag [ Pretorianin ]
(^Poprzedni post byl do Bajta^)
Father Michael -> mozesz tez sprobowac tak:
--
switch(..)
case x:
‹
...
›
break;
--
konkretnie chodzi o ujecie w ‹› fragment kodu w ktorym tworzysz obiekt i korzystasz z niego.
Father Michael [ Iscariot Paladin ]
Spoko, juz dalem sobie rade :)
Teraz szukam jak moge wyprowadzic wartosc zmiennej poza petle.
peanut [ kriegsmaschine ]
uzywac wskaznikow? to ma byc multithreadowe?
Arxel [ Legend ]
Potrzebuje pomocy :D
Mile widziane wszelka forma pomocy.
Chce zrobić program-test.
Jak taki program miałby wyglądać:
Wersja podstawowa:
Wprowadzamy pytania do bazy, w jakiś sposób zaznaczamy tą prawidłową i po uruchomieniu programu mamy test wybory a,b,c,d i możliwość jednej odpowiedzi. Brak możliwości powroty do poprzednich pytań, brak limitu czasu. Po prostu mamy pytanie i jak odpowiemy to mamy kolejne etc.
Wersja rozbudowana:
Wprowadzamy pytania do bazy, zaznaczamy prawidłową odpowiedź. Po urucomieniu programu komputer generuje losowo pytania w jakiej mają być wyświetlane (żeby za każdym razem pytania pokazywały się w innej kolejności) i tasuje odpowiedzi, czyli jeśli prawidłowa jest a to po przetasowaniu odpowiedź a (wg bazy) jest na miejscu c. Aby nie można było zapamiętywać odpowiedzi w stylu a,a,c,d,a,b,d etc... W ostateczności limit czasu powiedzmy 1 minuta na każde i również brak możliwości powrotu do poprzedniego...
Naturalnie program nie ma być wyświetlany w okienku DOSowym :P
Przyglądałem się budowie testów na prawo jazdy, ale są tak zbudowane, że nie jestem w stanie tego pojąć :D
Są może na necie takie mini programy? Zetknął się już ktoś z czymś takim? Pod jakimi hasłami szukać? Program musze mieć do wtorku za 2 tygodnie. :)
Can anybody help me?
maVes [ Generaďż˝ ]
Arxel - z chęcią bym Ci pomógł, ale na razie nie wiem w czym tkwi Twój problem :) Nie wiesz jak się za to zabrać? W czym to napisać? Jak zrobić to czy tamto? Zbyt ogólnie napisałeś to.. Jak chcesz to odezwij się na GG(często jestem niewidoczny) i tam spróbuję pomóc.

slowik [ NightInGale ]
w poprzednim semestrze 'pisalem' wejsciowki na czyms takim :P moze nawet gdzies jeszcze to mam ... :-)

Arxel [ Legend ]
O, byłoby fajnie ;]

slowik [ NightInGale ]
powinno juz byc
Arxel [ Legend ]
Hm... Nic nie doszło :P
Ok mam. było w spamie ;]

Arxel [ Legend ]
Czas edycji się skończył...
slowik - Jestem Twoim dłużnikiem... Masz u mnie piwo.
Tylko powiedz mi, jak to teraz zmodyfikować? :P Bo plików źródłowych nie ma... A jest kilka niepotrzebnych opcji, które mógłbym wyrzucić :)
A czy kolejność odpowiedzi jest losowana czy zawsze taka sama?
I jakie jest hasło do zakończenia programu? hehehe

slowik [ NightInGale ]
tylko piwo ? :P to jest dosc rozbudowany program ;-) a ze nie moj ;P
wishram [ lets dance ]
czy jest jakaś metoda na wczytywanie z pliku ale jakby ze standardowego wejścia (w C)?
chodzi mi o to żeby wczytać dane z pliku, ale bez ingerowania w kod programu
(oprócz dodanie pewnie jakiś linijek na początku)
maVes [ Generaďż˝ ]
wishram -> Zakładam że używasz Windowsa:
start->uruchom->cmd
Wchodzisz do katalogu gdzie masz program i piszesz: program.exe < abc.in > abc.out
Program przekieruje plik abc.in na standardowe wejście (czyli cout albo scanf) a wynik działania zapisze do bliku abc.out.
Nazwa plików oczywiście nie ma znaczenia.

wishram [ lets dance ]
wielkie dzięki
Haron [ the boatman ]
piszę program w javie. mam pytanie, jak zrobić instalator? taki standardowy, do wyboru ścieżka zapisu i instalacja JRE 6, gdy potrzebny.
czy jest do tego jakiś builder? można to jakoś zrobić szybko łatwo i prosto?
yestri [ Pretorianin ]
np. install creator
Haron [ the boatman ]
zachowałem się jak lama. od czego są google? przez ten projekt mi się mózg gotuje.
dzięki yestri
Gotman [ Generaďż˝ ]
Witam. Podczas czytania Symfonii C++ Standard [która moim zdaniem jest świetna] trafiłem na instrukcję: system("pause");
Piszę teraz programiki na DOS'a i chcę, żeby ta komenda zatrzymała działanie programu bo jak wiadomo w XP gdy nie dostanie tej komendy to od razu wyłącza program i nie widać efektu końcowego. Kompiluję w C++BuilderX i mam problem gdzie wpisać tą instrukcje. W książce pisze: "na końcu programu, tuż przed klamrą kończącą funkcje main" czyli rozumiem że ma to wyglądać tak:
coś tam coś tam kod programu
system("pause");
›
^^^ tutaj miał być ten znaczek ] z wciśniętym shiftem, który kończy main, tylko chyba GOL go nie pokazuje :P
jednak Builder wykazuje to jako błąd i gdy uruchamiam program to nie działa ta instrukcja. Czy ktoś mógłby mi pomóc i powiedzieć gdzie ją wpisać? Bedę bardzo wdzięczny.
Pozdrawiam
Haron [ the boatman ]
to zależy czy taka komenda jest akurat w bibliotece.
niektóre komendy np. clrscr dostępne tylko w pakietach borlanda.
wstaw mu na koniec getchar(); może conajwyżej wyrzucić warninga 'code has no effect', ale poskutkuje. możesz spróbować też getche(); o ile jest w bibliotekach twojego kompilatora.
maVes [ Generaďż˝ ]
Gotman - spróbuj dołączyć nagłówek cstdlib i wtedy użyć funkcji system().
cin.get() powinno dać podobny efekt.
Jeszcze jeden ze znanych mi sposobów to dołączenie pliku conio.h i wywołanie funkcji getch() (albo _getch() - nie pamiętam).
Gotman [ Generaďż˝ ]
Dzięki za pomoc.
Jak wpisałem getchar(); to nie wykazywało tego jako błąd ale dalej nie działa, bo program sie zamyka i nie widać wyniku, dla którego ten program został w sumie napisany.
Po wpisaniu getche(); kompilator wykazuje błąd i też nic nie działa. Cóż, bede próbował dalej. Gdyby ktoś miał jakieś pomysły - będę wdzieczny za każdą pomoc :)
Pozdrawiam
Chwilka, właśnie teraz zauważyłem post maVes'a :)
Gotman [ Generaďż˝ ]
Dziękuję maVes :)
z cstdlib nie działało, za to z conio.h i getch(); zadziałało :)
dziękuję, pozdrawiam i życzę milego wieczorku :)

slowik [ NightInGale ]
nie komendy a funkcje !!!!...
w stdlib system chyba sie znajduje i wystarczy na koncu dac 2x getchar (dlaczego? pierwszy czysci bufor z ostatniego enter'a ...) albo fflush(stdin) i pozniej getchar
Qbaa [ Senator ]
może ktoś wskazać poprawną odpowiedź? ja zgłupiałem :)
Dziedziczenie w programowaniu obiektowym pozwala na
A. łączenie obiektów.
B. usunięcie z istniejącej klasy zbędnych elementów.
C. tworzenie nowej klasy na podstawie jednej lub kilku już istniejących.
D. kopiowanie cech jednego obiektu do innego.
Haron [ the boatman ]
wkipedia prawdę Ci powie:
Dziedziczenie (ang. inheritance) to w programowaniu obiektowym operacja polegająca na stworzeniu nowej klasy na bazie klasy już istniejącej.
najlepszą odpowiedzią będzie C. należy dodać, że potomek ma wszystkie cechy rodzica + swoje własne dodatkowe.
fanlegii79 [ Generaďż˝ ]
C, tylko dowalili tam wielodziedziczenie czego żaden popularny język nie obsługuje.
Qbaa [ Senator ]
ok, dzięki. właśnie zmyliło mnie "lub kilku już istniejących"
Haron [ the boatman ]
szybkie pytanie. jak w javie przekształcić obiekt String na liczbę całkowitą?
maVes [ Generaďż˝ ]
Haron -> wystarczyło wyszukać na Googlach:
Java - Converting String to int
int i = Integer.parseInt(str);
lub
int i = Integer.valueOf(str).intValue();
Haron [ the boatman ]
dzięki maVes.
przejrzałem cała klasę Integer i nie znalazłem metody parseInt. widocznie przeoczyłem. o tym drugim sposobie nie wiedziałem, dopiero zaczynam w Javie. ;)
Edyta poprawiła literówki :)
maVes [ Generaďż˝ ]
Haron - ja Javy w ogóle nie znam, ale zamierzam się nauczyć w wakacje :)
A tak przy okazji - kiedy następna część wątku? Ta mi się już długo ładuje :)
Haron [ the boatman ]
mam jeszcze jedno pytanie odnośnie drukowania.
chodzi o dpi.
w wkipedii pisze:
dpi (ang. dots per inch) – liczba plamek przypadająca na cal długości. Jednostka stosowana do określenia rozdzielczości drukarek, ploterów, naświetlarek itp. Pojęcie to jest bardzo rozpowszechnione i często stosowane także jako potoczny zamiennik określeń pokrewnych: ppi (pixels per inch – pikseli na cal)
szczególnie mnie interesuje "potoczny zamiennik ppi".
stąd moja wątpliwość. jeżeli mam obrazek dajmy na to 200x200 pikseli, to czy gdy będzie on drukowany w rozdzielczości 600dpi, czy innej to jego wymairy na kartce nie powinny się zmienić, tak? zmieni się tylko dokładność oddania obrazku? czy zmieni się też jego rozmiar na kartce?
na mój chłopski rozum jeżeli będzie zmieniać się wartość dpi, zmienia się liczba plamek na cal, to liczba plamek na piksel też będzie się zmieniać, ale sama ilość pikseli na cal nie powinna się zmienić? jeśli jestem w błędzie, to proszę o poprawienie.
You tube my space. [ Konsul ]
Hej :)
Jaką książkę/kurs WWW możecie polecić do nauki pisania w Visual Studio 2005? Chodzi mi głównie o wykorzystanie MFC, czyli pisanie aplikacji okienkowych. Fajnie by było, gdyby kurs był w formie tutoriali, czyli teraz robimy coś tam i używamy do tego czegoś tam ;)Gdzieś znajdę taki fajny kurs jakich setki do np. Delphi? Sprawdzałem strony Microsoftu, ale straasznie dużo jest tam informacji i nie natknąłem się na takie tutoriale, które by mnie interesowały (a jedynie suche specyfikacje). Dzięki :)

You tube my space. [ Konsul ]
Chyba nie doceniałem MSDN ;) W każdym razie jeśli ktoś ma jakieś fajne rzeczy na temat VC++ to chętnie przejrzę :)
Gotman [ Generaďż˝ ]
Ok, problem rozwiązany :)
Gotman [ Generaďż˝ ]
Witam ponownie :)
Mam pytanie:
jeśli C++BuilderX w takiej linijce:
std::cout << "Na jakiej wysokosci lecimy? [w metrach] : ";
wywala błąd to czy świadczy to o tym, że jest coś z nim nie tak [z kompilatorem of course :)]?
Oto raport z błędu:
"source.cpp": E2141 Declaration syntax error in function main() at line 6
Z góry dziękuję za pomoc. Jeśli ktoś do oceny potrzebuje większej ilości kodu, to podam.
Pozdrawiam
maVes [ Generaďż˝ ]
Gotman - podaj więcej kodu, najlepiej cały.
Gotman [ Generaďż˝ ]
#include <iostream>
int main()
int wys, punkty_karne
std::cout << "Na jakiej wysokosci lecimy? [w metrach] : ";
std::cin >> wys;
//rozwazamy sytuacje
if(wys < 500)
std::cout << "\n" << wys << "metrow to za nisko! \n";
punkty_karne = 1;
else
std::cout << "\n Na wysokosci" << wys << "metrow jestes juz bezpieczny";
punkty_karne = 0;
//oceniamy
std::cout << "Masz" << punkty_karne << "punktow karnych. \n";
if( punkty_karne)
std::cout << "Popraw sie!";
maVes [ Generaďż˝ ]
Brakuje średników, czyli tak jak podejrzewałem :)
Powinno być: int wys, punkty_karne;
Gotman [ Generaďż˝ ]
Oł, my mistake :)
Dziękuję i pozdrawiam.