Wróć   polish:Elite:board > hard- i software > programowanie


programowanie języki, projekty, pomoc, oprócz html, php, js

Temat zamknięty
 
LinkBack Narzędzia wątku Przeszukaj ten temat Wygląd

  #1 (permalink)  
Stare 25.06.2007, 10:45
Avatar Ganguś
Member
 
Zarejestrowany: Oct 2006
Postów: 361
Postów w giełdzie: 96
Domyślnie [C++] Programy (zbiór)

Od razu na początku informuję, że sam tego nie napisałem i proszę mnie nie prosić o pomoc przy pisaniu programów, sam byłem w liceum i wiem, że komuś mogą się przydać jakieś gotowce.
Podam tu parę różnych programów, które mogą się przydać w nauce w liceum o profilu informatycznym, przy nauce w języku C++.

Po pierwsze standardowe wyświetlenie napisu:
Kod:
#include <iostream>			
#include <cstdio>			
using namespace std;       		

int main()				
{					
  cout << "To jest moj pierwszy program"; 	
  getchar();				
  return 0;             		
}
Wczytywanie danych z klawiatury i wypisywanie na ekranie:
Kod:
#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
  cout << "Ile masz lat? ";
  int lata;			// deklaracja zmiennej (1)
  cin >> lata;			// pobranie z klawiatury (2) 
				// wartości dla zmiennej lata
  cout << "Juz wiem: masz " << lata << " lat.";
  cin.ignore();  // instrukcja służy zignorowaniu ostatniego 'entera'
  getchar();
  return 0;
}
Instrukcja warunkowa if. Program sprawdza czy liczba jest dodatnia.

Kod:
#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
  int liczba;				// deklaracja zmiennej
  cout << "Podaj liczbe ";
  cin >> liczba;			// przypisanie wartości z klawiatury
  if (liczba>0)				// instrukcja warunkowa
    cout << "Liczba jest dodatnia"; 	
  else
    cout << "Liczba nie jest dodatnia";
  cin.ignore();
  getchar();
  return 0;
}
Program wyprowadzający na ekran monitora najmniejszą z trzech podanych wartości całkowitych:

Kod:
#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
  int a, b, c;
  cout << "Podaj pierwsza liczbe ";
  cin >> a;
  cout << "Podaj druga liczbe ";
  cin >> b;
  cout << "Podaj trzecia liczbe ";
  cin >> c;
  if (a<b)
    if (a<c)
      cout << "Najmniejsza z podanych liczb jest "<< a;
    else
      cout << "Najmniejsza z podanych liczb jest "<< c;
  else
    if (c<b)
      cout << "Najmniejsza z podanych liczb jest "<< c;
    else
      cout << "Najmniejsza z podanych liczb jest "<< b;
  cin.ignore();
  getchar();
  return 0;
}
Program wyświetlający liczby od 1 do 20, oznaczając liczby niepodzielne przez 3:


Kod:
#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
  for (int i=0; i<20; i++) 
  {
    cout << i;
    if (i%3!=0)   // jeśli reszta z dzielenia przez 3 jest różna od zera
      cout << " - nie jest podzielne przez 3, ";
    cout << endl;
  }
  getchar();
  return 0;
}
__________________
Przed dodaniem tematu użyj opcji szukaj.
Przeczytaj regulamin.

Ostatnio edytowane przez Ganguś ; 07.05.2008 o 13:48.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiTweet this Post!Dodaj znalezisko!Zglos posta!Dodaj posta do linkr!
Szybka odpowiedź do tej wiadomości

  #2 (permalink)  
Stare 25.06.2007, 10:55
Avatar Ganguś
Member
 
Zarejestrowany: Oct 2006
Postów: 361
Postów w giełdzie: 96
Domyślnie Odp: [C++] Programy (zbiór)

Pętla while. Wyświetlanie znaków aż do podania litery k.

Kod:
#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
  char z;
  cout << "Podaj znak ";
  cin >> z;
  while (z!='k')
  {
    cout << "Podaj kolejny znak ";
    cin >> z;
  }
  cout << "Podales " << z << " wiec koncze";
  cin.ignore();
  getchar();
  return 0;
}
Dzielenie całkowite zrealizowane za pomocą odejmowania dzielnika od dzielnej.

