kukus Opublikowano 7 Marca 2005 Zgłoś Opublikowano 7 Marca 2005 (edytowane) Witam! Otóż robiąc kalkulator chciałem dodać funkcję pierwiastka. Zadeklarowalem zmienna 'a' jako pierwsza liczba (podana przez człowieka). a 'k' wynik koncowy pierwiastkowania i dalem taki wzor "a=k*k" i pozniej zeby przeczytal ta liczbe k. Zawsze wychodzi jakas dziwna ta sama liczba. Czy jest jakś znak w C++ ktory zastepuje znak pierwiastka ? I mam jeszcze 1 pytanko, ktore nie dotyczy kalkulatora. Czy są jakies polskie strony z kursem C# i darmowy kompilator albo jakis program do tego? Edytowane 7 Marca 2005 przez kukus Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
grzmot Opublikowano 7 Marca 2005 Zgłoś Opublikowano 7 Marca 2005 Przecież wynik musi być zawsze po lewej, nie możesz liczyć k ze wzoru "a=k*k"! A funkcja licząca pierwiastek to chyba sqrt(liczba). Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
kukus Opublikowano 7 Marca 2005 Zgłoś Opublikowano 7 Marca 2005 jakos niebardzo to sqrt chyba ze nie wiem jak zapisac dobrze.A mam jeszcze takie jedno pytanko, da sie tak zrobic zeby osoba liczaca na kalkulatorze nie musiala dawac enter po kazdej wprowadzonej liczbie lub znaku? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Polar Opublikowano 7 Marca 2005 Zgłoś Opublikowano 7 Marca 2005 da sie tak zrobic zeby osoba liczaca na kalkulatorze nie musiala dawac enter po kazdej wprowadzonej liczbie lub znaku? 1315811[/snapback] A powiedz nam na początek w jakiś środowisku / kompilatorze, robisz ten program ??? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
kukus Opublikowano 7 Marca 2005 Zgłoś Opublikowano 7 Marca 2005 Oczywiście w c++ a w programie Borland c++ Builder 6 (jak narazie bo jeszcze 54 dni za darmo a pozniej jakis darmowy):D Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
koparka Opublikowano 8 Marca 2005 Zgłoś Opublikowano 8 Marca 2005 (edytowane) Ja nie bardzo wiem jak podobny jest pascal do tego twojego jezyka ale tam pierwisatek to jest wlasnie SQRT A jesli chcesz zeby nie trzeba bylo entera wciskac to musisz zastosowac polecenie READKEY tylko ze z wiadomych przyczyn dziala ono tylko z 1 znakiem, wiec liczby nie zrobisz tylko cyfre (chyba ze jest jakis bajer co wczytuje dopiero np. po 3 znakach) Edytowane 8 Marca 2005 przez koparka Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
kukus Opublikowano 8 Marca 2005 Zgłoś Opublikowano 8 Marca 2005 (edytowane) Tzn. Chce żeby osoba, ktora pisze kiedy nacisnelaby np:*,+ ,- lub / (w przypadku podania liczby) przechodzilo do dzialania. Moze jakos tak: If (a==/ || a==* || a==+ || a=='-') { goto costam } costam Edytowane 8 Marca 2005 przez kukus Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
The_Structor Opublikowano 8 Marca 2005 Zgłoś Opublikowano 8 Marca 2005 z tym pierwiastkiem, to funkcja sqrt jest w bibliotece math.h najlepiej jakbys sam zrobil funkcje do obliczania pierwiastka.. moze bys zablysnal :P mozesz tez do pierwiastkowania uzyc funkcji pow.. czli potegowanie, zobacz w helpie borlanda jak uzywac tych funkcji Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Gość RamzesXXXII Opublikowano 8 Marca 2005 Zgłoś Opublikowano 8 Marca 2005 (edytowane) Jestem poczatkujacym ale wedlug mnie powinno byc tak: #include <iostream>#include <cmath>using namespace std;int main(){ double a,b,c; char wybor; cout<<"Ktore dzialanie chcesz wykonac: (*/+/ / /-/ p) "; cin>>wybor; if (wybor=='+') { cout<<endl<<"Podaj a i b: "; cin>>a>>b; c=a+b; cout<<c<<endl; } if (wybor=='*') { cout<<endl<<"Podaj a i b: "; cin>>a>>b; c=a*b; cout<<c<<endl; } if (wybor=='/') { cout<<endl<<"Podaj a i b: "; cin>>a>>b; c=a/b; cout<<c<<endl; } if (wybor=='-') { cout<<endl<<"Podaj a i b: "; cin>>a>>b; c=a-b; cout<<c<<endl; } if (wybor=='p') { cout<<endl<<"Podaj liczbe podpierwiastkowa: "; cin>>a; cout<<endl<<"Podaj stopien pierwiastka: "; cin>>b; c=pow(a,(1/b)); cout<<c<<endl; } return 0;} Program liczy tez pierwiastek dowolnego stopnia po wborze "p"(jako dzialania). Do liczenia pierwiastak uzylem funkci potegowej pow() jako ze dowolny pierwiastek da sie przedstawic jako potege. W programie brakuje zabezpieczenia przed wprowadzeniem niewlasciwych danych aby np. nie wyciagac z liczby -4 pierwiastka 2 stopnia (bo takowego nie ma). PS. Program pisany na odwal sie :D dziala na pewno i chyba o to ci chodzilo. PS2.goto - sie praktycznie nie uzywa bo wtedy program jest strasznie trudny do odczytania. Edytowane 8 Marca 2005 przez RamzesXXXII Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
kukus Opublikowano 8 Marca 2005 Zgłoś Opublikowano 8 Marca 2005 Jestem poczatkujacym ale wedlug mnie powinno byc tak: #include <iostream>#include <cmath>using namespace std;int main(){ double a,b,c; char wybor; cout<<"Ktore dzialanie chcesz wykonac: (*/+/ / /-/ p) "; cin>>wybor; if (wybor=='+') { cout<<endl<<"Podaj a i b: "; cin>>a>>b; c=a+b; cout<<c<<endl; } if (wybor=='*') { cout<<endl<<"Podaj a i b: "; cin>>a>>b; c=a*b; cout<<c<<endl; } if (wybor=='/') { cout<<endl<<"Podaj a i b: "; cin>>a>>b; c=a/b; cout<<c<<endl; } if (wybor=='-') { cout<<endl<<"Podaj a i b: "; cin>>a>>b; c=a-b; cout<<c<<endl; } if (wybor=='p') { cout<<endl<<"Podaj liczbe podpierwiastkowa: "; cin>>a; cout<<endl<<"Podaj stopien pierwiastka: "; cin>>b; c=pow(a,(1/b)); cout<<c<<endl; } return 0;} Program liczy tez pierwiastek dowolnego stopnia po wborze "p"(jako dzialania). Do liczenia pierwiastak uzylem funkci potegowej pow() jako ze dowolny pierwiastek da sie przedstawic jako potege. W programie brakuje zabezpieczenia przed wprowadzeniem niewlasciwych danych aby np. nie wyciagac z liczby -4 pierwiastka 2 stopnia (bo takowego nie ma). PS. Program pisany na odwal sie :D dziala na pewno i chyba o to ci chodzilo. PS2.goto - sie praktycznie nie uzywa bo wtedy program jest strasznie trudny do odczytania. 1317599[/snapback] O własnie dzieki RamzesXXXII własnie o to mi chodzilo thx:D Ps: ale tutaj zastosowalbym jednak goto chociazby dlatego, że po zrobienie jakiegos dzialania mozna by bylo przejsc do poczatku:D np: #include <iostream>#include <cmath>using namespace std;int main(){ poczatek: double a,b,c; char wybor; cout<<"Ktore dzialanie chcesz wykonac: (*/+/ / /-/ p) "; cin>>wybor;wybor2 if (wybor=='+') { cout<<endl<<"Podaj a i b: "; cin>>a>>b; c=a+b; cout<<c<<endl; } if (wybor=='*') { cout<<endl<<"Podaj a i b: "; cin>>a>>b; c=a*b; cout<<c<<endl; } if (wybor=='/') { cout<<endl<<"Podaj a i b: "; cin>>a>>b; c=a/b; cout<<c<<endl; } if (wybor=='-') { cout<<endl<<"Podaj a i b: "; cin>>a>>b; c=a-b; cout<<c<<endl; } if (wybor=='p') { cout<<endl<<"Podaj liczbe podpierwiastkowa: "; cin>>a; cout<<endl<<"Podaj stopien pierwiastka: "; cin>>b; c=pow(a,(1/b)); cout<<c<<endl; } return 0; cout<<"Czy chcesz zakonczyc dzialanie kalkulatora? (t/n)\n"; cin>>wybor2; if (wybor2=='t') { goto poczatek; }} Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Gość RamzesXXXII Opublikowano 8 Marca 2005 Zgłoś Opublikowano 8 Marca 2005 (edytowane) jezeli juz chodzi o przejscie do poczatku proponuje zrobic to przez petle do..while() i pozwolic uzytkownikowi wybrac czy chce wrocic czy nie : #include <iostream>#include <cmath>using namespace std;int main(){ double a,b,c; char wybor2; char wybor; do { system("cls"); wybor2='N'; cout<<"Ktore dzialanie chcesz wykonac: (*/+/ / /-/ p) "; cin>>wybor; if (wybor=='+') { cout<<endl<<"Podaj a i b: "; cin>>a>>b; c=a+b; cout<<c<<endl; } if (wybor=='*') { cout<<endl<<"Podaj a i b: "; cin>>a>>b; c=a*b; cout<<c<<endl; } if (wybor=='/') { cout<<endl<<"Podaj a i b: "; cin>>a>>b; c=a/b; cout<<c<<endl; } if (wybor=='-') { cout<<endl<<"Podaj a i b: "; cin>>a>>b; c=a-b; cout<<c<<endl; } if (wybor=='p') { cout<<endl<<"Podaj liczbe podpierwiastkowa: "; cin>>a; cout<<endl<<"Podaj stopien pierwiastka: "; cin>>b; c=pow(a,(1/b)); cout<<c<<endl; } cout<<"Czy chcesz wrocic do poczatku : (T/N) "; cin>>wybor2; } while(wybor2=='T'); return 0;} Edytowane 8 Marca 2005 przez RamzesXXXII Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
m4r Opublikowano 9 Marca 2005 Zgłoś Opublikowano 9 Marca 2005 a ja jeszcze tylko od siebie dodam, że niepotrzebnie sprawdzacie tyle ifów. To nie jest co prawda duży program, ale i tak np. przy wybraniu +, będzie jeszcze sprawdzał warunki na mnożenie, dzielenie, odejmowanie i pierwiastkowanie. Szkoda marnować czasu :) Można tak: switch(wybor){ case '+' : dodawanie(); break; case '-' : odejmowanie(); break; case '*' : mnozenie(); break; case '/' : dzielenie(); break; case 'p' : pierwiastek(); break; default : cout<<"nie wybrales wlasciwego dzialania!";} gdzie funkcja dodawanie() wygląda tak: function dodawanie(){float a=0.0, b=0.0;cout<<"\npodaj a= "; cin>>a;cout<<"\npodaj b= "; cin>>b;a=a+b;cout<<"\nwynik dodawania: "<<a;} niesety kodu nie kompilowałem bo nie mam cpp w tej chwili na kompie, ale powinno działać :P Można by się jeszcze pokusić o wyrzucenie zmiennych przed funkcje, i jeszcze inne modyfikacje, ale to już inna historia :D. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Gość RamzesXXXII Opublikowano 9 Marca 2005 Zgłoś Opublikowano 9 Marca 2005 da sie i przez switch i funkcje, ale kukus nie jest zabardzo zaawansowaym :P (bez obrazy ) uzytkownikiem i nie chcialem mu mieszac w kodzie. A pozatym jak zauwazyles program krotki i wedlub mnie jest bez ronicy czy bedzie przez if czy przez switch :D. PS. rzeczywiscie przy tym programie marnujemy bardzo duzo czasu na sprawdzenie az 5 warunow :P :P Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
kejtu Opublikowano 9 Marca 2005 Zgłoś Opublikowano 9 Marca 2005 kukus, mala rada naucz sie pisac programy bez korzystania z komedy goto nieladnie ona w kodzie wyglada i jej dzialnie tez niejest najlepsze, a jesli chodzi o kompilator, widze ze niepiszesz nic bardzo zawilego wiec polecam borlandaC 3.11 jest darmowy i dosowy do pisania prostych programow wystracza w zupelnosci, a jesli sie bardzo upierasz i chcesz isc z duchemc zasu polecam Dev C++ Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...