Tutaj będę umieszczał programy mojego autorstwa zrealizowane głównie w języku c++/c.

Nic nie dzieje się wbrew naturze,
lecz wbrew temu, co o niej wiemy.

Fox Mulder w serialu „Z archiwum X”

30.12.08

Zliaczanie liter w wyrazie JAVA

Program zlicza wyrazy we wprowadzonym tekście.



import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class Main
{

   public static void main(String args[])
   {
     BufferedReader brIn = new BufferedReader(new InputStreamReader(System.in));

     int zliczacz = 0;
     String line = " ";

     try
     {

       {
       System.out.println("Wprowadz tekst:");
       line = brIn.readLine();
       System.out.println("Wprowadzona linia to: " +line);

       }
     }

       catch(IOException e)
       {
       System.out.println("Bład");
       }
      
       for (int i = 0; i < line.length(); i++)
       {
       zliczacz++;
       }

     System.out.println("Tekst zawiera: "+zliczacz+" znak");

   }
}




21.12.08

Wyszukiwanie wzorca we wprowadzonym tekście JAVA

Prosty program przeszukujący tekst w celu znalezienia wprowadzonej frazy.



import java.io.*;


public class Main {

   public static void main(String args[])
   {
     BufferedReader brIn = new BufferedReader(new InputStreamReader(System.in));

     int pozycja = 0;
     String line = " ";
     String szukacz = " ";

       try
       {
  
       {
       System.out.println("Wprowadz tekst:");
       line = brIn.readLine();
       System.out.println("Wprowadzona linia to: " +line);
       System.out.println("Czego szukasz");
       szukacz = brIn.readLine();
       }
       }

       catch(IOException e)
       {
       System.out.println("Bład");
       }

       for (int i = 0; i < line.length(); i++)
       {
       pozycja = line.indexOf(szukacz);

       if (pozycja > 0)
       {
       System.out.println("Szukana fraza wystepuje na pozycji: ");
       System.out.println(+(pozycja+1));
       break;
        }
        else
        {
        System.out.println("Szukana fraza nie wystepuje");
       break;
       }
       }

     }
}

27.11.08

Wyszukiwanie tekstu w wprowadzonym tekście

Program umożliwia wprowadzenie tekstu oraz wyszukanie w nim zadanej frazy. Wyświetla pozycje wystąpienia fragmentu.


import java.io.*;


public class Main {

   public static void main(String args[])
   {
     BufferedReader brIn = new BufferedReader(new InputStreamReader(System.in));

     int pozycja = 0;
     String line = " ";
     String szukacz = " ";

     try
     {

     {
     System.out.println("Wprowadz tekst:");
     line = brIn.readLine();
     System.out.println("Wprowadzona linia to: " +line);
     System.out.println("Czego szukasz");
     szukacz = brIn.readLine();
     }
     }

     catch(IOException e)
     {
     System.out.println("Bład");
     }

     for (int i = 0; i < line.length(); i++)
     {
     pozycja = line.indexOf(szukacz);

     if (pozycja > 0)
     {
     System.out.println("Szukana fraza wystepuje na pozycji: ");
     System.out.println(+(pozycja+1));
     break;
     }

     else
     {
     System.out.println("Szukana fraza nie wystepuje");
     break;
     }
     }
    
   }
}



23.11.08

Losowanie liczb i sortowanie bąbelkowe JAVA

Program losuje zadaną ilość liczb oraz sortuje je (algorytm sortowania bąbelkowego).


class Main
{
   public static void main(String args[])
   {
     int a;

     LosujeSortuje klasa = new LosujeSortuje();
     WezLiczbe zaczytaj = new WezLiczbe();


     System.out.println("Podaj liczbe elementow tablicy: ");
     a = (int)zaczytaj.getDouble("n = ");

     klasa.losuje(a);

     System.out.println("Elementy tablicy przed posortowaniem:");
     klasa.wyswietl(a);

     System.out.println("Elementy tablicy po sortowaniu:");

     klasa.sortuje(a);
     klasa.wyswietl(a);

}

}


Klasa LosujeSortuje:


import java.util.Random;


public class LosujeSortuje {


   int t[];


   public void losuje(int n)
   {
     this.t = new int[n];

     for (int i = 0; i < n; i++)
     {
     Random random = new Random();
     this.t[i] = random.nextInt();
     }
     }

   public void wyswietl(int n)
   {
     for (int i = 0; i < n; i++)
     {
     System.out.println(+this.t[i]);
     }

     }


   public void sortuje(int n)
   {
     for (int i = n-1; i > 0; i--)
     for (int j = 0; j < i; j++)
     {
     if (this.t[j] > this.t[j + 1])
     {
     int temp;
     temp = this.t[j];
     this.t[j] = this.t[j + 1];
     this.t[j + 1] = temp;
     }
   }
   }


}


Klasa WezLiczbe


class WezLiczbe {

   public double getDouble(String s)
   {
   char c;
   StringBuffer buf = new StringBuffer();
   String sx;
   double x;

     System.out.print(s);
     // pobierz x z konsoli jako ciąg znaków
     try
     {
    
     while ((c = (char) System.in.read() ) != '\n')
     buf.append(c);
     // przekonwertuj x z typu String na typ double
     sx = buf.toString();
     x = Double.parseDouble( sx );
     } catch (java.io.IOException e) { x = 0; };
     buf.setLength(0); // oczyść bufor
     return x;
}
}

12.11.08

Równanie kwadratowe zapisane w JAVIE


public class Main {

   public static void main (String args[])
   {
   double a;
   double b;
   double c;

   double x1, x2, delta, pierwiastek;

   WezLiczbe zaczytaj = new WezLiczbe();


   System.out.println("PIERWIASTKÓW RÓWNANIA KWADRATOWEGO");
   System.out.println();
   System.out.println("Podaj parametry równania ");

   a = (double)zaczytaj.getDouble("a = ");
   b = (double)zaczytaj.getDouble("b = ");
   c = (double)zaczytaj.getDouble("c = ");
  
   delta = (b*b) - (4*c*a);
   pierwiastek = Math.sqrt(delta);


   //przypadek równania liniowego

     if (a == 0)
     {
     System.out.println("Równanie liniowe");
     System.out.println("y = "+b+"*x+"+c);
     System.out.println("x = " +((-c)/b));
     }
     //przypadek gdy delta mniejsza od zera

     if (delta < 0)
     {
     System.out.println("Brak rozwiązań");
     }

     if (delta == 0)
     {
     System.out.println("Jeden pierwiastek x = " +((-b)/(2*a)));

     }

     if (delta > 0)
     {
     x1 = (-b + pierwiastek)/(2*a);
     x2 = (-b - pierwiastek)/(2*a);

     System.out.println("Dwa pierwiastki");
     System.out.println(+x1);
     System.out.println(+x2);

}
}



}



KLASA WEŹ LICZBĘ (do umieszczenia w odrębnym pliku)


class WezLiczbe {

   public double getDouble(String s)
   {
   char c;
   StringBuffer buf = new StringBuffer();
   String sx;
   double x;

     System.out.print(s);
     // pobierz x z konsoli jako ciąg znaków
     try
     {
    
     while ((c = (char) System.in.read() ) != '\n')
     buf.append(c);
     // przekonwertuj x z typu String na typ double
     sx = buf.toString();
     x = Double.parseDouble( sx );
     } catch (java.io.IOException e) { x = 0; };
     buf.setLength(0); // oczyść bufor
     return x;
}
}

7.10.08

Wybór największej liczby


#include <iostream>
using namespace std;

int main()
{
   int a, b, c;

   cout << "Podaj pierwsza liczbe: ";
   cin >> a;
   cout << endl;
   cout << "Najwieksza liczba jest " << a;
   cout << endl;
   cout << "Podaj druga liczbe: ";
   cin >> b;
   cout << endl;

     if (a > b)
     {
       cout << "Najwieksza liczba jest: " << a;
       cout << endl;
     }

     else
     {
       cout << "Najwieksza liczba jest: " << b;
       cout << endl;
       a = b;
     }

   cout << "Podaj trzecia liczbe: ";
   cout << endl;
   cin >> c;

     if (c > a)
     {
       cout << "Najwieksza liczba jest: " << c;
       cout << endl;
     }

     else
     {
       cout << "Najwieksza liczba jest: " << a;
       cout << endl;
     }

   system("PAUSE");
   return 0;

}

2.10.08

Zliczanie liter w wyrazie

Program wczytuje zadany wyraz oraz prosi o podanie litery, która będzie zliczona.


#include <iostream>
#include <string>

using namespace std;

