Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият.
Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание.
Използваме бисквитки и за измерване на маркетинговите ни усилия.
Тъй де, но това е само първата част на задачата. Демек пресмятането на лицето - дефинират се променливите за страна А и страна Б и после се принтва резултата от А*Б. Второто условие обаче е да се направи проверка и тук трябва да допълним условието, което колегата е дал по-горе, тъй като в него са зададени стойности, а именно 3 варианта:
a
b
area
2
7
14
7
8
56
12
5
60
Та след като имаме конкретни стойности, а една проверка изисква да знаем крайния резултат, то следва да проверим дали нашите изходни стойности ще попадат в някой от 3-те варианта - 14, 56 или 60 и съответно да връща true или false. Например нещо от сорта на IF, което обаче е функция, която в началната лекция не беше засегната и не съм сигурен - аз ли бъркам дефиницията на "проверка" или просто това е начин да се поинтересуваме от нещо допълнително :)
Иначе трябва да е нещо от сорта на:
#include <iostream>
using namespace std;
int main(){
double a, b; {
cout << "Please enter length of side A in cm:" << endl;
cin >> a;
cout << "Please enter length of side B in cm:" << endl;
cin >> b;
}
double i = a * b;
cout << "Area is " << i << " square cm" << endl;
if (i == 14) {
cout << "Result is true" << endl;
}
else {
if (i == 56) {
cout << "Result is true!" << endl;
}
else {
if (i == 60)
cout << "Result is true" << endl;
else {
cout << "Result is false. Area should be 15, 56 or 60" << endl;
}
}
}
return 0;
}
С единственото условие, че judge няма да приеме това зради текста, но на мен така ми е по-пригледно, а и това е просто пример :) Освен това вместо double може да се ползва int тъй като по задание числата са цели. Аз го направих с double просто защото исках да имам възможност да вкарвам и стойности различни от цели числа :)
Дааа, това вече е друго нещо. Аз реших, че проверката трябва да представлява не точно дали тези числа се използват, а като цяло. Поради което направих while цикъл, който да провери дали не се използват отрицателни стойности или 0 на a, b. Но твоето решение също много ми допада :) Благодаря!
Да, твоят подход също е интересен и тук нещата наистина се свеждат до разбирането за "проверка". Тааа, при наличието на предварително зададени параметри аз предположих, че става въпрос да проверим дали са изпълнени и затова подходих по този начин. Интересно ми е обаче да видя и твоето решение - би ли го показала? :)
Да, разбира се. Заповядай!
П.С. понеже сме учили само while, без if или else за това е толкова първобитно написан :D
#include <iostream>
using namespace std;
int main () {
int a;
int b;
int result_of;
cin>>a;
cin>>b;
result_of = a* b;
cout<<result_of<<endl;
while (a<=0)
{cout<<"Invalid input"<<endl;
return 0;}
while (b<=0)
{cout<<"Invalid input"<<endl;
return 0;}
return 0;
}
Чудя се защо за тази проверка използваш while, същата работа би ти свършила и една провека с if( a<=0) и съответно и за b. Задачата е за един вход на две страни на правоъгълник, и те се въвеждат еднократно, за какво е този цикъл?
@kmilewa: Това също работи, но (нали знаеш, че винаги има по едно "но" :))
Първо, при дефиниране на променливи от един и същи тип, не е нужно да дефинираш всяка следваща променлива на отделен ред. Не че няма да работи, но след като напреднем и започнем да пишем далеч по-комплексни и многоредови кодове ще е по-лесно да използваме всеки възможен способ да опростим нещата и обема. Вместо
int a;
int b;
int result_of;
Може да стане просто:
int a, b, result_of;
Второ - не е нужно да има return 0; в края на всеки range. Return 0; на практика означава, че програмата приключва.
Трето - При негативна стойност на някоя от променливите, на които правиш проверка, изхода е един и същ. Така независимо на коя от тях подам отрицателна стойност единственото, което ще разбереш, е че съм го направил, но не и на коя от двете. Просто в текста който изкарваш за проверка, добави и текст за коя променлива се отнася
dmartinov, благодаря за съветите! Начинаеща съм доста, така че дори не знаех, че може на един ред и т.н. :)
BobyTopalova, използвах този цикъл защото мислих, че трябва да използваме нещо, което сме коментирали в текущата лекция (а там коментирахме само и единствено for, while) а не да използваме нещо, което не сме коментирали, но намерили информация за него в нета.. В последствие разбрах, че няма значение какво и как използваме, стига да работи правилно и кода да е красив :)
Всъщност допуснал съм грешка в коментара си по-горе. Правилно си добавила return 0; в рейнджа на while цикъла. Ако го махнеш (както аз бях казал, че трябва) ще забиеш постоянно в тоя цикъл. Или иначе казано - нон-стоп ще принтва текста който си подала доакто не убиеш програмката :)
Иначе аз също съм начинаещ, така че приемам критики и ако забележиш някъде моя грешка, смело я казвай. Както се казва "истината се ражда в спора" :) Освен това писането на код е като изразяване на мение - може да го кажеш с различни думи и накрая пак да кажеш едно и също :)