Advertisement
Talar97

Lab04

Nov 16th, 2017
374
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 13.06 KB | None | 0 0
  1. package com.Talar;
  2.  
  3. import java.util.Scanner;
  4. import java.util.Random;
  5. import java.math.*;
  6.  
  7. public class Main {
  8.  
  9.     public static void main(String[] args) {
  10.         WyborZadania();
  11.     }
  12.  
  13.     private static void WyborZadania() {
  14.         Scanner inp = new Scanner(System.in);
  15.         System.out.println("Dostępne zadania:\n1-15. Funkcje");
  16.         System.out.print("Przejdż do zadania: ");
  17.         int wybor = inp.nextInt();
  18.  
  19.         switch (wybor) {
  20.             case 1:
  21.                 Zad1();
  22.                 break;
  23.             case 2:
  24.                 Zad2();
  25.                 break;
  26.             case 3:
  27.                 Zad3();
  28.                 break;
  29.             case 4:
  30.                 Zad4();
  31.                 break;
  32.             case 5:
  33.                 Zad5();
  34.                 break;
  35.             case 6:
  36.                 Zad6();
  37.                 break;
  38.             case 7:
  39.                 Zad7();
  40.                 break;
  41.             case 8:
  42.                 Zad8();
  43.                 break;
  44.             case 9:
  45.                 Zad9();
  46.                 break;
  47.             case 10:
  48.                 Zad10();
  49.                 break;
  50.             case 11:
  51.                 Zad11();
  52.                 break;
  53.             case 12:
  54.                 Zad12();
  55.                 break;
  56.             case 13:
  57.                 Zad13();
  58.                 break;
  59.             case 14:
  60.                 Zad14();
  61.                 break;
  62.             case 15:
  63.                 Zad15();
  64.                 break;
  65.             default:
  66.                 WyborZadania();
  67.                 break;
  68.         }
  69.     }
  70.  
  71.     private static void Zad1(){
  72.         //Silnia
  73.         Scanner zadanie = new Scanner(System.in);
  74.         System.out.print("Silnia z n: "); int n = zadanie.nextInt();
  75.         int wynik = 1;
  76.         int wynik2 = silnia(n);
  77.  
  78.         for(int i = 1; i <= n; i++){
  79.             wynik *= i;
  80.         }
  81.  
  82.         System.out.print("(iteracja) Silnia " + n + "! = " + wynik);
  83.         System.out.print("\n(rekurencja) Silnia " + n + "! = " + wynik2);
  84.     }
  85.  
  86.     private static int silnia(int n){
  87.         if(n < 2){
  88.             return 1;
  89.         }
  90.         else{
  91.             return n*silnia(n-1);
  92.         }
  93.     }
  94.  
  95.     private static void Zad2(){
  96.         //Ciąg fibonacciego
  97.         Scanner zadanie = new Scanner(System.in);
  98.         System.out.print("n wyraz ciagu fibonnaciego: "); int n = zadanie.nextInt();
  99.  
  100.         int wynik2 = fib(n);
  101.         System.out.println("(Rekurencyjnie) Wyraz: " + n + ": " + wynik2);
  102.  
  103.         long fib[] = new long[n+1];
  104.         fib[0] = 0; fib[1] = 1;
  105.  
  106.         for(int i = 2; i <= n; i++){
  107.             fib[i] = fib[i-1] + fib[i-2];
  108.         }
  109.         System.out.println("(Iteracyjnie) Wyraz: " + n + ": " + fib[n]);
  110.     }
  111.  
  112.     private static int fib(int n)
  113.     {
  114.         if(n<3){ return 1; }
  115.         else { return fib(n-2)+fib(n-1); }
  116.     }
  117.  
  118.     private static void Zad3(){
  119.         Scanner zadanie = new Scanner(System.in);
  120.         System.out.print("Tekst: "); String text = zadanie.nextLine();
  121.         System.out.print("Znak: "); String z = zadanie.nextLine();
  122.         int wynik = strpos(text, z.charAt(0));
  123.         System.out.print("Indeks: " + wynik);
  124.     }
  125.  
  126.     private static int strpos(String text, char z){
  127.         int index = -1;
  128.         for(int i = 0; i < text.length(); i++){
  129.             if(text.charAt(i) == z){
  130.                 index = i;
  131.                 break;
  132.             }
  133.         }
  134.         return index;
  135.     }
  136.  
  137.     private static void Zad4(){
  138.         Scanner zadanie = new Scanner(System.in);
  139.         System.out.print("Tekst: "); String text = zadanie.nextLine();
  140.         String wynik = flipCase(text);
  141.         System.out.print("Wynik: " + wynik);
  142.     }
  143.  
  144.     private static String flipCase(String text){
  145.         String wynik = "";
  146.         String posredni = "";
  147.         for(int i = 0; i < text.length(); i++){
  148.             char ch = text.charAt(i);
  149.             if(ch >= 'a' && ch <= 'z'){
  150.                 posredni += ch;
  151.                 posredni = posredni.toUpperCase();
  152.             }
  153.             else if(ch >= 'A' && ch <= 'Z'){
  154.                 posredni += ch;
  155.                 posredni = posredni.toLowerCase();
  156.             }
  157.             wynik += posredni;
  158.             posredni = "";
  159.         }
  160.         return wynik;
  161.     }
  162.  
  163.     private static void Zad5(){
  164.         Scanner zadanie = new Scanner(System.in);
  165.         System.out.print("Tekst: "); String str1 = zadanie.nextLine();
  166.         System.out.print("Tekst: "); String str2 = zadanie.nextLine();
  167.         boolean wynik = startsWith(str1, str2);
  168.         System.out.print("Wynik: " + wynik);
  169.     }
  170.  
  171.     private static boolean startsWith(String str1, String str2){
  172.         boolean wynik = true;
  173.         for(int i = 0; i < str2.length(); i++){
  174.             if(str1.charAt(i) != str2.charAt(i) || str2.length() > str1.length()){
  175.                 wynik = false;
  176.                 break;
  177.             }
  178.         }
  179.         return wynik;
  180.     }
  181.  
  182.     private static void Zad6(){
  183.         Scanner zadanie = new Scanner(System.in);
  184.         System.out.print("Tekst: "); String text = zadanie.nextLine();
  185.         int wynik = strToInt(text);
  186.         System.out.print("Wynik: " + wynik);
  187.     }
  188.  
  189.     private static int strToInt(String text){
  190.  
  191.         double wynik = 0; double mnozenie = 0;
  192.         boolean znak = true;
  193.         boolean dzialanie = false;
  194.         String posredni = "";
  195.         String posredni2 = "";
  196.         int i = 0;
  197.  
  198.         if(text.charAt(0) == '-') {
  199.             i = 1; znak = false;
  200.         }
  201.  
  202.         for(int j = i; j < text.length(); j++){
  203.             if(Character.isDigit(text.charAt(j))){
  204.                 posredni += text.charAt(j);
  205.             }
  206.             else if(text.charAt(j)=='e'){
  207.                 dzialanie = true;
  208.                 for(int k = j + 1; k < text.length(); k++){
  209.                     if(Character.isDigit((text.charAt(k)))){
  210.                         posredni2 += text.charAt(k);
  211.                     }
  212.                     else { break; }
  213.                 }
  214.             }
  215.             else { break; }
  216.         }
  217.  
  218.         wynik = Integer.parseInt(posredni);
  219.         if(posredni2!="") { mnozenie = Integer.parseInt(posredni2); }
  220.  
  221.  
  222.         if(dzialanie){ wynik = wynik * Math.pow(10,mnozenie); }
  223.         if(!znak){ wynik*=(-1); }
  224.  
  225.         return (int)wynik;
  226.     }
  227.  
  228.     private static void Zad7(){
  229.         Scanner zadanie = new Scanner(System.in);
  230.         System.out.print("Tekst: "); String gdzie = zadanie.nextLine();
  231.         System.out.print("Tekst: "); String co = zadanie.nextLine();
  232.         int wynik = strfind(gdzie, co);
  233.         System.out.print("Wynik: " + wynik);
  234.     }
  235.  
  236.     private static int strfind(String gdzie, String co){
  237.         int wynik = -1;
  238.         if(gdzie.indexOf(co) != -1)
  239.         {
  240.             for(int i = 0; i < gdzie.length(); i++)
  241.             {
  242.                 int index = gdzie.indexOf(co, i);
  243.                 if(index != -1) { wynik = index; }
  244.             }
  245.         }
  246.         else { wynik = -1;}
  247.         return wynik;
  248.     }
  249.  
  250.     private static void Zad8(){
  251.         Scanner zadanie = new Scanner(System.in);
  252.         System.out.print("Tekst: "); String text = zadanie.nextLine();
  253.         int wynik = wordCount(text);
  254.         System.out.print("Wynik: " + wynik);
  255.     }
  256.  
  257.     private static int wordCount(String text){
  258.         int wynik = 1;
  259.  
  260.         for(int i = 1; i < text.length(); i++){
  261.             if(Character.isWhitespace(text.charAt(i)) && Character.isLetter(text.charAt(i-1)) ){
  262.                 wynik++;
  263.             }
  264.         }
  265.  
  266.         return wynik;
  267.     }
  268.  
  269.     private static void Zad9(){
  270.         Scanner zadanie = new Scanner(System.in);
  271.         System.out.print("Tekst: "); String text = zadanie.nextLine();
  272.         String[] wynik = podzielNaSlowa(text);
  273.  
  274.         for(int i=0; i < wynik.length; i++){
  275.             System.out.println(wynik[i]);
  276.         }
  277.  
  278.     }
  279.  
  280.     private static String[] podzielNaSlowa(String text){
  281.         String[] wynik = new String[wordCount(text)];
  282.         int j = 0;
  283.  
  284.         for(int k = 0; k < wynik.length; k++){
  285.             wynik[k] = "";
  286.         }
  287.  
  288.         for(int i = 0; i < text.length(); i++){
  289.             if(Character.isWhitespace(text.charAt(i))){
  290.                 j++;
  291.             }
  292.             else { wynik[j] += text.charAt(i); }
  293.         }
  294.  
  295.         return wynik;
  296.     }
  297.  
  298.     private static void Zad10(){
  299.         Scanner zadanie = new Scanner(System.in);
  300.         System.out.print("Tekst: "); String gdzie = zadanie.nextLine();
  301.         System.out.print("co: "); String co = zadanie.nextLine();
  302.         int wynik = strFindAndCount(gdzie, co);
  303.         System.out.print("Wynik: " + wynik);
  304.     }
  305.  
  306.     private static int strFindAndCount(String gdzie, String co){
  307.         int wynik = 0;
  308.  
  309.         for(int i = 0; i < gdzie.length() - co.length(); i++){
  310.             if(gdzie.substring(i, i + co.length()).equals(co)){ wynik++; }
  311.         }
  312.  
  313.         return wynik;
  314.     }
  315.  
  316.     private static void Zad11(){
  317.         Scanner zadanie = new Scanner(System.in);
  318.         Scanner zadanie2 = new Scanner(System.in);
  319.         System.out.print("Tekst: "); String text = zadanie.nextLine();
  320.         System.out.print("Start: "); int start = zadanie2.nextInt();
  321.         System.out.print("ile: "); int ile = zadanie2.nextInt();
  322.  
  323.         String wynik = strcut(text, start, ile);
  324.         System.out.print("Wynik: " + wynik);
  325.     }
  326.  
  327.     private static String strcut(String text, int start, int ile){
  328.         String wynik = "";
  329.         char[] posredni = new char[text.length()];
  330.  
  331.         for(int i = 0; i < posredni.length; i++){
  332.             posredni[i] = text.charAt(i);
  333.         }
  334.  
  335.         for(int j = start; j < start + ile; j++){
  336.             posredni[j] = 32;
  337.         }
  338.  
  339.         for(int k = 0; k < posredni.length; k++){
  340.             wynik += posredni[k];
  341.         }
  342.  
  343.         return wynik;
  344.     }
  345.  
  346.     private static void Zad12(){
  347.         //Nie chce mi sie, za dużo roboty
  348.     }
  349.  
  350.     private static void Zad13(){
  351.         Scanner zadanie = new Scanner(System.in);
  352.         System.out.print("Tekst: "); String text = zadanie.nextLine();
  353.         int[] kol = {0,1,4,3,2,6,5};
  354.         String wynik = poprzestawiaj(text, kol);
  355.         System.out.print("Wynik " + wynik);
  356.     }
  357.  
  358.     private static String poprzestawiaj(String text, int[] kolejnosc){
  359.         String wynik = "";
  360.         for(int i = 0; i < text.length(); i++){
  361.             if(kolejnosc[i] < text.length()){
  362.                 wynik += text.charAt(kolejnosc[i]);
  363.             }
  364.             else { wynik += text.charAt(i); }
  365.         }
  366.  
  367.         return wynik;
  368.     }
  369.  
  370.     private static void Zad14(){
  371.         Scanner zadanie = new Scanner(System.in);
  372.         System.out.print("Tekst: "); String t1 = zadanie.nextLine();
  373.         System.out.print("Tekst: "); String t2 = zadanie.nextLine();
  374.         System.out.println(czyAnagram(t1, t2));
  375.     }
  376.  
  377.     private static boolean czyAnagram(String t1, String t2){
  378.         boolean wynik = true;
  379.         t1.toLowerCase(); t2.toLowerCase();
  380.         for(int i = 0; i < t1.length(); i++){
  381.             if(Character.isLetter(t1.charAt(i))){
  382.                 int ile = ile_liter(t1, t1.charAt(i));
  383.                 int ile2 = ile_liter(t2, t1.charAt(i));
  384.                 if(ile!=ile2){ wynik = false; break;}
  385.             }
  386.         }
  387.         return wynik;
  388.     }
  389.  
  390.     private static int ile_liter(String napis, char litera)
  391.     {
  392.         int ile_liter = 0;
  393.  
  394.         char znak_z_napisu;
  395.         for (int i = 0 ; i < napis.length() ; i++)
  396.         {
  397.             znak_z_napisu = napis.charAt(i);
  398.             if(znak_z_napisu == litera){
  399.                 ile_liter++;
  400.             }
  401.         }
  402.         return ile_liter;
  403.     }
  404.  
  405.     private static void Zad15(){
  406.         Scanner zadanie = new Scanner(System.in);
  407.         System.out.print("Kolor #xxyyzz: "); String color = zadanie.nextLine();
  408.         int[] wynik = HTMLColor2RGB(color);
  409.  
  410.         System.out.print("RGB: {" + wynik[0] + ", " + wynik[1] + ", " + wynik[2] + "}");
  411.     }
  412.  
  413.     private static int [] HTMLColor2RGB(String color){
  414.         double[] wynik = new double[3];
  415.         int[] result = new int[3];
  416.  
  417.         wynik[0] = (hexToDec("" + color.charAt(1))*Math.pow(16,1)) +  (hexToDec("" + color.charAt(2))*Math.pow(16,0));
  418.         wynik[1] = (hexToDec("" + color.charAt(3))*Math.pow(16,1)) +  (hexToDec("" + color.charAt(4))*Math.pow(16,0));
  419.         wynik[2] = (hexToDec("" + color.charAt(5))*Math.pow(16,1)) +  (hexToDec("" + color.charAt(6))*Math.pow(16,0));
  420.  
  421.         for(int i = 0; i<3; i++){
  422.             result[i] = (int)wynik[i];
  423.         }
  424.  
  425.         return result;
  426.     }
  427.  
  428.     private static int hexToDec(String l){
  429.         int wynik = 0;
  430.         if(l.charAt(0) == 'A' || l.charAt(0) == 'a'){ return 10;}
  431.         else if(l.charAt(0) == 'B' || l.charAt(0) == 'b'){ return 11;}
  432.         else if(l.charAt(0) == 'C' || l.charAt(0) == 'c'){ return 12;}
  433.         else if(l.charAt(0) == 'D' || l.charAt(0) == 'd'){ return 13;}
  434.         else if(l.charAt(0) == 'E' || l.charAt(0) == 'e'){ return 14;}
  435.         else if(l.charAt(0) == 'F' || l.charAt(0) == 'f'){ return 15;}
  436.         else { return Integer.parseInt(l); }
  437.     }
  438. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement