Loading...
Vincent avatar Vincent 11 Точки

Няколко въпроса свързани с изпита

Здравейте готвя се за изпита по основи на програмирането и и мам няколко въпроса, ако може да помогнете:

-когато имам да разделя цели числа, как се процедира. Примерно 300/500 и като int и като double ми връща съответно 0 и 0.00 и не мога да работя

-когато в една задача се изисква интервал на стойността примерно , от мен изисква ли се нещо друго освен да декларирам променлива. Като чета в интервал и лично аз разбирам ако излезна от този интервал програмата да гърми. 

-как се прави закръглянето наргоре/надолу. 

Тагове:
0
Programming Basics
KonstantinLupov avatar KonstantinLupov 34 Точки

Ако и двете са double, не връща 0.0, a в случая връща 0.6. При закръглянето, може да ползваш Math.ceil (закръгля нагоре), Math.floor(закръгля надолу) и Math.round(ако е 1.4 закръгля до 1, ако е >= 1.5 закръгля на 2). Има и начин да форматираш до колкото искаш запетаи след запетаята без закръгляне. Трябва да е нещо като System.out.printf("%.2f", val);, като 2f означава 2 места след десетичната запетая.

П.П.: Към средата на коментара видях, че си сложил таг Java (супер, че ползваш тагове, които насочват към правилни отговори) и честно да ти кажа, сам трябва да провериш правилния синтаксис зa Math класа, но мисля че е нещо като java.lang.Math.ceil(double value);
П.П #2: Изкриви ми се душата да пиша методите с малка буква, пиша на C#, там са с главна, хаха.

0
04/09/2017 21:58:03
Vincent avatar Vincent 11 Точки

Благодаря за отговорите, но това с int не го разбрах. В моя случей решавах една задача за танциори от преддишни изпити и трябваше да реша следното нещо

Int num = (7000+40)/10000;

И съответно да работя със стоймостта 0,704. Как мога да извърша това пресмятане и да получа тази стойост.

0
martinml avatar martinml 297 Точки

Това е целочислено деление, виж този коментар.

0
KonstantinLupov avatar KonstantinLupov 34 Точки

С int няма как да се получи. Ако делиш ако делиш число на по-голямо число и очакваш целочислен резултат, винаги ще върне 0 - 1/2 е 0.5, но нали е целочислен, премахва всичко след десетичната запетая.

0
Vincent avatar Vincent 11 Точки

Имам някакъв напредък :)

Когато направих две променливи double нещата станаха.

double a = (7000+40);
double b = 10000;
double player = a/b;

Това ми извади верен отговор 0.704

Но ако пробвам да свърша нещата в една променлива не се получава

double player= (7040 /10000);

Дава резултат 0.0

----------------

Защо се получава така

----------------------

Имам още един въпрос, сега се сетих за него. Има задачи от предишни изпити в които се изисква да в зависимост от числото което се въвежда да се генерират толкова нови променливи. Примерно иска се да напиша число на хора, които ще отидат на рожден ден и ако се напише 3 да се генерират три променливи в които да се напише по колко пари могат да отделят за подарък всеки един от присъстващите. И съответно ако са 5 за пет човека променлини и така в зависимост от числото. Как да свържа for цикъла с генерирането на променливи?

0
05/09/2017 12:00:43
martinml avatar martinml 297 Точки

Защото 7040 и 10000 са цели числа. Можеш да напишеш 7040.0 / 10000 или (double) 7040 / 10000.

Относно другия ти въпрос - използвай scanner.nextLine() вътре в цикъла, например:

for (int i = 0; i < count; i++)
{
  int n = Integer.ParseInt(scanner.nextLine());
  // ...
}

Edit: благодаря на KonstantinLupov за поправката, не обърнах внимание на таговете 

0
05/09/2017 20:24:37
KonstantinLupov avatar KonstantinLupov 34 Точки

Защото в скобите числата с целочислени. То извършва действията вътре, връща 0 и я превръща в double. А за отговора на martinml, трудно ще използва Console.ReadLine(), имайки предвид, че въпросът му е върху Java.

1
Vincent avatar Vincent 11 Точки

Благодаря още веднъж! Засега се справям и всичко е ок. Имам още две малки въпросчета, те не са пряко свързани с кодене.

1. Изпита пo programming basic релно в judje ли се провежда или както е на упражненията пишеш в интелиджей, а в джъджа само тесваш.

2. Има някаква клавишна комбинация която позволява на маркирания код да се отделя с // на всеки ред и е много удобно, ако искаш да тесташ нещо конкретно. Може ли да ми кажете комбинацията, че аз реф по ред слагам //

0
SvilenYanovski avatar SvilenYanovski 80 Точки

1. в джъдж само тестваш решенията и от точките получаваш оценка.

2. ctrl+/

0
KonstantinLupov avatar KonstantinLupov 34 Точки

Може и да маркираш всичко което искаш да закоментираш и да дадеш Ctrl + k + c и после за да го откоментираш, да дадеш Ctrl+k+v

0
Vincent avatar Vincent 11 Точки

С Ctrl + \ стана мерси много.

Последно питане. В желанието си да се подготвя добре за изпита и да изреша максимално задачи, забравих да си напша навреме последното домашно (да го изпратя до сряда 00:00). направих го в четвъртък. Има начин да ми се признае.

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