
KULL [ Gladiator ]
Programowanie w C/C++ ------ dla laików i ekspertów [cz.2]
---[Niezbędne & przydatne]---
rodowisko Borland C++ 3.1 oraz instrukcja jego uruchomienia i konfiguracji:
https://www.wemif.pwr.wroc.pl/labc/labc/lab1/lab1a.html
---[Literatura dla programisty]---
Symfonia C++ J.Grębosza
Pasja C++ J.Grębosza
Mój pierwszy program wydawnictwa HELP
!! odradzamy czytanie ksišżek jakie napisał prof. Bielecki :)
---[Przydatne strony]---
[PL]:
https://stud.wsi.edu.pl/~sistudem/
https://3miasto.net/~chq/
https://lisek99.w.interia.pl/
https://www.kursc.terramail.pl/kursc/
https://maczek.info.bielsko.pl/~zbiju/ATH/
https://www.sztolnia.pl/?p=faq_pcp
https://www.algorytm.cad.pl/
https://www.republika.pl/piotrciskowski/dydaktyka/materialy.zima.htm#Informatyka3L
https://sprocket.ict.pwr.wroc.pl/~jablonski/
https://www.wemif.pwr.wroc.pl/labc/
[ANG]:
https://www.gametutorials.com/Tutorials/c++/Cpp_Pg1.htm
https://www.cprogramming.com/cgi-bin/source/source.cgi
---[Poprzednie wštki]---
[1] https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=3073834&N=1

KULL [ Gladiator ]
Pozwoliłem sobie założyć drugš częć wštku o programowaniu w C. Chcę się tego
nauczyć i muszę,
na POlibudzie we Wrocku bez umiejętnoci pisania programów będę miał ciężko (znaczy sie mam
ciezko juz na 1 roku).
Idš więta, trochę wolnego, to posiedzę przed monitorem :). Mam nadzieję, że znajdš się
inni miłonicy programowania, lub tacy sami jak ja, co dopiero chcš zaczšć i majš z tym
problemy :). Razem możemy więcej!
Obecnie muszę napisać na zaliczenie jaki program,
jeden z listy jakš podałem w poprzednim wštku. Z tego co mi propobnowalicie to zacznę pracować chyba nad
Program realizujšcy system egzaminowania w formie testu. Program ma do dyspozycji bazę danych pytań i odpowiedzi. Zadaniem programu jest zorganizowanie testu z losowš kolejnociš pytań i odpowiedzi oraz zapisanie wyników testu. .
Ale nie wiem jak się do tego zabrać. W jaki sposób mam zaczšć pisać ten program?
Na jakiej zasadzie ma on działać? Mam jedynie podstawy języka C (program ma być w C), więc
potrzebuję mocnego naprowadzenie, abym mógł zaczšć co pisać. HELP!
P.S. no chyba, ze ktos ma juz gotowy program i moze mi go przeslac. Na dobra sprawe,
to jestem w stanie nawet zaplacic komus za jego napisanie, lub zaczecie,...
pozniej go przeanalizuje ;). :P
BTW: czekam na kolejne adresy fajnych stron i ksišżki do programowania jakie polecacie,
jakie można będzie wpisać do wstępu tego wštku. Mam nadzieję, że stanie się on cyklicznym
miejscem naszych spotkań :).
Raf [ Pretorianin ]
Przejrzałem Twoja listę zadań i musze powiedzieć, że strasznie nierówny poziom trzymajš te zadania, sš tam takie, która można napisać bardzo szybko, ale również sš dosyć ciekawe zadanka. Jeli nie znasz się na programowaniu, to na Twoim miejscu zabrałbym się za 1 lub 9 bo sš bardzo proste. A tak z ciekawoci, czy te wszystkie zadania sš na takš samš ocenę?
DeV@sT@toR [ Senator ]
Pytanie na nieco inny temat: co może być przyczynš tego, iż nie działa mi Java Virtual Machine. System Windows XP SP1. Żaden aplet nie chce działać.

jiser [ generał-major Zajcef ]
Dobrze by było, żeby choć jeden taki wštek się stale trzymał :] Tylko, że ja stycznoci z C/C++ nie mam już od dłuższego czasu, teraz jest Java. Ale też bym czasem poradził się, kto ma ciekawszy/mniej czasochłonny pomysł na rozwišzanie jakiego problemu :)
KUL, Raf ~~>
Zwykle tak jest, że zbiór zadań na zaliczenie laboratorium programistycznego jest nierówny, ale dlatego, że częć jest traktowana jako zadania dla jednej, a inne dla więcej niż jednej osoby. U Was tak nie jest/ nie było ?
O rranny, jak sobie przypominam, ja miałem analizę numerycznš macierzy symetrycznych :]
KUL ~~>
Bez przesady z tym prof. Bieleckim (więtej pamięci, z tego co wiem). Jego ksišżki nie sš takie tragiczne, choć miał inny styl. Z jego ksišżki uczyłem się Swing-a w Javie ... i nadal mi dobrze służy.
Co do Twojego zadania ----
to rozwišzanie takie trudne do wyobrażenia jest ? :)
Struktury danych: tablica z cišgami tekstowymi dla pytań (dla C, najlepiej tablica odnoników do tablic char[] ), tablica odpowiedzi prawidłowych (wystarczš pojedyńcze znaki jako zawartoć, ewentualnie liczba będšca nr-em odpowiedzi), tablica odpowiedzi udzielonych przez testowanego (jak poprzednio).
Algorytm: program losowo podaje pytania (wszystkie), wypisujšc na ekranie (losuje więc albo jest jaka tablica permutacji pytań, albo program odchacza sobie które pytania zostały już zadane. W trakcie odpowiadania przez testowanego, zlicza poprawne odpowiedzi, na koniec podaje iloć poprawnych (jeżeli ma być ładnie to także błędne odpowiedzi wraz z pytaniem i prawidłowš odpowiedziš). I tyle. Żeby program jeszcze jako działał, mógłby wczytywać pytania i prawidłowe odpowiedzi z pliku tekstowego.
Nic, co by wykraczało poza podstawy i bibliotekę IO .. no i jeszcze generator pseudolosowy. Wszystko. Miłego pisania ;P

KULL [ Gladiator ]
Raf ---> to sa pytania, ktore maja pokazac jakie mniej wiecej mozna napisac programy. Szczegoly ustalamy z prowadzacym, a pytania sa nie rowne, bo i grupa jest podzielona na znajacych sie na C i na tych co sa z tego zieloni :)
jiser ---> teoretycznie rozumiem jak ten prgram ma wygladac, ale jak zaczne pisac to sie pojawia problemy .... wiec na pewno bede mial jeszcze co do tego jakies pytania. :)
DeV@sT@toR [ Senator ]
Raf --------> Jeszcze raz dzięki za linka do Eclipse - rodowisko bardzo intuicyjne czego nie mogę powiedzieć o NetBeans, no i sporo szybsze :)

KULL [ Gladiator ]
No i jest pierwszy problem, pewnie wyjde na kogos kto nie ma zielonego pojecia o programowaniu, ale wole zapytac niz tkwic w niewiedzy :].
To działa. Podaje nazwe i wyswietla mi ja poprawnie.
#include <stdio.h>
#include <conio.h>
struct dane
char pytania[20];
;
main()
dane a;
clrscr();
cprintf("Wpisz slowo:");
cscanf("%s",a.pytania);
getch();
cprintf("Wpisane sowo to: %s",a.pytania);
getch();
A teraz, jak zrobic, aby juz od razu podac wartosc zmiennej "a.pytania" (w tym przypadku to tez nazywa sie zmienna ?) ??
To nie dziala :/:
#include <stdio.h>
#include <conio.h>
struct dane
char pytania[20];
;
main()
dane a;
a.pytania="Ile masz lat?";
clrscr();
getch();
cprintf("Wpisane sowo to: %s",a.pytania);
getch();
Wypowied została zmodyfikowana przez jej autora [2004-12-20 22:51:34]
Swidrygajłow [ ]
musisz użyć funkcji strcpy a nie operatora przypisania

KULL [ Gladiator ]
Swidrygajłow --> thx, chyba dziala :)
struct dane
char pytania[20];
;
main()
dane a;
strcpy(a.pytania,"Aligator");
clrscr();
getch();
cprintf("Wpisane slowo to: %s",a.pytania);
getch();
Teraz pytanie. jak dalej sie bawic w wpisywanie tych pytan? Gdzie mam je umieszczac??
Przypomne, ze staram sie napisac program:
Program realizujšcy system egzaminowania w formie testu. Program ma do dyspozycji bazę danych pytań i odpowiedzi. Zadaniem programu jest zorganizowanie testu z losowš kolejnociš pytań i odpowiedzi oraz zapisanie wyników testu.
btw: moze jednak ma ktos dzies juz napisane takie cacko? :D

KULL [ Gladiator ]
zalamalem sie :((( ja tego programu nigdy nie napisze :(((
WolverineX [ Senator ]
widze ze jest jakis watek o prog. widz pytam. ma ktos jakies tutoriale czy PDF o jezyku C# ???

ronn [ moralizator ]
Mam taki program do napisania w C :
Coding and decoding program for texts no longer than 255 characters. The result shoul be in file of 64 records of 64 characters. Coded texts of two texts differ only in one character should be completely different.
Part 1
DATA File name.d
COMMAND LINE Program c name.d
RESULT File name.cd
Part 2
DATA name.cd
COMMAND LINE Program uc name.cd
RESULT on the screen and File name.uc
Czyli szyfrujacy i deszyfrujacy tekst, tak zeby roznica jednej litery calkowicie zmieniala zaszyfrowany tekst, a plik zakodowany mial postac 64 rekordow skladajacych sie z 64 znakow. Dodatkowo te rozszerzenia i sterowanie z linii komend (solaris)
Moze ktos ma algorytm, albo taki program na dysku? Bylbym bardzo wdzieczny.
Wie ktos moze jak to ugryzc?
Esqualante [ Jyhad Baghadyr ]
KULL, no co ty, to nie jest trudne...
możesz np stworzyć strukturę
typedef struct _Odp
char Tresc[80];
Odp;
typedef struct _Pytanie
char Tekst[80];
Odp Odpowiedzi[4]; /*4 - liczba mozliwych odpowiedzi*/
char Prawidlowa; /*tu bedzie prawidlowa odpowiedz zapisana pod postacia litery a,b,c,d*/
Pytanie;
a wewntrz programu robisz tablice
Pytanie Moje_Pytania[Liczba_Pytan];
i odwołujesz się normalnie
printf("%s",Moje_Pytania[7].Odpowiedzi[2].Tresc); /*powoduje wywietlenie tresci odpowiedzi 2 na pytanie 7*/
Zastanow się, co program, który piszesz, ma robić. Np, że ma wczytać pytania, a potem ma być pętla, w której będš losowane pytania, użytkownik będzie odpowiadał na nie, potem będzie podsumowanie i zapytanie o powtórzenie testu (czyli tej pętli)... itd
WolverineX >>>> sprawdzałem na ftp znajomego, ma tam sporo o C / C++ / Assemblerze / WWW, ale C# nic nie mogłem znaleć...

KULL [ Gladiator ]
gadalem dzis z kolesiem od infy i ten program TEST to bedzie problem mi napisac. Z tego co mi mowil to trzeba zrobic mozliwosc wczytywania bazy danych z pliku txt i ma byc w miare skomplikowany (jak na moje mozliwosci obecnie). Wykladowca powiedzial natomiast, ze jak ktos nic nie umie :), to jest jeden program - "deska ratunkowa" :
18. Przelicznik dat. Program powinien wyliczać dzień tygodnia na podstawie dowolnej daty w latach 1-2100 n.e.
ponoc banal, aby tylko zaliczyc, ale jak to zrobic pytam sie ja Was ;). ??
Swidrygajłow [ ]
sory za lamerstwo, ale moze mi ktopowiedzieć po co się definiuje strukturę przez typedef?
ja zawsze robiłęm tak:
struct Struktura
int fwef;
char www[6];
;
Struktura costam;

KULL [ Gladiator ]
Swidrygajłow --> skonczmy z tym lamerstwem raz na zawsze !!! Kto sie pyta aby cos sie dowiedziec nie jest lamerem przeciez. LAmer to koles co twierzi ze cos umie a tego nie umie, a nie ktos kto "wie, ze nic nie wie" :). Wiec nie ma cos sie bawic z "sorry, wiem ze to banal, ale czy wiecie ......". Nie kazy rodzi sie z umiejetnoscia programowania i niektorzy musza ta umiejetnosc nabywac w trakcie zycia :).
Ja nie znam odp. na twoje pytanie :(.

Raf [ Pretorianin ]
DeV@sT@toR -> Cała przyjemnoć po mojej stronie:) Eclipse jest naprawdę bardzo fajny, więc cieszę się, że mogłem pomóc.

KULL [ Gladiator ]
RATUJCIE MNIE !!! . ZAPŁACĘ !!! Czy ktos moze mi napisac kawalek programu (?):
18. Przelicznik dat. Program powinien wyliczać dzień tygodnia na podstawie dowolnej daty w latach 1-2100 n.e.
tylko aby zwracal wartosc od 1 do 7 w zaleznoci od wpisanej daty: dzien rok i miesiac.
Zaplace po podaniu konta i napisaniu mi tego!!! NIe oszukam, bo bedac jednym ze wspolpracownikow GOLa nie wypada mi na tym forum kogos oszukiwac :).
PIIIIIIIIIS, niech mi to ktos napisze !!!!
bo ja juz zaczalem sie z tym meczyc, ale bedzie trudno :). A moze macie jakies stronki z opisem jak dziala ogolny schemat tego wyliczania dni. Wiem ze mialem to kiedys w jakims kolendarzu, ale to bylo daaaawno :/.
KULL [ Gladiator ]
jak ktos moze to niech zobaczy ,czy to co znalazlem to cos jest przydatnego do mojego programu:
Raf [ Pretorianin ]
KULL -> To wcale nie jest trudny problem. Postaram Ci się jako nawietlić sprawę, aby mógł sam to napisać. Po pierwsze musisz ustalić, że w jakim dniu (dokładna data) był jaki dzień, np: poniedziałek. Następnie obliczasz ile dni minęło od ustalonego dnia do podanej daty, znajšc liczbę dni jeste w stanie wyliczyć dzień tygodnia - musisz po prostu przechodzić jakby po całym tygodniu i w razie koniecznoci zmieniać miesišc (liczbę dni) i rok. Aby wszystko działało najlepiej zrób sobie tablicę na 12 miesięcy i umieć w każdej kratce liczbę dni przypadajšcych na dany miesišc, oczywicie aby wiedzieć ile dni ma luty musisz jeszcze badać, czy dany rok jest przestępny. Mam nadzieje, że trochę Ci pomogłem i będziesz w stanie sam to napisać, uwierz mi, że samodzielne dojcie i napisanie programu daje dużo satysfakcji!