Kod:
#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
  int a, b;  	// a–dzielna,  b–dzielnik
  int k = 0;  	// krotność
  cout << "Podaj dzielna i dzielnik ";
  cin >> a >> b;
  if (b==0)		// sprawdzenie warunku czy nie dzielimy przez zero
    cout << "Nie wolno dzielic przez zero!!!";
  else
  {
    while (a>=b) 	// tu rozpoczyna się właściwy algorytm dzielenia
    {
      a = a-b;
      k++;
    }
    cout << "a/b wynosi " << k;
  }
  cin.ignore();
  getchar();
  return 0;
}
Program obliczający pole kwadratu o podanej długości boku.

Kod:
#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
  float bok;
  do			// rób...
  {
    cout << "Podaj dodatnia dlugosc boku! ";  
    cin >> bok;		// zmiennej bok została przypisana wartość
    if (bok<=0)
      cout << "Niepoprawna dlugosc boku - podaj jeszcze raz!" << endl;
  }
  while (bok<=0);	// ...dopóki bok nie jest wartością dodatnią
  cout << "Pole kwadratu wynosi: " << bok*bok;
  cin.ignore();
  getchar();
  return 0;
}
Instrukcja break. Wyświetlanie liczb parzystych, których suma nie przekracza 20.

Kod:
#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
  int sum = 0;
  for (int i=0; i<10; i++)
  {
    cout << 2*i <<", ";
    sum = sum+2*i;
    if (sum>20) 
      break; // jeśli warunek spełniony, wyjście z pętli
  }
  cout << " Jestem poza petla"; //tu zaczyna się realizacja zadań
  getchar();
  return 0;
}
Instrukcja continue. Wyświetlanie i opisywanie liczb niepodzielnych przez 3.

Kod:
#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
  for (int i=0; i<5; i++)
  {
    cout << endl << i << ", ";;
    if (i%3==0)
      continue;	 // przy spełnieniu warunku przechodzimy
		 // natychmiast do kolejnego przebiegu pętli
    cout << " - nie jest podzielne przez 3,  ";
  }
  getchar();
  return 0;
}
__________________
Przed dodaniem tematu użyj opcji szukaj.
Przeczytaj regulamin.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiTweet this Post!Dodaj znalezisko!Zglos posta!Dodaj posta do linkr!
Szybka odpowiedź do tej wiadomości

  #3 (permalink)  
Stare 25.06.2007, 11:15
Avatar Ganguś
Member
 
Zarejestrowany: Oct 2006
Postów: 361
Postów w giełdzie: 96
Domyślnie Odp: [C++] Programy (zbiór)

Wyznaczenie najmniejszej liczby z k liczb podanych na wejściu.

Kod:
#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
  int  k, a, min;		// deklaracja zmiennych
  cout << "ile chcesz podac liczb - co najmniej jedna ";
  cin >> k;			// ilość liczb do wprowadzenia
  cout << "wprowadz liczbe ";
  cin >> a;			// wprowadzamy pierwszą liczbę
  min = a;			// i przyjmujemy ją jako bieżące minimum
  while (k>1)			// pętla będzie się wykonywała dopóki k>1
  {
    cout << "wprowadz liczbe ";
    cin >> a;			// wprowadzamy nastepną liczbę
    k--;			// zmniejszamy ilość liczb pozostałych do wprowadzenia
    if (a<min)   		// najważniejsza cześć programu
      min = a;		
  }				// koniec pętli
  cout << "najmniejsza wartosc w podanym ciagu to: " << min;
  cin.ignore();
  getchar();
  return 0;
}
Badanie czy podana na wejściu liczba n jest liczbą pierwszą.

Kod:
#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
  int i = 2, n; 
  cout << "podaj liczbe calkowita wieksza od 1 ";
  cin >> n;
  while (n%i!=0 && i*i<=n)	// pętla skończy się jeśli jeden
    i++; 			// z tych warunków nie bedzie spełniony
  if (i*i<=n)
    cout << "liczba zlozona";
  else
    cout << "liczba pierwsza";
  cin.ignore();
  getchar();
  return 0;
}

=========
reszta później jeszcze dojdzie
__________________
Przed dodaniem tematu użyj opcji szukaj.
Przeczytaj regulamin.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiTweet this Post!Dodaj znalezisko!Zglos posta!Dodaj posta do linkr!
Szybka odpowiedź do tej wiadomości

  #4 (permalink)  
Stare 06.05.2008, 21:45
Junior Member
 
Zarejestrowany: May 2008
Postów: 1
Postów w giełdzie: 0
Domyślnie Odp: [C++] Programy (zbiór)

Człowieku jesteś wielki ! Mam nadzięję, że ten zbiór szybko się powiększy. Te programiki można powiedzieć, że umiem. Teraz muszę się zajmować trochę trudniejszymi.

Może mi pomożesz. Kolo podyktował nam punkt w temacie "Metoda połowienia przedziałów, inaczej bisekcja...." Może ty widziałeś już taki program?

BTW
Ja tego nie lubię, nie pasjonuje mnie to, ale muszę chociaż coś zakumać.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiTweet this Post!Dodaj znalezisko!Zglos posta!Dodaj posta do linkr!
Szybka odpowiedź do tej wiadomości

  #5 (permalink)  
Stare 07.05.2008, 12:30
Avatar woocashj
Junior Member
 
Zarejestrowany: Feb 2007
Postów: 1
Postów w giełdzie: 0
Domyślnie Odp: [C++] Programy (zbiór)

lol ktoś się nie wylogował i mogę pisać na jego koncie posty .
JESTEM ZŁY

ALE MOŻE SIĘ NAUCZY DO CZEGO SŁUŻY PRZYCISK " WYLOGUJ "
LEPIEJ NA PEBIE NIŻ W BANKU
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiTweet this Post!Dodaj znalezisko!Zglos posta!Dodaj posta do linkr!
Szybka odpowiedź do tej wiadomości

  #6 (permalink)  
Stare 07.05.2008, 13:27
Avatar Ganguś
Member
 
Zarejestrowany: Oct 2006
Postów: 361
Postów w giełdzie: 96
Domyślnie Odp: [C++] Programy (zbiór)

Funkcje w C++
Funkcja obliczający średnią arytmetyczną dwóch liczb:
Kod:
float srednia_aryt(float a, float b)	// typ_wyniku nazwa(parametry formalne)
{					// klamra otwierająca wnętrze funkcji
  return (a+b)/2; 	// wynikiem funkcji jest średnia arytmetyczna dwóch zmiennych
}					// klamra zamykająca wnętrze funkcji
Wywołanie w programie funkcji obliczającej średnią arytmetyczną:
Kod:
#include <iostream>
#include <cstdio>
using namespace std;

float srednia_aryt(float a, float b)
{
  return (a+b)/2;
}

int main()
{
  cout << "Srednia arytmetyczna liczb 2.7 i 5 = ";
  cout << srednia_aryt(2.7,5);
  getchar();
  return 0;
}
Wywołanie funkcji z podadniem argumentów w postaci zmiennych:
Kod:
int main()
{
  float x, y;			// zmienne lokalne funkcji main
  cout << "Podaj dwie liczby: ";
  cin >> x >> y;
  cout << "Srednia arytmetyczna tych liczb wynosi: ";
  cout << srednia_aryt(x,y);
  cin.ignore();
  getchar();
  return 0;
}
Bezparametrowa funkcja wykorzystująca zmienne globalne:

Kod:
#include <iostream>
#include <cstdio>
using namespace std;

float a, b;		// zmienne globalne - wszystkie poniżej
			// zdefiniowane funkcje maja do nich dostęp
float srednia_aryt()  
{
  return (a+b)/2;	// funkcja srednia_aryt ma dostęp do a i b
}
			
int main()
{
  cout << "Podaj dwie liczby: ";
  cin >> a >> b;		// funkcja main ma dostep do a i b
  cout << "Srednia arytmetyczna tych liczb wynosi: " << srednia_aryt();
  cin.ignore();
  getchar();
  return 0;
}
Program ilustrujący różne zakresy ważności zmiennych globalnych i lokalnych:
Kod:
#include <iostream>
#include <cstdio>
using namespace std;

int a;		// zmienna globalna, znają ją wszystkie funkcje programu

void wyswietl()
{
  cout << "Bok kwadratu ma dlugosc: " << a;
}

float pole_kwadratu()
{
  return a*a;
}

float b;	// tę zmienną globalną znaja funkcje pole_prostokata i main

float pole_prostokata()
{
  int pole = a*b;	// zmienna lokalna funkcji pole_prostokata
  return pole;
}

int main()
{
  int c;		// zmienna lokalna funkcji main
  // tu znajduje sie dalsza treść funkcji głównej
}
__________________
Przed dodaniem tematu użyj opcji szukaj.
Przeczytaj regulamin.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiTweet this Post!Dodaj znalezisko!Zglos posta!Dodaj posta do linkr!
Szybka odpowiedź do tej wiadomości

  #7 (permalink)  
