Mini kurs C++

Gressil

®
Administrator
Dołączył
17 Kwiecień 2009
Posty
6 075
Punkty reakcji
561
Według mnie DevCpp jest dobry dla początkującego programisty może nie jest doskonały i np. nie jest za dobry w obiektowym podpowiadaniu metod czy zmiennych, ale na początek wystarczy - te błędy, które trzeba, wskaże i jest bardzo łatwy w obsłudze - F9 i jedziemy. W przeciwieństwie do np. Visuala, który wymaga utworzenia projektu nawet dla jednego pliku.(Ja osobiście preferuję Eclipse)

1. Nagłówki STLa powinno się deklarować tak:
Kod:
#include <iostream>
a własne nagłówki tak:
Kod:
#include "moje.h"

To jest tylko taka niepisana reguła. W praktyce jest tak, że każdy robi jak mu wygodniej.

Gra "Za dużo , za mało" Wszystko starałem się wytłumaczyć w komentarzach. Jeżeli coś jest niezrozumiałe proszę pisać. Postaram się wyjaśnić.

Kod:
#include <iostream>
#include <stdlib.h>
#include <time.h>

using namespace std;

void Start ();//definiujemy funkcje
void GetResults ();// j/w

int i, j, life, maxrand;
char c;


void
Start ()
{
 	i = 0;
 	j = 0;
 	life = 0;
 	maxrand = 6;

 	cout << "Wybierz poziom trudnosci:\n"; // wybor levelu
 	cout << "1 : Easy (0-15)\n";
 	cout << "2 : Medium (0-30)\n";
 	cout << "3 : Difficult (0-50)\n";
 	cout << "lub wcisnij jakikolwiek inny przycisk aby zakonczyc gre\n";
 	c = 30;

 	cin >> c; 	// zapytanie o wybor poziomu
 	cout << "\n";

 	switch (c)
 	{
 	case '1' : maxrand = 15; // the random number will be between 0 and maxrand
 	break;
 	case '2' : maxrand = 30;
 	break;
 	case '3' : maxrand = 50;
 	break;
 	default : exit(0);
 	/* Powyzsza linie spowoduje wyjscie z programu jezeli uzytkownik wprowadzi
 	wartosc rozna od 1 , 2 lub 3 */
 	break;
 	}

 	life = 5; 	// ustalenie maksymalnej liczby bledow gracza
 	srand( (unsigned)time( NULL ) );
 	j = rand() % maxrand; // przypisanie do zmiennj j wylosowanej liczby

 	GetResults();//wywaloanie funkji odpowiedzialnej za gre

}


void
GetResults ()//funckja odpwiedzialna na glowna czesc gry
{
 	if (life <= 0)
 	// jezeli zmienna life osiagnie wartosc 0 gracz przegrywa
 	{
 	cout << "Wykorztsales wszystkie mozliwe proby. Przegrales !\n\n";
 	Start();//rozpoczecie gry od nowa.
 	}

 	cout << "Podaj liczbe: \n";
 	cin >> i; 	// zgadywanie liczby

 	if ((i>maxrand) || (i<0)) /*Jeżeli gracz poda zla liczbe tzn nie znajdujaca
 	sie w zdefiniowanym zakresie to gra zaczyna sie od nowa*/
 	{
 	cout << "Error : Twoja liczba musi byc wieksza od 0 i mniejsza od \n" << maxrand;
 	GetResults();
 	}

 	if (i == j)
 	{
 	cout << "Brawo! Wygrales!\n\n"; // komnikat o wygranej
 	Start();// wywolanie funkcji od nowa
 	}

 	else if (i>j)
 	{
 	cout << "Podales za duza liczbe\n";
 	life = life - 1;	// odjecie jednego "zycia"
 	cout << "Pozostalo Ci: " << life << "prob" "\n\n";
 	GetResults();
 	}

 	else if (i<j)
 	{
 	cout << "Podales za mala liczbe\n";
 	life = life - 1;
 	cout << "Pozostalo Ci:\n" << life << "prob" "\n\n";
 	GetResults();
 	}
}


int
main ()//funkcja glowna Zostanie wykonana jako pierwsza
{
 	cout << "** Gra \"za duzo za malo\" **\n";
 	cout << "Gra polega na odgadnieciu wylosowanej liczby\n";
 	cout << "Masz 5 prob.\n";
 	cout << "Jezeli podasz za duza lub za mala liczbe zostaniesz o tym poinformowany\n\n";
 	Start();//wywolanie funkcji start
 	return 0;
}
 

Jarek

Nowicjusz
Dołączył
31 Lipiec 2005
Posty
175
Punkty reakcji
0
Wiek
33
Miasto
Z San Andreas
Cześć mam program który przeciąza operatory znalazlem go w necie ale mam pytanie. Na czym polega lub w jaki sposob jest to przeprowadzone przeciązanie operatorów?

Kod:
#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
#include <iostream.h>
class punkt
{
public:
float x,y;
punkt()
   	{
    this->x= 0;
    this->y= 0;
   	}
   	punkt(int x, int y)
  {
          this->x= x;
          this->y= y;
  }

  punkt operator+(punkt &k)
  {
  punkt wynik;
  wynik.x = k.x + this->x;
  wynik.y = k.y + this->y;
  return wynik;
  }
  punkt operator-(punkt &u)
  {
  punkt wynik;
  wynik.x = this->x - u.x;
  wynik.y = this->y - u.y;
  return wynik;
  }

    punkt operator*(punkt &k)
  {
  punkt wynik;
  wynik.x = k.x * this->x;
  wynik.y = k.y * this->y;
  return wynik;
  }
    punkt operator/(punkt &k)
  {
  punkt wynik;
  wynik.x = this->x /k.x;
  wynik.y = this->y /k.y;
  return wynik;
  }

  };
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
   punkt J, B(1,1), C(2,2);
   punkt D, E(1,1), F(2,2);
   punkt G, H(1,1), I(2,2);
   punkt K, L(1,1), M(2,2);
   J = B - C;
   D = E + F;
   G = H * I ;
   K = L/M;
   cout<<"Roznica"<<"\n";
   cout <<J.x <<"\n";
   cout <<J.y <<"\n";
   cout<<"Suma"<<"\n";
   cout <<D.x <<"\n";
   cout <<D.y <<"\n";
   cout<<"Iloczyn"<<"\n";
   cout <<G.x <<"\n";
   cout <<G.y <<"\n";
   cout<<"Iloraz"<<"\n";
   cout <<K.x <<"\n";
   cout <<K.y <<"\n";
   system("pause");
    return 0;
}
 
Do góry