Implementacje algorytmów, struktur danych w języku C/C++. Drzewa binarne,listy jednokierunkowe,dwukierunkowe,tablice dynamiczne, wskaźniki.
środa, 17 sierpnia 2011
Pisanie projektów studencki C/C++ JAVA
Masz problem skontaktuj się ze mną. Po przez bloggera, załóż konto i napisz w komentarzu tego postu . POZDRO.
wtorek, 16 sierpnia 2011
Kawa czy JAVA - nowy blog
Zapraszam wszystkich interesujących się językiem JAVA -
http://kadoel-kawaczyjava.blogspot.com/
sobota, 19 lutego 2011
niedziela, 23 stycznia 2011
C++ ofstream
#include iostream
#include fstream.h
using namespace std;
char sciezka[100]; //sciezka do zapisu
void zapisz_do_pliku(char *sciezka){
ofstream plik;
plik.open(sciezka);
char c;
int i=0;
char tekst[1000];
cout <<"Podaj tekst do zapisania:\n";
cin.get(c);
cin.get(c);
while ( c != '\n' )
{
if(c!='\n'){
tekst[i]=c;
i++;
cin.get(c);}
}
plik<< tekst;
}
string odczyt(void){
ifstream plik;
plik.open(sciezka);
string tekst;
while(getline(plik,tekst))
{
getline(plik,tekst);
}
plik.close();
return tekst;
}
int main()
{
cout<<"Podaj sciezke do pliku:\n";
cin >>sciezka;
zapisz_do_pliku(sciezka);
string a;
cout<<"Plik odczytany: \n\n-----------------------------------------------\n\n";
a=odczyt();
cout<
Przeciążanie operatorów w języku C++
#includeusing namespace std; class zespol{ private: double re,im; public: zespol(){ re=0; im=0; } zespol(double r,double i) { re=r; im=i; } zespol operator +(zespol A) { return zespol(re+A.re,im+A.im); } zespol operator -(zespol B) { return zespol(re-B.re,im-B.im); } zespol operator *(zespol C){ return zespol((re*C.re-im*C.im),re*C.im+im*C.re); } zespol operator /(zespol D){ return zespol(re/D.re,im/D.im); } friend ostream & operator<< (ostream &wyjscie,zespol &E); friend istream & operator >>(istream &wejscie,zespol &E); zespol get(double r,double i){ return zespol(r,i); } void wypisz(void){ cout<<"\n----------------\n"<<"re: "< >(istream &wejscie,zespol &E){ cout<<"Podaj re: "; wejscie>>E.re; cout<<"Podaj im: "; wejscie>>E.im; return wejscie; } int main() { zespol z,a,b,c,d, z1(1,2),z2(9,8); z=z1+z2; a=z1-z2; b=z1*z2; c=z1/z2; cout<<"\n----Dodawanie:\n"; z.wypisz(); cout<<"\n----Odejmowanie: \n"; a.wypisz(); cout<<"\n----Mnozenie: \n"; b.wypisz(); cout<<"\n----Dzielenie: \n"; c.wypisz(); cout<< c; cout<<(z=z1+z2); cin>> d; cout<
niedziela, 1 sierpnia 2010
Podstawy programowania w systemach UNIX/LINUX cz. 1
W pierwszej kolejności zajmiemy się obsługą systemu plików.System plików to daje użytkownikowi możliwość dostępu do danych przechowywanych w pamięci pomocniczej(np. dysk). Jest on także odpowiedzialny za zarządzanie plikami i przydzielanie im pamięci, za administrowanie pamięcią wolna oraz sterownie dostępem do plików.Procesy(wykonujące się programy) komunikują się z systemem plików poprzez funkcje systemowe.
Jądro systemu operacyjnego UNIX udostępnia nam dwie podstawowe operacje zapis i odczyt , przy pomocy funkcji systemowych write i read .Trzeba wiedzieć ,że plik traktowany jest jako tablica bajtów dzięki temu możemy operować na nim z dokładnością co do bajtu.
Aby móc wykonywać operacje na pliku trzeba najpierw go otworzyć ,do tego celu posłuży nam funkcja open. Zwraca ona deskryptor pliku,zapytacie pewnie czym jest ów "deskryptor" . Jest to liczba ,która "opisuje" , a mówiąc bardziej precyzyjnie identyfikuje plik. Standardowo deskryptory 0, 1, 2 przydzielone są standardowemu wejściu,wyjściu i wyjściu diagnostycznemu.
Przy otwieraniu pliku przekazywany jest tryb otwarcia , który określa dopuszczalne operacje jakie można wykonać w związku z tym otwarciem (tylko zapis, tylko odczyt etc.)
Poniżej zamieszczam definicje najważniejszych funkcji systemowych:
int creat(const char *pathname, mode_t mode)
Wartości zwracane:
poprawne wykonanie funkcji: deskryptor otwartego pliku
zakończenie błędne: - 1
Argumenty funkcji:
pathname – wskaźnik do napisu zawierającego nazwę ścieżki pliku, który ma być otwarty
mode – prawa dostępu (np. 0640)
Opis:
Funkcja tworzy nowy plik, którego lokalizacja zależy od parametru pathname , a prawa dostępu od parametru mode .
int open(const char *pathname, int flags[, mode_t mode])
Wartości zwracane:
poprawne wykonanie funkcji: deskryptor otwartego pliku
zakończenie błędne: - 1
Argumenty funkcji:
pathname – wskaźnik do napisu zawierającego nazwę ścieżki pliku, który ma być otwarty
flags – metoda dostępu
• O_RDONLY – otwarcie w trybie tylko do odczytu
• O_WRONLY – otwarcie w trybie tylko do zapisu
• O_RDWR –- otwarcie w trybie do odczytu i do zapisu
Argument flags może być połączony bitowym OR z jedną (lub więcej) z następujących wartości:
• O_CREAT – utworzenie pliku, jeśli plik jeszcze nie istnieje,
• O_TRUNC – obcięcie pliku, jeśli plik istnieje i otwierany jest w trybie
O_WRONLY lub O_RDWR,
• O_EXCL – powoduje zgłoszenie błędu jeśli plik już istnieje i otwierany jest z flagą O_CREAT
• O_APPEND – operacje pisania odbywają się na końcu pliku.
mode – prawa dostępu, jest to argument opcjonalny
Opis:
Parametr wejściowy pathname jest nazwą (w szczególności pełną nazwą ścieżkową) pliku, parametr wejściowy flags oznacza tryb otwarcia pliku pliku i może mieć następujące wartości: O_RDONLY, O_WRONLY, O_RDWR .
int close(int fd)
Wartości zwracane:
poprawne wykonanie funkcji: 0
zakończenie błędne: - 1
Argumenty funkcji:
fd – deskryptor zamykanego pliku
Opis:
Funkcja zamyka deskryptor pliku przekazany przez parametr fd .
int read(inf fd, void *buf, size_t count)
Wartości zwracane:
poprawne wykonanie funkcji: rzeczywista liczba bajtów, jaką udało się odczytać
zakończenie błędne: - 1
Argumenty funkcji:
fd – deskryptor pliku z którego mają zostać odczytane dane
buf – adres bufora znajdującego się w segmencie danych procesu, do którego zostaną przekazane dane odczytane z pliku w wyniku wywołania funkcji read
count – ilość bajtów do odczytania
Opis:
Odczyt danych z pliku. Funkcja powoduje odczyt count bajtów z otwartego pliku, identyfikowanego przez deskryptor fd , począwszy od bieżącej pozycji wskaźnika do pliku i umieszczenie ich pod adresem buf w przestrzeni adresowej procesu. Funkcja zwraca liczbę bajtów na której udało się wykonać operację (zero oznacza koniec pliku). Odczyt powoduje zmianę wskaźnika bieżącej pozycji w pliku. Po otwarciu pliku wskaźnik ten ustawiony jest na 0, czyli na początek pliku, a po kolejnych operacjach przesuwa się w kierunku końca pliku o tyle bajtów ile udało się odczytać.
int write(inf fd, void *buf, size_t count)
Wartości zwracane:
poprawne wykonanie funkcji: rzeczywista liczba bajtów, jaką udało się zapisać
zakończenie błędne: - 1
Argumenty funkcji:
fd – deskryptor pliku do którego mają zostać zapisane dane
buf – adres bufora znajdującego się w segmencie danych procesu, z którego zostaną pobrane dane zapisane przez funkcję write
count – ilość bajtów do zapisania
Opis:
Funkcja powoduje zapis count bajtów do otwartego pliku, identyfikowanego
przez deskryptor fd , począwszy od bieżącej pozycji wskaźnika do pliku i umieszczenie ich pod
adresem buf w przestrzeni adresowej procesu. Funkcja zwraca liczbę bajtów na której udało się
wykonać operację.
Podobnie jak dla funkcji read zapis powoduje zmianę wskaźnika bieżącej pozycji w pliku.
Czas na praktykę. Napiszemy prosty program , którego zadaniem będzie
kopiowanie pliku podanego przez użytkownika:
Jądro systemu operacyjnego UNIX udostępnia nam dwie podstawowe operacje zapis i odczyt , przy pomocy funkcji systemowych write i read .Trzeba wiedzieć ,że plik traktowany jest jako tablica bajtów dzięki temu możemy operować na nim z dokładnością co do bajtu.
Aby móc wykonywać operacje na pliku trzeba najpierw go otworzyć ,do tego celu posłuży nam funkcja open. Zwraca ona deskryptor pliku,zapytacie pewnie czym jest ów "deskryptor" . Jest to liczba ,która "opisuje" , a mówiąc bardziej precyzyjnie identyfikuje plik. Standardowo deskryptory 0, 1, 2 przydzielone są standardowemu wejściu,wyjściu i wyjściu diagnostycznemu.
Przy otwieraniu pliku przekazywany jest tryb otwarcia , który określa dopuszczalne operacje jakie można wykonać w związku z tym otwarciem (tylko zapis, tylko odczyt etc.)
Poniżej zamieszczam definicje najważniejszych funkcji systemowych:
int creat(const char *pathname, mode_t mode)
Wartości zwracane:
poprawne wykonanie funkcji: deskryptor otwartego pliku
zakończenie błędne: - 1
Argumenty funkcji:
pathname – wskaźnik do napisu zawierającego nazwę ścieżki pliku, który ma być otwarty
mode – prawa dostępu (np. 0640)
Opis:
Funkcja tworzy nowy plik, którego lokalizacja zależy od parametru pathname , a prawa dostępu od parametru mode .
int open(const char *pathname, int flags[, mode_t mode])
Wartości zwracane:
poprawne wykonanie funkcji: deskryptor otwartego pliku
zakończenie błędne: - 1
Argumenty funkcji:
pathname – wskaźnik do napisu zawierającego nazwę ścieżki pliku, który ma być otwarty
flags – metoda dostępu
• O_RDONLY – otwarcie w trybie tylko do odczytu
• O_WRONLY – otwarcie w trybie tylko do zapisu
• O_RDWR –- otwarcie w trybie do odczytu i do zapisu
Argument flags może być połączony bitowym OR z jedną (lub więcej) z następujących wartości:
• O_CREAT – utworzenie pliku, jeśli plik jeszcze nie istnieje,
• O_TRUNC – obcięcie pliku, jeśli plik istnieje i otwierany jest w trybie
O_WRONLY lub O_RDWR,
• O_EXCL – powoduje zgłoszenie błędu jeśli plik już istnieje i otwierany jest z flagą O_CREAT
• O_APPEND – operacje pisania odbywają się na końcu pliku.
mode – prawa dostępu, jest to argument opcjonalny
Opis:
Parametr wejściowy pathname jest nazwą (w szczególności pełną nazwą ścieżkową) pliku, parametr wejściowy flags oznacza tryb otwarcia pliku pliku i może mieć następujące wartości: O_RDONLY, O_WRONLY, O_RDWR .
int close(int fd)
Wartości zwracane:
poprawne wykonanie funkcji: 0
zakończenie błędne: - 1
Argumenty funkcji:
fd – deskryptor zamykanego pliku
Opis:
Funkcja zamyka deskryptor pliku przekazany przez parametr fd .
int read(inf fd, void *buf, size_t count)
Wartości zwracane:
poprawne wykonanie funkcji: rzeczywista liczba bajtów, jaką udało się odczytać
zakończenie błędne: - 1
Argumenty funkcji:
fd – deskryptor pliku z którego mają zostać odczytane dane
buf – adres bufora znajdującego się w segmencie danych procesu, do którego zostaną przekazane dane odczytane z pliku w wyniku wywołania funkcji read
count – ilość bajtów do odczytania
Opis:
Odczyt danych z pliku. Funkcja powoduje odczyt count bajtów z otwartego pliku, identyfikowanego przez deskryptor fd , począwszy od bieżącej pozycji wskaźnika do pliku i umieszczenie ich pod adresem buf w przestrzeni adresowej procesu. Funkcja zwraca liczbę bajtów na której udało się wykonać operację (zero oznacza koniec pliku). Odczyt powoduje zmianę wskaźnika bieżącej pozycji w pliku. Po otwarciu pliku wskaźnik ten ustawiony jest na 0, czyli na początek pliku, a po kolejnych operacjach przesuwa się w kierunku końca pliku o tyle bajtów ile udało się odczytać.
int write(inf fd, void *buf, size_t count)
Wartości zwracane:
poprawne wykonanie funkcji: rzeczywista liczba bajtów, jaką udało się zapisać
zakończenie błędne: - 1
Argumenty funkcji:
fd – deskryptor pliku do którego mają zostać zapisane dane
buf – adres bufora znajdującego się w segmencie danych procesu, z którego zostaną pobrane dane zapisane przez funkcję write
count – ilość bajtów do zapisania
Opis:
Funkcja powoduje zapis count bajtów do otwartego pliku, identyfikowanego
przez deskryptor fd , począwszy od bieżącej pozycji wskaźnika do pliku i umieszczenie ich pod
adresem buf w przestrzeni adresowej procesu. Funkcja zwraca liczbę bajtów na której udało się
wykonać operację.
Podobnie jak dla funkcji read zapis powoduje zmianę wskaźnika bieżącej pozycji w pliku.
Czas na praktykę. Napiszemy prosty program , którego zadaniem będzie
kopiowanie pliku podanego przez użytkownika:
#include fcntl.h
#include stdio.h
#define BUF_SIZE 1024
int main(int argc, char* argv[]){
char buf[BUF_SIZE];
int desc_1,desc_2;
int odczytano=0;
if (argc<3){
fprintf(stderr, "Zla ilosc argumentow !!");
exit(1);
}
desc_1 = open(argv[1], O_RDONLY);
if (desc_1 == -1){
perror("Blad otwarcia pliku zrodlowego");
exit(1);
}
desc_1 = creat(argv[2], 0640);
if (desc_1 == -1){
perror("Blad utworzenia pliku docelowego");
exit(1);
}
while((odczytano = read(desc_1, BUF_SIZE, MAX)) > 0){
if (write(desc_2, buf, lbajt) == -1){
perror("Blad zapisu pliku docelowego");
exit(1);
}
}
if (odczytano== -1){
perror("Blad odczytu pliku zrodlowego");
exit(1);
}
if (close(desc_1) == -1 || close(desc_2) == -1){
perror("Blad zamkniecia pliku");
exit(1);
}
exit(0);
}
wtorek, 2 marca 2010
wtorek, 29 grudnia 2009
Wygrywaj nagrdoy za darmo !!!!!!!
Jeśli nie wiesz co to jest Lockerz to zapraszam na stronę : Lockerz Do wygrania setek nagród naprawdę za darmo!!! Tysiące osób się o tym przekonało.
sobota, 26 grudnia 2009
Play Station 2 SLIM OKAZJA STAN IDEALNY Z przeróbką
Zapraszam wszystkich zainteresowanych do aukcji allegro PS2 SLIM MODBO 760 . Mam do sprzedania konsole Sony Play Station 2 Slim w wersji idealnej. Konsola posiada przeróbkę czyli gramy we wszystko:):)
czwartek, 24 grudnia 2009
Implementacja listy dwukierunkowej w języku C++ (obiektowo)
#include
using namespace std;
class node{
public:
int value;
class node *next;
class node *prev;
node(int v){ //konstruktor
value=v;
}
};
class node *head=NULL;
class node *element=NULL;
class node *temp=NULL;
class node *push(class node *head, int val)
{
if(head==NULL)
{
head =new node(val); // nowy obiekt klasy node
//head->value=val;
head->prev=NULL;
head->next=NULL;
temp=head;
return head;
}else{
element=new node(val);
//element->value=val;
element->prev=temp;
temp->next=element;
element->next=NULL;
temp=element;
}
}
void show(class node *head){
while(head!=NULL){
cout<<(head->value)<<"\n";
head=head->next;
}
}
int main(){
int value;
for(int i=0;i<10;i++)
{
head=push(head, i);
}
show(head);
}
using namespace std;
class node{
public:
int value;
class node *next;
class node *prev;
node(int v){ //konstruktor
value=v;
}
};
class node *head=NULL;
class node *element=NULL;
class node *temp=NULL;
class node *push(class node *head, int val)
{
if(head==NULL)
{
head =new node(val); // nowy obiekt klasy node
//head->value=val;
head->prev=NULL;
head->next=NULL;
temp=head;
return head;
}else{
element=new node(val);
//element->value=val;
element->prev=temp;
temp->next=element;
element->next=NULL;
temp=element;
}
}
void show(class node *head){
while(head!=NULL){
cout<<(head->value)<<"\n";
head=head->next;
}
}
int main(){
int value;
for(int i=0;i<10;i++)
{
head=push(head, i);
}
show(head);
}
sobota, 14 listopada 2009
niedziela, 1 listopada 2009
Jak ZA darmo doładować konto w telefonie
Jak doładować swój telefon za darmo? Z darmowe-doladowania.com to proste! Nie musisz sie rejestrować, wystarczy, że wyślesz Twój link do 25 znajomych a darmowe doładowanie może być Twoje!
WYSTARCZY SIĘ ZAREJESTROWAĆ PONIŻEJ : DZIAŁA
http://darmowe-doladowania.com/
WYSTARCZY SIĘ ZAREJESTROWAĆ PONIŻEJ : DZIAŁA
http://darmowe-doladowania.com/
wtorek, 29 września 2009
Implementacja listy jednokierunkowej bez "->"
#include#include #include struct lista{ int key; struct lista *next; }; struct lista *head=NULL; struct lista *tmp=NULL; struct lista *element=NULL; struct lista *push(struct lista *head,int x){ if(head==NULL){ head=(struct lista*)malloc(sizeof(struct lista)); tmp=(struct lista*)malloc(sizeof(struct lista)); (*head).key=x; (*head).next=NULL; //head->key=x; //head->next=NULL; tmp=head; }else{ element=(struct lista*)malloc(sizeof(struct lista)); (*element).key=x; //element->key=x; (*element).next=NULL; //element->next=NULL; //tmp->next=element; (*tmp).next=element; tmp=element; } return head; } void wyswietl(struct lista *head){ while(head){ //printf("%d",(*head).key); printf("%d", (*head).key); (head)=(*head).next; } } int main(){ system("cls"); int x; int n; printf("Ile elementow dodac \n"); scanf("%d",&n); for(int i=0;i<(n);i++){ scanf("%d",&x); head=push(head,x); } wyswietl(head); }
O co mi chodzi,,
Chodzi mi o to, aby język giętkiPowiedział wszystko, co pomyśli głowa:A czasem był jak piorun jasny, prędki,A czasem smutny jako pieśń stepowa,A czasem jako skarga nimfy miętki,A czasem piękny jak aniołów mowa...Aby przeleciał wszystka ducha skrzydłem.Strofa być winna taktem, nie wędzidłem.
środa, 23 września 2009
Subskrybuj:
Posty (Atom)
