Programozás feladatok – Java alap leckék gyakorlása megoldásokkal

Ezek a vegyes feladatok a változókezelést, feltételvizsgálatokat, ciklusokat, valamint az ezek mellé megtanult anyagokat (véletlen szám sorsolás, adatbekérés, osztások) gyakoroltatják. A feladatok lefedik az első 14 lecke anyagát, de néhol már belecsapnak az alap algoritmusok témakörbe. A feladatok sorszáma nem feltétlenül tükrözi az adott feladat nehézségét. A feladatok megoldásait is mellékelem, amik kedvtől és szabadidőtől függően folyamatosan bővülnek majd. A sorsolásoknál az intervallumot neked kell megoldani, adatbekérés esetén feltételezhetjük, hogy a felhasználó az intervallumnak megfelelő számot ad meg.

  1. Kérj be egy egész számot a felhasználótól, és írd ki a nullától való távolságát!
    Megoldás
    /**
    *
    * @author https://webotlet.hu
    */
    package alapokgyakorlasa01;
    
    import java.util.Scanner;
    
    public class AlapokGyakorlasa01
    {
      public static void main(String[] args)
      {
        Scanner sc = new Scanner(System.in);
        System.out.print("Adj meg egy egesz szamot: ");
        int szam = sc.nextInt();
    
        System.out.println("A szam nullatol valo tavolsaga: " 
            + Math.abs(szam) );
      }
    }
    
  2. Sorsolj ki 3 egész számot a [0;10] intervallumból, és írd ki az átlagukat!
    Megoldás
    /**
     *
     * @author https://webotlet.hu
     */
    package alapokgyakorlasa02;
    
    public class AlapokGyakorlasa02
    {
      public static void main(String[] args)
      {
        int szam1 = (int)(Math.random()*11);
        int szam2 = (int)(Math.random()*11);
        int szam3 = (int)(Math.random()*11);
        
        double atlag = (szam1 + szam2 + szam3) / 3.0;
        
        System.out.println("A 3 szam atlaga: " + atlag );
      }
    }
    
  3. Sorsolj ki egy egész számot az [1;100] intervallumból, és írd ki, milyen számjegyre végződik!
    Megoldás
    /**
     *
     * @author https://webotlet.hu
     */
    package alapokgyakorlasa03;
    
    public class AlapokGyakorlasa03
    {
      public static void main(String[] args)
      {
    
        int szam = (int) (Math.random() * 100) + 1;
        System.out.println("A sorsolt szam: " + szam);
        System.out.println("Az utolso szamjegye: " + szam % 10);
      }
    }
    
  4. Sorsolj ki egy egész számot a [7;24] intervallumból. Írd ki a szám osztóit!
    Megoldás
    /**
     *
     * @author https://webotlet.hu
     */
    package alapokgyakorlasa04;
    
    public class AlapokGyakorlasa04
    {
      public static void main(String[] args)
      {
        int szam = (int) (Math.random() * 18) + 7;
        System.out.println("A sorsolt szam: " + szam);
        System.out.print("A szam osztoi: ");
        
        for( int i = 1; i <= szam; i++ )
        {
          if( szam % i == 0 )
          {
            System.out.print(i + " ");
          }
        }
        System.out.println();
      }
    }
    
  5. Kérj be 2 egész számot a felhasználótól a [-100;100] intervallumból, és írd ki a közöttük lévő páros számokat!
    1. megoldás
    /**
     *
     * @author https://webotlet.hu
     */
    package alapokgyakorlasa05v1;
    
    import java.util.Scanner;
    
    public class AlapokGyakorlasa05v1
    {
      public static void main(String[] args)
      {
        Scanner sc = new Scanner(System.in);
        System.out.println("Adj meg ket egesz szamot:");
        int szam1 = sc.nextInt();
        int szam2 = sc.nextInt();
        
        System.out.println("A kozottuk levo szamok: ");
        
        if( szam2 > szam1 )
        {
          for( int i = szam1 + 1; i < szam2; i++ )
          {
            System.out.print(i + " ");
          }
          System.out.println();
        }
        else
        {
          for( int i = szam2 + 1; i < szam1; i++ )
          {
            System.out.print(i + " ");
          }
          System.out.println();
        }
      }
    }
    

    2. megoldás
    /**
     *
     * @author https://webotlet.hu
     */
    package alapokgyakorlasa05v2;
    
    import java.util.Scanner;
    
    public class AlapokGyakorlasa05v2
    {
      public static void main(String[] args)
      {
        Scanner sc = new Scanner(System.in);
        System.out.println("Adj meg ket egesz szamot:");
        int szam1 = sc.nextInt();
        int szam2 = sc.nextInt();
    
        if( szam1 > szam2 )
        {
          int csere = szam1;
          szam1 = szam2;
          szam2 = csere;
        }
    
        System.out.println("A kozottuk levo szamok: ");
    
        for( int i = szam1 + 1; i < szam2; i++ )
        {
          System.out.print(i + " ");
        }
        System.out.println();
      }
    }
    
  6. Kérj be egy negatív egész számot a felhasználótól, és írd ki az ettől nagyobb negatív számokat!
    Megoldás
    /**
     *
     * @author https://webotlet.hu
     */
    package alapokgyakorlasa06;
    
    import java.util.Scanner;
    
    public class AlapokGyakorlasa06
    {
      public static void main(String[] args)
      {
        Scanner sc = new Scanner(System.in);
        System.out.println("Adj meg egy negativ egesz szamot:");
        int szam = sc.nextInt();
        
        System.out.println("Az ettol nagyobb negativ szamok: ");
        
        for( int i = szam + 1; i < 0; i++ )
        {
          System.out.print(i + " ");
        }
        System.out.println();
      }
    }
    
  7. Írd ki a [0;100] intervallumból azokat a számokat, amelyek a 2, 3, és 5 számok közül csak az egyikkel oszthatók!
    Megoldás
    /**
     *
     * @author https://webotlet.hu
     */
    package alapokgyakorlasa07;
    
    public class AlapokGyakorlasa07
    {
      public static void main(String[] args)
      {
        for( int i = 0; i <= 100; i++ )
        {
          // csak 2-vel oszthato
          if( i % 2 == 0 && i % 3 != 0 && i % 5 != 0 )
          {
            System.out.print(i + " ");
          }
          // csak 3-mal oszthato
          else if( i % 2 != 0 && i % 3 == 0 && i % 5 != 0 )
          {
            System.out.print(i + " ");
          }
          // csak 5-gyel oszthato
          else if( i % 2 != 0 && i % 3 != 0 && i % 5 == 0 )
          {
            System.out.print(i + " ");
          }
        }
        System.out.println();
      }
    }
    
  8. Hozz létre egy 10 elemű tömböt, amit tölts fel a [0;20] intervallumból véletlen számokkal! Írd ki a tömb páros egyjegyű számait!
    Megoldás
    /**
     *
     * @author https://webotlet.hu
     */
    package alapokgyakorlasa08;
    
    public class AlapokGyakorlasa08
    {
      public static void main(String[] args)
      {
        int[] tomb = new int[10];
        for( int i = 0; i < tomb.length; i++ )
        {
          tomb[i] = (int)(Math.random() * 21);
        }
        
        System.out.println("A teljes tomb:");
        for( int i = 0; i < tomb.length; i++ )
        {
          System.out.print(tomb[i] + " ");
        }
        System.out.println();
        
        System.out.println("A tomb egyjegyu szamai:");
        for( int i = 0; i < tomb.length; i++ )
        {
          if( tomb[i] % 2 == 0 && tomb[i] < 10 )
          {
            System.out.print(tomb[i] + " ");
          }
        }
        System.out.println();
      }
    }
    
  9. Hozz létre egy 10 elemű tömböt, amit tölts fel a [-20;20] intervallumból véletlen számokkal! Írd ki a tömb páros egyjegyű számait!
    Megoldás
    /**
     *
     * @author https://webotlet.hu
     */
    package alapokgyakorlasa09;
    
    public class AlapokGyakorlasa09
    {
      public static void main(String[] args)
      {
        int[] tomb = new int[10];
        for( int i = 0; i < tomb.length; i++ )
        {
          tomb[i] = (int)(Math.random() * 41) - 20;
        }
        
        System.out.println("A teljes tomb:");
        for( int i = 0; i < tomb.length; i++ )
        {
          System.out.print(tomb[i] + " ");
        }
        System.out.println();
        
        System.out.println("A tomb egyjegyu szamai:");
        for( int i = 0; i < tomb.length; i++ )
        {
          if( tomb[i] % 2 == 0 && tomb[i] > -10 && tomb[i] < 10 )
          {
            System.out.print(tomb[i] + " ");
          }
        }
        System.out.println();
      }
    }
    
  10. Hozz létre egy 10 elemű tömböt, amit tölts fel a [-5;15] intervallumból! Írd ki a tömb elemeit fordított sorrendben!
    Megoldás
    /**
     *
     * @author https://webotlet.hu
     */
    package alapokgyakorlasa10;
    
    public class AlapokGyakorlasa10
    {
      public static void main(String[] args)
      {
        int[] tomb = new int[10];
        for( int i = 0; i < tomb.length; i++ )
        {
          tomb[i] = (int)(Math.random() * 21) - 5;
        }
        
        System.out.println("Eredeti sorrend:");
        for( int i = 0; i < tomb.length; i++ )
        {
          System.out.print(tomb[i] + " ");
        }
        System.out.println();
        
        System.out.println("Forditott sorrend:");
        for( int i = tomb.length - 1; i >= 0; i-- )
        {
          System.out.print(tomb[i] + " ");
        }
        System.out.println();
      }
    }
    
  11. Kérj be 5 számot a felhasználótól, melyeket tárolj el egy tömbben! Írd ki a tömb első és utolsó elemét!
    Megoldás
    /**
     *
     * @author https://webotlet.hu
     */
    package alapokgyakorlasa11;
    
    import java.util.Scanner;
    
    public class AlapokGyakorlasa11
    {
      public static void main(String[] args)
      {
        Scanner sc = new Scanner(System.in);
        int[] tomb = new int[5];
        
        for( int i = 0; i < tomb.length; i++ )
        {
          System.out.println("Adj meg egy egesz szamot: ");
          tomb[i] = sc.nextInt();
        }
        
        System.out.println("A tomb elso eleme: " + tomb[0]);
        System.out.println("A tomb utolso eleme: " + tomb[tomb.length - 1]);
      }
    }
    
  12. Sorsolj ki egy számot az [1;5] intervallumból, melyek egy érdemjegyet jelentenek. Írd ki a számnak megfelelő szöveges értékelést!
    1. megoldás
    /**
     *
     * @author https://webotlet.hu
     */
    package alapokgyakorlasa12v1;
    
    public class AlapokGyakorlasa12v1
    {
      public static void main(String[] args)
      {
        int jegy = (int)(Math.random() * 5) + 1;
        System.out.println(jegy);
        
        if( jegy == 5 )
        {
          System.out.println("jeles");
        }
        else if( jegy == 4 )
        {
          System.out.println("jo");
        }
        else if( jegy == 3 )
        {
          System.out.println("kozepes");
        }
        else if( jegy == 2 )
        {
          System.out.println("elegseges");
        }
        else
        {
          System.out.println("elegtelen");
        }
      }
    }
    

    2. megoldás
    /**
     *
     * @author https://webotlet.hu
     */
    package alapokgyakorlasa12v2;
    
    public class AlapokGyakorlasa12v2
    {
      public static void main(String[] args)
      {
        int jegy = (int)(Math.random() * 5) + 1;
        System.out.println(jegy);
        
        switch( jegy )
        {
          case 5:
            System.out.println("jeles");
            break;
          case 4:
            System.out.println("jo");
            break;
          case 3:
            System.out.println("kozepes");
            break;
          case 2:
            System.out.println("elegseges");
            break;
          case 1:
            System.out.println("elegtelen");
            break;
        }
      }
    }
    
  13. Olvass be egy egész számot a billentyűzetről a [10;130] intervallumból, mely egy autó sebességét jelenti! A megengedett legnagyobb sebesség az adott útszakaszon 80 km/óra. Írd ki, hogy számszerűen mekkora büntetésre számíthat gyorshajtásért az autós, ha legalább 20-szal túllépés esetén 30e Ft-ból megússza, de 40-nel túllépés felett már 50e Ft a büntetési tétel!
    1. megoldás
    /**
     *
     * @author https://webotlet.hu
     */
    package alapokgyakorlasa13v1;
    
    import java.util.Scanner;
    
    public class AlapokGyakorlasa13v1
    {
      public static void main(String[] args)
      {
        Scanner sc = new Scanner(System.in);
        int sebesseg = sc.nextInt();
        
        if( sebesseg > 120 )
        {
          System.out.println(50000);
        }
        else if( sebesseg >= 100 )
        {
          System.out.println(30000);
        }
        else
        {
          System.out.println(0);
        }
      }
    }
    

    2. megoldás
    /**
     *
     * @author https://webotlet.hu
     */
    package alapokgyakorlasa13v2;
    
    import java.util.Scanner;
    
    public class AlapokGyakorlasa13v2
    {
      public static void main(String[] args)
      {
        Scanner sc = new Scanner(System.in);
        int sebesseg = sc.nextInt();
        
        int buntetes = 0;
        
        if( sebesseg > 120 )
        {
          buntetes = 50000;
        }
        else if( sebesseg >= 100 )
        {
          buntetes = 30000;
        }
        
        System.out.println(buntetes);
      }
    }
    
  14. Sorsolj ki egy számot a [7000;15000] intervallumból, mely egy fizetendő összeget jelent. Hány darab ezressel lehet kifizetni az adott összeget? (nincs 5-ösre és 10-esre kerekítés)
    Megoldás
    /**
     *
     * @author https://webotlet.hu
     */
    package alapokgyakorlasa14;
    
    public class AlapokGyakorlasa14
    {
      public static void main(String[] args)
      {
        int ar = (int)(Math.random() * 8001) + 7000;
        System.out.println(ar);
        
        int db1000 = ar / 1000;
        
        if( ar % 1000 > 0 )
        {
          db1000 = db1000 + 1;
        }
        
        System.out.println(db1000 + " darab ezressel lehet kifizetni. ");
      }
    }
    
  15. Sorsolj ki egy számot a [700;1300] intervallumból, mely egy fizetendő összeget jelent. Mennyi lesz a visszajáró, ha csak 200-as érmékkel fizetek? (nincs 5-ösre és 10-esre kerekítés)
  16. Kérj be egy egész számot a felhasználótól, mely egy kör átmérője! Írd ki a kör kerületét, területét!
  17. Sorsolj ki egy pozitív páros számot a [1;50] intervallumból, és írd ki a képernyőre!
  18. Tölts fel egy 10 elemű tömböt a [0;100] intervallumból véletlen számokkal! Írd ki azokat az elemeket, amelyek 0-ra végződnek, de 4-gyel nem oszthatók!
  19. Tölts fel egy 10 elemű tömböt a [0;1000] intervallumból véletlen számokkal! Írd ki a két számjegyű elemeket!
  20. Tölts fel egy 10 elemű tömböt a [0;100] intervallumból véletlen számokkal! Sorsolj ki egy számot ugyanebből az intervallumból, és írd ki a tömb azon elemeit, amelyek nagyobbak a sorsolt számtól, de nem oszthatók vele!
  21. Tölts fel egy 10 elemű tömböt a [-1000;1000] intervallumból véletlen számokkal! Írd ki a tömb kétjegyű elemeit!
  22. Tölts fel egy 10 elemű tömböt a [0;1000] intervallumból véletlen számokkal! Írd ki azokat az elemeket, amelyek oszthatók az utolsó számjegyükkel!
  23. Sorsolj ki 10 számot a [0;10] intervallumból. Írd ki a kisorsolt számok átlagát!
  24. Olvass be számokat a billentyűzetről addig, amíg 0-át nem adsz meg. Írd ki minden szám után, hogy páros vagy páratlan!
  25. Olvass be számokat a billentyűzetről addig, amíg 0-át nem adsz meg. Számold meg a beolvasott számok közül a páratlanokat és írd ki a darabszámot!
  26. Olvass be számokat a billentyűzetről addig, amíg 0-át nem adsz meg. Írd ki a begépelt páros számok átlagát!
  27. Tölts fel egy 10 elemű tömböt páratlan számokkal a [0;100] intervallumból véletlen számokkal és írd ki őket!
  28. Tölts fel egy 20 elemű tömböt a [-10;30] intervallumból véletlen számokkal! Sorsolj ki egy egész számot a [0;9] intervallumból Írd ki a tömb azon elemeit, amik erre a számjegyre végződnek, de nem oszthatók vele!
  29. Tölts fel egy 20 elemű tömböt a [-100;100] intervallumból véletlen számokkal! Sorsolj ki két számot a [-40;40] intervallumból! Írd ki a tömb azon elemeit, melyek a két külön kisorsolt szám között vannak!
  30. Sorsolj ki egy számot a [10;1000] intervallumból! Hány sorsolás kellett hozzá, hogy két számjegyű számot kapj?

Vélemény, hozzászólás?

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

*

Ez az oldal az Akismet szolgáltatást használja a spam csökkentésére. Ismerje meg a hozzászólás adatainak feldolgozását .