Už jsem vypnul PC, opravím zítra, co přesně nefunguje? :)
Edit: už to vidím, pokazily se linky, opravuji.
Malá hra o Velkého Bajta (0) - Jednoduchá kalkulačka
-
- Level 3.5
- Příspěvky: 987
- Registrován: květen 13
- Pohlaví:
-
- Level 3
- Příspěvky: 489
- Registrován: únor 15
- Pohlaví:
Re: Malá hra o Velkého Bajta (0)
Po trošku delší době, ale udělal jsem to takhle. exe
Teď se mrknu na druhý bit, co se třetího týče, tak si moc nevěřím.
Kód: Vybrat vše
#include <iostream>
int main()
{
using namespace std;
double cislo1, cislo2;
char znamenko;
while (true)
{
cout << "Zadejte priklad ve tvaru 1 + 1:" << endl;
cin >> cislo1 >> znamenko >> cislo2;
switch(znamenko)
{
case '+':
cout << cislo1 << " + " << cislo2 << " = " << cislo1 + cislo2 << endl;
break;
case '-':
cout << cislo1 << " - " << cislo2 << " = " << cislo1 - cislo2 << endl;
break;
case '*':
cout << cislo1 << " * " << cislo2 << " = " << cislo1 * cislo2 << endl;
break;
case '/':
if (cislo2 == 0) cout << "Nulou nelze delit!" << endl;
else cout << cislo1 << " / " << cislo2 << " = " << cislo1 / cislo2 << endl;
break;
default:
cout << "Neplatny znak" << endl;
}
cout << "Pro pokracovani napiste \"Y\", pro ukonceni jakykoli jiny znak." << endl;
cin >> znamenko;
if (znamenko != 'Y' && znamenko != 'y') exit(0);
}
return 0;
}
Teď se mrknu na druhý bit, co se třetího týče, tak si moc nevěřím.
-
- Master Level 8
- Příspěvky: 6212
- Registrován: prosinec 10
- Pohlaví:
Re: Malá hra o Velkého Bajta (0)
Funguje to, počítá to, úkol splněn. A ten skoro padesátikilový exáč mě pobavil, u mě v Linuxu má program po zkompilování a stripnutí ladících informací necelých šest kilobajtů. Používáš Visual Studio?
Měl bych jenom dvě připomínky. Při první kompilaci jsem dostal hlášení:
error: ‘exit’ was not declared in this scope
Napravilo to inkludování příslušné knihovny z jazyka C:
#include <cstdlib>
Mimochodem, nebylo by lepší místo násilného ukončení celého programu prostě vyskočit z toho nekonečného cyklu příkazem break?
Druhá věc je trochu nepříjemnější, protože na ní může v budoucnu narazit i běžný uživatel, který dostane hotový program. Když při druhém a dalším výpočtu místo čísla ve výrazu zadáš nějaký nesmyslný vstup, třeba písmeno, program se zacyklí a pořád dokola vypisuje hlášení a pokouší se znovu a znovu načítat, což se dá ukončit jedině jeho zabitím. Zkus zapřemýšlet jestli by se to nedalo nějak ošetřit. Udělá mi to i když odpovím na otázku jestli chci pokračovat víc než jedním písmenem...

Měl bych jenom dvě připomínky. Při první kompilaci jsem dostal hlášení:
error: ‘exit’ was not declared in this scope
Napravilo to inkludování příslušné knihovny z jazyka C:
#include <cstdlib>
Mimochodem, nebylo by lepší místo násilného ukončení celého programu prostě vyskočit z toho nekonečného cyklu příkazem break?
Druhá věc je trochu nepříjemnější, protože na ní může v budoucnu narazit i běžný uživatel, který dostane hotový program. Když při druhém a dalším výpočtu místo čísla ve výrazu zadáš nějaký nesmyslný vstup, třeba písmeno, program se zacyklí a pořád dokola vypisuje hlášení a pokouší se znovu a znovu načítat, což se dá ukončit jedině jeho zabitím. Zkus zapřemýšlet jestli by se to nedalo nějak ošetřit. Udělá mi to i když odpovím na otázku jestli chci pokračovat víc než jedním písmenem...
Kdy zmizí i ostatní nelegální billboardy kolem silnic? Až se o každý z nich někdo zabije, jako o ten na D11?
-
- Level 3
- Příspěvky: 489
- Registrován: únor 15
- Pohlaví:
Re: Malá hra o Velkého Bajta (0)
Jo, Visual Studio a koukám, že je to dost vidět
Ten include se mi někam vypařil, exit je tam schválně, chci to zavřít. Co se týče druhýho bodu, no říkal jsem si, že se cin.get() někde nevyhnu. Ok, mrknu na to.