slowik [ Legend ]
o cos ciekawego powstalo :-)
tylko jakos czesc pierwsza mi uciekla
ktos z was bawi sie gui ??(konkretnie wxWindows)
Swidrygajłow [ ]
Kubol [ Pretorianin ]
DeV@sT@toR -> co do działania appletów, to pewnie Ci sie le zainstalował
java plugin. Sprubój przeinstalować JRE.
Sprawd, czy masz katalog bin w cieżce. Najlepiej dodaj do zmiennych rodowiskowych JAVA_HOME, wskazujaca na glowny katalog jre - to akurat Ci tu nie pomoże, ale przyda się na przyszłoć
Swidrygajłow -> używa się typedef, ponieważ w ansi C trzeba by pisać
struct nazwa_typu zmienna; przy deklaracji każdej zmiennej, co byłoby wkurzajšce.
po typedefie pisze się
nazwa_typu zmienna;
w C++ to bez różnicy - nawet jesli piszesz w C, ale uzywasz kompilatora C++

KULL [ Gladiator ]
Swidrygajłow --> a mozesz mi powiedziec co gdzie wkleic do kodu?? bede ci dozgonnie wdzieczny bo sie mecze i ciagle mi bledy wyskakuja :/
DeV@sT@toR [ Senator ]
Przeinstalowywałem już z 10 razy i mam doć - na razie poznaję składnie, a aplety mogę odpalać prosto z Eclipse. Póki nie tworzę całociowego projektu jakiej strony, to mi powinno wystarczyć.
Swidrygajłow [ ]
KULL:
#define SEP 8
#define MISSING_DAYS_IN_SEP_1752 11
#define SEP3 2
static int
days_in_month[2][12] =
31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,
31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,
;
#define CHANGE_YEAR 1752
int
is_leap_year(int year)
/* Julian Calendar has a leap year every 4 years */
if (year <= CHANGE_YEAR) return !(year % 4);
/* This is just the *definition* of a Gregorian leap year: */
return !(year % 400) || ((year % 100) && (!year % 4));
int
total_leap_days(int day, int month, int year)
int total = (year / 4); /* initial estimate */
if (is_leap_year(year))
total -= 1; /* leap day is accounted for in days_in_month */
if (year > CHANGE_YEAR)
/* Delete the inappropriate leap centuries, */
/* then add back in every 4th leap century */
total -= ((year / 100) - (CHANGE_YEAR / 100));
total += ((year / 400) - (CHANGE_YEAR / 400));
return total;
/*
* Find the day of the week corresponding to any given date.
* Works by computing the total number of days since Jan 1, year 1 A.D.
* and then taking that modulo 7 to turn it into a day of the week.
* Along the way we must compensate for leap years, and for the
* change from the Julian to the Gregorian calendar in Sep 1752.
*/
int day_of_week(int day, int month, int year)
int absolute_day = 0;
int leap, i;
/* Initial estimate of the total number of days */
absolute_day += ((year-1) * 365);
absolute_day += total_leap_days(day, month, year);
leap = is_leap_year(year);
for (i=0; i<month; i++)
absolute_day += days_in_month[leap];
absolute_day += day;
/* If the target is after the calendar switchover, add in the */
/* number of days that were deleted from Sep 1752 by the */
/* calendar changeover */
if (year > 1752)
absolute_day -= MISSING_DAYS_IN_SEP_1752;
else if (year == 1752 && month > SEP || (month == SEP && day >= SEP3))
/* Also make that adjustment for the part of 1752 */
/* after September 3, when the calendar change happened */
absolute_day -= MISSING_DAYS_IN_SEP_1752;
/* Take it mod 7 to find out the day of the week. Add 6 to */
/* force the first day of the week to be Sunday. */
return (6 + absolute_day) % 7;
się kompiluje (dryrektywy i deklaracje lub definicje funkcji musza być przed ich wywołšniami), ale daje złe wyniki.
aka [ Chor��y ]
DeV@sT@toR --> W jaki sposób odpalasz te aplety, że nie działajš?
DeV@sT@toR [ Senator ]
aka -------> Nie odpalam - aplety mi działajš, nie działajš jedynie w kodzie html, czyli gdy odpalam stronki. Co jest nie tak z JVM - tak jakbym nie miał zainstalowanego JRE. Pewnie mam co powalone w Rejestrze, ale nie mam siły by wyszukać i usunšć wszystkie wpisy, a póniej ponownie zainstalować JRE. Ustawienia w IE mam, zdaje się poprawne, podobnie w panelu Javy - ale na chata już nie wejdę (choć wcale mnie tam nie cišgnie - dla sprawdzenia) - brak rodowiska Javy... i inne tego typu bzdetne komunikaty.

KULL [ Gladiator ]
znalazlem cos takiego:
Możemy okrelić na jaki dzień tygodnia wypadnie okrelona data obliczajšc resztę z dzielenia przez 7 następujšcego wyrażenia :
(2,6m-0,2)+d+y+(y/4)+(c/4)-2c
gdzie: d - numer dnia miesišca (1,2...),
m - przekształcony numer miesišca w roku (marzec=1,kwiecień=2,... ,grudzień=10, styczeń i luty sš traktowane jako 11 i 12 miesišc poprzedniego roku ),
y - dwie ostatnie cyfry roku,
c - dwie poczštkowe cyfry roku (stulecie),
ëxű - oznacza czeć całkowita z x.
w C++ uzyskujemy jš przez rzutowanie typu : (int)x
Jeli uzyskamy wynik ujemny należy do niego dodać 7;
i to dziala, ale zależnoć jest słuszna dla lat 1582 - 4902.
A mi potrzebne jest od 0 do 2100 :/
KULL [ Gladiator ]
i jeszcze cos takiego. Ale dostaje jakas dziwna liczbe w wyniku i nie wiem jak to mam przelozyc na dzoien tygodnia
jak bede mial prawidlowy wzor to sobie juz program napisze jakos (chyba).

KULL [ Gladiator ]
a moze ma ktos z Was ksiazke " Turbo Pascal i Borland C++. Przykłady" ?? tam ponoc cos jest o kalendarzu.

KULL [ Gladiator ]
znalazlem program "DayByDate", jak mozna go otworzyc, aby dostac sie do kodu programu, jezeli jest on z roz. *.exe ?? pewnie sie nie da ?? :/
p.s. ale ja tutaj smiece w tym watku ;)
_MyszooR_ [ Ass Kicker ]
Tak wiec mam Visual studio net 2003 i jest tam tez visual c++ macie mzoe dla mnie jakies proste cwiczonka ? :) jak narazie zrobilme przycisk ktory gdy sie nacisnie wyskakuje okienko z napisalem HELLO i mozna kliknac tylko OK :) turtoral z microsoftu hyhy
slowik [ Legend ]
Kull===>c++ nie ma dobrego dekompilator'a
a mozesz sobie edytor'em hex cos wyciagnac ale nic pewnego :-)
czyli nikt tutaj nie robi nic z gui ?? :(
DeV@sT@toR [ Senator ]
To zależy co chcesz poznać - Visuala czy język, jeli język to i tak nie obejdzie się bez MFC bšd substytutów tegoż (jezli chcesz po winde pisać), DirectX-a (OpenGL-a), no i oczywicie samego C++. Tutoriale nic tutaj nie pomogš w poczštkowej fazie - potrzebna jest literatura.
Swidrygajłow [ ]
slowik - a o co konkretnie chcesz zapytac?
slowik [ Legend ]
Swidrygajłow===>z obiektu w ktorym sie wprowadza dane chce poprac zmienna i jej urzyc w funkcji
i jeszcze jedno obiekt za pomoca ktorego da sie cokolwiek rysowac :-)
Swidrygajłow [ ]
KULL - tamte programyu jakies lewe sš, wiec zakasałem rekawy i sam napisałem, mam nadzieje że jest ok
int miesiace[12]=31,28,31,30,31,30,31,31,30,31,30,31;
int dzien(int rok, int mies, int dzien)
//bez uwzglednienia lat przestepnych
int suma=(rok-1)*365+dzien;
for (int i=1;i<mies;i++)
suma+=miesiace;
// z uwzlgednieniem lat przestepnych
int przestepne;
if (rok<=1782) przestepne=rok/4;
else
przestepne=1782/4;
przestepne+=(rok-1782)/4-(rok-1700)%100+(rok-1700)%400;
suma+=przestepne;
// dodatkowo uzwgledniam 11 dni opuszcoznych przy zmanie kalendarza z julianskiego na
if (rok <=1872) suma+=10;
return suma%7+1 ;

KULL [ Gladiator ]
Swidrygajłow ---> przy linijce: suma+=miesiace; krzyczy mi: Illegal use of pointer
Swidrygajłow [ ]
KULL - niemożliwe, u mnie sie skompilowało i działa
Swidrygajłow [ ]
tak w ogole to
suma+=miesiace;
to sš nawiasy klamrowe

KULL [ Gladiator ]
Swidrygajłow ---> a mozesz mi przeslac calosc co wpisujesz do kompilatora, wraz z #include .... itd. ??
Swidrygajłow [ ]
ale ja akurat mam to w builderze
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int dzien(int rok, int mies, int dzien);
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
dzien(2004,12,22);
Application->Terminate();
//---------------------------------------------------------------------------
miesiace[12]=31,28,31,30,31,30,31,31,30,31,30,31;
int dzien(int rok, int mies, int dzien)
//bez uwzglednienia lat przestepnych
int suma=(rok-1)*365+dzien;
for (int i=1;i<mies;i++)
suma+=miesiace;
// z uwzlgednieniem lat przestepnych
int przestepne;
if (rok<=1782) przestepne=rok/4;
else
przestepne=1782/4;
przestepne+=(rok-1782)/4-(rok-1700)%100+(rok-1700)%400;
suma+=przestepne;
// dodatkowo uzwgledniam 11 dni opuszcoznych przy zmanie kalendarza z julianskiego na
if (rok <=1872) suma+=10;
return suma%7+1 ;
Swidrygajłow [ ]
ale pliki nagłówkowe nei sš tu potrzebne

KULL [ Gladiator ]
a orientujesz sie jak to powinno wygladac w Borland C++ ??
ja wpisuje tak:
#include <stdio.h>
#include <string.h>
int miesiace[12]=31,28,31,30,31,30,31,31,30,31,30,31;
int dzien(int rok, int mies, int dzien)
//bez uwzglednienia lat przestepnych
int suma=(rok-1)*365+dzien;
for (int i=1;i<mies;i++)
suma+=miesiace;
// z uwzlgednieniem lat przestepnych
int przestepne;
if (rok<=1782) przestepne=rok/4;
else
przestepne=1782/4;
przestepne+=(rok-1782)/4-(rok-1700)%100+(rok-1700)%400;
suma+=przestepne;
// dodatkowo uzwgledniam 11 dni opuszcoznych przy zmanie kalendarza z julianskiego na
if (rok <=1872) suma+=10;
return suma%7+1 ;
czego zapomnialem ??
Swidrygajłow [ ]
a gdzie main() ?
Swidrygajłow [ ]
ja przesłšłem tylko funckje zwracajace nr dnia tygodnia, reszte musisz sam zrobic
DeV@sT@toR [ Senator ]
KULL -------> Nie chcę się wtršcać do Waszej konwersacji, ale wydaje mi się, że powiniene co wpierw przeczytać nim zaczniesz pisać programy. Pominięcie main w kodzie jaki przytoczyłe, wiadczy jedynie o tym, iż nie masz najbardziej ogólnych podstaw - nie wiem co chcesz osišgnšć. Sam wybrałe takie studia, ja studiuję na kierunku odległym od informatyki, bardzo odległym, a siedzę włanie i czytam Thinking in Java bo to mnie interesuje i chcę się czego naprawdę nauczyć - nigdy się nie nuczysz programować, jeli nie usišdziesz i nie zdobędziesz odpowiedniej wiedzy, nim nie poznasz składni i nie rozwišżesz samodzielnie setek ćwiczeń.

KULL [ Gladiator ]
Swidrygajłow --> no wlasnie, gdzie dac main?? wiem ze to podstawowe pytanie, ale ja sie dopiero ucze i myla mi sie jeszcze miejsca gdzie co ma byc : / ... :((

KULL [ Gladiator ]
DeV@sT@toR --> wiem ze nic nie wiem. Ale sprawawyglada tak, ze jak bede wiedzial, ze mam juz cos dzialajacego, co pozwoli mi zaliczyc oddanie tego programu to bede mogl spokojnie sie uczyc tego C. Mam juz ksiazki i zaczalem je czytac, powoli zaczynam cos pisac, ale wstawiam te main w rozne miejsca i wciaz jakies bledy mi wyskakuja, wiec pytam gdzie to dokladnie wstawic.
DeV@sT@toR [ Senator ]
Tyle, że main tyczy się podstawowej struktury każdego programu w ANSI C i winno być omówione w każdej ksišżce w jednym z pierwszych paragrafów.
KULL [ Gladiator ]
DeV@sT@toR --> i tak tez jest - masz swieta racje. ale gdzie bym nie wstawil to main w tym programie to mi krzyczy ze sa bledy :/ :(
DeV@sT@toR [ Senator ]
Może to nie jest wina main. Patrz pod linkiem - przykład prostego programu. Jak widzisz cały kod jest zamknięty w main. Jedynie includy i parę jeszcze rzeczy wyrzuca się na poczštek. Poza tym zauważ, iż na forum GOL-a klamry wyglšdajš często jak: <>. Tak więc musisz to pozamieniać (oczywicie tam gdzie realnie klamry powinny być.
KULL [ Gladiator ]
ok, a co oznacza komunikat: Declaration syntax error ??
DeV@sT@toR [ Senator ]
Błšd składni deklaracji.
DeV@sT@toR [ Senator ]
Zauważ, że ja nie znam ANSI C :)
Swidrygajłow [ ]
KULL - postaram sie napisac program w dosowym c++, ale bardzo dawno tego nei robilem

KULL [ Gladiator ]
nic, ide spac, wielkie dzieki wszystkim (Swidrygajłow !! ,DeV@sT@toR ) za pomoc, jak sie wyspie to moze mi sie umysl otworzy ;)
DeV@sT@toR [ Senator ]
W czym to w końcu piszecie w C czy C++? Bo ponoć te języki strasznie bliskie sš sobie, a ja jedynie C++ nieco liznšłem?
Swidrygajłow [ ]
nie no pięnie, poszedł spać, a ja pracuje ;)
#include "stdio.h"
#include "iostream.h"
#include "conio.h"
//---------------------------------------------------------------------------
int dzien(int , int, int );
miesiace[12]=31,28,31,30,31,30,31,31,30,31,30,31;
char *dni[7]="poniedzialek","wtorek","sroda","czwartek","piatek","sobota","niedziela";
int Rok,Miesiac, Dzien;
int main()
clrscr();
cout<<"Podaj rok: ";
cin>>Rok;
cout<<"Podaj miesiac: ";
cin>>Miesiac;
cout<<"Podaj dzien: ";
cin>>Dzien;
if (Rok < 0 || Miesiac<1 || Miesiac >12 || Dzien <1 || miesiace[Miesiac-1]<Dzien)
cout<<"Nie rob sobie jaj"; getch(); return 0;
else
cout<<"To byl "<<dni[dzien(Rok,Miesiac,Dzien)-1];
getch();
return 0;
int dzien(int rok, int mies, int dzien)
//bez uwzglednienia lat przestepnych
int suma=(rok-1)*365+dzien;
for (int i=1;i<mies;i++)
suma+=miesiace;
// z uwzlgednieniem lat przestepnych
int przestepne;
if (rok<=1782) przestepne=rok/4;
else
przestepne=1782/4;
przestepne+=(rok-1782)/4-(rok-1700)%100+(rok-1700)%400;
suma+=przestepne;
// dodatkowo uzwgledniam 11 dni opuszcoznych przy zmanie kalendarza z julianskiego na
if (rok <=1872) suma+=10;
return suma%7+1 ;
nie jest zupelnie idiotoodporny i bez bajerow
Swidrygajłow [ ]
aha, jest to program konsolowy (dosowy) ale kompilowałem go c++ builderem, jednak powinien dzialac w borland c++ 3.1
DeV@sT@toR [ Senator ]
No i KULL teraz się zamota po tym jak mu dla uproszczenia powiedziałem, iż niemal cały kod powinien być w main :) Nie szkodzi, poczyta - się dowie.

KULL [ Gladiator ]
No, juz się obudzilem ;)
Znow przy linijce: suma+=miesiace; krzyczy mi: Illegal use of pointer
:/
Zaraz to przerobie na czysty C i przy okazji przeanalizuje caly kod. Dzieki wszystkim raz jeszcze za pomoc, co do problemow to albo to wina mojego kompilatora, albo ja jestem taki oporny na wiedze :). Swieta spedze przed C.... musze to napisac i musi to zadzialac, musi, musi, musi ! :)
severok [ spamer ]
jak w klasie zamieszczonej ponizej zdefinowac operator dzielenia(ewentualnie jakis inny).... konstruktor kopiujacy jest, opeator przypisania tez... z gory dziekuje
#include <iostream>
using namespace std;
class PKT
int x,y,z;
public:
PKT() : x(0), y(0), z(0)
PKT(int X, int Y, inz Z) : x(X), y(Y), z(Z)
PKT(const PKT & p) //konstruktor kopiujacy
x = p.x;
y = p.y;
z = p.z;
PKT & operator=(const PKT & p) //operator przypisania
if(this != &p)
x = p.x;
y = p.y;
z = p.z;
return *this;
else
return *this;
PKT & operator/(const PKY & p)
// jak to zdefiniowac????
;
int main()
return 0;
severok [ spamer ]
KULL ------------>
suma+=miesiace nie zadziala bo zmienna miesiace[12] nie ma okreslonego typu... daj to jako int np.... a najkepiej kompiowac na devC++. u nas na uczelni jest albo dev albo g++ na linuxie. pzdr
Swidrygajłow [ ]
#include "stdio.h"
#include "iostream.h"
#include "conio.h"
//---------------------------------------------------------------------------
int dzien(int , int, int );
int miesiace[12]=31,28,31,30,31,30,31,31,30,31,30,31;
char *dni[7]="poniedzialek","wtorek","sroda","czwartek","piatek","sobota","niedziela";
int Rok,Miesiac, Dzien;
int main()
clrscr();
cout<<"Podaj rok: ";
cin>>Rok;
cout<<"Podaj miesiac: ";
cin>>Miesiac;
cout<<"Podaj dzien: ";
cin>>Dzien;
if (Rok < 0 || Miesiac<1 || Miesiac >12 || Dzien <1 || miesiace[Miesiac-1]<Dzien)
cout<<"Nie rob sobie jaj"; getch(); return 0;
else
cout<<"To byl "<<dni[dzien(Rok,Miesiac,Dzien)-1];
getch();
return 0;
int dzien(int rok, int mies, int dzien)
//bez uwzglednienia lat przestepnych
int suma=(rok-1)*365+dzien;
for (int i=1;i<mies;i++)
suma+=miesiace;
// z uwzlgednieniem lat przestepnych
int przestepne;
if (rok<=1782) przestepne=rok/4;
else
przestepne=1782/4;
przestepne+=(rok-1782)/4-(rok-1700)%100+(rok-1700)%400;
suma+=przestepne;
// dodatkowo uzwgledniam 11 dni opuszcoznych przy zmanie kalendarza z julianskiego na
if (rok <=1872) suma+=10;
return suma%7+1 ;
może włšsnei przez to co mówi Severok, w c++ builderze domylnym typem jest int, a pewnie w borland c++ 3.1 jest inaczej. Zmienilem.
severok [ spamer ]
tutaj jest prog ktory poprawilem i sie kompiluje na devC bez problemu... dziala rowniez ale nie testowalem go za dlugo... PZDR
#include <iostream>
//---------------------------------------------------------------------------
using namespace std;
int dzien(int, int, int);
int miesiace[12] = 31,28,31,30,31,30,31,31,30,31,30,31;
char * dni[7]= "poniedzialek","wtorek","sroda","czwartek","piatek","sobota","niedziela";
int Rok, Miesiac, Dzien;
int main()
cout << "Podaj rok: ";
cin >> Rok;
cout << "\nPodaj miesiac: ";
cin >> Miesiac;
cout << "\nPodaj dzien: ";
cin >> Dzien;
if (Rok < 0 || Miesiac < 1 || Miesiac > 12 || Dzien < 1 || miesiace[Miesiac-1] < Dzien)
cout << "Nie rob sobie jaj";
return 0;
else
cout << "To byl" <<dni[dzien(Rok,Miesiac,Dzien)-1];
return 0;
int dzien(int rok, int mies, int dzien)
//bez uwzglednienia lat przestepnych
int suma = (rok-1) * 365 + dzien;
for (int i=1; i<mies; i++)
suma += miesiace;
// z uwzlgednieniem lat przestepnych
int przestepne;
if (rok<=1782)
przestepne=rok/4;
else
przestepne=1782/4;
przestepne+=(rok-1782)/4-(rok-1700)%100+(rok-1700)%400;
suma+=przestepne;
// dodatkowo uzwgledniam 11 dni opuszcoznych przy zmanie kalendarza z julianskiego na
if (rok <=1872)
suma+=10;
return suma%7+1 ;
KULL [ Gladiator ]
severok --> Twoj program kmpiluje sie, ale dopiero wtenczas gdy wywale linijke: using namespace std;
I jeszcze jedno, gdzie sensownie wstawic trzeba getch(); ??
tak jest ok ?? :
using namespace std;
int dzien(int, int, int);
int miesiace[12] = 31,28,31,30,31,30,31,31,30,31,30,31;
char * dni[7]= "poniedzialek","wtorek","sroda","czwartek","piatek","sobota","niedziela";
int Rok, Miesiac, Dzien;
int main()
cout << "Podaj rok: ";
cin >> Rok;
cout << "\nPodaj miesiac: ";
cin >> Miesiac;
cout << "\nPodaj dzien: ";
cin >> Dzien;
if (Rok < 0 || Miesiac < 1 || Miesiac > 12 || Dzien < 1 || miesiace[Miesiac-1] < Dzien)
cout << "Nie rob sobie jaj";
return 0;
else
cout << "To byl" <<dni[dzien(Rok,Miesiac,Dzien)-1];
getch();
return 0;

KULL [ Gladiator ]
a mozezcie mi wytlumaczyc w jakis sposob oblicza sie ten dzien na podstawie daty? Jak mozecie to podajcie mi wzory na to itd., jakie uzywacie do pisania tego programu, a ja samemu postaram sie go napisac.

Swidrygajłow [ ]
no tak, tylko po jakiego wała ja to pisałem o 2 w nocy

KULL [ Gladiator ]
ok, skompilowale to i dziala: teraz tylko przerobic to musze na czystego C. Ale i tak jest maly problem w zwiazku z dzialaniem tego programu. W jakim zakresie dat on dziala? mi potrzeba od 0 do 2100. Np. jak wpisze w tym programie rok 343, miesiac 12 i dzien 2, to nie poakzuje mi wyniku :(. jak z tym sobie poradzic ??
#include "stdio.h"
#include "iostream.h"
#include "conio.h"
//---------------------------------------------------------------------------
int dzien(int , int, int );
int miesiace[12]=31,28,31,30,31,30,31,31,30,31,30,31;
char *dni[7]="poniedzialek","wtorek","sroda","czwartek","piatek","sobota","niedziela";
int Rok,Miesiac, Dzien;
int main()
clrscr();
cout<<"Podaj rok: ";
cin>>Rok;
cout<<"Podaj miesiac: ";
cin>>Miesiac;
cout<<"Podaj dzien: ";
cin>>Dzien;
if (Rok < 0 || Miesiac<1 || Miesiac >12 || Dzien <1 || miesiace[Miesiac-1]<Dzien)
cout<<"Nie rob sobie jaj"; getch(); return 0;
else
cout<<"To byl "<<dni[dzien(Rok,Miesiac,Dzien)-1];
getch();
return 0;
int dzien(int rok, int mies, int dzien)
//bez uwzglednienia lat przestepnych
int suma=(rok-1)*365+dzien;
for (int i=1;i<mies;i++)
suma+=miesiace;
// z uwzlgednieniem lat przestepnych
int przestepne;
if (rok<=1782) przestepne=rok/4;
else
przestepne=1782/4;
przestepne+=(rok-1782)/4-(rok-1700)%100+(rok-1700)%400;
suma+=przestepne;
// dodatkowo uzwgledniam 11 dni opuszcoznych przy zmanie kalendarza z julianskiego na
if (rok <=1872) suma+=10;
return suma%7+1 ;
KULL [ Gladiator ]
Swidrygajłow --> zasade tego jak to sie oblicza chce znac bo bede musial to powiedziec wykladowcy :/.
P.S. przerobilem juz ten program na C:
#include "stdio.h"
#include "iostream.h"
#include "conio.h"
int dzien(int , int, int );
int miesiace[12]=31,28,31,30,31,30,31,31,30,31,30,31;
char *dni[7]="poniedzialek","wtorek","sroda","czwartek","piatek","sobota","niedziela";
int Rok,Miesiac, Dzien;
int main()
clrscr();
printf("Podaj rok: ");
scanf("%d",&Rok);
printf("Podaj miesiac:");
scanf("%d",&Miesiac);
printf("Podaj dzien:");
scanf("%d",&Dzien);
if (Rok < 0 || Miesiac<1 || Miesiac >12 || Dzien <1 || miesiace[Miesiac-1]<Dzien)
printf("Nie rob sobie jaj"); getch(); return 0;
else
printf("To byl %s ",dni[dzien(Rok,Miesiac,Dzien)-1]);
getch();
return 0;
int dzien(int rok, int mies, int dzien)
//bez uwzglednienia lat przestepnych
int suma=(rok-1)*365+dzien;
for (int i=1;i<mies;i++)
suma+=miesiace;
// z uwzlgednieniem lat przestepnych
int przestepne;
if (rok<=1782) przestepne=rok/4;
else
przestepne=1782/4;
przestepne+=(rok-1782)/4-(rok-1700)%100+(rok-1700)%400;
suma+=przestepne;
// dodatkowo uzwgledniam 11 dni opuszcoznych przy zmanie kalendarza z julianskiego na
if (rok <=1872) suma+=10;
return suma%7+1 ;
Ale nadal nie dzialaja niektore daty :/
Swidrygajłow [ ]
u mnie dziala
343.12.03 to czwartek
Swidrygajłow [ ]
ten program le liczy dni zdaje mi sie, jest w nim jakis bład logiczny

KULL [ Gladiator ]
kurcze ten program zle liczy :/.
sprawdzalem na Data/godzina - w ustaiweniach Windows, w 1980, 12 , 24 powininna byc sroda a wskazuje na niedziele :/
DeV@sT@toR [ Senator ]
suma+=miesiace - nie powinno być? suma+=miesišce czy nawet inaczej bioršc pod uwagę, iż tablice sš indeksowane od 0 (i zaczynajšce się od 0).
DeV@sT@toR [ Senator ]
tzn. suma+=miesiace
mam nadzieję, że teraz tego "i" w nawiasie kwadratowym GOL nie wycišł
DeV@sT@toR [ Senator ]
a jednak.
Swidrygajłow [ ]
znal;azłem błedy
tu poprawiona funkcja dzien
int dzien(int rok, int mies, int dzien)
//bez uwzglednienia lat przestepnych
int suma;
if (rok>0) suma=(rok-1)*365+dzien;
else suma=dzien;
for (int i=0;i<mies;i++)
suma+=miesiace[ i ];
// z uwzlgednieniem lat przestepnych
int przestepne;
if (rok<=1782) przestepne=rok/4;
else
przestepne=1784/4;
przestepne+=(rok-1784)/4-(rok-1700)/100+(rok-1600)/400;
suma+=przestepne;
// dodatkowo uzwgledniam 10 dni opuszcoznych przy zmanie kalendarza z julianskiego na gregorianski
if (rok <=1782) suma+=10;
return (suma+4)%7+1 ;
Swidrygajłow [ ]
teraz dobrze liczy w tym zakresie, ktory mozna sprawdic klaendarzem windy
DeV@sT@toR [ Senator ]
A ja włanie nadrabiam braki w mojej wiedzy o latach przestępnych (tutaj jest trochę wyjanione-dla KULL-a):

KULL [ Gladiator ]
Swidrygajłow --> Brawo! ale teoretycznie w jakim zakresie dzialaja te daty ?? mi wyskakuja bledy gdy wpisuje np. 2099 rok :/
DeV@sT@toR --> thx, ja tez po ksiazkach szukam, bo musze rozszyfrowac jak dziala ten program, no i bede chial do swojego programu wstawic opcje - informacyjnš, w formie encyklopedycznego wyjasnienia, np. Roku przestępnego.
teraz tez kolorami sie bawie txtu i moze jakas graficzke w C wymodze :)
DeV@sT@toR [ Senator ]
Do zrozumienia działania owego programu wystarczy jedna rzecz: rok przestępny (liczbowo) spełnia następujšce warunki: jest podzielny przez 4, ale nie jest podzielny przez 100, chyba, że jest podzielny przez 400 - reszta to czyste, logiczne, rozumowanie.
DeV@sT@toR [ Senator ]
Oczywicie potrzebne sš jeszcze daty historyczne zwišzane ze zmianami w kalendarzu. Wszystko jest pod podanym przeze mnie linkiem.
Swidrygajłow [ ]
być moze bład wynika z tego że w c++ buidlerze int jest liczba 32 bitowš, a w borland c++ 3.1 DOS chyba (nie pamietam) 16-bitowš. Dlatego zmien deklaracje zmiennej suma z int na long int
KULL [ Gladiator ]
Swidrygajłow --> nie dziala mi np. dla 2009.12.24. :/ Tobie dziala ?? Long int nie pomaga :/

