Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – Riešené úlohy k 3.-5. lekcii Javy

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Marek Šimon
Člen
Avatar
Marek Šimon:11.12.2015 23:19

Toto je kod stiahnuty z toho .zip co tu poslal David

import java.util.Scanner;

public class Kruh {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in, "Windows-1250");
        System.out.println("Zadej poloměr kruhu (cm): ");
        float r = Float.parseFloat(sc.nextLine());
        float o = 2 * 3.14F * r;
        float s = 3.14F * r * r;
        System.out.println("Obvod zadaného kruhu je: " + o + " cm");
        System.out.println("Jeho obsah je " + s + " cm^2");

A toto je moj kod. IDE mi hadze chybu pri deklarovani "o" a "s" a vyhadzuje mi chybu, ze pisem float a ocakava sa double. S double funguje bez problemov. Ale ked dam float, tak tam musim do hodnoty udat aj to (float).

import java.util.Scanner;

public class Cvicenie1 {

    public static void main(String[] args) {

        /* Aplikacia na vypocet obsahu a obvodu kruznice pri zadani jeho polomeru */

        Scanner sc = new Scanner(System.in, "Windows-1250");
        System.out.println("Zadaj polomer kruznice");
        float r = Float.parseFloat(sc.nextLine());
        float o = (float) Math.PI * r * 2;
        float s = (float) (Math.PI * r * r);

        System.out.println("Obvod kruznice je: " + o);
        System.out.println("Obsah kruznice je: " + s);

Neviete preco to tak je? Proste nevidim rozdiel a predsa to nefunguje.

Avatar
tomisoka
Tvůrce
Avatar
Odpovedá na Marek Šimon
tomisoka:11.12.2015 23:26

Math.PI je double, zatímco 3.14F je float. To je ten rozdíl.

Avatar
Martin Abdul
Člen
Avatar
Martin Abdul:7.1.2016 0:21

taky jde..

Avatar
skatech77
Člen
Avatar
skatech77:9.2.2016 19:37

Jak to vypada ? urcite by to slo zkratit :D

Odpovedať
Valar Morghulis
Avatar
pocitac770
Tvůrce
Avatar
Odpovedá na skatech77
pocitac770:9.2.2016 22:21

2 připomínky:

  1. Když už jednou píšeš hodnotu Pi do proměnné (použiješ ji 2x, tak ok, dáš si ji někam stranou, to bych pochopil), tak proč ji jednou použiješ přes odkaz na proměnnou, a jindy zase použiješ rovnou hodnotu? Představ si, že by sis řekl, že to Pí chceš zpřesnit (třeba si vzpomeneš na 3,14159), a budeš ji muset přepisovat na dvou místech...
  2. Proč vytváříš zbytečně další proměnnou "r", když tam akorát překopíruješ hodnotu z "a"? Pokud jsi to myslel, aby jsi to mohl použít vícekrát ve výpočtu obsahu kruhu, tak ano, tohle jde napsat :D:
float obsah = a * a * pi;

Teď se tyhle "drobnosti" zdají zbytečné, vždyť je to jenom pár znaků navíc.... ale představ si, že bys měl projekt na 400 řádků, a použil by jsi tam ten poloměr/hodnotu Pí třeba 20x. Neber to jako hate, pouze jako tip na zlepšení do budoucna :)
A pokud by jsi chtěl maximální zkrácení, tak můžeš ten výpočet obvodu a obsahu psát už do výpisu do konzole ;)

Editované
Avatar
Jakub Pokorný:16.2.2016 0:31

Zdravim. . koukám že je tu mnoho vynalézavých lidí. Každopádně díky za tip. Všechny 3 zadání jsem nakonec dokončil - potřeboval jsem sice trochu času ale vyšlo to.

Díky

Avatar
Tomáš Malý:18.2.2016 20:17

Já raději používám double, je to přesnější a jednodušší na zápis.

import java.util.Scanner;

public class Kruh {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        System.out.println("Zadej poloměr kruhu: ");
        double polomer = Double.parseDouble(sc.nextLine());

        double obvod = 2 * Math.PI * polomer;
        double obsah = Math.PI * (Math.pow(polomer, 2));

        System.out.println("Obvod je: " + obvod);
        System.out.println("Obsah je: " + obsah);
Avatar
Xao Xixi
Člen
Avatar
Xao Xixi:8.3.2016 23:53

No koukám že tady to zkoušejí zjevně i pokročilý :-)
Mi začátečníci co jedou postupně to bez znalosti dalších možností napsali

System.out.println("zadej polomer kruhu v cm");
       float r = Float.parseFloat(sc.nextLine());
       float obvod = 2 * 3.14F * r;
       float obsah = 3.14F * r * r;
       System.out.println("obvod je " + obvod + "cm");
       System.out.println("obsah je " + obsah + "cm ctverecnich");

ale je dobré číst vaše komentáře, uvědomil jsem si jak to zkracovat, proč si definovat radši věci něž je v delších programech přepisovat na 20 místech - jen tak dál
Akorát budu hledat asi seznam příkazů co se dají použít - zatím mám začátečnický elán - už se tomu věnuju celých 5 hodin :-) :-)

Avatar
veselyjan96
Člen
Avatar
veselyjan96:11.3.2016 22:56

Můžu se zeptat v čem je výhoda parsování namísto napsání rovnou sc.nextFloat(); ? Díky za odpoved :)

Avatar
Michal Huff
Člen
Avatar
Odpovedá na pocitac770
Michal Huff:29.3.2016 16:45

pokud chceš hodnotu pí, můžeš použít Math.PI

Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 390.