Java 2

Cyklus + Riešenie






Mgr. Ondrej Dúcky
© 2022 

1)  Napíš program, ktorý prečíta nejaké slovo az neho vypíše trojuholník. Ten sa bude skladať z písmen tohto slova: 
v 1. riadku je prvé písmeno, v 2. druhé písmeno ale dvakrát, 
v 3. tretia, …, 
v poslednom je veľakrát podľa počtu znakov slova. Môžete dostať takýto výstup:
zadajte slovo: JAVA

J
AA
VVV
AAAA

Riešenie

public static void prvaUloha() {
  System.out.print("Zadaj slovo: ");
  String slovo = sc.next();
   for (int i = 0; i < slovo.length(); i++) {
     for (int k = 0; k <= i; k++) {
       System.out.print(slovo.charAt(i));
     }
     System.out.println();
   }}

2)  Program vytvoríte, ktorý vytvoríte takúto pyramídu:
v prvom  n-1 riadku je najskôr medzier a potom jedna hviezdička
v ďalšom riadku je o jednu medzeru menej ako dve hviezdičky viac...
Môžete dostať takýto výstup:
zadaj n: 5
*
***
*****
********
********

Riešenie

 public static void druhaUloha() {
        System.out.print("Zadaj n: ");
        Integer n = sc.nextInt();
        int j = 1;
        for (int i = 0; i < n; i++) {
            for (int k = 0; k < j; k++) {
                System.out.print("*");
            }
            j = j + 2;
            System.out.println();
        }
    }

3)  Napíš program, ktorý prečíta nejaké slovo a vypíše:
trojuholník sa bude skladať z písmen tohto slova: 
v 1. riadku je prvé písmeno,  v 2. sú prvé dve, 
v 3. sú prvé tri, …  v poslednom riadku bude úplné slovo. 
Môžete dostať takýto výstup:
zadajte slovo: Java

J

Ja

Jav

Java


Riešenie

public static void tretiaUloha() {
System.out.print("Zadaj slovo: ");
String slovo = sc.next();
StringBuilder slovicko = new StringBuilder();
  for (int i = 0; i < slovo.length(); i++) {
      slovicko.append(slovo.charAt(i));
      System.out.println(slovicko);
  }
  System.out.println();
}

4) Napíš program, ktorý zo znakov hviezdičky ( '*') vytvoríte takýto trojuholník: v 1. riadku je jedna hviezdička, v 2. dve, v 3. tri, …, v  n-tom riadku je dar  n . Môžete dostať takýto výstup:
zadaj n: 6
*
**
***
****
*****
********

5)  Program Napíš, ktorý  n-krát vypíše zadané slovo takto: 
v 1. riadku bez odsadenia, v 2. s  1 odsadením (4 medzery), v 3. s  2 odsadeniami (8 medzier), v 4. s  3 odsadeniami (12 medzier), pre ďalšie riadky sa to opakuje od začiatku. V programe využi zvyšok po delení, napríklad  i%4*4
Môžete dostať takýto výstup:
zadajte slovo: Java
zadaj n: 4
Java
    Java
        Java
            Java

6) Program, ktorý vytvoríte pyramídu z ponuky, 
 z ponuky bude len trojuholníka trojuholníka bude zo znakov mínus ( '-'). 
Môžete dostať takýto výstup: 

zadaj n: 7

*
*-*
*---*
*-----*
*--------*
*---------*
*************

7) Napíš program, ktorý vypíše  naformátovanú  tabuľku mocnín celých čísel z nejakého daného intervalu. Prvý stĺpec tabuľky obsahuje číslo, v druhom je druhá mocnina tohto čísla, v tretej tretej, vo štvrtom štvrtá. Môžete dostať takýto výstup:

zadaj od: 95
zadajte do: 101
95 9025 857375 81450625
96 9216 884736 84934656
97 9409 912673 88529281
98 9604 941192 92236816
99 9801 970299 96059601
100 10000 1000000 100000000
101 10201 1030301 104060401

Riešenie

 public static void siedmaUloha() {
    System.out.print("Zadaj od: ");
    Integer ood = sc.nextInt();
    System.out.print("Zadaj do: ");
    Integer doo = sc.nextInt();
    if (doo < ood) {
      System.out.println("2 číslo je menšie ako prvé!");
           siedmaUloha();
    }
    for (int i=ood; i<=doo; i++){
        System.out.print(i+" ");
        System.out.println(i*i+" "+i*i*i+" "+i*i*i*i);
    }
 }

8) Budeš vytvárať dlhý znakový reťazec podobne ako v predchádzajúcej úlohe. Namiesto toho budeš musieť zapísať čísla z nejakého intervalu (v tvare  '<číslo>'). Schéma programu by mala byť podobnej predchádzajúcej úlohe. Môžete spustiť takýto výstup:

zadaj od: 88
zadajte do: 111
<88> <89> <90> <91> <92> <93> <94> <95> <96> <97> <98> <99> <100>
<101> <102> <103> <104> <105> <106> <107> <108> <109> <110> <111>

Riešenie

 public static void osmaUloha() {
        System.out.print("Zadaj od: ");
        Integer ood = sc.nextInt();
        System.out.print("Zadaj do: ");
        Integer doo = sc.nextInt();
        if (doo < ood) {
            System.out.println("druhé číslo       nie je vačšie ako prvé!");
            osmaUloha();
        }
        for (int i = ood; i<=doo;i++){
            System.out.print("<"+i+">");
        }
    }

9) Napíš program, ktorý vyrobí jeden dlhý znakový reťazec, zložený z úsekov oddelených medzerami: na začiatku je hviezdička (znak  '*'), za ňou medzera, potom 2 hviezdičky a medzera, 3 hviezdičky a medzera … Počet hviezdičkových úsekov je  n. Program mal mať takúto schému:

n = ...  
retazec  =  ''
pred ... : 
...
tlačiť ( retazec )
Môžete spustiť takýto výstup:
zadaj n: 10
* ** *** **** ***** **** ******** ******** ******** ***** ** ***

10) Program Napíš, ktorý vytvorí násobenie, podobne malej násobilke. Násobiť sa budú čísla z nejakého daného intervalu: v prvom riadku (aj stĺpci) sú násobky prvého čísla, v druhom druhom atď. Môžete dostať takýto výstup:
zadaj od: 8
zadaj do: 13
64 72 80 88 96 104
72 81 90 99 108 117
80 90 100 110 120 130
88 99 110 121 132 143
96 108 120 132 144 156
104 117 130 143 156 169

Riešenie

 for(int k=ood;k<=doo;k++){
            for(int i=ood;i<=doo;i++){
                System.out.print(k*i+" ");
            }
            System.out.println();
        }

11) Do výpisu tabuliek pridaj prvý stĺpec aj riadok navyše s hodnotami z daného intervalu, napríklad v takomto tvare:
zadaj od: 8
zadaj do: 13
| 8 9 10 11 12 13
=====|=================================
8 | 64 72 80 88 96 104
9 | 72 81 90 99 108 117
10 | 80 90 100 110 120 130
11 | 88 99 110 121 132 143
12 | 96 108 120 132 144 156
13 | 104 117 130 143 156 169

Riešenie

 System.out.print("|");
        for(int i=ood;i<=doo;i++){
            System.out.print(i+" ");
        }
         System.out.println("\n=====|===============================");
        for(int k=ood;k<=doo;k++){
            for(int i=ood;i<=doo;i++){
                if(i==ood){
                    System.out.print(k+" | "+k*i+" ");
                }else {
                    System.out.print(k * i + " ");
                }
            }
            System.out.println();
        }


12 ) Napíš program, ktorý vygeneruje na číselnej osi dva príslušné body (v intervale  ) a vypočíta ich vzdialenosť. Toto  urobí -krát. Môžete dostať takýto výstup:<0, 100>n
zadaj n: 5
Prvý bod na priamke je 32, druhý bod 10.
Ich vzdialenosť je 22 
Prvý bod na priamke je 61, druhý bod 12.
Ich vzdialenosť je 49 
Prvý bod na priamke je 62, druhý bod 35.
Ich vzdialenosť je 27 
Prvý bod na priamke je 9, druhý bod 78.
Ich vzdialenosť je 69 
Prvý bod na priamke je 5, druhý bod 82. Ich vzdialenosť je 77

Pomôcka knižnica Náhodne:
import java.util.Random;
Random rand = new Random();

Riešenie

 public static void dvanastaUloha() {
   System.out.print("Zadaj n: ");
   Integer n= sc.nextInt();
   for(int i=0;i<n;i++){
      int prvyBod=rand.nextInt(100);
      int druhyBod=rand.nextInt(100);
      System.out.println("Prvý bod na priamke je " +prvyBod+ ",   druhý bod " +druhyBod+ ".Ich vzdialenosť je " +(prvyBod-druhyBod));
   }
 }

13) Vo vlaku sa vezie  100 cestujúcich. V každej stanici, v ktorej zastane, niekoľko ľudí vystúpi a niekoľko nastúpi. Napíš program, ktorý odsimuluje  n s vystupovaním a nastupovaním takých cestujúcich. Predpokladáme, že v každej stanici vystúpi aj náhodný počet cestujúcich z intervalu  .  <0, 9>Môžete získať takýto výstup:  zadajte n: 8