int main()
{
   string strWyraz;
   char chLitera;
   int nLicznik = 0;

   cout << "Podaj wyraz: ";
   cin >> strWyraz;
   cout << "Podaj jaka litere chcesz zliczyc: ";
   cin >> chLitera;

   for (int i = 0; i <= strWyraz.length(); ++i)
   {
     if (strWyraz[i] == chLitera)
     ++nLicznik;
   }

   cout << "Podana litera wystepuje " << nLicznik << " razy";
   cout << endl;

   system("PAUSE");
   return 0;

}



Obliczanie pierwiastków równania kwadratowego

Poglądowy program realizujący wyznaczanie pierwiastków równania kwadratowego.


#include <iostream>
#include <cmath>

using namespace std;

void BrakRozwiazan()
{
   cout << "Rownanie nie posiada rozwiazan";
}

void JednoRozwiazanie(float A, float B, float C)
{
   float fWynik = (-B) / (2 * A);
   cout << "Rownanie ma jedno rozwiazanie X = " << fWynik;
}

void DwaRozwiazania(float A, float B, float C, float Pierwiastek)
{
   float fWynik1 = (-B + Pierwiastek) / (2 * A);
   float fWynik2 = (-B - Pierwiastek) / (2 * A);
   cout << "Rownanie ma dwa rozwiazania \n";
   cout << "X1 = " << fWynik1;
   cout << endl;
   cout << "X2 = " << fWynik2;
}


int main()
{
   float fA, fB, fC;
   float fDelta, fPierwiastek;

   cout << "Podaj parametry rownania kwadratowego postaci \n";
   cout << "A * X^2 + B * X + C = 0 \n";
   cout << "A =";
   cin >> fA;
   cout << "B =";
   cin >> fB;
   cout << "C =";
   cin >> fC;

   fDelta = (fB * fB) - 4 * fA * fC;
   fPierwiastek = sqrt(fDelta);


     if (fDelta < 0)
     {
       BrakRozwiazan();
     }

     if (fDelta == 0)
     {
       JednoRozwiazanie(fA, fB, fC);
     }

     if (fDelta > 0)
     {
       DwaRozwiazania(fA, fB, fC, fPierwiastek);
     }


   cout << endl;
   system("PAUSE");
   return 0;

}



1.10.08

Pierwsza gra zgadywanka

Pierwsza gra. Program losuje liczbę od 1 do 100. Twoim zadaniem jest jej odgadnięcie.


#include <iostream>
#include <ctime>
#include <conio.h>

using namespace std;

int main()
{
   int nLiczydlo = 0;
   int nLiczba;

   srand ((int) time(NULL));
   int nWylosowana = rand() % 100 + 1;

   cout << "Podaj liczbe: \n";
   cin >> nLiczba;


   while (nWylosowana != nLiczba)
   {
       if (nLiczba > nWylosowana)
       {
         cout << "podana liczba jest za duza ";
       }
       else
       {
         cout << "podana liczba jest za mala ";
       }

       cout << "sprobuj jeszcze raz: \n";
       cin >> nLiczba;
       nLiczydlo++;
   }

   cout << "Za " << nLiczydlo + 1 << " razem udalo ci sie zgadnac";
   system("PAUSE");
   return 0;

}

30.9.08

Proste przyporządkowanie

Prosty program, który przyorządkuje zadaną liczbę do następujących przedziałów: liczb ujemnych jednocyfrowych lub dwucyfrowych, dodatnich, pozostałych.



#include <iostream>

using namespace std;

int main()
{
   int nLiczba;

   cout << "Podaj liczbe calkowita: \n";
   cin >> nLiczba;


   if (nLiczba < 0 && nLiczba <= -10 && nLiczba > -100)
   {
     cout << "Podales liczbe ujemna dwucyfrowa \n";
   }

   if (nLiczba <0 && nLiczba > -10)
   {
     cout << "Podales liczbe ujemna jednocyfrowa \n";
   }

   if (nLiczba > 0 && nLiczba >= 10 && nLiczba < 100)
   {
     cout << "Podales liczbe dodatnia dwucyfrowa \n";
   }

   if (nLiczba >= 0 && nLiczba < 10)
   {
     cout << "Podales liczbe dodatnia jednocyfrowa \n";
   }

   if (nLiczba <= -100 && nLiczba >= 100)
   {
     cout << "Liczba nie pasuje do zadnej opcji \n";
   }

   system("PAUSE");
   return 0;
}


26.9.08

Pole prostokąta



#include <iostream>

float Pole (float fBokA, float fBokB);
float Obwod (float fBokA, float fBokB);

int main()
{
   float a, b;
  
   cout << "Podaj dlugosc boku A: \n";
   cin >> a;
   cout << "Podaj dlugosc boku B: \n";
   cin >> b;

   cout << "Pole prostokata wynosi: \n" << Pole(a, b);
   cout << endl;
   cout << "Obowd prostokata wynosi: \n" << Obwod(a, b);
   cout << endl;

   system("PAUSE");
   return 0;
}

float Pole(float fBokA, float fBokB)
{
   float fPole;
   fPole = fBokA * fBokB;
   return fPole;
}

float Obwod (float fBokA, float fBokB)
{
   float fObwod;
   fObwod = (2 * fBokA) + (2 * fBokB);
   return fObwod;

}

Dodawanie



#include <iostream>


using namespace std;

void Wynik(int nWartosc1, int nWartosc2);

int main()
{
   int nLiczba1, nLiczba2;
   cout << "Podaj pierwsza liczbe : \n";
   cin >> nLiczba1;

   cout << "Podaj druga liczbe: \n";
   cin >> nLiczba2;

   Wynik(nLiczba1, nLiczba2);
   system("PAUSE");
   return 0;

}

void Wynik(int nWartosc1, int nWartosc2)
{
   int nWynik = nWartosc1 + nWartosc2;

   cout << "Wynik dodawania wynosi: " << nWynik;
   cout endl;

}

Menu


/*Przykład prostego programu generującego menu, przerwanie programu następuje po
wybraniu liczby 4
*/

#include <iostream>

using namespace std;

int main()
{
   int wybor;
  
  
   do
   {
     cout << "wybierz nr opcji: \n";
     cout << "1 - opcja nr jeden\n";
     cout << "2 - opcja nr dwa\n";
     cout << "3 - opcja nr trzy\n";
     cout << "4 - koniec\n";
     cin >> wybor;


     switch(wybor)
     {
       case 1:
         cout << "wybrales opcje jeden\n";
         break;
       case 2:
         cout << "wybrales opcje dwa\n";
         break;

       case 3:
         cout << "wybrales opcje trzy\n";
         break;
       case 4:
         cout << "KONIEC\n";
         system("PAUSE");
         return 0;
       default:
         cout << "zly numer!!!\n";
       break;

     }
   } while (wybor != 4);

   return 0;
}




23.9.08

Prosta konwersja


#include <iostream>

/*
Konwersja z liczby naturalnej na liczbe binarna
*/
#include <cmath>

using namespace std;
int main()
{
     float liczba_bitow, dwa;
     float wynik;
     float liczba2;
     int liczba;
     int i, reszta;
     int tablica[30];

     dwa = 2;
     cout << "podaj liczbe: \n";
     cin >> liczba;

   // rzutowanie, moga sie pojawiac ostrzezenia

     liczba2 = liczba;

   // obliczenie liczby bitow

     wynik = (log10(liczba2 - 1) / log10(dwa)) + 1;
     liczba_bitow = ceil(wynik);

   // wlasciwe obliczenia

       for (i = 0; i < liczba_bitow; i++)
       {
         reszta = liczba % 2;
         liczba /= 2;
         tablica [i] = reszta;
       }

       for (i = (liczba_bitow - 1); i >= 0; i--)
       {
         cout << tablica[i];
         cout << " ";
       }

     system("PAUSE");
     return 0;

}



19.9.08

Potęga dowlonej liczby naturalnej


/*
obliczanie potegi dowolnej liczby naturalnej
Zachar
www.programowanie-w-c.blogspot.com
*/

#include <iostream>

using namespace std;

int main()
{
     int liczba, wynik = 1, wykladnik;

     cout << "podaj liczbe: \n";
     cin >> liczba;
     cout << "do ktorej potegi ma byc podniesiona? \n";
     cin >> wykladnik;

     if (wykladnik == 0)
     {
       cout << "1";
       cout << endl;
     }

     else
     {
       for (int i = 0; i < wykladnik; i++)
       {
         wynik = wynik * liczba;

       }

cout << wynik;
cout << endl;

}

system("PAUSE");
return 0;
}

Silnia


/*
Zachar, obliczanie silni
www.programowanie-w-c.blogspot.com
*/

#include <iostream>

using namespace std;

int main()
{
  float liczba, silnia = 1;
  cout << "Podaj liczbe: \n";
  cin >> liczba;

if (liczba == 0)
{
  cout << "1";
  cout << endl;
}

else
{
    for (int i = 1; i <= liczba; i++)
    {
     silnia *= i;
    }

  cout << silnia;
  cout << endl;
}
  system("PAUSE");
  return 0;
}