[ Príspevkov: 6 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
C++ kalkulacka, problem s mocninou a odm

Registrovaný: 05.10.06
Prihlásený: 15.10.18
Príspevky: 1891
Témy: 148 | 148
Bydlisko: Bratislava

spravil som kalkulacku na ktorej ide +-*/ a vypocita zvysok... ale chcem spravit mocninu a odmocninu. mocnina je hotova a funguje 2na2, ale ked dam 5na2 vyhodi blbost... odmocninu som ani nespravil lebo neviem ako spravit "polte" krokovanie kedze odm z 5 je vlastne 5na1/2 ... inak to delenie si nevsimajte, to som tak divne spravil naschval :)

Kód:
#include <stdio.h>
int main()
{int a,c,d,i,y,e;
char b;
printf("Toto je Kamahlov sofistikovany kalkulator.\nMatematicke operacie su +(scitanie, -(docitanie), *(nasobenie), /(delenie), m(Xta mocnina), o(Yta odmocnina), zadaj pocet matematickych operacii: ");
scanf("%d", &d);

            for (i=0; i<d; i++) {
                printf("zadajte priklad: ");
                scanf("%d %c %d", &a,&b,&c);
                e=c;
                          switch(b) {
                                    case '+' : printf("%d \n", a+c); break;
                                    case '-' : if(c>a) printf("- %d \n", c-a); else if(a>c) printf("%d \n", a-c);break;
                                    case '*' : printf("%d \n", a*c); break;
                                    case '/' : printf("%d \n", a/c); if((a%c)!=0) printf(", zvysok je %d \n", a%c); break;
                                    case 'na 2' : printf("%d \n", a+c); break;
                                    case 'm' : for (y=1; y!=e; y++) {c=c*c;} printf("%d \n", c); break;
                                    default : printf("Zla matematicka operacia \n"); break;
                                    }
                                    }
getchar();
getchar();
return 0;
}


_________________
Notebook Dell 7537, 24" BenQ BL2411PT, Logitech Illuminated keyboard, Razer DeathAdder, Razer Goliathus, Koss Porta Pro
Offline

Čestný člen
Čestný člen
C++ kalkulacka, problem s mocninou a odm

Registrovaný: 09.05.05
Prihlásený: 07.12.16
Príspevky: 1294
Témy: 69 | 69
Bydlisko: - - -

Tak som to upravil, vysledky sedia s normalnou Casiou kalkulackou, takze malo by to fungovat bez problemov :) enjoy

Vysledok píše:
Toto je Kamahlov sofistikovany kalkulator.
Matematicke operacie:

+(scitanie,
-(docitanie),
*(nasobenie),
/(delenie),
m(Xta mocnina),
o(Yta odmocnina),

zadaj pocet matematickych operacii: 7
zadajte priklad: 2+2
4
zadajte priklad: 5-4
1
zadajte priklad: 5*5
25
zadajte priklad: 90/10
9
zadajte priklad: 5m2
25
zadajte priklad: 81o2
9.000000
zadajte priklad: 512o3
8.000000


Kód:
// kalkulacka.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <stdio.h>
#include <math.h>
int main()
{
   int a = 0;
   int c = 0;
   int i,d;
   double vysledok, cislo, medzicislo;
   char b;

   printf("Toto je Kamahlov sofistikovany kalkulator.\nMatematicke operacie:\n \n+(scitanie, \n-(docitanie), \n*(nasobenie), \n/(delenie), \nm(Xta mocnina), \no(Yta odmocnina), \n \nzadaj pocet matematickych operacii: ");
   scanf_s("%d", &d);

            for (i=0; i<d; i++)
         {
                printf("zadajte priklad: ");
                scanf("%d", &a);
             scanf("%c ", &b);
            scanf("%d", &c);

                switch(b)
            {
               case '+' : printf("%d \n", a+c); break;
                    case '-' : if(c>a) printf("- %d \n", c-a); else if(a>c) printf("%d \n", a-c);break;
                    case '*' : printf("%d \n", a*c); break;
                    case '/' : printf("%d \n", a/c); if((a%c)!=0) printf(", zvysok je %d \n", a%c); break;
                    case 'm' :    //  Mocnina, pouzita funkcia pow z math.h, pow(a,b) -> a na b..pow(5,2) = 25
                  vysledok = pow((double)a, (double)c);
                  printf("%d \n", (int)vysledok);                   
                  break;
                    case 'o' :  // odmocnina
                  vysledok = 0;
                  medzicislo = (double)a;
                  if (c == 2)   // pokial robime druhu odmocninu pouzijeme funkciu sqrt z math.h , sqrt(25) = 5, vyzaduje double/float/long
                     vysledok = sqrt(medzicislo);
                  else   // pokial robime napr tretiu, stvrtu atd odmocninu..
                  {
                     vysledok = pow((double)a, (double)1/c);    // robime mocninu na 1/c
                  }
                  printf("%lf \n", vysledok);   // pri pretypovani na INT vychadza vzdy nizsie cislo, neviem preco, tak som to nechal na double, pripadne si usekni tie nuly..
         
                  break;
                    default : printf("Zla matematicka operacia \n"); break;
                  
                }
             }
         scanf("%d", &a);

   return 0;
}


Ak by sa ti to tu rozhadzalo, tak si ten kod mozes stiahnut na http://jj.bananatel.sk/kalkulacka.cpp , su tam dlhsie komentare...


Offline

Užívateľ
Užívateľ
C++ kalkulacka, problem s mocninou a odm

Registrovaný: 05.10.06
Prihlásený: 15.10.18
Príspevky: 1891
Témy: 148 | 148
Bydlisko: Bratislava
Napísal autor témyOffline : 08.11.2007 18:37 | C++ kalkulacka, problem s mocninou a odm

ale to je uplne nove :D mohol by si mi to spravit len cez kniznicu sthio.h a upravit ten moj?


_________________
Notebook Dell 7537, 24" BenQ BL2411PT, Logitech Illuminated keyboard, Razer DeathAdder, Razer Goliathus, Koss Porta Pro
Offline

Čestný člen
Čestný člen
C++ kalkulacka, problem s mocninou a odm

Registrovaný: 09.05.05
Prihlásený: 07.12.16
Príspevky: 1294
Témy: 69 | 69
Bydlisko: - - -

No to radsej necham niekomu inemu, osobne totizto nevidim logiku vypisovat nejake funkcie, ktore uz existuju v math.h a daju sa velmi lahko pouzit, moc krkolomne, pretiahne to kod...a su tam iba 3 "nove" veci.

1.) sqrt()
2.) pow();
3.) pretypovanie.

A ani jedno nie je tazke na pochopenie, takze ak to nemas ako priklad do skoly kde je zakazane pouzit nieco ine okrem stdio.h , tak by som sa na to radsej dobre pozrel a snazil sa pochopit co sa v tom kode odohrava :)

v skratke: mam ten janofov bug, lenivost, nechce sa mi to robit komplikovanejsie ako to musi byt :)


Offline

Užívateľ
Užívateľ
C++ kalkulacka, problem s mocninou a odm

Registrovaný: 05.10.06
Prihlásený: 15.10.18
Príspevky: 1891
Témy: 148 | 148
Bydlisko: Bratislava
Napísal autor témyOffline : 08.11.2007 20:14 | C++ kalkulacka, problem s mocninou a odm

johny128 píše:
No to radsej necham niekomu inemu, osobne totizto nevidim logiku vypisovat nejake funkcie, ktore uz existuju v math.h a daju sa velmi lahko pouzit, moc krkolomne, pretiahne to kod...a su tam iba 3 "nove" veci.

1.) sqrt()
2.) pow();
3.) pretypovanie.

A ani jedno nie je tazke na pochopenie, takze ak to nemas ako priklad do skoly kde je zakazane pouzit nieco ine okrem stdio.h , tak by som sa na to radsej dobre pozrel a snazil sa pochopit co sa v tom kode odohrava :)

