Loading...
ivandm5 avatar ivandm5 17 Точки

Трета задача с цветята от изпита декември

Здравейте, решавам 3та задача на java ама имам плоблем нещо не правя както трябва от 2 дена разучавам java и не мога да разбера къде бъркам ето кода:
 

import java.util.Scanner;

/**
 * Created by ivandimitrov on 1/4/17.
 */
public class fllowers {
    public static void main(String[] args) {



        Scanner scanner = new Scanner(System.in);


        double countHrizantemi = Double.parseDouble(scanner.nextLine());
        double countRozi = Double.parseDouble(scanner.nextLine());
        double countLaleta = Double.parseDouble(scanner.nextLine());
        String season = scanner.nextLine();
        String holiday = scanner.nextLine();
        double otstapkaZaBroi = 1.0;
        double hrizantemi = 1.0;
        double rozi = 1.0;
        double laleta = 1.0;
        double otstapkaZaBroiNadDvaise = 1.0;

        if(season == "Summer" || season == "Spring"){
             hrizantemi = 2.00;
             rozi = 4.10;
             laleta = 2.50;
            if(countLaleta > 7){
            otstapkaZaBroi = 0.05;
            }

        }
        if(season == "Winter" || season == "Autumn"){
            hrizantemi = 3.70;
            rozi = 4.50;
            laleta = 4.15;
            if(countRozi >= 10){
                otstapkaZaBroi = 0.10;
            }
        }
        if((countHrizantemi + countLaleta + countRozi > 20)){
             otstapkaZaBroiNadDvaise = 0.20;
        }
        double price = (countHrizantemi * hrizantemi) + (countRozi * rozi) + (countLaleta * laleta) ;
        double discountPrice = price - (price * otstapkaZaBroi) - (price * otstapkaZaBroiNadDvaise);
        if(holiday == "Y"){
            discountPrice = discountPrice + (discountPrice * 0.15);

        }
        else{
            discountPrice = price - (price * otstapkaZaBroi);
        }
        System.out.print(price);








    }
}

Така както е искам да изкарам първо да сметне общата цена правилно ама нещо въобще не смята във иф и цената я изкарва като само събира въведените данни ни ги умножава изобщо не мога да открия какъв е проблема.

Тагове:
0
Programming Basics
vancho avatar vancho 430 Точки

На прима виста виждам, че си написал за if проверката:

if(season == "Summer" || season == "Spring") и if(season == "Winter" || season == "Autumn")

В Java == за стринг сравнява по референция. Стрингове в Java се сравняват:

if(season.equals("Summer") || season.equals("Spring")) и if(season.equals("Winter") || season.equals("Autumn")).

Друго, което видях е че използваш double. За пресмятане на парични операции се използва BigDecimal.

Ако има нещо друго, пиши.

0
05/01/2017 12:09:17
ivandm5 avatar ivandm5 17 Точки
import java.math.BigDecimal;
import java.util.Scanner;


public class fllowers {
    public static void main(String[] args) {



        Scanner scanner = new Scanner(System.in);


        double countHrizantemi = Double.parseDouble(scanner.nextLine());
        double countRozi = Double.parseDouble(scanner.nextLine());
        double countLaleta = Double.parseDouble(scanner.nextLine());
        String season = scanner.nextLine();
        String holiday = scanner.nextLine();
        double otstapkaZaBroi = 1.0;
        double hrizantemi = 1.0;
        double rozi = 1.0;
        double laleta = 1.0;
        double otstapkaZaBroiNadDvaise = 1.0;

        if(season.equals("Summer")  || season.equals("Spring")){
             hrizantemi = 2.00;
             rozi = 4.10;
             laleta = 2.50;
            if(countLaleta > 7){
            otstapkaZaBroi = 0.05;
            }

        }
        if(season.equals("Winter") || season.equals("Autumn")){
            hrizantemi = 3.70;
            rozi = 4.50;
            laleta = 4.15;
            if(countRozi >= 10){
                otstapkaZaBroi = 0.10;
            }
        }
        if((countHrizantemi + countLaleta + countRozi > 20)){
             otstapkaZaBroiNadDvaise = 0.20;
        }
        else{
            otstapkaZaBroiNadDvaise = 0.00;
        }
        double price = (countHrizantemi * hrizantemi) + (countRozi * rozi) + (countLaleta * laleta) ;
        double discountPrice = (price - (price * otstapkaZaBroi)) - (price * otstapkaZaBroiNadDvaise);
        if(holiday.equals("Y")){
            discountPrice = (price + (price * 0.15)) - (price * otstapkaZaBroi)- (price * otstapkaZaBroiNadDvaise)  ;

        }
        else{
            discountPrice = (price - (price * otstapkaZaBroi)) - (price * otstapkaZaBroiNadDvaise);

        }
        discountPrice = discountPrice + 2;
        System.out.print(discountPrice);








    }
}

Мерси за отговорите стигнах до тук проблема е, че не знам как се форматира в джавата примерно 34.04 да изкарва

0
05/01/2017 12:38:49
vancho avatar vancho 430 Точки

System.out.printf("%.2f", discountPrice);

0
ivandm5 avatar ivandm5 17 Точки
using System;

namespace flowersNew
{
	class MainClass
	{
		public static void Main(string[] args)
		{
			int countChrysanthemums = int.Parse(Console.ReadLine());
			int countRoses = int.Parse(Console.ReadLine());
			int countTulips = int.Parse(Console.ReadLine());
			string season = Console.ReadLine();
			string holiday = Console.ReadLine();
			var Chrysanthemums = 0.0;
			var Roses = 0.0;
			var Tulips = 0.0;
			var OtstapkaTulips = 0.0;
			var OtstapkaRoses = 0.0;
			var OtstapkaTwenty = 0.0;
			if (season == "Spring" || season == "Summer")
			{

				Chrysanthemums = 2.00;
				Roses = 4.10;
				Tulips = 2.50;

				if (countTulips > 7)
				{
					OtstapkaTulips = 0.05;

				}
				else { OtstapkaTulips = 0.0; }
				if (season == "Autumn" || season == "Winter")
				{

					Chrysanthemums = 3.75;
					Roses = 4.50;
					Tulips = 4.15;
					if (countRoses >= 10)
					{
						OtstapkaRoses = 0.10;

					}
					else {
						OtstapkaRoses = 0.0;
					}



				}


			}
			if ((countRoses + countTulips + countChrysanthemums) > 20)
			{
				OtstapkaTwenty = 0.20;
			}
			else { OtstapkaTwenty = 0.0; }
			var holidayPrice = 0.0;
			if (holiday == "Y")
			{
				holidayPrice = 0.15;
			}
			if(holiday == "N") { holidayPrice = 0.0;}

			var totalPrice = ((countRoses * Roses) + (countTulips * Tulips) + (countChrysanthemums * Chrysanthemums));
			var otstapkaHoliday = totalPrice + (totalPrice * holidayPrice);
			var otstapka = otstapkaHoliday - (otstapkaHoliday * OtstapkaTulips) - (otstapkaHoliday * OtstapkaRoses) - (otstapkaHoliday * OtstapkaTwenty);
			Console.WriteLine("{0:f2}",otstapka + 2 );

		}
	}
}

Отново се опитвам да реша задачата на C# ама нещо не ми се получава нЗа да изчисли правилно. 

0
08/01/2017 16:06:35
vancho avatar vancho 430 Точки

Пробвай да кажеш, че са decimal:

            var Chrysanthemums = 1.0m;
            var Roses = 1.0m;
            var Tulips = 1.0m;
            var OtstapkaTulips = 1.0m;
            var OtstapkaRoses = 1.0m;
            var OtstapkaTwenty = 1.0m;
 

0
08/01/2017 15:51:47
ivandm5 avatar ivandm5 17 Точки

Не става.

0
vancho avatar vancho 430 Точки

Ами гледам, че варианта от Java и този на C# се различават. Разгледай си къде ти е грешката или промени работещият код от Java в C#-ски. Просто е...иска се досещане.

0
08/01/2017 17:06:34
ivandm5 avatar ivandm5 17 Точки
using System;

namespace flowersNew
{
	class MainClass
	{
		public static void Main(string[] args)
		{
			double countChrysanthemums = int.Parse(Console.ReadLine());
			double countRoses = int.Parse(Console.ReadLine());
			double countTulips = int.Parse(Console.ReadLine());
			string season = Console.ReadLine();
			string holiday = Console.ReadLine();
			double Chrysanthemums = 0.0;
			double Roses = 0.0;
			double Tulips = 0.0;
			double OtstapkaTulips = 0.0;
			double OtstapkaRoses = 0.0;
			double OtstapkaTwenty = 0.0;
			if (season == "Spring" || season == "Summer")
			{

				Chrysanthemums = 2.00;
				Roses = 4.10;
				Tulips = 2.50;

				if (countTulips > 7)
				{
					OtstapkaTulips = 0.05;

				}
				 



			}
			 if (season == "Autumn" || season == "Winter")
			{

				Chrysanthemums = 3.75;
				Roses = 4.50;
				Tulips = 4.15;

				if (countRoses >= 10 && season == "Winter")
				{
					OtstapkaRoses = 0.10;

				}




			}

			 
			double holidayPrice = 0.0;
			if (holiday == "Y")
			{
				holidayPrice = 0.15;
			}

			else if(holiday == "N") { holidayPrice = 0.0;}
			double totalFlowers = countRoses + countTulips + countChrysanthemums;
			if (totalFlowers > 20)
			{
				OtstapkaTwenty = 0.20;
			}

			double totalPrice = ((countRoses * Roses) + (countTulips * Tulips) + (countChrysanthemums * Chrysanthemums));
			double otstapkaHoliday = totalPrice + (totalPrice * holidayPrice);
			double discountTulips = otstapkaHoliday * OtstapkaTulips;
			double discountRoses = otstapkaHoliday * OtstapkaRoses;
			double discountTwenty = otstapkaHoliday * OtstapkaTwenty;
			double otstapka = otstapkaHoliday - discountRoses  - discountTulips - discountTwenty;
			Console.WriteLine("{0:f2}",otstapka + 2);
			 

		}
	}
}

До тук стигнах само последната проверка не мога да мина 62% взимам в judge.

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