-
- Level 3
- Příspěvky: 489
- Registrován: únor 15
- Pohlaví:
Re: Malá hra o Velkého Bajta (0)
No, takže asi takhle.
Vyřešil jsem snad vše - nikde se to necyklí a při napsání víc znaků místo Y to ty ostatní ignoruje. Akorát při zadání něčeho jiného než čísla mě to nenechá rozhodnout o pokračování a nevím co s tím, ale to už nechám tak, jak to je. Uživatel ať dělá to, co má
Kód: Vybrat vše
#include <iostream>
#include <cstdlib>
int main()
{
using namespace std;
double cislo1, cislo2;
char znamenko;
while (true)
{
cout << "Zadejte priklad ve tvaru 1 + 1:" << endl;
znamenko = '\0';
cin >> cislo1 >> znamenko >> cislo2;
switch(znamenko)
{
case '+':
cout << cislo1 << " + " << cislo2 << " = " << cislo1 + cislo2 << endl;
break;
case '-':
cout << cislo1 << " - " << cislo2 << " = " << cislo1 - cislo2 << endl;
break;
case '*':
cout << cislo1 << " * " << cislo2 << " = " << cislo1 * cislo2 << endl;
break;
case '/':
if (cislo2 == 0) cout << "Nulou nelze delit!" << endl;
else cout << cislo1 << " / " << cislo2 << " = " << cislo1 / cislo2 << endl;
break;
default:
cout << "Neplatny znak" << endl;
}
cout << "Pro pokracovani napiste \"Y\", pro ukonceni jakykoli jiny znak." << endl;
cin >> znamenko;
cin.ignore(256, '\n');
if (znamenko != 'Y' && znamenko != 'y') exit(0);
}
return 0;
}
Vyřešil jsem snad vše - nikde se to necyklí a při napsání víc znaků místo Y to ty ostatní ignoruje. Akorát při zadání něčeho jiného než čísla mě to nenechá rozhodnout o pokračování a nevím co s tím, ale to už nechám tak, jak to je. Uživatel ať dělá to, co má

-
- nováček
- Příspěvky: 3
- Registrován: leden 16
- Pohlaví:
-
- Level 5
- Příspěvky: 2233
- Registrován: červenec 15
- Pohlaví:
Re: Malá hra o Velkého Bajta (0) - Jednoduchá kalkulačka
Naposledy upravil(a) Roidoc dne 02 bře 2018 00:31, celkem upraveno 1 x.
-
- Master Level 9.5
- Příspěvky: 8703
- Registrován: srpen 08
- Bydliště: Brno
- Pohlaví:
Re: Malá hra o Velkého Bajta (0) - Jednoduchá kalkulačka
Tak jsem se rozhodl, že zkusím ty tvoje bity taky udělat
ale v php, žádný nízkoúrovňový C/C++. Jsem prostě už nevyknutej na tu hrůzu 
Kalkulačka, která umí zatím pouze sčítat celá čísla:
zdrojáky na githubu https://github.com/CZechBoY/easy-calculator, ukázka zatím nikde není, ale třeba zítra se k tomu dostanu a hodim to někam na web.
Hlavně jsem ten projekt udělal, abych si vyzkoušel nový technologie a ta kalkulačka je spíš vedlejší činnost
Vlastně kaklulačku jsem už dělal v Javě a pořád se mi nedaří najít ideální strukturu tříd. Nějaký nápady?


Kalkulačka, která umí zatím pouze sčítat celá čísla:
zdrojáky na githubu https://github.com/CZechBoY/easy-calculator, ukázka zatím nikde není, ale třeba zítra se k tomu dostanu a hodim to někam na web.
Hlavně jsem ten projekt udělal, abych si vyzkoušel nový technologie a ta kalkulačka je spíš vedlejší činnost

Vlastně kaklulačku jsem už dělal v Javě a pořád se mi nedaří najít ideální strukturu tříd. Nějaký nápady?
PHP, Nette, MySQL, Oracle SQL, C#
PhpStorm, xampp, WinSCP, Opera browser, Windows 10
Xiaomi 3S (RAM 2GB, CZ LTE)
Raspberry PI 3, bez chlazení, v krabičce, 8 GB SD, KODI, Raspbian
PhpStorm, xampp, WinSCP, Opera browser, Windows 10
Xiaomi 3S (RAM 2GB, CZ LTE)
Raspberry PI 3, bez chlazení, v krabičce, 8 GB SD, KODI, Raspbian
-
- Master Level 8
- Příspěvky: 6212
- Registrován: prosinec 10
- Pohlaví:
Re: Malá hra o Velkého Bajta (0) - Jednoduchá kalkulačka
Ideální struktura tříd? Co třeba třída kalkulacka a v ní metody plus, minus, krat, deleno 
Zkus to udělat v LISPu, tam přijdeš na nové nápady. A to myslím úplně vážně.

Zkus to udělat v LISPu, tam přijdeš na nové nápady. A to myslím úplně vážně.
Kdy zmizí i ostatní nelegální billboardy kolem silnic? Až se o každý z nich někdo zabije, jako o ten na D11?
-
- nováček
- Příspěvky: 33
- Registrován: květen 14
- Bydliště: Praha
- Pohlaví:
Re: Malá hra o Velkého Bajta (0) - Jednoduchá kalkulačka
To je krásná soutěž!
Tak já se taky zapojím, zatím jen kalkulačka. Zkusil jsem ji ve FreeBasicu.
Exe:
https://www.dropbox.com/s/q557mq6rj0nq29q/kalkul.zip?dl=0

Tak já se taky zapojím, zatím jen kalkulačka. Zkusil jsem ji ve FreeBasicu.
Kód: Vybrat vše
dim as single a,b,c
dim as single i,y
dim as string$ vyraz,znamenko,konec
znovu:
input vyraz
for i=1 To len(vyraz)
if mid$(vyraz,i,1)="+" or mid$(vyraz,i,1)="-" or mid$(vyraz,i,1)="/" or mid$(vyraz,i,1)="*" then
y=i-1
znamenko=mid$(vyraz,y+1,1)
exit for
end if
next i
a=val(left(vyraz,y))
b=val(right(vyraz,len(vyraz)-(y+1)))
select case znamenko
case "+"
c=a+b
case "-"
c=a-b
case "/"
c=a/b
case "*"
c=a*b
end select
print c
sleep
konec=inkey$
if konec=chr$(27) then end
goto znovu
Exe:
https://www.dropbox.com/s/q557mq6rj0nq29q/kalkul.zip?dl=0
-
- Master Level 9.5
- Příspěvky: 8703
- Registrován: srpen 08
- Bydliště: Brno
- Pohlaví:
Re: Malá hra o Velkého Bajta (0) - Jednoduchá kalkulačka
@faraon jedna trida je hnus, neni to rozsiritelny...
@zxretrosoft to asi funguje jen pro jednociferny cisla ze?
@zxretrosoft to asi funguje jen pro jednociferny cisla ze?

PHP, Nette, MySQL, Oracle SQL, C#
PhpStorm, xampp, WinSCP, Opera browser, Windows 10
Xiaomi 3S (RAM 2GB, CZ LTE)
Raspberry PI 3, bez chlazení, v krabičce, 8 GB SD, KODI, Raspbian
PhpStorm, xampp, WinSCP, Opera browser, Windows 10
Xiaomi 3S (RAM 2GB, CZ LTE)
Raspberry PI 3, bez chlazení, v krabičce, 8 GB SD, KODI, Raspbian
-
- nováček
- Příspěvky: 20
- Registrován: květen 17
- Pohlaví:
Re: Malá hra o Velkého Bajta (0) - Jednoduchá kalkulačka
Řešení chudého muže 
E// nebo menší úprava do nekonečného cyklu:

Kód: Vybrat vše
#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
int main(int argc, char **argv) {
int n1, n2;
char zn;
if (scanf(" %d %1[-+*/%] %d", &n1, &zn, &n2) == 3) printf(" = %d\n", (zn == '+' ? n1 + n2 : (zn == '-' ? n1 - n2 : (zn == '*' ? n1 * n2 : (zn == '/' ? n1 / n2 : n1 % n2)))));
else printf(" ERR\n");
return 0;
}
E// nebo menší úprava do nekonečného cyklu:
Kód: Vybrat vše
#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
int main(int argc, char **argv) {
int n1, n2;
char zn;
while (scanf(" %d %1[-+*/%] %d", &n1, &zn, &n2) == 3) printf(" = %d\n", (zn == '+' ? n1 + n2 : (zn == '-' ? n1 - n2 : (zn == '*' ? n1 * n2 : (zn == '/' ? n1 / n2 : n1 % n2)))));
return 0;
}
std::endl není nový řádek!
-
- Mohlo by vás zajímat
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
-
Excel - rozdělení JmenoPrijmeni podle velkého písmena
od Marietta99 » 02 úno 2018 16:05 » v Kancelářské balíky - 10
- 597
-
od elninoslov
07 úno 2018 08:20
-
-
- 4
- 442
-
od Fiba
21 kvě 2017 20:42
-
-
Jakmile dohraju hru tak se ta hra sekne a nereaguje a potom nejde zapnout hra
od Gargi10 » 27 srp 2017 19:53 » v Hry - 4
- 390
-
od popcorn
01 led 2018 15:20
-
-
-
Malá herní bezdrátová myš k macbooku
od WinDroid » 18 pro 2017 23:36 » v Rady s výběrem hardwaru a sestavením PC - 0
- 99
-
od WinDroid
18 pro 2017 23:36
-
-
- 8
- 340
-
od DJAdam
05 led 2018 23:10
Zpět na “Programování a tvorba webu”
Kdo je online
Uživatelé prohlížející si toto fórum: CommonCrawl [Bot] a 2 hosti