Forum Coders' city Strona Gwna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UytkownicyUytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj si, by sprawdzi wiadomociZaloguj si, by sprawdzi wiadomoci   ZalogujZaloguj 

Potrzebuj szybkiej odpowiedzi na moje pytanie... Zasady

Kalkulator z pierwiastkowaniem w C

Id do strony 1, 2  Nastpny

 
Odpowiedz do tematu    Forum Coders' city Strona Gwna -> C i C++
Zobacz poprzedni temat :: Zobacz nastpny temat  
Autor Wiadomo
Firenzo



Doczy: 25 Kwi 2009
Posty: 4

PostWysany: Sob Kwi 25, 2009 10:03 am  OP    Temat postu: Kalkulator z pierwiastkowaniem w C Odpowiedz z cytatem Pisownia

Witam wszystkich serdecznie :)

Mam do zrobienia projekt prostego kalkulatora w jzyku C. Natknem si jednak na problem z wkomponowaniem dziaania na pierwiastek kwadratowy do kodu.


Ostatnio zmieniony przez Firenzo dnia Sob Kwi 25, 2009 12:44 pm, w caoci zmieniany 1 raz
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo
Filip



Doczy: 03 Kwi 2009
Posty: 517

PostWysany: Sob Kwi 25, 2009 11:31 am      Temat postu: Odpowiedz z cytatem Pisownia

1. odpusc sobie GOTO, zrob to na petli.
problem przypuszczam ze lezy w dolaczaniu modulu. zapisz to wszystko w jeden plik i sprobuj wtedy.
PS. sqrt zwraca double a nie float, sprobuj formatowac %d a nie %f

2. http://4programmers.net/C/Biblioteka_standardowa/Cmath
opis biblioteki, w ktorej jest funkcja sqrt
jezeli chcesz pierwiastek dowolnego stopnia to uzyj funkcji pow ktora podnosi liczbe do zadanej potegi i z wlasnosci:

_________________
Filip

i tyle.

Google niech Ci wujem bdzie, StackOverflow bratem, a Wikipedia siostr...
Oto czemu uzywam Ubuntu
Jak pyta? | Jak zgasza bdy?
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo Numer GG
Fuv



Doczy: 14 Sty 2009
Posty: 119
Skd: Gdansk PL

PostWysany: Sob Kwi 25, 2009 11:34 am      Temat postu: Odpowiedz z cytatem Pisownia

Ja bym da w ten sposb, e wczytujesz najpierw stopie pierwiastka, potem znak pierwiastka i liczbe pod pierwiastkiem. Wtedy mona zostawi wczytywanie tak jak jest: liczba znak liczba.

BTW Tylko wtedy musisz da potg podniesion do uamka
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo Odwied stron autora Numer GG
Firenzo



Doczy: 25 Kwi 2009
Posty: 4

PostWysany: Sob Kwi 25, 2009 11:49 am  OP    Temat postu: Odpowiedz z cytatem Pisownia

Mhmmm rozumiem, tylko w takim razie jak musiabym zmieni t formu pod casem dla pierwiastka? Na podobnej zasadzie jak byo dla dodawanie, odejmowania... czy ma tam by jaka bardziej zoona funkcja?
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo
Fuv



Doczy: 14 Sty 2009
Posty: 119
Skd: Gdansk PL

PostWysany: Sob Kwi 25, 2009 11:57 am      Temat postu: Odpowiedz z cytatem Pisownia

Mi si wydaje, e wszystko jest jasne:

Kod:
#include <stdlib.h>
#include <stdio.h>
#include <math.h>


int main(void)
    {
              float value1;
              float value2;
              char operation;
              
              printf("Witaj w programie kalkulator! Wprowadz porzadane dzialanie: \n");
              START:
              scanf ("%f %c %f", &value1, &operation, &value2);
              
              switch (operation)
              {
                      case 118:
                      case 86:
                   if (value2 < 0)
                   printf ("Liczba podpierwiastkowa jest mniejsza od zera!\n");
                   else
                   printf ("%f\n", pow(value2,(1.0/value1)));
                   break;
                     case '+':
                          printf ("%.2f\n", value1 + value2);
                          break;
                     case '-':
                          printf ("%.2f\n", value1 - value2);
                          break;
                     case '*':
                     case 'x':
                          printf ("%.2f\n", value1 * value2);
                          break;
                     case '/':                    
                     case ':':
                          if (value2 == 0)
                          printf ("Nie dziel cholero przez zero!\n");
                          else
                          printf ("%.2f\n", value1 / value2);
                          break;
                    
                     default:
                          printf ("W kulki lecisz!\n");
                          break;
              }
                  
              printf("\n");
              goto START;
    }



I teraz gdy chcesz pierwiastkowa to wpisujesz jak mwiem:

stopie pierwiastka(value1), znak pierwiastka(operation) i liczb pod pierwiastkiem(value 2).

No chyba e ma by tylko i wycznie pierwiastkowanie drugiego stopnia, ale to inna bajka...
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo Odwied stron autora Numer GG
izaw



Doczy: 12 Wrz 2008
Posty: 2149
Skd: d

PostWysany: Sob Kwi 25, 2009 12:09 pm      Temat postu: Odpowiedz z cytatem Pisownia

Fuv napisa
Kod:
  case 118:
  case 86:

Po co magiczne liczby? Nie prociej i lepiej
Kod:
  case 'v':
  case 'V':
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo
Firenzo



Doczy: 25 Kwi 2009
Posty: 4

PostWysany: Sob Kwi 25, 2009 12:10 pm  OP    Temat postu: Odpowiedz z cytatem Pisownia

Ahhh na takiej zasadzie.aa Bardzo dzikuj!
A co oznaczaj case 118 i case 86? Skd one si wziy? Jestem pocztkujcy i z wieloma sprawami nie miaem jeszcze stycznoci ;)

edit: Wanie tego mi brakowao :D
A jeli chodzi o ptl, to jaki warunek powinien by przy while'u? Bo tak w sumie to nic konkretnego nie musi by spenione. Po prostu ma si pojawi wynik i wtedy przeskakujemy na start. Co proponujecie?
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo
izaw



Doczy: 12 Wrz 2008
Posty: 2149
Skd: d

PostWysany: Sob Kwi 25, 2009 12:56 pm      Temat postu: Odpowiedz z cytatem Pisownia

Poszukaj sobie o ptlach nieskoczonych.
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo
Fuv



Doczy: 14 Sty 2009
Posty: 119
Skd: Gdansk PL

PostWysany: Sob Kwi 25, 2009 1:09 pm      Temat postu: Odpowiedz z cytatem Pisownia

1 http://pl.wikipedia.org/wiki/ASCII

Moesz zastpi to: 'v' oraz 'V', ale ja wole w ASCII

2. Ptle nieskoczone(przykad): while(1) { } i tyle
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo Odwied stron autora Numer GG
Firenzo



Doczy: 25 Kwi 2009
Posty: 4

PostWysany: Sob Kwi 25, 2009 1:41 pm  OP    Temat postu: Odpowiedz z cytatem Pisownia

Wykombinowaem tak ptl, ale po wykonaniu pierwszego dziaania program si wiesza. Widzicie jaki bd?

Kod:
#include <stdlib.h>
#include <stdio.h>
#include <math.h>


int main(void)
    {
              float value1;
              float value2;
              char operation;
              char x;
              
              printf("Witaj w programie kalkulator!\nMozesz obliczyc sume, roznice, iloczyn, iloraz oraz kwadrat i pierwiastek\ndowolnego stopnia calkowitego.\nWprowadz porzadane dzialanie: \n");
              do
              {
              scanf ("%f %c %f", &value1, &operation, &value2);
              
              switch (operation)
              {
                     case '+':
                          printf ("%.2f\n", value1 + value2);
                          break;
                     case '-':
                          printf ("%.2f\n", value1 - value2);
                          break;
                     case '*':
                     case 'x':
                          printf ("%.2f\n", value1 * value2);
                          break;
                     case '/':                    
                     case ':':
                          if (value2 == 0)
                          printf ("Nie dziel cholero przez zero!\n");
                          else
                          printf ("%.2f\n", value1 / value2);
                          break;
                     case '^':
                          printf ("%f\n", pow(value1,(value2)));
                          break;
                     case 'v':
                     case 'V':
                          if (value2 < 0)
                          printf ("Liczba podpierwiastkowa jest mniejsza od zera!\n");
                          else
                          printf ("%f\n", pow(value2,(1.0/value1)));
                          break;
                     default:
                          printf ("W kulki lecisz!\n");
                          break;
              }
                  
              printf ("\n");
              printf ("Kontynuowac? (T,N)\n");
              scanf ("%c", x);

              }
              while (x!='N' && x!='n');
              
                        
    }
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo
Wywietl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Gwna -> C i C++ Wszystkie czasy w strefie CET (Europa)
Id do strony 1, 2  Nastpny
Strona 1 z 2

 
Skocz do:  
Moesz pisa nowe tematy
Moesz odpowiada w tematach
Nie moesz zmienia swoich postw
Nie moesz usuwa swoich postw
Nie moesz gosowa w ankietach
Moesz dodawa zaczniki na tym forum
Moesz pobiera pliki z tego forum




Debug: strone wygenerowano w 0.03312 sekund, zapytan = 12
contact

| Darmowe programy i porady Jelcyna | Tansze zakupy w Helionie | MS Office Blog |