zooz [ TS Wisła Kraków ]
Mam pytanko:
Jakie kompilatory polecacie dla poczštkujšcego (zaczęłem z C++ wczoraj :) Dev C++ ? czy może cos innego ? Z góry dzięki za pomoc.
zooz [ TS Wisła Kraków ]
Up :)
DeV@sT@toR [ Senator ]
Ja osobicie używałem Visual Studio, natomiast z darmowych to włanie Dev jest popularny i potrzšc po opiniach użytkowników - z pewnociš warto go plecić.
Swidrygajłow [ ]
KULL - u mnie działa, oblicza że to czwartek.
dla pewnosci jeszcze raz moj kod:
int dzien(int , int, int );
miesiace[12]=31,28,31,30,31,30,31,31,30,31,30,31;
char *dni[7]="poniedzialek","wtorek","sroda","czwartek","piatek","sobota","niedziela";
int Rok,Miesiac, Dzien;
int main()
clrscr();
cout<<"Podaj rok: ";
cin>>Rok;
cout<<"Podaj miesiac: ";
cin>>Miesiac;
cout<<"Podaj dzien: ";
cin>>Dzien;
if (Rok < 0 || Miesiac<1 || Miesiac >12 || Dzien <1 || miesiace[Miesiac-1]<Dzien)
cout<<"Nie rob sobie jaj"; getch(); return 0;
else
cout<<"To byl "<<dni[dzien(Rok,Miesiac,Dzien)-1];
getch();
return 0;
int dzien(int rok, int mies, int dzien)
//bez uwzglednienia lat przestepnych
int suma;
if (rok>0) suma=(rok-1)*365+dzien;
else suma=dzien;
for (int i=0;i<mies;i++)
suma+=miesiace;
// z uwzlgednieniem lat przestepnych
int przestepne;
if (rok<=1782) przestepne=rok/4;
else
przestepne=1784/4;
przestepne+=(rok-1784)/4-(rok-1700)/100+(rok-1600)/400;
suma+=przestepne;
// dodatkowo uzwgledniam 10 dni opuszcoznych przy zmanie kalendarza z julianskiego na
if (rok <=1782) suma+=10;
return (suma+4)%7+1 ;

KULL [ Gladiator ]
mi nie dziala dla tych ostatnich dat :/ .... pewnie wina mojego kompilitora.
troche kodu dodalem do swojego programu:
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
#include <graphics.h>
int dzien(int , int, int );
int miesiace[12]=31,28,31,30,31,30,31,31,30,31,30,31;
char *dni[7]="poniedzialek","wtorek","sroda","czwartek","piatek","sobota","niedziela";
int Rok,Miesiac, Dzien, Wyjscie;
int main()
Again:
clrscr();
printf("Podaj rok: ");
scanf("%d",&Rok);
printf("Podaj miesiac:");
scanf("%d",&Miesiac);
printf("Podaj dzien:");
scanf("%d",&Dzien);
if (Rok < 0 || Miesiac<1 || Miesiac >12 || Dzien <1 || miesiace[Miesiac-1]<Dzien)
printf("Nieprawidlowo podana data! Wprowadz dane ponownie.");
getch();
goto Again;
return 0;
else
printf("To byl %s ",dni[dzien(Rok,Miesiac,Dzien)-1]);
getch();
printf("\n\nCzy chcesz sprawdzi kolejnĽ datŠ?\n[1] - Tak\n[2] - Nie");
scanf("%d",&Wyjscie);
if (Wyjscie==1)
goto Again;
return 0;
int dzien(int rok, int mies, int dzien)
//bez uwzglednienia lat przestepnych
int suma;
if(rok>0)
suma=(rok-1)*365+dzien;
else suma=dzien;
for (int i=0;i<mies;i++)
suma+=miesiace;
// z uwzlgednieniem lat przestepnych
int przestepne;
if (rok<=1782)
przestepne=rok/4;
else
przestepne=1784/4;
przestepne+=(rok-1784)/4-(rok-1700)%100+(rok-1600)%400;
suma+=przestepne;
// dodatkowo uzwgledniam 11 dni opuszcoznych przy zmanie kalendarza z julianskiego na
if (rok <=1872) suma+=10;
return (suma+4)%7+1;
btw: tam ma byc suma+=miesiace czy suma+=miesiace ?????
Swidrygajłow [ ]
-->
Interface [ Legionista ]
Mam problemik z algorytmem sortowania przez prosty wybór, chyba cosik le z tablicy spisalem bo wyskakuje mi ze jest zła deklaracja
void selectionsort (int t[], int n);
int i, j, temp, m;
for(i=0;i<=n-1;i++)
m=i;
for(j=i+1,j<n;j++)
if(t < m)
m=j;
temp=t;
t=t[m];
t[m]=temp;
Interface [ Legionista ]
Jeszcze raz bo mialem zmienna "i" wlaczył sie format tekstu przy tablicy [.i] i poucinalo troche kodu :)
zamienilem i=a
void selectionsort (int t[], int n);
int a, j, temp, m;
for(i=0;i<=n-1;i++)
m=a;
for(j=a+1,j<n;j++)
if(t[a] < m)
m=j;
temp=t[a];
t[a]=t[m];
t[m]=temp;

Interface [ Legionista ]
ok juz sobie poradzilem, thx za pomoc ;P
DeV@sT@toR [ Senator ]
Następnym razem zajrzyj na stronę:
KULL [ Gladiator ]
Kurcze nadal mi wyskakuja bledy, to samo miał mój kolega co mi miał napisac ten program i już to naprawil, ale nie chce mi powiedziec jak i chce ode mnie forse za ten program :/ taki kolega wlasnie. Ale nic, dowiedzialem się od niego, ze caly jego program kozysta z dokladnie trzech wyliczen i dwoch funkcji z stdio i conio, no i jest bez tablic. (niech przypomne, ze chodzi o program:
18. Przelicznik dat. Program powinien wyliczać dzień tygodnia na podstawie dowolnej daty w latach 1-2100 n.e.)
Ponizej link do programu mojego "kolegi". Zaraz siadam i postaram się go jak najbardziej po prymitywnemu napisac, ale pewnie będzie ciezko, wiec jak macie troche wolnego to proszę o pomoc, ewentualnie jak cos zrobi ktos to niech poda mi nr konta bankowego. Ach, ten swiat już od dawno nie jest bezinteresowny :). Tym bardziej Wam dziekuje za dotychczasowa pomoc !!

KULL [ Gladiator ]
dla zainteresowanych fajny link o kalendarzach, teraz siadam i zaraz to musze rozgrysc, bo sie zapowiada ciekawe glowkowanie :)), moze w koncu zrozumiem te kalendarze, a czas najwyzszy cos sie pouczyc. bo to juz studnia .... a ja taki niedoinformowany :(
:P
Swidrygajłow [ ]
nie rozumiem, u mnie działa
Swidrygajłow [ ]
napisz dokšłdnei jakie sa błędy
jakie masz rodowisko programistyczne
Swidrygajłow [ ]
a ten program w linku u mnie nei dziala
wpisuje 2001 i on sie zamysla
Swidrygajłow [ ]
a temu skurwielowi Twojemu koledze to możesz w mordę przyjebać
Swidrygajłow [ ]
ej zaraz, jesli ten ostani listing przez Ciebie umieszczony jest taki jaki masz to nie poprawiłe wszystkiego!!!
u mnie inny jest algorytm obliczania dni przestepnych

WolverineX [ Senator ]
Moge też bardzo ale to bardzo prosic na mejla te ksiazeczki :) bede...
DeV@sT@toR [ Senator ]
O które ksišżeczki? :) Jeli chodzi Ci o te, które umieszczałem jaki czas temu w necie to już sš skasowane - tydzień to na serwerze trzymajš. Mogę wgrać jak chcesz, ale to potrwa bo zajmujš ok 80Mb.
Swidrygajłow [ ]
KULL człowieku! widzę że ja się bardziej przejmuję niż Ty
WolverineX [ Senator ]
Dev sprawa wyglada tak ze sciaglem prze chwilka dokladnie Symfonie C++ Grebosza mam.
ale reszta mnie interesuje.

DeV@sT@toR [ Senator ]
Dwa czy trzy tomy, bo na necie najczęsciej spotyka się wersję dwutomowš - inne eBooki bez problemu znajdziesz na DC++, włanie z 3 tomowš symfoniš jest problem, ale ostatnio też coraz częciej się jš spotyka.
WolverineX [ Senator ]
tak. trzy tomowa. z '99.
daodam ze mam tez Pasje grebosza.
Wypowied została zmodyfikowana przez jej autora [2004-12-27 03:31:01]

Regis [ ]
Kull --> A czym kompilujesz ? Ja mam czesto problemy roznego typu jak kompiluje g++, natomiast gcc dziala nalezycie w kazdych okolicznosciach (chyba ze jest moj blad :P )
KULL [ Gladiator ]
wszystko robie na Borland C++ 3.1, a co do bledow to mi albo wyskakuja zle daty, albo dla np. daty 2099 nic nie wyswietla, tak jakby nie bylo odp.
btw: czemu w tych programach wszedzie jest data 1782, kiedy czytam wlasnie, ze to w 1582 zostal zmieniony ten kalendarz ??
KULL [ Gladiator ]
jezeli dziala komus ten program to jak macie chwilke czasu sprawdzcie czy na tym Wam dziala : ----link--->
Maevius [ Czarownik Budyniowy ]
Hej, potrzebuje pomocy. Napisalem w Pascalu kalkulator binarny, musze go _pilnie_ przepisac na C. Jednak C jeszcze nie znam zbyt dobrze, moze znacie jakis translator ? Albo podpowiecie mi troche, pokazecie zestawienie funkcji/petli/deklaracji/operacji Pascal/C ? Cholerka, czas mnie goni straszliwie, a musze toto przepisac.. Kod w pascalu wklejam ponizej w linku.
https://decadence.boo.pl/kalkulator/
Wypowied została zmodyfikowana przez jej autora [2004-12-27 11:57:20]
Maevius [ Czarownik Budyniowy ]
C nie koniecznie jest wymogiem w powyzszym problemie. Moze byc i C++, chociaz wydaje mi sie trudniejszy do zrealizowania.
KULL [ Gladiator ]
slowik --> pisales cos o dekompilatorach C, ze nie ma dobrych. A mozesz podac chocby te niedobre ?? :)

Raf [ Pretorianin ]
Może kto zna jakie dobre strony lub ksišżki odnonie WinAPI?
KULL [ Gladiator ]
Raf ---> ostatnio szukalem stron o C, moze cos i o WinAPI znajdziesz tam:
ftp://ci-1.ci.pwr.wroc.pl/J.Ratajczak/
https://www.wsp.krakow.pl/~n/algo/greg.htm
[PL]
Hacker Howto
https://tpk.f2o.org/hacker-howto.html
Programy Open Source C++ (Kompilatory, biblioteki,nazedzia, itd.):
https://www.software.com.pl/cdrom/092003.php
https://webkurs.com/
AVRProgramowaniew języku C
https://freefm.pluton.one.pl/mike/avr/wstep.html
https://madminer.republika.pl/
https://www.polskie.programy.nom.pl/cgi-bin/main.cgi
https://www.pod.webd.pl/index.php?nn=down
https://www.sciagi.sarnet.pl/
https://lab.pap.edu.pl/~2PF/2PF/progcpas.php
Opis wybranych języków programowania:
https://www.euh-e.edu.pl/poradnik/800/jezyki_programowania-ks/opis.html
https://it.aplus.pl/it/
Jedna z lepszych stron w języku polskim dotyczšca programowania w C++. W
https://www.intercon.pl/~sektor/cbx/
Kurs C++ dla poczštkujšcych. Dodatkowo opis biblioteki standardowej oraz przykładowe
zadania w C++ wraz z rozwišzaniami.
https://3miasto.net/~chq/

WolverineX [ Senator ]
Ja sobie zalatwilem Borlanda C++ buildera 6 PE. i bede chyba z niego zadowolony :)

Raf [ Pretorianin ]
KULL -> Dzięki! Najlepszy jest ten link: ftp://ci-1.ci.pwr.wroc.pl/J.Ratajczak/, skšd ja tego Pana znam ;)

KULL [ Gladiator ]
Wielkie dzięki wszystkim za pomoc w pisaniu programu z tymi datami !! To jest najlepsze forum jakie w necie istnieje ! Szczególnie za chcę tutaj podziękować Swidrygajlowi, który praktycznie napisał mi ten program, wcišż konsultujšc się ze mnš przez gg i powięcił sporo swojego czasu na to. Wielkie dzięki!
Romanujan [ Konstruktor Katapult ]
Mam mały dylemat - chciałbym używać w swoich programach C/C++ garbage collectora. Znalazłem w sieci tylko jeden, autorstwa Hansa Boehma. Czy komu może wiadomo o innych bibliotekach tego typu? Która jest najlepsza? Byłbym wdzięczny, gdyby kto podzielił się dowiadczeniami...
WolverineX [ Senator ]
dobra. przerzucilem sie z borlanda na DEV C++. bo i darmowy to i latwiejszy w obsludze. tylko czy jest dobry ??? mozecie mi na to odpowiedziec ??

KULL [ Gladiator ]
Czytam, czytam i nic mi nie wychodzi. W jaki sposob wyswietlic zawartosc pliku na ekranie (w C lub C++)??
FILE*ptr
.
. (...)
.
char tab[30];
ptr=fopen("C:\\plik.txt","r");
fwrite(tab,1,30,ptr);
printf("%c",tab);
wiem, ze to jest zle, ale nie moge skapowac na jakiej zasadzie dziala wyswietlanie zawartosci pliku na ekranie. Raz mi sie udalo wyswietlic 1 znak, ale to nie to co chce :). help!

Sir Skull [ Know your enemy ]
KULL - to sš totalne podstawy, nie miale tego w szkole ?
Prosze bardzo, to jest najprostszy przykład wyswietlania zawartosci pliku na standardowe wyjscie :)
#include <stdio.h>
#include <stdlib.h>
int main(void)
FILE *plik=fopen("test.txt","r");
char c;
while((c=getc(plik))!=EOF)
printf("%c",c);
system("PAUSE");
fclose(plik);
return 0;
Pamiętaj, dobra ksišżka Twoim przyjacielem :P

KULL [ Gladiator ]
Sir Skull --> wielkie dzieki ! dziala idealnie :)
widzisz, to jest taki problem, ze mam w zeszycie napisane:
EOF - koniec pliku
fgetc(ptr) - pobiera z pliku znak,......
...... itd.
a jak przychdzi do pisania programu to nie do konca wiem co jak laczyc. Z ksiazkami dopiero sie zapoznaje, a tutaj program na zaliczenie pisac trza :). Wielkie dzieki! nauka na przykladach to klucz do sukcesu !! :P

KULL [ Gladiator ]
Nie ma kto z Was odsprzedać Symfonii C++ ?? Na allegro sš, ale i tak w miarę drogie :). A wersje elektroniczna nie chce mi sie czytac, bo szkoda mi wzroku.
WolverineX [ Senator ]
KULL masz tu link [LINK] do sklepu gdzie mozesz zamowic
Jerzy Grębosz ,
Wydawca: Edition 2000 ,
oprawa: miękka,
Format: 16x23cm,
Język: polski,
iloć stron: 1499,
TOM 1 -TOM 2 - TOM 3 w jednym
cena: 54+przesylka (6 zl jesli przelwem, 9 zl jesli przy odbiorze)
Wypowied została zmodyfikowana przez jej autora [2005-01-02 14:57:35]
znany-banita [ Pretorianin ]
z jakiego ROSOWISKA PROGRAMISTYCZNEGO DO C/C++ korzystacie? nie chodzi mi o kompilator ale jeli kto ma całe srodowisko to jakie? visual? borland? a może inne?

KULL [ Gladiator ]
znany-banita ---> ja uzywam tylko kompilatora, ale mam na plycie Eksperta Komputer Swiat 6/2004 Borland Delphi 7 Profesional - full wersja. Nie wiem czy to dobre, ale mozesz je na tym cd znalezc :).
WolverineX --> hmm... drozej niz na allegro, ale taniej (nawet z przesylka) niz w Empiku :)

Sir Skull [ Know your enemy ]
znany-banita --> Używam Dev-C++ albo Visual C++ w zależnoci od humoru :P Jednak najlepiej mi się pisze w Dev'ie - link na dole.
WindowsXP [ Konsul ]
To teraz lameriada:
#include <stdio.h>
void main(void)
printf("Hello World");
Drukuje "Hello World" ale zaraz znika. Co zrobić, aby zastopować to na np. 15 sekund, aby można było przeczytać, bšd do czasu wcinięcia np. spacji?
KULL [ Gladiator ]
WindowsXP --> powiem to co mi mowili inni: ta sa podstawy, ktore sa w kazdej ksiazce dla poczatujacych :)
wystarczy dodac getch(); - czeka az nacisniesz klawisz jakis aby isc dalej
#include <stdio.h>
void main(void)
printf("Hello World");
getch();
WindowsXP [ Konsul ]
Haha, wiesz... kupiłem sobie ksišżkę... chciałem oszczędzić na Symfonii i się przejechałem, teraz ksišżka się kurzy, a ja korzystam z Internetu :-)
Dzięki!!!

WindowsXP [ Konsul ]
Nie muszę czego więcej "doincludować"? Bo:
c:\documents and settings\czarek\pulpit\untitled1.cpp: In function `int main(...)':
c:\documents and settings\czarek\pulpit\untitled1.cpp:6: implicit declaration of function `int getch(...)'

WindowsXP [ Konsul ]
Aha - i gdzie dowiem się jaka funkcja z czym się wišże? Na przykład:
bez "stdio.h" nie wykona "printf" i tak dalej. Opatruję linki z góry wštku, ale jest tam tyle informacji, że odpiszecie mi nim dotrę do tego, czego szukam :P
WindowsXP [ Konsul ]
Ble:
#include <conio.h> :P
Ale i tak wcišż nie wiem, co od czego ;-)
WindowsXP [ Konsul ]
Fajnie tak ze sobš pogadać... ;-)))
Napisałem, a właciwie to ukradłem i zmodyfikowałem (od czego trzeba zaczšć ;P) program:
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
int main ()
int a,b,c,d,e,f,age;
cout << "Ile masz lat? \n";
cin >> age;
a=age;
b=a*7;
c=a*365;
d=c*24;
e=d-60;
f=e*60;
cout << "Przezyles juz: \n " << c << " dni, \n" << d << " godzin, \n" << e << " minut, \n" << f << " sekund, \n"<< b << " lat ma pies w Twoim wieku ;-) \n \n";
cout << "Wcisnij jakis klawisz, aby przerwac ten program";
getch();
return 0;
I mam dwie zagwozdki:
1. Dlaczego przed "x dni" mam spację? Pewnie jakie przeoczenie w kodzie, ale nic nie widzę :P
2. Dlaczego po wrzuceniu np. siedmiu dziewištek wychodzš liczby ujemne? W szkole uczyli mnie, że jeli pomnożę liczbę dodatniš przez dodatniš - nijak nie wyjdzie mi ujemna :P
Screeny po prawej stronie:

KULL [ Gladiator ]
WindowsXP ---> jak tak dalej pojdzie, to ten watek sie zamieni w Forumowy Kurs C++ :). Poswiec chocby jeden dzien na poczytanie jakiegos kursu C++ (linki znajdziesz w tym watku), bo to sa na prawde podstawy, nawet taki laik jak ja nie zadawalem takich pytan (ale jestem z siebie dumny :P). nie abym Cie chcial zniechecic do zagladania do tego watku, ale ostatnio w watku (https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=3188927&N=1), DeV@sT@toR napisal mi: KULL --------> Powiem jedno - jednak jeste leniem, kompletnym. . Mial racje :), a teraz ja tobie WinXP powiem to samo:
WindowsXP ---> Powiem jedno - jednak jeste leniem, kompletnym. I to jeszcze z minusowym rankingiem na Forum :P
Po.Om [ Legionista ]
Witam wszystkich jestem nowy na tym forum. I mam zamiar rozwijac sie razem z wami :D ( mam nadzieje natrafie tu na jakies ciekawe problemy ) nie chce mowic co umiem a czego nie... to wyjdzie z czasem.
KULL. czytalem twoje tematy na zalicznie. Nie sa proste ale cholernie interesujace, szkoda ze znam 0 pozycji o c/c++ opisujacej np. obsluge portów szeregowych, comów itd. Operacje na plikach sa rozwiazane tylko z teoretycznego punktu widzenia.... brak takich bajerków jak odczyt katalogu ( do dzis nie wiem jak zrobić by mi program który by przeszukiwała katalogi..sam ot tak z siebie, czytajac z dysku ), o obsludze internetu..opisie bibliotek nawet nie wart wspominac bo tego poprostu nie ma. W ksiazkach tych co zostaly wymienione nauczysz sie c/c++ ale to bedzie tylko jezyk, bardzo wazna sprawa jest opanowac jakis kompilator i jego biblioteki ( niestety ) na standardowych mozliwosciach bibliotek ( nie jezyka a bibliotek :) ) nie napiszesz programów latwo i milo ( pojecia takie jak przerwania, jakie struktury plików, jak zapisuje sie na dysku, jak pakuje sie pamiec, jak umieszczac np w Rami-e program itd itd.... to zagadnienia różniace sie pomiedzy kompilatorami i systemami (zakladam windows / linux ).
Dlatego musisz uważac na zajeciach...kozystać z pomocy internetowej zalaczonej na stronie microsoftu i koniecznie zdobyc jakies materialy od bylych studentów.
Ja mam do dzi napady nerwowe jak nie wiem za co sie zlapac. A i zaczynac uczyc sie od C a nie od C++ :D wiem z autopsji. NIE pisac mi u cout << itd. NIe omawiać klas dziedziczenia bo to na tym etapie co ja tu zlukalem sensu nie ma. To sie przydaje w programowaniu ale specyficznie i jest na 100% trudniejsze opanowanie teg owszystkiego :D ( sam zapomnialem moze dlatego taki stosunek do tego) dam moze prosty przyklad, mamy opengl jest to jezyk programowania grafik "latwy mily przyjemny potezny" i jest to strukturalny ( tak ijak c) a taki direct microsoftu jest "trudny grony zagmatwany poplatany tez poteżny" i jest obiektowy :D jak c++ dlatego radze opanowac pierwszo C.
mam nadzieje komus tu pomoge i sam sie naucze :D czegos...
DeV@sT@toR [ Senator ]
Po.Om --------> I co Ci po OpenGL jak programowanie pod Windowsa to obiektówka, obiektówka i jeszcze raz obiektówka. Już widzę jak programujes w WinApi nie znajšc pojęcia klasa :P Poza tym produkty Microsoftu sš zagmatwane już z samej definicji - np. ich nazewnictwo, pać można na zęby jak się to zobaczy. Artykuł ze stronki - pierwszy program :)
#include <windows.h>
static TCHAR lpszAppName[] = TEXT( "API Windows" );
LRESULT CALLBACK MainWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
switch (uMsg)
case WM_CREATE:
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_KEYDOWN:
break;
default:
return (DefWindowProc(hWnd, uMsg, wParam, lParam));
return(0L);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
MSG msg;
WNDCLASS wndclass;
HWND hWnd;
wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc = MainWndProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hInstance = hInstance;
wndclass.hIcon = NULL;
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.lpszMenuName = NULL;
wndclass.lpszClassName = lpszAppName;
if(RegisterClass(&wndclass) == 0)
return FALSE;
hWnd = CreateWindow(lpszAppName, lpszAppName,
WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);
if(hWnd == NULL)
return FALSE;
ShowWindow(hWnd, SW_SHOW);
UpdateWindow(hWnd);
while(GetMessage(&msg, NULL, 0, 0))
TranslateMessage(&msg);
DispatchMessage(&msg);
return msg.wParam;

aka [ Chor��y ]
DeV@sT@toR --> miałbym twierdzić, że w winapi nie ma ani jednej klasy. Nie miałby wtedy możliwoci pisania programów pod winde w językach nieobiektowych.

techman [ Konsul ]
Dobrze, że ja mam takie proste* na infie bo bym zajoba dostał;]
*Pętle for, while, do...while:P No i algorytmy Euklidesa fe.
DeV@sT@toR [ Senator ]
aka ----------> Hehehe, żarty sobie robisz? Klasy, struktury, co chcesz :) Już kod, który zapodałem przeczy Twoim twierdzenio.

KinSlayer [ Demon Hunter T ]
WindowsAPI to jedna wielka sieczka... Jedno slowo: handle. Czyli hDC, hFile, hWnd, hWdp, itd ;)))
DeV@sT@toR [ Senator ]
No, a oczywicie hWdp jest najważniejsze ;)

KinSlayer [ Demon Hunter T ]
czyste WinAPI nie uzywa klas w pelnym tego slowa znaczeniu.
DeV@sT@toR >> bardzo polularny typ zmiennej ;)
DeV@sT@toR [ Senator ]
W pełnym czy nie w pełnym - bawišc się tym korzystałem z klas i tyle, ale żebym to co poznał to nie powiem - kosmos można w tym zawrzeć.
DeV@sT@toR [ Senator ]
A tak w ogóle (bo my tu gadugadu o C++ i jakich WinApi), a czy kto mógłby polecić mi dobrš ksišżkę do nauki Javy, ale nie samego języka, a wykorzystania go w budowie profesjonalnych serwisów www. C++ już podziękowałem, interesujš mnie zastosowania i-netowe, więc jadę Javš (350-tkš:P)

Po.Om [ Legionista ]
HEh..
DeV@sT@toR ---> WinApi jest strukturalne :D na 100000% to jest po prostu zbiór funkcji zebranych w specjalnych bibliotekach zwanych .dll ( takich jak Kernel itd. ) by programować w WinApi nie potrzeba znać pojecia klasy, a konicnie struktury, a struktury nie sa obiektowe. Pisze sie class nazwa itd. ; dlatego ze tak juz sie przyjeło. Obiektowoć natomiast =:
1. Dziedziczenie i z tym zwiazane komponęty.
2. Fuckcje w klasach, konstruktory destruktory.
a i ja znam pojecie klasy :D i to nawet niele tyle ze wyszedlem z wprawy. Pod winapi programouje do dzi niedlugo dam linki do moich programów.
NP.:
-Rysowania funcji w 3d ( paser jest tylko innego autora ) cala reszta moja. Winapi + opengl.
-Ostylkoskop ( czy oscyloskop ) juz nie pamietam. Pod dosa.
-Hmm...kod od mojej gierki. Nie wiem ile sie zachowalo, mialem awarie dysku i tylko moge liczyć na to ze w szkole mam jakie kopie plików. ( mam nadzieje mam ).
-Projekt grawitacja. WinApi + opengl. Jest jakas przestrzeń ( siatka ..rózne sposoby rysowania )
do tego jakies ciała ( kulki ) :D odksztalcajace ta przestrzen zgodnie z prawami fizyki ( lub odwrotnie zamiast przyciagac odpychaja )
Dobra i jeszcze about...tego winapi ...zebys mie mowil ze jesem lamerem to powiem tak, MASZ racje w programowaniu windows uzywa sie bardzo duzo elementów programowania obiektowego. Jednak sa to zeczy przewaznie zautomatyzowane, dostepne w edytoze graficznym. Mało kto pisze okna dialogowe :D je sie po prostu rysuje ( tworzy) i potem okresla.
PODSUMOWANIE.
winapi - nie jest obiektowe.
w winapi używa sie technik obiektowych.
dobra koniec >D o javie nie wiem ..a moze ktos wie jak "zakosić" strumien danych odbieranych prze internet ( wysyłanych..itd ). Ja chialbym przechwycić cišg bitów..jak ko wie to prosze o pomoc.
cya
DeV@sT@toR [ Senator ]
Po.Om --------> Dobra, dobra, przyznaję się do błędu :) Za programistę się nie uważam, nie studiuję informatyki, z C++ miałem krótki romans. Widziałem sporo kodów ródłowych, trochę się WinApi bawiłem i w sumie włanie tego typu zastosowania miałem na myli (tzn. obecnoć tych elementów obiektówki w programowaniu pod Winde, o których wspominasz), natomiast pozostaje jeszcze kwestia rozwiniętych, nowoczesnych aplikacji, z których bardzo wiele pisanych jest obiektowo - ale nie istotne, nie jestem osobš kompetentnš w tych tematach by dyskutować szerzej. Jak już mówiłem teraz uczę się Javy i o ile wiem Java jest też na studiach, a jest w pełni obiektowa - dlaczego nie zaczšć od C++, po co sobie głowš motać C? Ale nie wazne.
Może kto zna jakš literaturę w interesujšcym mnie temacie?
DeV@sT@toR [ Senator ]
PS. Nie mów mi co to znaczy obiektowoć, wiem :) Dostatecznie się naczytałem najpierw w php (choć tutaj można dyskutować), póniej C++ teraz Javie.

KorN123 [ Junior ]
potrzebuje napisac program calkujacy podana przez uzytkownika funkcje metoda sipmspona. funkcja ma byc podawana w odwrotnej notacji polskiej. uzytkownik ma prawo okreslic dokladnosc calkowania. wynik calkowania wraz z funkcja rozwinieta w adnotacje infixowa nalezy zapisac do podanego plik przy wywolaniu programu
mam algorytmy i "podobne" programy ale nie mam tego zrobionego w czystym C jakby ktos byl zainteresowany pomoca zrozpaczonemu studentowi prosze pisac
Maevius [ Czarownik Budyniowy ]
W jaki sposob najprostszym przykladem wyjasnic dzialanie funkcji wirtualnych w klasach w c++ ?
Maevius [ Czarownik Budyniowy ]
Spoko, poradzilem sobie sam. Zrobilem to tak:
#include <stdio.h>
#include <iostream.h>
#include <vcl.h>
#include <conio.h>
class jeden
public:
virtual void a()
cout << "klasa numer 1\n";
;
class dwa : public jeden
public:
void a()
cout << "klasa numer 2\n";
;
class trzy : public dwa
public:
void a()
cout << "klasa numer 3\n";
;
int main()
jeden one;
dwa two;
trzy three;
one.a();
two.a();
three.a();
jeden *wsk;
wsk = &two;
wsk -> a();
wsk = &three;
wsk -> a();
getch();
Swidrygajłow [ ]
programowanie w windows jest proste, tylko strasznie pracochłonne jęsli sie robi wszystko ręcznie (piszšc w czystym c)
ja nie chce sie bawic wiec korzystam z c++ buildera
95% win api to progroamowanie srukturalne, sa jednak nieliczne obiekty

KULL [ Gladiator ]
KorN123 ---> zrozpaczonych studentow Ci u nas pod dostatkiem ;)
KULL [ Gladiator ]
poczytalem ostatnio troche o C++ bo mi sie kolokwium z tego szykuje (polecam kilka ostatnich wydan czasopisma Expert KOmputer Swiat - swietny kurs C++ dla poczatkujach) i skapowalem w koncu sprawe z return 0; (znaczy sie tak mi sie wydaje, ze skapowalem ;))
mam tylko pytanie, co jezeli damy return 1; ??
_Robo_ [ Generaďż˝ ]
KULL -> Chyba jednak nie zajarzyles co to jest return 0; i do czego sluzy skoro pytasz :)

KULL [ Gladiator ]
_Robo_ --> wiec moze zapytam tak, bo troche sie zamieszalem przy czytaniu tych kursow :)
return 0; konczy funkce i zwaraca 0, czyli wartosc funckji jest 0 ?? Czyli return x; zawsze koczy funcje i zwraca wartosc x, czyli nadaje danej funkcji ta wartosc x ??
Wiec jezeli inna funkcja sie nie odwoluje do funkcji w ktorej jest return x; to nie ma znaczenia co sie zwraca ?
Czy moje rozumowanie jest bledne ?? :)
Esqualante [ Jyhad Baghadyr ]
DeV@sT@toR >>>>>>>
Jak już mówiłem teraz uczę się Javy i o ile wiem Java jest też na studiach, a jest w pełni obiektowa - dlaczego nie zaczšć od C++, po co sobie głowš motać C? Ale nie wazne.
Bo to trochę jak uczyć się mnożenia, nie wiedzšc, co to dodawanie; albo uczšc się całkować, nie znajšc pochodnych. :)
Oczywicie, potrzebny jest umiar, tak jak we wszystkim zresztš. Mówi się, że jak kto zbytnio siedzi w programowaniu strukturalnym, to ma problemy z przejciem na obiektowe. - i to jest prawda, a wynika to włanie z braku umiaru.

_Robo_ [ Generaďż˝ ]
KULL -> No tak, sluzy do zakonczenia funkcji i zwrocenia wartosci. A teraz inne pytanie, po co sie daje (standard ANSI) w funkcji int main() return 0; na koncu? :) (albo return inna wartosc i kiedy?)
Esqualante [ Jyhad Baghadyr ]
KULL >>>>> Ma znaczenie i nie ma. Jest to kwestia przyjęcia zasad postępowania. Zero oznacza, że funkcja została wykonana poprawnie i zakończyła działanie 'normalnie'. Jedynka - że co poszło nie tak, i funkcja nie wykonała swojego zadania, np nie udało się zainicjować sterowników grafiki, w danych wejciowych był błšd, wynik wyszedł niepoprawny itd. Zazwyczaj nie ma znaczenia, co funkcja zwraca (skoro nie musi zwracać żadngo wyniku), ale dobry zwyczaj mówi, że funkcja powinna mieć na końcu return 0;
Tak jest też w main'ie - zero oznacza, że program poszedł poprawnie. Gdyby nagle wystšpił błšd pamięci albo co, umiesza się w funkcji exit(1) (o ile mnie pamięć nie myli) i jest to sygnał dla systemu operacyjnego, że program zakończył swoje działanie nie tak, jak powinien.

KULL [ Gladiator ]
_Robo_ --> Esqualante na to odpowiedzial ?? :)
_Robo_ [ Generaďż˝ ]
KULL -> No tak :) To jeszcze z czasow DOS-a, gdzie przez "errorlevel" w BATach mozna bylo sprawdzic jak sie zakonczyl program (odczytac do zwrocil return z main() )

KULL [ Gladiator ]
ok to teraz sie upewnie czy mi sie nie myla pojecia:
return 0; oznacza ze :
jak mamy:
int funkcja1 (x);
//instrukcje
return 0;
int main ()
funkcja1;
to funkcja main odwolujac sie do funkcja1 widzi ja jako 0, po zakonczeniu wykonywania //instrukcji ??

KULL [ Gladiator ]
czyli bylem w bledzie..... dzieki wielkie za wytlumaczenie !!
Esqualante [ Jyhad Baghadyr ]
Tak, widzi jš jako 'zero' i teraz może sprawdzić, czy funkcja1 przebiegła poprawnie, np
if (funkcja1(x)) printf("Blad w funkcja1!"); /*zamiast funkcja1(x);*/
pod warunkiem, że return 0 i return 1 (w przypadku błędu) zostały zaimplementowane w funkcja1.
Proste i nieskomplikowane.

DeV@sT@toR [ Senator ]
Boże, ta Java jest chora - wszystko tutaj ujęte jest w jakie standardy, wzorce itp. Człowiek się dusi od tego :)

KorN123 [ Junior ]
jestem w stanie za ten prog zaplacic 50 zl !!!!! jezeli ktos bedzie chetny podjac sie tego zadania plz msg na GG 5823662 podam jeszcze raz tresc i powiem wam ze mam juz duzo materialow tylko trzeba poskladac w calosc
"program calkujacy podana przez uzytkownika funkcje metoda sipmspona. funkcja ma byc podawana w odwrotnej notacji polskiej. uzytkownik ma prawo okresi;lic dokladnosc calkowania. wynik calkowania wraz z funkcja rozwinieta w adnotacje infixowa nalezy zapisac do podanego plik przy wywolaniu programu"
jezeli ktos jest chetny oddzywac sie czas gra duza role ;(
van [ ignoruj mnie ]
czesc
dopiero zaczynam z CPP i mam kilka prostych pytan.
1. Kiedy napisze np. hello world to po uruchomieniu okno dosa zaraz sie zamyka. Jak sprawic zeby mozna byla przeczytac sobie co tam jest?
2. Nawet z tym hello world mam mase problemow. Korzystam z DevCPP 4.9.9.1
moj kod:
#include <iostream.h>
int main()
printf("Hello world");
Wyrzuca jakis blad z includowanie...
KULL [ Gladiator ]
nastepny z "Hello world" :). skad wy bierzecie ten przyklad (kurs) ??
po uruchomieniu programu w linii komend powinno bylo wszystko widac (start/uruchom/ i wpisac "cmd").
KULL [ Gladiator ]
van -->
rodowisko Borland C++ 3.1 oraz instrukcja jego uruchomienia i konfiguracji:
https://www.wemif.pwr.wroc.pl/labc/labc/lab1/lab1a.html
a w kodzie dopisz getch(); - patrz kilka postow wyzej.
Poza tym to co napisales to jest w czystym C, a nie w C++.
Wypowied została zmodyfikowana przez jej autora [2005-01-07 13:57:38]
Swidrygajłow [ ]
van - deklaracja funkcji printf znajduje się w pliku stdio.h a nie iostream.h
KorN123 [ Junior ]
prosze was ludziki napewno ma ktos kod odwrotnej adnotacji polskiej w C plz hlp ! szukalem tego na necie i nie moge znalezc ;/ A jakby mial ktos cos takiego ze wprowadza sie do programu w odwrotnej notacji polskiej a program liczy i podaje mi w notacji infixowej to bylbym juz wogule wniebowziety :)

Regis [ ]
KorN --> Pisalem taki program (zamiana do ONP i spowrotem) w zeszlym roku na informatyke - poszukam, ale szanse ze znajde sa male - w wakacje padl mi dysk, a przez przeoczenie nie backupowalem od pewnego momentu katalogu z programami do szkoly i ten prog mogl sie nie zalapac na zadna archiwizacje...
Ale swoja droga - przeciez taki program to nic specjalnie trudnego - cala jego trudnosc to implementa cja stosu - pozniej wszystko sie robi dosc mechanicznie - trzeba tylko rozumiec jak twoezy sie zapisy w ONP, a to zbyt trudne nie jest :)
Regis [ ]
A zanim jeszcze poszukam - wyguglałem takie cu - to nie o to Ci chodzi ?

Regis [ ]
Sorry man :( Mam tylko wczesna wersje tego programu, ktora zamienia normalny zapis na ONP, ale nie obsluguje jeszcze nawiasow :( Nic pozniejszego (czytaj: obslugujacego nawiasy i dzialajacego w druga strone) nie znalazlem :(

KULL [ Gladiator ]
Regis --> ja nie jestem w stanie ci pomoc :(, dopiero co odkrylem wspanialosc jaka niesie ze soba "return" :)
#include <stdio.h>
#include <conio.h>
int funkcja1 (x)
return 2*x;
void main ()
int a=3;
printf("%d",funkcja1(a));
getch();
na ekranie pokazuje oczywiscie 6. wspaniala sprawa ten return :)

DeV@sT@toR [ Senator ]
KULL -------> Huehehe ;)
KorN123 [ Junior ]
Regis a moglbys mi jeszcze dac linka do "stack.h" ? :) bylbym wdzieczny :)
Maevius [ Czarownik Budyniowy ]
van,
po prostu dodaj w ciele funkcji np char c;
cin >> c;
i bedzie czekal z zamknieciem dopoki nie nacisniesz c.

Regis [ ]
KorN --> Troche inwencji, kolego ;)
https://tomasz.ii.uni.wroc.pl/jp/materialy/stack.c
https://tomasz.ii.uni.wroc.pl/jp/materialy/stack.h
Wszysko jest :)

KorN123 [ Junior ]
kocham was normalnie ale jeszcze potrzebuje kodu ktory zmienia z postfixu na infix czyli z onp do normala ... napewno ktos z was ma loknijcie dyski i pomozcie :P

KorN123 [ Junior ]
jak zalicze ten projekt obiecuje sobie ze zaczne sie uczyc C dla siebie naprawde spodobalo mi sie to ale z moimi wiadomosciami nie jestem sobie napisac tego progu :(

KorN123 [ Junior ]
teraz tak jak mam zmienic ten kod zeby program nie liczyl mi tylko sinusa ale kazda funkcje podana w onp ???? pewnie dla was to 5 sek a ja moge myslec do konca swiata i dalej niewiadome bedzie czy wymysle ^^ a oto kod:
// Calkowanie numeryczne metoda Simpsona
#include<stdio.h>
#include<math.h>
float f(float x)
return sin(x);
int main(void)
float calka,xp,xk,dx,x;
float s=0;
float st=0;
int i,n; //n to liczba podprzedzialow na ktore dzielimy przedzial calkowania
printf("Podaj lewa granice calkowania, xp = ");
scanf("%f",&xp);
printf("Podaj prawa granice calkowania, xk = ");
scanf("%f", &xk);
printf("Podaj liczbe podzialow, n = ");
scanf("%i",&n);
dx = (xk-xp)/n;
for (i=1; i<=n; i++)
x = xp + i*dx; // Wyliczamy kolejny punkt podzialowy
st=st+f(x-dx/2); // Liczymy sume w punktach srodkowych
if (i<n) s = s+f(x); // Liczymy sume w punktach podzialowych
calka=dx/6*(f(xp)+f(xk)+2*s+4*st);
printf("calka = %f\n", calka);
potrzebuje go przerobic tak zeby mi liczyl skubany kazda calke w ONP
Maevius [ Czarownik Budyniowy ]
W czym to kompilujesz ? Dev mi sie wykrzacza niemal po kazdej pozycji
mgd [ Junior ]
mam pytanie :
Jak nalezy linkowac pliki zrodlowe .cpp z wlasnymi plikami naglowkowymi .h?
czy makefile ma byc generowany automatycznie, czy pliki te nalezy umiescic w strukturze projektu (w jaki sposob) ??
tresc bledu jest nastepujaca:
Unable to open include file 'nazwa_pliku.h
w helpie daja taka informacje:
You do not have FILES set in CONFIG.SYS on your root directory. gdzie tego szukac
mgd [ Junior ]
co do mojego wczesniejszego zapytania(08.01.2005|18.33)...
...cala kmpilacja przebiega pod borlandem c++ wersja 5.01
Esqualante [ Jyhad Baghadyr ]
mgd >>>> z jakiego kompilatora/linkera korzystasz? W jakim systemie?
mgd [ Junior ]
wiecej szczegolow co do 08.01.2005|18.33
-plik.h -zawiera jedynie deklaracje klas, ich zmiennych i funkcji
-wszelkie definicje klasy zdefinowane zostaly w innym pliku plik1.cpp (gdzie znajduje sie tez #include "plik.h")
-uzytek z tych klas zostal zrobiony w pliku zawierajacym main()->plik2.cpp gdzie jest zaznaczone #include "plik.h"
dlaczego to nie chce dzialac??
mgd [ Junior ]
komplicja pod windows xp
...wiesz cos moze Esqualante na ten temat ? metoda prob i bledow zajmuje sporo czasu :/
Esqualante [ Jyhad Baghadyr ]
hmmm, nie wiem... :/, na poczštek plik1.cpp powinien sie nazywać tak jak nagłówkowy, czyli plik.cpp, następne powiniene sprawdzić ustawienia Borlanda, jakie sš katalogi domylne, a także, czy katalogiem domylnym (roboczym) w windowsie jest ten, gdzie masz "plik.h"
mgd [ Junior ]
Z katalogami i nazwami wszystko ok. Wydaje mi sie ze blad jest w interpretacji tego, ktory plik definiuje deklaracje w pliku naglowkowym, a ktory korzysta z tych definicji.

Po.Om [ Legionista ]
Kto chce moje programy ?
Podać swoj adres e-mail.
I czekać "cierpliwie" na maila.
Wysyłam tylko pierwszym 3 osobom. ( wiecej mi sie nie bedzie pewnie chialo ) i to kazdy moze sobie wybrac jeden program.
1. Funkcje3d Program do rysowania funkcji w 3d jak sama nazwa wskazuje. Tu wysyłam tylko same pliki potrzebne do uruchomiania. ( .Exe i .dll ). W programie uzyty został paser wyr.arytmeycznych innego autora, ( za jego zgodš ) programu nie mozna bedzie rozprowadzać ani udostępniać ( na wlasny domowy użytek ).
2. Projekt Grawitacja Progream wraz z kodem ródlowym, fajne efekty dotyczšce grawitacji. Grawitacja powiędzy super cieżkm ciałem a siatka. Mozliwy ruch ciała ( pileczki ) mozliwe odwzorowanie ruchu duzej ilosci cial. ( program by modyfikowac bedzie trzeba w kodzie mieszać ) standawdowo juz nie pamietam jak jest :D
3. Oscyloskop ( pod dosa ) nie wiem czy mam pelny kod wyle to co mam ( ale dopiero mniej wiecej w rode ) . NIe bedzie kilku bibliotek które przepadly wraz z moim dyskiem.
4. Czec kodu gierki ( dizzy vampire's blood ) i plik wykonywalny ( jaka połowa pracy dziala ale rownież nie ma bibliotek :(
5. jak co znajde t opowiem Teraz tworze program Który bedzie tworzył własny tryb postaci + edytor do nich. ( ofcoze prymitywów z kresek kropek itd. ) a potem jak scene 3d z ich wykozystaniem ) Bardzo czytelny kod :D jak narazie
to sijonarka i pisać kto co chce dostać 3 osoby każda po 1 programie
KorN123 [ Junior ]
mam pytanie mam skomplikowany dosc program kurde i nie moge sobie poradzic ze zrozumieniem go czy jakbym komus podeslal na maila ten prog zrobil by mi opisy ktora linijka co robi ? :(

KULL [ Gladiator ]
Po.Om --> Jak bedziesz wysylal te programy hurtowo, to ja tez poprosze wszystkie pod [email protected] . :)

KULL [ Gladiator ]
Jutro kolokwium z informatyki z ćwiczeń , zobaczymy jaki ze mnie głšb :). Jak mi dobrze pójdzie, to stworzę nowy wštek z numerem 3 i nowymi fajnymi adresami www jakie wynalazłem :).

KULL [ Gladiator ]
Ale jazda, umiełem prawie wszystko na to kolo, procz struktur i mialem ogromne problemy ze wskaznikami. Wszystkie 5 punktow na klole byly wlasnie z tego :/. Dobrze, ze nasz wykladowca to spoko ziom :).... nie wiem za co ale dostalem 4 z minusem (minusow ponoc nie ma ;)). Zaraz zaloze nowy watek na czesc tego.... ale ja mam farta.... nie mialem ani jednego zadania poprawnie napisanego.... :). Glab ze mnie jednak, wiec bede sie uczyl C++ na test z wykladow, bo to juz bedzie Sajgon ;).
Wlasnie wyszukuje nowe stronki i je segreguje i zaraz nowy wateczek bedzie, bo ten sie juz za dlugo wczytuje :P. Pozdrawiam.
PikiMar [ Pretorianin ]
Witam.
Probuje, probuje i nie moge wymyslic jak napisac cos takiego:
Mam tablice znakow char menu[6][30]="i tu", "wpisuje", "wszystko","to", "co", "chce",;. Mam napisac funkcje ktora bedzie przyjmowala jako parametr ta tablice, i wypisywala ja w petli tak zeby kazda linijka byla w innym wierszu. Funkcja ma wygladac tak: int nazwa (char*opcje[]);
I nie wiem jak do niej napisac deklaracje oraz wywolanie w programie??
Mam nadzieje ze moje zapytanie sformuowalem zrozumiale. Prosze o pomoc
Po.Om [ Legionista ]
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
char *menu[30]="i tu", "wpisuje", "wszystko","to", "co", "chce";
int nazwa(char *opcje[]);
void main()
nazwa(menu);
getch();
int nazwa(char *opcje[])
for(int i=0;i<6;i++)
printf("%s\n",opcje);
return 0;
/* Funckja nie moze wygladać tak int nazwa(char *opcje[]);
dla takiej zmiennej char menu[6][30]="i tu", "wpisuje", "wszystko","to", "co", "chce";
A i zastanów sie na przyszloć czy to co piszesz ma jaki sens.
Wskażniki mozna podobnie traktować jak tablice i na odwrot ale to nie to samo.
*/
Po.Om [ Legionista ]
Po pierwsze mnie czytać.... powiedzialem ze każdy po 1 programie i pierwsze 3 osoby. NIe wysylam juz funckji3d cos sie stalo z tym paserewm ( inneg autora ) skonsultuje sie znim itd. OGLASZAM PONOWNIE.... PIERWSZE TRZY OSOBY co napiszš:
mail
program
:)
otrzymajš to co chcš.
Mam zato dobra wiadomoć. Mam kody do Dizzy Vapire's Blood :D ofcoze nie calej gireki. ALE stworzenie wroga rowna sie stworzeniu tablicy :D np 30 postaci rozmszczonych automatycnzie na planszy
ta_tablica[30];
i podobnie z resztš :D
kod pod Dos BR3.1
i mma kod do osloskop czy jakos tak :D
Esqualante [ Jyhad Baghadyr ]
Hej!
Mam pewien problem z linkowaniem programu napisanego w C, mianowicie kompilator (gcc v3.3.3, ale sprawdzalem tez w innych kompilatorach z podobnym wynikiem) podaje blad:
gra.o(.rodata+0x0): multiple definition of `alfabet'
prog.o(.rodata+0x0): first defined here
gra.o(.rodata+0x1c): multiple definition of `MinPoz'
prog.o(.rodata+0x1c): first defined here
gra.o(.rodata+0x20): multiple definition of `MaxPoz'
prog.o(.rodata+0x20): first defined here
gra.o(.rodata+0x24): multiple definition of `MinLiter'
prog.o(.rodata+0x24): first defined here
gra.o(.rodata+0x28): multiple definition of `MaxLiter'
prog.o(.rodata+0x28): first defined here
itd... itd...
sprawdzałem na wiele sposobów, nazwy sa poprawnie zapisane, czytałem ksišżkę, gdzie jest tak samo zrobione (ale w C++, może to ma znaczenie...), w materiałach w necie jest tak samo... nie wiem już sam, co może być le...jakby kto zechciał to skompilować, albo choć zobaczyć, co jest le, będę dwięczny :)
listing (skrócony, bo i tak nie chcę debugować programu, tylko, żeby odpalił :))
stale.h
#ifndef STALE_H
#define STALE_H
#include <stdio.h>
#include <stdlib.h>
const char alfabet[] = "abcdefghijklmnopqrstuvwxyz";
const int MinPoz = 2;
const int MaxPoz = 10;
const int MinLiter = 2;
const int MaxLiter = 26;
#endif
prog.c
#include "gra.h"
int main()
Gramy();return 0;
gra.h
#ifndef GRA
#define GRA
#include "stale.h"
#include "gener.h"
#include "sprawdz.h"
int CzyJeszczeRaz();
int Gramy();
#endif
gra.c
#include "gra.h"
int CzyJeszczeRaz() return 0;
int Gramy()
do
while (CzyJeszczeRaz());
return 0;
gener.h
#ifndef GENER
#define GENER
#include "stale.h"
#include "pobdane.h"
#include "time.h"
int WylosujLitere(int * n);
int WygenerujKod(char * pKod, int * pPowtarzanieZnakow, int * pIloscZnakow, int * pDlugoscKodu);
#endif
gener.c
#include "gener.h"
int WylosujLitere(int * n) return 0;
int WygenerujKod(char * pKod, int * pPowtarzanieZnakow, int * pIloscZnakow, int * pDlugoscKodu) return 0;
sprawdz.h
#ifndef SPRAWDZ
#define SPRAWDZ
#include "stale.h"
int PobierzProbe(char * pProba);
int WyswietlWynik(int Trafione, int NieNaMiejscu);
int IleRazy(char * Wyraz, int DlugoscKodu, char c);
int SprawdzProbe(char * pProba, char * pKod, int DlugoscKodu, int IloscZnakow, int * pTrafione, int NieNaMiejscu);
#endif
sprawdz.c
#include "sprawdz.h"
int PobierzProbe(char * pProba) return 0;
int WyswietlWynik(int Trafione, int NieNaMiejscu) return 0;
int IleRazy(char * Wyraz, int DlugoscKodu, char c) return 0;
int SprawdzProbe(char * pProba, char * pKod, int DlugoscKodu, int IloscZnakow, int * pTrafione, int NieNaMiejscu) return 0;
pobdane.h
#ifndef POBDANE
#define POBDANE
#include "stale.h"
int PobierzDane(int * pPowtarzanieZnakow, int * pIloscZnakow, int * pDlugoscKodu);
#endif
pobdane.c
#include "pobdane.h"
int PobierzDane(int * pPowtarzanieZnakow, int * pIloscZnakow, int * pDlugoscKodu) return 0;
Koniec kodu. Mam nadzieje, ze przepisalem bezblednie :)

PikiMar [ Pretorianin ]
Po.Om --> Jestes wielki!!! Dzieki za implementacje, baardzo mi sie przyda :)
Po.Om [ Legionista ]
Linkowanie to to czego gumisie nie lubia robic najbardziej.
hmm...stale.h to naglowkowy i sie zgadza wszedzie go umieszczasz. Ale nie umieszczaj tam bibliotek stdlib.h itd..* to tylko sugestia. Umiesc je w prog.c po co wywolywac je wiele razy ? hmm...a reszta wyglada w miare poprawnie ( w miare to znaczy nie widze błędów ).
Sugestia. Po co umieszczać wszystki te definicje w tak wielu plikach ? Zrob kilka, naglówkowy+prog.c i tyle. Po co w sumie sobie zycie utrudniac. Mogl bys tez umiescic linka do kodu (spakoj czyms i zrob linka) lob slij ma mail [email protected]
SORKI ZA BLEDY...jest noc jestem wykonczony i nie moge pisac [dysgrafia+]
Po.Om [ Legionista ]
Postanowilem umiescic kod programu.
Program stroboskop oscyloskop czy jak to tam sie nazywa.
PIERWSZO BIBLIOTEKI.
GRAPH.H
void graph(int i)
int drv; // 1) zainicjowanie zmiennej drv - sterowniniki
int mode; // 2) zmienna mode - dla kompilatora
int errorcode; // 3) zwrocony bĽd
switch(i)
case 1:
drv =DETECT;
initgraph( &drv, &mode, "..\\BGI" );
errorcode = graphresult();
if( errorcode != grOk )
cout << "Error_graphic"<< endl;
getch();
exit(1);
break;
case 2:
moveto(0,0);
lineto(639,0);
moveto(0,479);
lineto(639,479);
moveto(0,480);
lineto(0,0);
moveto(500 ,0);
moveto(639,0);
lineto(639,479);
break;
case 3:
closegraph();
break;
default:
cout << "||| Error graph |||" << endl ;
getch();
exit(1);
void far* ball_create(int texture,int color, int r, int ON_OF)
int data;
void far* ball;
if(ON_OF == 1)
data = imagesize(0,0,2*r,2*r);
ball = farmalloc( data );
cleardevice();
setfillstyle(texture,color);
//circle(0+r,0+r,r*r);
fillellipse(r,r,r,r) ;
getimage(0,0,2*r,2*r,ball);
cleardevice();
return ball;
else
farfree( ball );
return 0;
Po.Om [ Legionista ]
NEXT biblioteka to jest.
TEXT.H
#include <graphics.h>
#include <iostream.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <conio.h>
#include <alloc.h>
#include <math.h>
#include <dos.h>
class text
private:
int x,y,type;
float war;
char *msg;
char str[55];
public:
text(int, int, float);
text(int, int, char*);
void text_dst(void);
;
text::text(int wsp_x, int wsp_y, float liczba)
x = wsp_x;
y = wsp_y;
war = liczba;
setcolor(WHITE);
outtextxy(x,y,gcvt(war,4,str));
type = 0;
text::text(int wsp_x, int wsp_y ,char *tekst)
x = wsp_x;
y = wsp_y;
msg = tekst;
setcolor(WHITE);
outtextxy(x,y,msg);
type = 1;
void text::text_dst(void)
setcolor(BLACK);
switch(type)
case 0:
outtextxy(x,y,gcvt(war,4,str));
break;
case 1:
outtextxy(x,y,msg);
break;
setcolor(WHITE);
Po.Om [ Legionista ]
no i kod programu.
#include <graph.h>
const g = 9.81;
void menu_create(float&,float&,float&,float&,int&);
int start(void);
void help(void);
int voy_MENU(float &voy);
int k_MENU(float &k);
int wind_MENU(float &wind);
int dt_MENU(float &dt);
void obwod(void);
void stan(float&,float&,float&,float&,int,int,char*);
void Fizyka(float,float,float,float,int);
void main()
float voy=0,k=0,wind=0,dt=0;
int stroboskop=0;
graph(1);
graph(2);
menu_create(voy,k,wind,dt,stroboskop);
getch();
graph(3);
/////////////////////////////////////////////////////////////////////////////
int start(void)
char zmienna_ch;
if( (kbhit() != 0) && ( zmienna_ch = (putch(getch() ) ) ) )
if(zmienna_ch == 'v' )
return 1;
if(zmienna_ch == 'k' )
return 2;
if(zmienna_ch == 'w' )
return 3;
if(zmienna_ch == 't' )
return 4;
if(zmienna_ch == 's' )
return 5;
if(zmienna_ch == 'q' )
return 'q';
if(zmienna_ch == 'f')
return 6;
if(zmienna_ch == 'p')
return 7;
if(zmienna_ch == 'h')
return 8;
return 13;
/////////////////////////////////////////////////////////////////////////////
void menu_create(float &voy,float &k,float &wind,float &dt,int &stroboskop)
int run = 13, fresh = 0, voy_wsk = 1, k_wsk = 1, wind_wsk = 1, dt_wsk = 1;
obwod();
while(run != 0)
switch(start())
case 1:
while(voy_wsk != 0)
voy_wsk = voy_MENU(voy);
fresh = 1;
stan(voy,k,wind,dt,fresh,0,"voy");
voy_wsk = 1;
break;
case 2:
while(k_wsk != 0)
k_wsk = k_MENU(k);
fresh = 1;
stan(voy,k,wind,dt,fresh,0,"k");
k_wsk = 1;
break;
case 3:
while(wind_wsk != 0)
wind_wsk = wind_MENU(wind);
fresh = 1;
stan(voy,k,wind,dt,fresh,0,"wind");
wind_wsk = 1;
break;
case 4:
while(dt_wsk != 0)
dt_wsk = dt_MENU(dt);
fresh = 1;
stan(voy,k,wind,dt,fresh,0,"dt");
dt_wsk = 1;
break;
case 5:
Fizyka(voy,k,wind,dt,stroboskop);
stan(voy,k,wind,dt,1,1,"0");
stan(voy,k,wind,dt,1,0,"0");
stroboskop = 0;
break;
case 6:
fresh=1;
stroboskop = 0;
setfillstyle(1,0);
bar(5,210,300,310);
bar(475,1,629,20);
break;
case 7:
stroboskop = 1;
line(475,20,630,20);
line(475,0,475,20);
text str_text(480,7,"Obraz stroboskopu");
break;
case 8:
help();
break;
case 13:
obwod();
fresh = 0;
stan(voy,k,wind,dt,fresh,0,0);
break;
case 'q':
exit(0);
break;
/////////////////////////////////////////////////////////////////////////////
int voy_MENU(float &voy)
char zmienna_ch;
if( (kbhit() != 0) && ( zmienna_ch = (putch(getch() ) ) ) )
if((zmienna_ch == '+') && (voy < 50))
voy++;
return 1;
if((zmienna_ch == '-') && (voy > 0))
voy--;
return 1;
if(zmienna_ch == ' ')
return 0;
return 1;
/////////////////////////////////////////////////////////////////////////////
int k_MENU(float &k)
char zmienna_ch;
if( (kbhit() != 0) && ( zmienna_ch = (putch(getch() ) ) ) )
if((zmienna_ch == '+') && (k < 0.99))
k+= 0.01;
return 1;
if((zmienna_ch == '-') && (k >= 0.01))
k-= 0.01;
return 1;
if(zmienna_ch == ' ')
return 0;
return 1;
/////////////////////////////////////////////////////////////////////////////
int wind_MENU(float &wind)
char zmienna_ch;
if( (kbhit() != 0) && ( zmienna_ch = (putch(getch() ) ) ) )
if((zmienna_ch == '+') && (wind < 0.69))
wind+= 0.01;
return 1;
if((zmienna_ch == '-') && (wind >= 0.011) )
wind -= 0.01;
return 1;
if(zmienna_ch == ' ')
return 0;
return 1;
/////////////////////////////////////////////////////////////////////////////
int dt_MENU(float &dt)
char zmienna_ch;
if( (kbhit() != 0) && ( zmienna_ch = (putch(getch() ) ) ) )
if((zmienna_ch == '+') && (dt < 10))
dt+= 0.01;
return 1;
if((zmienna_ch == '-') && (dt >= 0.01))
dt-= 0.01;
return 1;
if(zmienna_ch == ' ')
return 0;
return 1;
/////////////////////////////////////////////////////////////////////////////
void Fizyka(float voy,float k, float wind,float dt,int stroboskop)
float vy, r = 15, h = r+1, v_op;
while(!kbhit())
vy = g*dt + voy;
v_op = vy*dt * wind;
h = (h + vy*dt) - v_op;
text E_pot(60,25,(440-(h+r+vy*dt))*g);
text E_kin(60,35,(vy*vy)/2);
text v(25,55,vy);
text delta_S(75,75,dt*vy);
if( ((440 - (h+r+1)) < 0) && (stroboskop == 1)) break;
setcolor(WHITE);
circle(350,h,r);
delay(25);
E_pot.text_dst();
E_kin.text_dst();
v.text_dst();
delta_S.text_dst();
if(stroboskop != 1)
setcolor(BLACK);
circle(350,h,r);
voy = vy - v_op;
if( (440 - (h+r+1)) < 0)
if(stroboskop == 1) break;
if((440 - (h+r+vy*dt)) < 0 )
h = h + (440 - (h+r+vy*dt)) ;
if(voy > 0 )
if(stroboskop == 1) break;
voy *=-k;
if(stroboskop == 1)
stroboskop = 0;
getch();
setfillstyle(1,0);
bar(300,1,600,630);
bar(475,1,629,20);
obwod();
/////////////////////////////////////////////////////////////////////////////
void stan(float &voy,float &k, float &wind,float &dt,int fresh,int zero,char* co)
text voy_text(155,30,"voy = ");
text voy_wart(210,30,voy);
text k_text(155,75,"k = ");
text k_wart(210,75,k);
text wind_text(155,45,"wind = ");
text wind_wart(210,45,wind);
text dt_text(155,60,"dt = ");
text dt_wart(210,60,dt);
text co_text(260,97,co);
delay(20);
if(fresh > 0)
voy_wart.text_dst();
k_wart.text_dst();
wind_wart.text_dst();
dt_wart.text_dst();
co_text.text_dst();
fresh = 0;
if(zero == 1)
voy = 0;
k =0;
wind =0;
dt =0;
fresh =1;
stan(voy,k,wind,dt,fresh,0,"0");
////////////////////////////////////////////////////////////////////////////
void obwod(void)
outtextxy(5,5,"menu");
outtextxy(5,25,"E_pot:");
outtextxy(5,35,"E_kin:");
outtextxy(5,55,"v:");
outtextxy(5,75,"delta_S:");
outtextxy(5,100,"Autor:");
outtextxy(5,110,"ANONIM");
outtextxy(5,130,"Wersja specjalna");
outtextxy(3,140,"dla LO_nr.1 LALALA");
outtextxy(180,5,"h - pomoc");
line(110,20,300,20);
line(0,20,150,20);
line(0,50,150,50);
line(0,70,150,70);
line(0,90,150,90);
line(152,0,152,90);
line(150,90,152,90);
line(0,0,150,0);
line(0,0,0,200);
line(150,0,150,200);
line(0,200,150,200);
line(300,440,630,440);
line(300,450,630,450);
line(300,0,300,450);
line(150,90,300,90);
line(250,110,300,110);
line(250,110,250,90);
/////////////////////////////////////////////////////////////////////////////
void help(void)
outtextxy(5,210,"s - start symulacji");
outtextxy(5,220,"v - prŠdko poczĽtkowa");
outtextxy(5,230,"k - wsp˘czynnik zderzenia");
outtextxy(5,240,"w - op˘r powietrza");
outtextxy(5,250,"t - zmiana czasu");
outtextxy(5,260,"q - wyjcie");
outtextxy(5,270,"+ - zwiŠksza");
outtextxy(5,280,"- - zminiejsza");
outtextxy(5,290,"f - zeruje panel");
outtextxy(5,300,"p - stroboskop");
outtextxy(5,311,"spacja - zatwierdza przy wspisywaniu");
outtextxy(5,320,"Uwagi:");
outtextxy(5,330,"- nie naciska s jak zwyczajny buton");
outtextxy(5,340,"- nie przekracza 0.1 przy dt");
outtextxy(5,350," bez užycia obrazu stroboskopowego");
outtextxy(5,360,"- k to jest v = v * k (przy odbiciu)");
outtextxy(5,400,"LALALALL");
outtextxy(5,410,"ProwadzĽcy: ");
Po.Om [ Legionista ]
PROSZE O WYROZUMIALOĆ :D program napisalem 2 lata temu ( teraz mam 18 ) wiec proszę o jaki wglšd na taki a nie inny stan programu, NIE POLECAM SPOSOBU LINKOWANIA :D Program napisany po d borlanda 3.1 czy 3.11 biblioteki umiescic w pliku include w borlandzie. NIE MOWIC MI O POPRAWKACH itd nie interesuje mnie to, pisze teraz wogole innym stylem i nie chce mi sie zagłebiac w tajniki borlandowskiej bibloteki graficznej ( jednej z gorszych .bgi ) ktora tez trzeba miec i umiescic w odpowiednim miejscu a szczeglnie w folderku wykonywania programu. NIE POLECAM STRATY CZASU NA ta biblioteke graficzna. NIE UNIKNIECIE EFEKTU MIGANIA :(
( da sie ale trzeba znac asemblera , ja nie znam wiec mowie ze nie potrafie :D )
Po.Om [ Legionista ]
Tu podaje Link Gry. ( plik wykonywalny)
https://adrian86.neostrada.pl/GRA.zip
prosze o komenty.
Esqualante [ Jyhad Baghadyr ]
Po.Om >>>>>> szczęciem już sobie poradziłem. Zamiast
const int Nazwa = 10;
wstawiłem
#define Nazwa 10
a zamiast
const char alfabet[] = "abcdefghijklmnopqrstuvwxyz";
dałem
#define alfabet "abcdefghijklmnopqrstuvwxyz"
... i działa :)
Ad. Twojej wypowiedzi
"stale.h" potrzebne sa w wiekszosci modułów, a umieszczenie ich we wszystkich jest ponoć "dobrym zwyczajem". Chyba że potrzebe byłyby tylko w jednym pliku, to co innego. Podział na tyle plików jest wymagany w treci zadania :) więc nie da się tego skrócić. "stdio.h" też zaleca się umieszczać w pliku "stale.h".
Ad. Twojego programu
Wyglada podobnie jak mój program rysowania wykresów napisany na zaliczenie semestru, tylko jest mniej zagmatwany :]
Po.Om [ Legionista ]
Heh :D
Esqualante --> jak mowilem, pisalem ten programik jakies 2 lata temu ( ciut mniej moze ), teraz zdecydiwanie cala grafike robie w OpenGL, a okienka windows. Co do twego Ad. :D to masz racje w sumei i tak sie nic nie zmieni jesl wywolasz 1 czy 100 razy biblioteke bo i tak jest to zapisane i juz nie przetwarza tego samego. :D
A i GIERKE SCIĽGAĆ i oceniac.....( tez pod Dosa ) Gierki kod udostępnie.
UWAGA UWAGA :D
Piszę nowy program. Kreacja/zapis/odczyt/edycja PLIKU postaci
( stary sie nie udal )
Czekam na propozycje co chcielibyscie w nim zawrzeć. ( co sie wam przyda np na zdanie )
Aktualnie dostępne sa funkcjie: (ich juz nie dodawac)
-Odczyt pliku konfiguracyjnego jako plik textowy i odczytanie takich informacji jak czy ma odczytac czy zapisywac, gdzie ma odczytac/zapisywac i jaka nazwa, tryb zapisu , tryb odczytu.
-Zapis...tworzy badz doddaje klatki animacji do postaci.
-Odczyt odczytuje kolejne klatki postaci.
i steraz sonda ? o.O czy kod ma optymalizowac ilosc klatek zmniejszajac tym samym ilosc zajowanego miesjca na dysku czy nie ( prostrzy) ?
o.O czy kod ma podczas tworzenia wyswietlac slabym kolorem poprzednia klatke i obok punktów pisac literki czy moze kolejna klatke bedzie uzyskiwalo si poprzez przesuniecie punktow poprzedniej?
o.O kolejne sady zostana wyswietlone jak zacznie sie cos dziać w moim programie.
Po.Om [ Legionista ]
screen z programu
https://adrian86.neostrada.pl/siatka.zip

KULL [ Gladiator ]
no teraz to juz watek sie 2 godziny wczytuje :)
zapraaszam do nowego, nr 3 ---->>
https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=3228514&N=1