Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Помощ за задачи по C++

Featured Replies

Здравейте имам тука две задачи за домашно ще може ли малко помощ понеже това ми е много трудна и непозната материя.Ето и задачите 1зад. Да се въведат страните на триъгълник в сантиметри.Да се определи съществува ли такъв триъгълник.Ако да - да се определи вида му според страните и се изчисли лицето и обиколката му.Ако не - да се изведе подходящо съобщение. 2зад. Да се въведат реални числа, които са страни на правоъгълник 1 и правоъгълник 2.Да се изведе дали правоъгълник 2 се събира изцяло в правоъгълник 1.

...това ми е много трудна и непозната материя...

И как домашна на готово ще ти помогне да се запознаеш с нея? Прочети нещичко, опитай и тогава ако имаш конкретен въпрос - ще ти помогнем.
  • Автор

за първата задача стигнах до тука обаче незнам как да включа ако съществува такъм триъгълник да се измерят обиколката и лецето му? #include <cstdio> #include <cstdlib> #include <iostream> #include <string> #include <cmath> using namespace std; int main(int nNumberofArgs, char* pszArgs[]) {int a, b, c; cout<<"Vuvedete strana a: "; cin>>a; cout<<"Vuvedete strana b: "; cin>>b; cout<<"Vuvedete strana c: "; cin>>c; if ((a+c<b)||(a+b<c)||(b+c<a)) {cout<<"Niama takuv triugulnikn";} else if ((a==b)&&(a==c)&&(b==c)) {cout<<"Triugulnikut e ravnostranen.n";} else if ((a==b)||(b==c)||(a==c)) {cout<<"Triugulnikut e ravnobedren.n";} else {cout<<"Triugulnikut e raznostranen.n";} return 0;}

за първата задача стигнах до тука обаче незнам как да включа ако съществува такъм триъгълник да се измерят обиколката и лецето му?

Не знаеш как да сметнеш обиколка на триъгълник по три страни ли? А лице - по формулата на Херон. Може да извадиш else на условието за съществуване, за да стане по-нагледно:

if ((a+c<b)||(a+b<c)||(b+c<a)) {
    cout<<"Niama takuv triugulnikn";
} else {
    // Триъгъллник с такива стени съществува.
    if ((a==b)&&(a==c)&&(b==c)) {
        cout<<"Triugulnikut e ravnostranen.n";
    } else if ((a==b)||(b==c)||(a==c)) {
        cout<<"Triugulnikut e ravnobedren.n";
    } else {
        cout<<"Triugulnikut e raznostranen.n";
    }
    // Тук извеждаш обиколката и лицето на триъгълника.
    // Tяхното намиране по 3 страни не зависи от вида му.
}
  • Автор

за обиколката ясно ама за лицата са различни и трябва и височина при тях - това ме притеснява

за обиколката ясно ама за лицата са различни и трябва и височина при тях - това ме притеснява

Е, не е така. И нали за това ти дадох формулата на Херон.
  • Автор

ии като го направих по нагледно условието сега изобщо не иска да ми тръгне програмата а със хероновата формула трябва ли да напише формулата за намиране на полупериметъра?

ии като го направих по нагледно условието сега изобщо не иска да ми тръгне програмата а със хероновата формула трябва ли да напише формулата за намиране на полупериметъра?

Ти нали така или иначе трябва да намериш периметъра? Преди да го отпечаташ, го сложи в една променлива p, да кажем и ползвай p/2 вместо s в Хероновата формула. Или си направи и променлива s.

И защо да не ти тръгва? Постни новия сорс да видя. Ааа, и можеш да направиш, тия променливи да са double, а не int ( включително a, b, c). Че може да станат странни неща :).

Стига де - два реда ти останаха...

е помогни ми де моля те :( отчаях се вече

Постни тука последните ти опити и ще ти кажа какво не е наред. Но наготово не.
  • Автор

Така, а виж вече всичко ли е наред и огледай формулите внимателно! #include <iostream> #include <cmath> using namespace std; double P,S,p; int main(int nNumberofArgs, char* pszArgs[]) {int a, b, c; float p; cout<<"Vuvedete strana a: "; cin>>a; cout<<"Vuvedete strana b: "; cin>>b; cout<<"Vuvedete strana c: "; cin>>c; if ((a+c<b)||(a+b<c)||(b+c<a)) {cout<<"Niama takuv triugulnikn";} else if ((a==b)&&(a==c)&&(b==c)) {cout<<"Triugulnikut e ravnostranen.n";} else if ((a==b)||(b==c)||(a==c)) {cout<<"Triugulnikut e ravnobedren.n";} else {cout<<"Triugulnikut e raznostranen.n";} P=a+b+c; cout<<"P= "<<P<<endl; p=(float(a)+float(b)+float©)/2; S=sqrt(p*(p-a)*(p-b)*(p-c)); cout<<"S= "<<S<<endl; system ("pause");}

Редактирано от vanio_93 (преглед на промените)

огледай формулите внимателно!

Само един от двама ни не внимава...

а) не си направил условията както ти показах - така, ако ти се въведе невъзможен триъгълник, пак ще му намериш обиколка и лице. Формулата на Херон ще изгърми, защото ще направиш корен квадратен на отрицателно число .

б) също ти казах, че a, b, c трябва да са double или float. Нима не може дължината на една страна да е 2.25cm?

в) няма нужда 2 пъти да смяташ обиколката - може да я разделиш на две само.

г) няма нужда променливите P,S,p да са глобални може да ги преместиш в тялото на main. Между другото по грешка си дефинирал p два пъти - долната дефиниция скрива горната.

напиши следното преди кода на flare и си готов #include<iostream> #include<math.h> float a,b,c,P,p; въведи страните-тук ти напиши кода P=a+b+c; p=P/2; да кажем че си задал страни на триъгълник,накрая на кода на flare напиши cout<<"obikolkata e "<<P<<endl; cout<<"liceto e "<<sqrt{p(p-a)(p-b)(p-c)}<<endl;

Редактирано от fastsam (преглед на промените)

#include<iostream> #include<math.h> using namespace std; int main() { float a,b,c,p; cout<<"vavedete tri chisla"<<endl; cin>>a>>b>>c; p=(a+b+c)/2 if ((a+c<b)||(a+b<c)||(b+c<a)) { cout<<"Niama takuv triugulnikn"; } else { if ((a==b)&&(a==c)&&(b==c)) { cout<<"Triugulnikut e ravnostranen.n"; } else if ((a==b)||(b==c)||(a==c)) { cout<<"Triugulnikut e ravnobedren.n"; } else { cout<<"Triugulnikut e raznostranen.n"; } cout<<P= "<<a+b+c<<endl; cout<<"S= "<<sqrt{p(p-a)(p-b)(p-c)} } system("pause"); return 0; } позлвах кода на flare,за да не повтарям същото пак

Редактирано от fastsam (преглед на промените)

така? #include<iostream> #include<math.h> using namespace std; int main() { float a,b,c,p; cout<<"vavedete tri chisla"<<endl; cin>>a>>b>>c; p=(a+b+c)/2; if ((a+c<b)||(a+b<c)||(b+c<a)) { cout<<"Niama takuv triugulnikn"; } else { if ((a==b)&&(a==c)&&(b==c)) { cout<<"Triugulnikut e ravnostranen.n"; } else if ((a==b)||(b==c)||(a==c)) { cout<<"Triugulnikut e ravnobedren.n"; } else { cout<<"Triugulnikut e raznostranen.n"; } cout<<"P= "<<a+b+c<<endl; cout<<"S= "<<sqrt(p*(p-a)*(p-b)*(p-c))<<endl; } system("pause"); return 0; }

  • Автор

Така, за първа задача вече всичко е наред благодаря ви - ще погледнете ли и за втора дали ми е верен кода и дали така трябва да бъде #include <iostream> #include <cmath> using namespace std; int main () {float a1,b1, a2,b2; cout<<"Vavedete strana a1= ";cin>>a1; cout<<"Vavedete strana b1= ";cin>>b1; cout<<"Vavedete strana a2= ";cin>>a2; cout<<"Vavedete strana b2= ";cin>>b2; if ((a2<=a1) && (b2<=b1)) { cout<<"Pravougulnik 2 se subira izcialo v pravougulnik 1.n";} else { cout<<"Pravougulnik 2 ne se subira izcialo v pravougulnik 1.n";} system("pause"); return 0; }

Редактирано от vanio_93 (преглед на промените)

Зависи. Може ли да се "въртят" правоъгълниците? Защото само по две стени разположението им не е определено и ако може да се въртят, тогава правилното условие е (нека 2 да е правоъгълника, който проверяваме дали влиза в 1): - не всяка от двете страни на 2, да е по-малка от съответната на другия, както си го направил ти, защото да кажем а1 = 5, b1 = 3; a2 = 2, b2 = 4 - според твоята програма 2 няма да влезе в 1, обаче реално ако завъртим 2 на 90градуса (даже и по-малко) ще си влезе идеално. - Така условието трябва да бъде : по-голямата страна на 2 да е по-малка от по-голямата страна на 1 и по-малката страна на 2 да е по-малка от по-малката страна на 1. Малко е объркано :).

  • Автор

eeeee това пък завъртане на 90 градуса никога нямаше да се сетя за него хаха :D ще си помисля дали да добавя това.По принцип в условието на задачата не е казано че може да се въртят така че мисля така да я оставя задачата

Редактирано от vanio_93 (преглед на промените)

eeeee това пък завъртане на 90 градуса никога нямаше да се сетя за него хаха :D ще си помисля дали да добавя това.По принцип в условието на задачата не е казано че може да се въртят така че мисля така да я оставя задачата

Не е нужно да е казано. Това се опитвах да обясня. Ако са ти дадени само две страни, изобщо и идея си нямаш за ориентацията на правоъгълника. И тогава така зададено:

Да се изведе дали правоъгълник 2 се събира изцяло в правоъгълник 1.

решението трябва да е, както аз казах. Защото в частния случай който ти описах, правоъгълникът ще се събира в другия. Това, че ти си решил, че те трябва да са със успоредни стени а1 и а2, си е твоя презумпция, която никъде я няма в условието и не следва от нищо, тоест погрешна...
  • Автор

Демек така ли трябва да бъде записано

if (((a1<=a2) && (b1<=b2)) || ((a1<=b2) && (b1<=a2)) || ((a1>=a2) && (b1>=b2)) || ((a1>=b2) && (b1>=a2)))

ама пък със тази формула каквито и стойности да му задам винаг 2 ще се събира изцяло в 1

Редактирано от vanio_93 (преглед на промените)

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    32%
    Дарени 315 € от нужните 1 000 €

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.