Vo vlaku bolo 100 ľudí, 0 nastúpil, 7 vystúpil. Zostalo 93.
Vo vlaku bolo 93 ľudí, 4 nastúpil, 0 vystúpil. Zostalo 97.
Vo vlaku bolo 97 ľudí, 9 nastúpilo, 5 vystúpilo. Zostalo 101.
Vo vlaku bolo 101 ľudí, 3 nastúpil, 9 vystúpil. Zostalo 95.
Vo vlaku bolo 95 ľudí, 6 nastúpil, 8 vystúpil. Zostalo 93.
Vo vlaku bolo 93 ľudí, 3 nastúpil, 4 vystúpil. Zostalo 92.
Vo vlaku bolo 92 ľudí, 8 nastúpil, 6 vystúpil. Zostalo 94.                                                                          
Vo vlaku bolo 94 ľudí, 8 nastúpil, 7 vystúpil. Zostalo 95.

14) Dostali sme správu od mimozemšťanov, ktorá je zložená zo znakov  'O' a  '-'. Správa obsahuje istý počet riadkov a stĺpcov znakov. Program Napíš, ktorým náhodne vygeneruje podobnú správu. Môžete dostať takýto výstup:

zadaj počet riadkov: 5
zadajte počet stĺpcov: 28
O-OOO----OO-OOO---O---OOOO-O
OOO-OOOO----OO----O-OOOOOO-O-
O-OO-OO-OOO--O-OOO--O----OOO
---OO--OO-OO--OO----OOOO--O
-O-----O--OOOO-OO-OOOO-OO---O

Riešenie

 public static void stvrnastaUloha() {
        System.out.print("Zadaj počet riadkov: ");
        Integer pocetRiadkov = sc.nextInt();
        System.out.print("Zadaj počet stĺpcov: ");
        Integer pocetStlpcov = sc.nextInt();
        for(int i=1;i<= pocetRiadkov;i++) {
            for(int k=1;k<=pocetStlpcov;k++){
                int randNumb = rand.nextInt(2);
                if(randNumb==1){
                    System.out.print("O");
                }else {
                    System.out.print("-");
                }
            }
            System.out.println();
        }
    }

15) Simulácia hodu dvoch kociek. Po každom vypíšte ich súčet. Napíš program, ktorý to simuluje  n-krát. Môžete získať takýto výstup:    zadajte n: 3

na 1. kocke spadla 1
na 2. kocke spadla 4
ich súčet je 5
====================
na 1. kocke spadla 4
na 2. kocke spadla 5
ich súčet je 9
====================
na 1. kocke spadla 4
na 2. kocke spadla 1
ich súčet je 5

Riešenie

  public static void patnastaUloha() {
        System.out.print("Zadaj n: ");
        Integer n = sc.nextInt();
        Integer sucet = 0;
        for(int k=1;k<=n;k++) {
            for (int i = 1; i <= 2; i++) {
                int ak = rand.nextInt(6) + 1;
                sucet = sucet + ak;
      System.out.println("na " + i + ". kocke padla " + ak);
            }
            System.out.println("ich súčet je "+ sucet);
            sucet=0;
            if(n>0 && k!=n){
               System.out.println("======================");
            }
        }
    }

16) Podobný príklad predchádzajúcemu, lenže teraz budeme hádzať spoločným počtom kociek: Napíš program, ktorý si najprv vypýta  n (počet hádzaní) a počet kociek a potom  n, krát vypíše čísla na kočkách a ich súčet. Môžete dostať takýto výstup: 

zadaj n: 2
zadaj počet kociek: 4
na 1. kocke spadla 3
na 2. kocke spadla 2
na 3. kocke spadla 2
na 4. kocke spadla 2
ich súčet je 9
==========================
na 1. kocke spadla 4
na 2. kocke spadla 6
na 3. kocke spadla 1
na 4. kocke spadla 5
ich súčet je 16

    17) Napíšte program na určenie 

          počtu kladných, nulových 

          a záporných čísel 

          v jednorozmernom poli.



Riešenie

 public static void sedemnastaUloha(int[] arr) {
        int zaporne=0;
        int kladne=0;
        int nulove=0;
        for(int i=0;i<arr.length;i++){
            if(arr[i]<0){
                zaporne=zaporne+1;
            }else if(arr[i]==0){
                nulove=nulove+1;
            }else {
                kladne=kladne+1;
            }
        }
        System.out.println("Záporné: "+zaporne+", Kladné: "+" "+kladne+", Nulové: "+nulove);
    }

java2

By Mgr. Ondrej Ducky

java2

Riešenia jednoduchých úloh na cyklus v programovacom jazyku Java. Úlohy sú zo stránky https://python.input.sk/ Mgr. Ondrej Dúcky

  • 664