v skratke: mam ten janofov bug, lenivost, nechce sa mi to robit komplikovanejsie ako to musi byt :)
mne nejde o to urobit kalkulacku ale vyuzit veci ktore som sa ucil... tiez chcem logicky urobit funkciu mocniny a odmocniny :)


_________________
Notebook Dell 7537, 24" BenQ BL2411PT, Logitech Illuminated keyboard, Razer DeathAdder, Razer Goliathus, Koss Porta Pro
Offline

Skúsený užívateľ
Skúsený užívateľ
C++ kalkulacka, problem s mocninou a odm

Registrovaný: 10.07.07
Prihlásený: 02.11.17
Príspevky: 1060
Témy: 0 | 0
Bydlisko: Bratislava

Lubovolna mocnina na n-tu ;) v stdio.h

Ukazka ako na to ...

Kód:
#include <stdio.h>

//priklad 2.15 na 9
// zaokruhlenie na dve desatiny
//(rb)

float Moc = 2.15;
int   Na  = 9;

float mocnina (float x,int n)
{
 float a=1;
 for (float i=1;i<=n;++i)  a=a*x;
 return a;
}

main()
{
printf("%1.2f na %d = %1.2f\n",Moc,Na,mocnina(Moc,Na));
return(0);
}


_________________
Nebo je modre, voda je mokra...
 [ Príspevkov: 6 ] 


C++ kalkulacka, problem s mocninou a odm



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Pomoc kalkulacka C++

v Assembler, C, C++, Pascal, Java

2

2021

21.01.2008 17:23

Peto670

V tomto fóre nie sú ďalšie neprečítané témy.

kalkulacka v C++

v Assembler, C, C++, Pascal, Java

12

2102

16.09.2007 16:51

Bacil

V tomto fóre nie sú ďalšie neprečítané témy.

C/C++ problém so súbormi a hodnotami

v Assembler, C, C++, Pascal, Java

2

352

09.12.2012 10:43

nBXXL

V tomto fóre nie sú ďalšie neprečítané témy.

C&C Generals problem

v Počítačové hry

2

696

16.01.2011 12:35

Luks

V tomto fóre nie sú ďalšie neprečítané témy.

Problem C&C Generals

v Počítačové hry

20

1297

12.10.2007 21:09

Matokoko

V tomto fóre nie sú ďalšie neprečítané témy.

C&C: Rengade-problem

v Počítačové hry

0

568

21.04.2009 15:39

GothicMan

V tomto fóre nie sú ďalšie neprečítané témy.

Problem s teplotou? Speedfan Core- 4°C a Core 96°C

v AMD - Advanced Micro Devices

18

1280

08.05.2011 15:57

slavix

V tomto fóre nie sú ďalšie neprečítané témy.

kalkulačka

v Ostatné programy

0

678

21.02.2009 21:24

bugi512

V tomto fóre nie sú ďalšie neprečítané témy.

kalkulačka

v Ostatné

3

549

03.02.2011 22:16

elfman

V tomto fóre nie sú ďalšie neprečítané témy.

kalkulacka

v JavaScript, VBScript, Ajax

2

756

09.08.2008 18:39

exoomer

V tomto fóre nie sú ďalšie neprečítané témy.

Kalkulačka

v Ostatné programy

1

531

30.05.2011 23:00

shiro

V tomto fóre nie sú ďalšie neprečítané témy.

kalkulacka

v Ostatné

3

408

25.01.2012 14:54

jtbs

V tomto fóre nie sú ďalšie neprečítané témy.

Kalkulacka

v Ostatné

6

856

10.03.2012 21:36

F3RY

V tomto fóre nie sú ďalšie neprečítané témy.

euro kalkulacka

v PHP, ASP

16

1724

12.08.2008 9:22

javo

V tomto fóre nie sú ďalšie neprečítané témy.

Delphi-kalkulačka

v Delphi, Visual Basic

17

1222

02.03.2013 10:18

expoox

V tomto fóre nie sú ďalšie neprečítané témy.

jednoducha kalkulacka

v Assembler, C, C++, Pascal, Java

6

1532

17.01.2012 15:33

vychytraly



© 2005 - 2024 PCforum, edited by JanoF