Anonymní profil DB – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil DB – Programujte.comAnonymní profil DB – Programujte.com

 

Příspěvky odeslané z IP adresy 78.102.189.–

DB
C / C++ › Soucet cisel v binarni soust…
5. 11. 2013   #183323

A jenom jsem se chtěl zeptat, nešlo by to celý udělat přes string? protože velká čísla to nevezme. Popřípadě jak :) díky.

DB
C / C++ › Soucet cisel v binarni soust…
5. 11. 2013   #183282

#18 Petr

No ale jak se dívám, pokud zadáš:

111 111a

soucet: 1110

tak dostaneš součet, ale mně se zdá, že dotyčný chtěl na výstupu dostat:

111 111a

Nespravny vstup.

DB
C / C++ › Obsah trojúhelníku
18. 10. 2013   #182556

Vím co myslíš, ale já se musel držet zadání a v zadání stálo ukončit program, pokud trojúhelníková nerovnost není splněna. Pokud se špatně chápeme tak to kašlete, stejně už je tento př. za mnou.

Čaute.

DB
C / C++ › Obsah trojúhelníku
18. 10. 2013   #182554

Ale je asi ty komenty budu dělat jinak, protože takovou šikanu jsem nečekal.

DB
C / C++ › Obsah trojúhelníku
18. 10. 2013   #182553

Tam jde právě o to, že ten stroj ověřuje i vstupy a výstupy :) (jen pro informaci jmenuje se progtest) a také efektivitu a všelijaké jiné kraviny. Kdo by řekl, že může být tak chytrý :) .

BTW.

Ono stačí si do tvého programu dosatit např. a=1, b=2, c=10 a uvidíš jak ti to spadne na výpočtu S.

Strany trojúhelníku splňují trojúhelníkové nerovnosti:

Součet dvou libovolných stran je vždy delší než strana třetí, neboli

a + b > c
.
.
.
Takže by to logicky nemělo jít ne? :)

DB
C / C++ › Obsah trojúhelníku
17. 10. 2013   #182539

Nechtěl jsem po někom kód, pokud jsi si všiml tak jsem ho tu dal a chtěl jsem jenom připomínky k efektivnosti. A proto jsem tu dál svůj kód. Ok poznámky jsou přehnané ale každý má svůj styl, pro mně je to tak přehlednější :-) ale ok vezmu to jako kritiku, která není adekvátní tématu. Celkem mi komentář od Honzc přijde od věci, protože mi to stroj zhodnotil na 100%. Ale i tak díky všem za čas. Mějte se...

DB
C / C++ › Obsah trojúhelníku
16. 10. 2013   #182434

#3 DB
Tak tohle jsme zplodil, nedalo by se to udělat ještě nějak efektivněji nebo si myslíte, že mi to projde ve škole ? :D

#include <iostream>
#include <cmath>

using namespace std;

int main() {

    double a = 0, b = 0, c = 0;
    double s = 0, S = 0;

    cout << "Zadejte delky stran:\n";
    cin >> a >> b >> c;

    if (!cin.good() || a<=0 || b<=0 || c<=0) {  
        cout << "Špatný vstup.\n";
        return 0;
    } //if (!cin.good() || a<=0 || b<=0 || c<=0)

    s = (a+b+c)/(2);
    S = sqrt(s*(s - a)*(s - b)*(s - c));

    if (S <= 0 || (a+b<c) || (a+c<b) || (b+c<a) ) {
        cout << "Trojuhelnik nelze sestrojit.\n";
        return 0;
    } //if (S <= 0 || (a+b<c) || (a+c<b) || (b+c<a) )
    else {
        cout << "Trojuhelnik lze sestrojit, obsah je: " << S << endl;
    } //else
    
return 0;

} //int main()

DB
C / C++ › Obsah trojúhelníku
16. 10. 2013   #182433

#2 DB
tak vzorec jsme ještě poupravil :D

S = sqrt(s*(s - a)*(s - b)*(s - c));

DB
C / C++ › Obsah trojúhelníku
16. 10. 2013   #182432

#1 DB
s = (a+b+c)/(2);
    S = double (sqrt(double((s - a)*(s - b)*(s - c))));

tohle jsem vyplodil ale nevím zda-li je to 100% nejefektivnější řešení

DB
C / C++ › Obsah trojúhelníku
16. 10. 2013   #182431

Zdravím, mám malý dotaz. Neví někdo náhodou jak napsat vzorec pro výpočet obsahu trojúhelníku, pokud znám všechny tři strany a, b, c ? Trošku si nevím rady :) . Předem díky.

