Programowanie od zera do bohatera

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”

31.3.09

Największa oraz najmniejsza wartość funkcji w przedziale JAVA

Program obliczający największą oraz najmniejszą wartość funkcji ciągłej na zadanym przedziale.


Klasa Main, deklaracja początku oraz końca przedziału


public class Main
{

  public static void main(String args[])
   {
     int poczatekPrzedzialu = -7;
     int koniecPrzedzialu = -3;


     Obliczenia funkcja = new Obliczenia();

     funkcja.Max(poczatekPrzedzialu, koniecPrzedzialu);
   }
  }



Klasa Obliczenia, wyznaczenie wartości minimalnej i maksymalnej



public class Obliczenia {

   public void Max(int poczatekPrzedzialu, int koniecPrzedzialu)
   {

     FunkcjaTestowa przebieg = new FunkcjaTestowa();
     double max = 0;
     double min = 0;
     boolean isSet = false;


     for (int i = poczatekPrzedzialu; i <= koniecPrzedzialu; i++)
     {
     //zabezpieczenie
     //ustawia tylko raz wartosci max i min
     if(!isSet)
     {
     max = przebieg.Funkcja(i);
     min = przebieg.Funkcja(i);
     isSet=true;
     }

     if (przebieg.Funkcja(i) > max)
     max = przebieg.Funkcja(i);
     if (przebieg.Funkcja(i) < min)
     min = przebieg.Funkcja(i);
     }

   System.out.println(max);
   System.out.println(min);
   }

}


Klasa Funkcja Testowa, tutaj określamy funkcję jaką chcemy zbadać



public class FunkcjaTestowa {



   public double Funkcja(double x)
   {
     double y;
     y = 2 * x;

     return y;
   }


}

19.1.09

Suma cyfr danej liczby naturalnej

Program oblicza sumę liczb zadanej cyfry.


public class Main {

   public static void main(String args[])
   {
     int liczba;
     int suma = 0;
     int reszta = 1;

     WezLiczbe zaczytaj = new WezLiczbe();

     liczba = (int)zaczytaj.getDouble("Podaj liczbe: ");

       do
       {
       reszta = liczba % 10;
       suma += reszta;
       liczba /= 10;

       }while(liczba != 0);

     System.out.println(+suma);

     }
}

14.1.09

Suma podzielników liczby naturalnej JAVA

Program obliczający sumę podzielników liczby naturalnej JAVA. Do poprawnego działania wymagana jest klasa WezLiczbe zamieszona w poprzednich postach.





public class LiczbaDoskonała
{

   public static void main(String args[])
   {

     WezLiczbe zaczytaj = new WezLiczbe();

     int a;
     int suma = 0;

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

       for (int i = 1; i <= a; i++)
       {
       if (a % i == 0) suma += i;

       }

       System.out.println(+suma);


     }


}


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;
}
}