Stare 07.05.2008, 13:34
Avatar Ganguś
Member
 
Zarejestrowany: Oct 2006
Postów: 361
Postów w giełdzie: 96
Domyślnie Odp: [C++] Programy (zbiór)

Funkcja obliczająca moduł liczby rzeczywistej:
Kod:
float modul(float a)	// funkcja modul pobiera argument typu float
			// oraz zwraca wartość tego samego typu
{
  if (a>=0)
    return a; 
  else
    return -a;
}
Program wykorzystujący funkcję obliczającą moduł liczby rzeczywistej:
Kod:
#include <iostream>
#include <cstdio>
using namespace std;

float modul(float x)
{
  if (x>=0)
    return x; 
  else
    return -x;
}

int main()
{
  float  a, b;
  cout << "Podaj dwa punkty na osi: ";
  cin >> a >> b;
  cout << "Odleglosc pomiedzy punktami wynosi: " << modul(a-b);
  cin.ignore();
  getchar();
  return 0;
}
Funkcja rysująca szlaczek. Długość i znak szlaczka są przekazywane jako argumenty:
Kod:
void szlaczek_dowolny(int i, char znak)		
{
  for (int li=0; li<i; li++)		// li: zmienna pomocnicza
    cout << znak;    
}
Bezparametrowa funkcja rysująca szlaczek z 10 gwiazdek:
Kod:
void szlaczek_10_gwiazdek(void)
{
  for (int p=0; p<10; p++)
    cout << "*";
}
Przykład funkcji bezargumentowej, która ze swojego wnętrza pobiera potrzebne dane do narysowania szlaczka:
Kod:
void szlaczek_inaczej()
{
  cout << "podaj, jaki znak mam rysowac";
  char znak;				// to jest zmienna lokalna funkcji
  cin >> znak;				// pobieramy informację, z jakich znakow
					// będzie się składał szlaczek
  cout << "ile mam narysowac znakow: " << znak << " ? ";  // długość szlaczka
  int ile;				// kolejna zmienna lokalna funkcji
  cin >> ile;				// pobieramy informację, z ilu znakow
					// będzie się składał szlaczek
  for (int p=0; p<ile; p++)
    cout << znak;			// rysowanie szlaczka
}
Program wykorzystujący funkcje rysowania szlaczków:
Kod:
#include <iostream>
#include <cstdio>
using namespace std;

/***************** Definicje funkcji ******************/
void szlaczek_10_gwiazdek(void)
{
  for (int p=0; p<10; p++)
    cout << "*";
  cout << endl;
}

void szlaczek_dowolny(int i, char znak)
{
  for (int li=0; li<i; li++)
    cout << znak;
  cout << endl;
}

void szlaczek_inaczej()
{
  cout << "Podaj, jaki znak mam rysowac ";
  char znak;			
  cin >> znak;			// znak, na którego podstawie tworzymy szlaczek 
  cout << "Ile mam narysowac znakow:  " << znak << "? ";  
  int ile;			
  cin >> ile;			
  for (int p=0; p<ile; p++)
    cout << znak;		
  cout << endl;   
}

/*************** Początek funkcji głównej programu *************/

int main()
{
  cout << "Wywoluje funkcje szlaczek_10_gwiazdek()" << endl;
  szlaczek_10_gwiazdek();
  cout << endl << "Chce miec teraz szlaczek skladajacy sie";
  cout << "z pieciu wykrzyknikow" << endl;
  cout << "Wywoluje wiec funkcje szlaczek_dowolny(5,'!')" << endl;
  szlaczek_dowolny (5,'!');
  int k;
  char zn;
  cout << endl << "Zapytam, jaki chcesz miec szlaczek" << endl;
  cout << "Ile elementow ma miec szlaczek? (to jest zmienna k) ";
  cin >> k;
  cout << "Jakie to maja byc znaki? (to jest zmienna zn) ";
  cin >> zn;
  cout << endl << "Wywoluje funkcje szlaczek_dowolny(k,zn)" << endl;
  szlaczek_dowolny(k,zn);
  cout << endl << "Wywoluje funkcje szlaczek_inaczej()" << endl;
  szlaczek_inaczej ();
  cin.ignore();
  getchar();
  return 0;
}
/*************** Koniec funkcji głównej programu *************/
__________________
Przed dodaniem tematu użyj opcji szukaj.
Przeczytaj regulamin.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiTweet this Post!Dodaj znalezisko!Zglos posta!Dodaj posta do linkr!
Szybka odpowiedź do tej wiadomości

  #8 (permalink)  
Stare 07.05.2008, 13:40
Avatar Ganguś
Member
 
Zarejestrowany: Oct 2006
Postów: 361
Postów w giełdzie: 96
Domyślnie Odp: [C++] Programy (zbiór)

Program rozwiązujący równanie liniowe z jedną niewiadomą:
Kod:
#include <iostream>
#include <cstdio>
using namespace std;

void rozwiazanie(float a, float b)
{
  if (a!=0)  
    cout << "Rownanie ma dokladnie jedno rozwiazanie, rowne: " << b/a;
  else 
    if (b!=0) 
      cout << "Rownanie nie ma rozwiazan";
    else 
      cout << "Rownanie ma nieskonczenie wiele rozwiazan";
}

int main()
{
  float A, B;
  cout << "Podaj wspolczynniki rownania:" << endl;
  cin >> A >> B;
  rozwiazanie(A,B);
  cin.ignore();
  getchar();
  return 0;
}
Program rozwiązujący układ równań liniowych z dwiema niewiadomymi:
Kod:
#include <iostream>
#include <cstdio>
using namespace std;

void wyswietl_uklad(float a, float b, float c, float d, float e, float f)
{
  cout << "Rozwiazujemy uklad:" << endl;
  cout << a << " * x + " << b << " * y = " << c << endl;
  cout << d << " * x + " << e << " * y = " << f << endl;
}
float wyzn(float a, float b, float c, float d)
{
return a*d-b*c;
}

void rozwiazanie(float g, float x, float y)
{
if (g!=0)
{
  cout << "Uklad ma dokladnie jedno rozwiazanie ";
  cout << " x = " << x/g << " , y = " << y/g;
}
else 
  if ((x!=0)||(y!=0))
    cout << "Uklad nie ma rozwiazan";
  else 
      cout << "Uklad ma nieskonczenie wiele rozwiazan";
}
int main()
{
  float a1, a2, b1, b2, c1, c2;
  cout << "Podaj wspolczynniki do pierwszego rownania:" << endl;
  cin >> a1 >> b1 >> c1;
  cout << "Podaj wspolczynniki do drugiego rownania:" << endl;
  cin >> a2 >> b2 >> c2;
  wyswietl_uklad(a1,b1,c1,a2,b2,c2);
  rozwiazanie(wyzn(a1,b1,a2,b2), wyzn(c1,b1,c2,b2), wyzn(a1,c1,a2,c2)); // 1
  cin.ignore();
  getchar();
  return 0;
}
Program znajdujący największą z trzech podanych liczb:
Kod:
#include <iostream>
#include <cstdio>
using namespace std;

float maxi(float a, float b, float c)
{
  float max = a;
  if (b>max)  
    max = b;
  if (c>max)  
    max = c;
  return max;
}

int main()
{
  int x, y, z;
  cout << "Podaj trzy liczby, a znajde najwieksza ";
  cin >> x >> y >> z;
  cout << "Najwieksza z nich to: " << maxi(x,y,z);
  cin.ignore();
  getchar();
  return 0;
}
Program porządkujący trzy liczby w kolejności od najmniejszej do największej:

Kod:
#include <iostream>
#include <cstdio>
using namespace std;

void zamien_miejscami(int &x, int &y)
{
  int temp = x;
  x = y;
  y = temp;
}

int main()
{
  int a, b, c;
  cout << "Podaj wartosci a, b, c ";
  cin >> a >> b >> c;
  if (a > b) zamien_miejscami(a,b);	// tu dokonują się zamiany elementów
  if (a > c) zamien_miejscami(a,c);	// pomiędzy sobą, tak aby ostatecznie
  if (b > c) zamien_miejscami(b,c);	// zmienne a, b, c spelnialy warunek a<=b<=c
  cout << "Wartosci liczb a, b, c po zamianach: " << a << " " << b << " " << c;
  cin.ignore();  
  getchar();
  return 0;
}
Program porządkujący trzy liczby w kolejności od najmniejszej do największej z wykorzystaniem funkcji:
Kod:
#include <iostream>
#include <cstdio>
using namespace std;

void zamien_miejscami(int &x, int &y)
{
  int temp = x;
  x = y;
  y = temp;
}

void ustaw_rosnaco(int &a, int &b, int &c)
{
  if (a>b) zamien_miejscami(a,b);
  if (a>c) zamien_miejscami(a,c);
  if (b>c) zamien_miejscami(b,c);
}

int main()
{
  int a, b, c;
  cout << "Podaj wartosci a, b, c ";
  cin >> a >> b >> c;
  ustaw_rosnaco (a,b,c);
  cout << "Wartosci liczb a, b, c po zamianach: " << a << " " << b << " " << c;
  cin.ignore();  
  getchar();
  return 0;
}
__________________
Przed dodaniem tematu użyj opcji szukaj.
Przeczytaj regulamin.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiTweet this Post!Dodaj znalezisko!Zglos posta!Dodaj posta do linkr!
Szybka odpowiedź do tej wiadomości

  #9 (permalink)  
Stare 07.05.2008, 13:45
Avatar Ganguś
Member
 
Zarejestrowany: Oct 2006
Postów: 361
Postów w giełdzie: 96
Domyślnie Odp: [C++] Programy (zbiór)

implementacja klasycznych algorytmów iteracyjnych
Obliczanie NWD dwóch liczb podanych na wejściu metodą Euklidesa:

Kod:
#include <iostream>
#include <cstdio>
using namespace std;

int NWD(int a, int b)	// funkcja licząca NWD(a,b)
{
  while (a!=b)		// dopóki a jest różne od b
  {
    if(a>b)      	// jeśli a jest większe od b to 
      a = a-b;		// w miejsce a podstaw różnicę a-b		
    else            	// w przeciwnym wypadku  
      b = b-a;		// w miejsce b podstaw różnicę b-a				
  }
  return a;
}

int main()		// funkcja główna programu
{
  int a, b;
  cout << "podaj pierwsza liczbe a: ";
  cin >> a;
  cout << "podaj druga liczbe b: ";
  cin >> b;
  cout << "NWD(" << a << "," << b << ") ma wartosc: " << NWD(a,b);
  cin.ignore();
  getchar();
  return 0;
}
Obliczanie NWD dwóch liczb podanych na wejściu zoptymalizowaną metodą Euklidesa:
Kod:
int NWD(int a, int b)
{
  while (a>0)
  {
    a = a%b;
    b = b-a;
  } 
  return b;
}
Program obliczający pierwiastek kwadratowy liczby rzeczywistej metodą Newtona-Raphsona:
Kod:
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;

double pierwiastek(double x, double d)
{
  double a = x;
  while (fabs(a-(x/a))>d) // dopóki różnica boków jest większa od dokładności
  {
    a = (a+(x/a))/2;	// modyfikujemy dlugości boków, korzystając ze 
			// średniej arytmetycznej
  }
  return a;		// zwracamy dlugość boku jako wartość pierwiastka z x
}

int main()
{
  cout << "Pierwiastek wynosi: " << pierwiastek(2,0.01);
  getchar();
  return 0;
}
__________________
Przed dodaniem tematu użyj opcji szukaj.
Przeczytaj regulamin.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiTweet this Post!Dodaj znalezisko!Zglos posta!Dodaj posta do linkr!
Szybka odpowiedź do tej wiadomości

  #10 (permalink)  
Stare 07.05.2008, 13:54
Avatar Ganguś
Member
 
Zarejestrowany: Oct 2006
Postów: 361
Postów w giełdzie: 96
Domyślnie Odp: [C++] Programy (zbiór)

Obliczanie przybliżonej wartości pola obszaru ograniczonego wykresem funkcji x^2 oraz osią OX w przedziale, <a, b>.
Kod:
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
		
double funkcja(double x)	//funkcja dla której liczymy calkę, tu x^2
{
  return x*x;
}

double pole_obszaru(int n, double a, double b)
{
  double P = 0;			//zmienna która sumuje pola prostokątów
  double d = (b-a)/n;		//dlugość przedziałów na jakie dzielimy <a;b>
  double x;			//punkty pośrednie przedzialów
  for (int k=0; k<n; k++)
  {
    x = a+(d*k)+(d/2);
    P = P+d*fabs(funkcja(x));	//suma pól prostokątów
  }
  return P;			//suma pól wszystkich prostokątów
}

int main()
{
  int ilosc;
  double a, b;
  cout << "Program oblicza pole obszaru ograniczonego";
  cout << "wykresem funkcji w przedziale <a; b>" << endl;
  cout << "podaj wartosc lewego kranca przedzialu:  a ";
  cin >> a;
  cout << "podaj wartosc prawego kranca przedzialu:  b ";
  cin >> b;
  cout << "Na ile przedzialow podzielic wyjsciowy przedzial?: ";
  cin >> ilosc;
  cout << "wartosc pola : " << pole_obszaru(ilosc,a,b);
  cin.ignore();
  getchar();
  return 0;
}
Obliczanie przybliżenia miejsca zerowego funkcji w przedziale, <a,b> metodą połowienia przedziałów:
Kod:
#include <iostream>
#include <cstdio>
using namespace std;

double f(double x)
{
  return 2*x*x-4*x;
}

double m_zerowe(double a, double b, double dokladnosc)
{
  double d = (a+b)/2;
  while (b-a>dokladnosc && f(a)!=0 && f(b)!=0)
  {
    d = (a+b)/2;
    if (f(a)*f(d)<0)
      b = d; 
    else 
      a = d;
  }
  if (f(a)==0) return a;
  if (f(b)==0) return b;
  return d;
}

int main()
{
  double lewy, prawy, dokl;
  do
  {
    cout << "Podaj lewy kraniec przedzialu ";
    cin >> lewy;
    cout << "Podaj prawy kraniec przedzialu ";
    cin >> prawy;
  }
  while (f(lewy)*f(prawy)>0 || prawy<=lewy);
  cout << "Podaj dokladnosc ";
  cin >> dokl;
  cout << "Przyblizona wartosc miejsca zerowego: ";
  cout << m_zerowe(lewy,prawy,dokl) << endl;
  cin.ignore();
  getchar();
  return 0;
}
Obliczanie przybliżonej wartości liczby π (liczba pi) Metodą Monte Carlo.
Kod:
#include <iostream>
#include <cstdio>
#include <cstdlib> // używamy w programie funkcji rand()
using namespace std;

int main()
{
  double a, b; // zmienne pomocnicze - współrzedne losowanego punktu
  long T = 0; // dzięki typowi long możemy losowac wiele punktów
  long R;
  long ilosc;
  srand(time(NULL)); // inicjacja funkcji rand()
  cout << "Na podstawie ilu punktow znalezc wartosc liczby pi? ";
  cin >> ilosc;
  for(R=0; R<ilosc; R++)
  {
    a = (double)rand()/(RAND_MAX); // losujemy liczby rzeczywiste
    b = (double)rand()/(RAND_MAX); // z zakresu <0,1>
    if (a*a+b*b<=1) T++; // jeśli punkt należy do koła to zwiększamy licznik
  }
  cout << "liczba pi ma wartosc : " << (double)(4*T)/R;
  cin.ignore();
  getchar();
  return 0;
}
__________________
Przed dodaniem tematu użyj opcji szukaj.
Przeczytaj regulamin.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiTweet this Post!Dodaj znalezisko!Zglos posta!Dodaj posta do linkr!
Szybka odpowiedź do tej wiadomości
Temat zamknięty

Szybka odpowiedź
Wiadomość:
Opcje

Narzędzia wątku Przeszukaj ten temat
Przeszukaj ten temat:

Zaawansowane wyszukiwanie
Wygląd

Zasady postowania
Nie możesz zakładać nowych tematów
Nie możesz pisać wiadomości
Nie możesz dodawać załączników
Nie możesz edytować swoich postów

BBCode jest Włączony
EmotikonyWłączony
[IMG] kod jest Włączony
HTML kod jest Wyłączony
Trackbacks are Wyłączony
Pingbacks are Wyłączony
Refbacks are Wyłączony


Podobne wątki
Temat Autor wątku Forum Odpowiedzi Ostatni post/autor
[RS] Mój zbiór Zely_616 albumy rock & metal 71 14.07.2008 13:27
[RS] Zbiór piosenek. zwolin pojedyncze utwory 0 04.02.2007 11:04
[programy] programy do odzyskiwania danych mick3 poszukiwania 2 26.11.2006 00:44


Wszystkie czasy w strefie GMT +2. Teraz jest 18:34.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.5.2
Tłumaczenie: vBHELP.pl - Polskie wsparcie vBulletin
1328891650

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333