Daniel
C / C++ › Program pro prvočísla
15. 10. 2013   #182418

#6 KIIV
No já si zkusím o tom něco najít, protože mi spíše přijde, že se tak nějak navzájem nechápeme a to asi hlavně z důvodu, že to nedokážu správně interpretovat. Samozřejmě, děkuji za rady.

Daniel

Daniel
C / C++ › Program pro prvočísla
15. 10. 2013   #182415

#4 KIIV
No to bude asi ten problém. Nevím přesně co dělá a nevím jestli to dělán jen při splnění podmínky (což asi jo) nebo pořád.

Daniel
C / C++ › Program pro prvočísla
15. 10. 2013   #182413

#2 vitamin

Jo to by asi nějak i šlo :-) . Když tam mám break; tak to vrátí cyklus jenom na začátek a nebo vynuluje hodnoty (například jak tam mám proměnou j) na defaultní?

A ještě takový malý dotaz, kdyby na vstupu byly čísla

a=0

b=10

tak pokaždé, když jsme si to algoritmizoval na papír tak by mi podle mých výpočtu na výstup vyšly hodnoty:

2

3

4

5

6

7

8

9

10

a ne:

2
3
5
7

což by měl být správný výstup. Nějak špatně chápu ten cyklus. Pokaždé mi vyšlo že if(j == i)  .

Nějak se nemohu spokojit s tím, že to jenom funguje :-) můj nutkavý pocit to pochopit mi nedá spát :D

Daniel
C / C++ › Program pro prvočísla
15. 10. 2013   #182409

Ahojte,

tvořil jsme zrovna program pro výpis prvočísel z intervalu. Našel jsem si podmínku na internetu a po nějaké té hodince, co jsem na to koukal a nepochopil, jak je možné, že to vůbec funguje, jsem se rozhodl napsat na forum.

Kód:

#include <iostream>

using namespace std;

int main(){

    int a = 0;
    int b = 0;
    int i, j;

    cout << "Zadejte interval:\n";
    cin >> a >> b;

    if (!cin.good() || a>b) {
        cout << "Nespravny vstup.\n";
        return 0;
    } //if (!cin.good() || a>b)

    for (i=a; i<=b; i++) {  
        for (j=2; j<=i; j++) {

            if (!(i%j)&&(i!=j)) {break;} 

            if (j==i) {cout << i << endl;} 

        } //for (int j = 2; j <= i; j++)
    } // for (int i = a; i <= b; i++)

    return 0;
} // int main()


Nechápu tu část, kde začíná druhý cyklus for a to včetně první podmínky if (!(i%j)&&(i!=j)) {break;}
, když jsem si celý program rozepsal na papír (a to několikrát) hodnoty mi vycházejí jinak, takže to trošku nechápu. Mohl by mi někdo stručně popsat (trošku jako pro blbce?) Byl bych za to hodně vděčný, už se nemám čeho chytnout.

Děkuji moc.

Daniel.

Daniel
C / C++ › programovani C v Mac OS X
6. 10. 2013   #182005
Daniel
C / C++ › Navržení správného cyklu
5. 10. 2013   #182002

#2 Martin Kozibrátka
Děkuji za reakci. Teď si jen říkám, proč jsme to dělal tak složitě :D

Daniel
C / C++ › Navržení správného cyklu
5. 10. 2013   #182000

Zdravím všechny,

momentálně jsem tvořil jeden program a zasekl jsem se na jednom bodě, jaksi nemůžu dál. Potřeboval bych aby program vypisoval nuly a to stylem:

Na vstupu například zadáme číslo: 5

Výpis

0 0 0 0 0

0 0 0 0

0 0 0

0 0

0

Podařilo se mi udělat cyklus, který hodnoty vypisuje opačně a to od nejmenšího po největší a to následovně:

Vstup: 5

Výstup:

0

0 0

0 0 0

0 0 0 0

0 0 0 0 0

    // Výpis hvezdicek na radky
    int a=0;
    int b=0;
    string hvezdica = "* ";

    cout << "Zadej číslo v rozmezí od 1 do 10: ";
    cin >> cislo;
    if (cislo<1 || cislo>10)
    {
        cout << "Nesprávný vstup\n";
        return 0;
    }

    while (cislo>a)
    {
        cout << hvezdica;
        hvezdica = hvezdica + "* ";
        a++;
        while (a>b) {cout << "\n"; b++;}
    }


Tady je kód.
Bohužel opačně mi to prostě nejde, proto bych byl rád za jakoukoli radu :-) Děkuji všem .

Daniel

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032020 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý