Szukaj

Wypracowania

  • Algorytm QuickSort w C++ (Sortowanie szybki) Pokazane połówki tablicy oraz pivot

    Projekt uruchamiany pod Visual Studio 2008. [code=cpp] // quicksort.cpp : Defines the entry point for the console application. // #include “stdafx.h” #include #include #include <time.h> using namespace std; const int n=10; int tab[n]; //========================================================= void wyswietl(int t[], int p, int k) { cout.width(6); for(int i=p; i<=k;i++) printf("%3d",t[i]); cout«endl; } void sort_szybkie(int t[], int p, int k) { int i, j, wtemp, pivot; i = p; j = k; pivot = t[p]; //definicja punkut podzialu cout«“pivot = “«pivot«“n”; while(i < j) // moga sie minąć ale mogą też być równe (zamiana skrajnych) { while(t[i]<pivot) i++; while(t[j]>pivot) j–; if(i <= j) { cout«“zamiana: “«t[i]«” z “«t[j]«endl; wtemp = t[i]; t[i] = t[j]; t[j] = wtemp; i++; j–; } } if(i < k) { cout«“sort prawej polowy dla: “; wyswietl(tab,i,k); cout«“n”; sort_szybkie(tab, i, k); // od i tam gdzie sie zatrzymalo na i, az do k koniec tablicy } if(p < j) { cout«“sort lewej polowy dla: “; wyswietl(tab,p,j); cout«“n”; sort_szybkie(tab, p, j); }

  • Jak zrozumieć wskaźniki w C++ czyli proste przykłady działania wskaźników

    Jak zrozumieć wskaźniki w C++ czyli proste przykłady działania wskaźników na przykładzie kursu: http://content3.catalog.video.msn.com/e2/ft/share10/7207/0/WinVideo-NativeCoding-Pointers.wmv Projekt uruchamiany pod Visual Studio 2008. [code=cpp] // pointers.cpp : Defines the entry point for the console application. // http://content3.catalog.video.msn.com/e2/ft/share10/7207/0/WinVideo-NativeCoding-Pointers.wmv #include “stdafx.h” #include using namespace std; //============================================================= class CTest { public: CTest() { printf(“CTest constructorn”); } ~CTest() { printf(“CTest deconstructorn”); } }; void RunTest() { cout«“Pierwszy obiekt klasy CTest:n”; CTest test; cout«“Drugi utworzony obiekt klasy CTest:n”; CTest *ptest = new CTest(); delete ptest; // Jeśli nie będzie delete to nie wykona się destruktor dla tego obiektu!

  • Liczenie pierwiastków trójmianu kwadratowego. Program w C++

    [b]Projekt uruchamiany pod Visual Studio 2008.[/b] [code=cpp] // trojmian.cpp : Defines the entry point for the console application. // #include “stdafx.h” #include // obsługa klawiatury #include // zawiera zestaw funkcji np. sqrt using namespace std; // otwarcie przestrzeni nazw dzięki temu można uzyć samego cout zamiast std::cout int _tmain(int argc, _TCHAR* argv[]) { float a,b,c,delta,delta_sqrt,x1,x2; cout<<"PROGRAM: Pierwiastki trojmianu kwadratowegonn"; cout<<"Podaj wspolczynniki a,b,c dla funkcji y=ax^2+bx+c.n"; cout<<"Podaj a:n"; cin>>a; cout<<"Podaj b:n"; cin>>b; cout<<"Podaj c:n"; cin>>c; cout<<"Twoj wielomian to y="<<a<<"x^2+"<<b<<"x+"<<c<<"nn"; // obliczamy delte delta = (b*b)-(4*a*c); delta_sqrt = sqrt(delta); if(delta > 0) { // dwa pierwiastki x1 = (-1*b-delta_sqrt)/(2*a); x2 = (-1*b+delta_sqrt)/(2*a); cout<<"Pierwiastkami wielomianu sa: x1="<<x1<<" oraz x2="<<x2; } else if(delta == 0) { // jeden podwojny pierwiastek float x0=(-1*b)/(2*a); cout<<"Wielomian ma jeden podwojny pierwiastek x0="<<x0; } else if(delta < 0) { cout<<"Delta mniejsza od zera (delta="<<delta<<").

  • Problem skoczka szachowego. Algorytm w C++

    [cytat=Problem skoczka szachowego]Znaleźć taką drogę aby poruszając się ruchem konika szachowego, odwiedzić wszystkie pola na szachownicy. W każdym polu konik może stanąć tylko raz[/cytat] [b]Projekt uruchamiany pod Visual Studio 2008.[/b] [code=cpp] // skoczek_szachowy.cpp : Defines the entry point for the console application. // #include “stdafx.h” #include #include using namespace std; //========================================================= const int n=5; int pozx, pozy; int lp, i, j; bool q; // czy uist. rozwiazanie int plansza[n][n]; int tab_ruchow[8][2]={{-1,-2},{-1,2},{1,-2},{1,2},{-2,-1},{-2,1},{2,-1},{2,1}}; char czy_koniec; int liczba_wyw_fun;

  • Szukanie liczb pierwszych. Program w C++

    [b]Projekt uruchamiany pod Visual Studio 2008.[/b] [code=cpp] // liczby pierwsze.cpp : Defines the entry point for the console application. // #include “stdafx.h” #include using namespace std; void szukaj_liczb_pierwszych(int limit); int _tmain(int argc, _TCHAR* argv[]) { int limit; cout<<"Podaj zakres do ktorej liczby mam szukac liczb pierwszych (dla 0 nieskonczonosc): "; cin>>limit; szukaj_liczb_pierwszych(limit); cout<<"nn"; system("pause"); return 0; } void szukaj_liczb_pierwszych(int limit) { static int liczba=2; int podzielnikow=0; for(int i=1; i<=liczba; i++) { if(liczba%i==0) { podzielnikow++; if(podzielnikow>2) { break; } } } if(podzielnikow==2) { cout<<"Liczba pierwsza: "<<liczba<<"n"; } liczba++; if(liczba <= limit || limit == 0) { szukaj_liczb_pierwszych(limit); } } [/code]

  • FizzBuzz w C++

    [cytat]Napisz program, który wypisuje liczby od 1 do 100. Ale dla wielokrotności trójki wyświetl “Fizz” zamiast liczby oraz dla wielokrotności piątki wyświetl “Buzz”. Dla liczb będących wielokrotnościami trójki oraz piątki wyświetl “FizzBuzz”.[/cytat] Projekt uruchamiany pod Visual Studio 2008. [code=cpp] // FizzBuzz.cpp : Defines the entry point for the console application. // #include “stdafx.h” #include using namespace std; int _tmain(int argc, _TCHAR* argv[]) { int flag; for(int i=1; i<=100; i++) { flag=1; if(i%3 == 0) { cout«“Fizz”; flag=0; } if(i%5 == 0) { cout«“Buzz”; flag=0; } if(flag) { cout«i; } cout«“n”; } system(“pause”); return 0; } [/code]

  • Ciąg Fibonacciego w C++. (Algorytm, kod źródłowy pod Visual Studio 2008)

    Program liczy wyraz na n-tej pozycji w ciągu Fibonacciego, a także liczbę wywołań rekurencyjnych funkcji. Widać, że np. już przy liczeniu 50 wyrazu program drastycznie zwalnia z obliczeniami przez dużą liczbę wywołań rekurencyjnych. Projekt uruchamiany pod Visual Studio 2008. [code=cpp] // ciag_fibonacciego.cpp : Defines the entry point for the console application. // #include “stdafx.h” #include using namespace std; //========================================================= int suma; int fib(int n) { int liczba; if(n==0) { liczba = 0; } else if(n==1) { liczba = 1; } else { liczba = fib(n-1)+fib(n-2); } //cout<<liczba<<", "; suma += liczba; return liczba; }

  • Baza danych studentów w oparciu o listę dwukierunkową w C++. Sortowanie wyników QuickSort, wyszukiwanie poprzez dopasowanie wzorca. Zapis do pliku.

    [b]Projekt bazy danych studentów przy użyciu listy dwukierunkowej wykonany w C++ przy użyciu funkcji i klas. Projekt dla I roku studiów Informatycznych. Projekt uruchamiany pod Visual Studio 2008.[/b] Szczególne funkcje programu: automatyczne ładowanie bazy po uruchomieniu programu przy wyjściu z programu jesteśmy pytani o to czy zapisać zmiany w bazie przy zapisywaniu bazy danych możemy nadpisać rekordy w pliku txt rekordami z bazy znajdującej się w pamięci programu lub możemy dopisać rekordy do bazy txt.

  • Gra kółko i krzyżyk w C++ (Tic Tac Toe). Autorski algorytm. Komputer nie do pokonania. Kod źródłowy + komentarze.

    [b]Projekt gry kółko i krzyżyk (ang. Tic Tac Toe) wykonany w C++ przy użyciu funkcji. Projekt dla I roku studiów Informatycznych.[/b] Gra oferuje: możliwość gry z komputerem lub dla dwóch graczy możliwość wyboru czy gramy kółkiem czy krzyżykiem komunikat o wygranej jednego z graczy z podświetleniem jego trzech znaków w jednej linii w przypadku gry z komputerem możemy wybrać kto zaczyna lub zdecydować się na losowy wybór autorski algorytm gry komputera (komputer jest nie do pokonania, przynajmniej tak wykazały liczne testy programu) algorytm komputera umożliwia mu wygranie z graczem jeśli ten popełni błędy strategiczne (komputer stosuje kilka strategi zaobserwowanych przy normalnej grze w kółko i krzyżyk) [b]Projekt uruchamiany pod Visual Studio 2008.

  • Gra Saper w C++ (Minesweeper). Kod źródłowy + komentarze. Logi rozgrywek

    [b]Projekt gry Saper wykonany w C++ przy użyciu funkcji. Projekt dla I roku studiów Informatycznych.[/b] Gra oferuje: sterowanie strzałkami wybór planszy: 9x9, 16x16, 16x30, własny rozmiar planszy wstawianie flag, znaków zapytania (podświetlane kolorami) algorytm odkrywający pola w grze saper (mojego autorstwa) statystyki rozgrywki np. czas gry, liczba ruchów, liczba odsłoniętych pól, rozmiar planszy [b]Projekt uruchamiany pod Visual Studio 2008.[/b] [code=cpp]/* The MIT License Copyright (c) 2010 Webook.pl Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: