Loading...
chaneto avatar chaneto -1 Точки

Scholarship. Ето следващата, която сутринта написах сравнително бързо, но и до сега (цял ден) си търся грешката която не мога да намеря.

package uslovnikonstrukciiexercise;

import java.util.Scanner;

public class CLASS7sholarship {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double dohod = Double.parseDouble(scanner.nextLine());
        double uspeh = Double.parseDouble(scanner.nextLine());
        double minrabz = Double.parseDouble(scanner.nextLine());
        double ss = 0;
        double su = 0;
        if (minrabz > dohod) {
            if (uspeh > 4.50) {
                ss = minrabz * 0.35;
            }if (uspeh >= 5.50) {
                su = uspeh * 25;
            }if (uspeh < 4.50) {if(dohod>minrabz) {
                System.out.println("You cannot get a scholarship!");
            }}
            if (ss > su) {
                System.out.printf("You get a social scholarship %.0f BGN", Math.floor(ss));
            }else if (su >= ss) {
                System.out.printf("You get a scholarship for excellent results .0f BGN", Math.floor(su));
            }else  {
                System.out.println("You cannot get a scholarship!");
            }
        }



        }
    }
Тагове:
0
Programming Basics with Java 16/11/2018 13:56:42
marina.kolova avatar marina.kolova 34 Точки

Нямаш всички проверки.

Още в първата (ако успехът е над 4.50), има грешка. Стипендията не е задължително да е социална при този случай, защото и успех над 5.50 е над 4.50.

 

Първо направи проверка за успех под 4.50 => няма стипендия.

Втора проверка - ако успехът е над 4.50:
1) ако доходът е над минималната заплата и успехът е под 5.50 => няма стипендия.
2) ако доходът е над минималната заплата и успехът е над 5.50 => стипендия за успех.
3) ако доходът е под минималната заплата и успехът е под 5.50 => социална стипендия.
4) ако доходът е под минималната заплата и успехът е над 5.50 => тук правиш проверка коя стипендия би била по-висока, като за целта си дефинирай двете променливи още преди проверките. Размерът на двете стипендии зависи само от входните данни, не от проверките, така че можеш да ги дефинираш със стойност още след входа.

 

Помисли и къде ще сложиш <, <=, >, >=.

0
16/11/2018 14:30:50
chaneto avatar chaneto -1 Точки

Благодаря, почнах курса със закъснение от понеделник съм. Удпях до вчера да изгледам всички лекции. Но явно имам доста пропуски и се задъхвам на малко по трудните задачи.

0
marina.kolova avatar marina.kolova 34 Точки

Получи ли се?

0
chaneto avatar chaneto -1 Точки

Решението стана дългичко, пописах доста, всички примери дадени към задачата се получиха плюс около 10 комбинации които аз сам си измислих също без грешка. Когато я тествам обаче не ми дава 100%. Сигурно някъде нещо дребно минимално е, защото когато натисна детайли не ми дава къде греша а казва "пробвай още веднъж и ако пак не е на 100% търси грешката.

0
marina.kolova avatar marina.kolova 34 Точки

Вероятно е заради случаите, в които някои от сравняваните променливи освен < или >, са =.

Пробвай с:

успех <=4.50     няма стипендия

успех > 4.50
1) доход >= минималната заплата и успех < 5.50      няма стипендия.
2) доход >= минималната заплата и успех >= 5.50      стипендия за успех.
3) доход < минималната заплата и успех < 5.50       социална стипендия.
4) доход < минималната заплата и успех >= 5.50     проверка за по-високата стипендия

Би трябвало да стане така.

0
chaneto avatar chaneto -1 Точки

Сега вече почти стана, трябва още само мъничко но предполагам, че грешката ми е правописна в текста. Благодаря. Гледах примерно решение на  C#, в пъти по кратко е от на java. Не знам дали да не се ориентирам след това към него.

0
17/11/2018 01:40:40
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.