goma smile Posted September 13, 2011 Report Share Posted September 13, 2011 Sveiki man ir jautājums vai manis izveidotais "Skripts" ir pareizs.... Sākumā vadoties pēc šiem matemātiskiem 4 vienādojumiem ir jātiek bie gala rezultāta..... http://www.bildites....kcryp6hsfl9.jpg Un pats skripts.... #include <stdio.h> #include <windows.h> #include <math.h> int main (){ int x,a,b,y; printf("Ievadiet X veertiibu:"); scanf("%d",&x); a = log(x + pow(x,3)); // Apreikinam a b = 7/(2*x+3) - 5/(2*x*x+3*x); // Apreikina b if(a <= B) y = (log(B))/pow(a,3) + 2*b/pow(a,4) - b*b/2* pow(a,5); else y = (tan(a))/2*a + (log(tan(b/2))) / 2*b; printf("\n%d",y); system("pause"); return 0; } Vai kāds var pateikt vai man šeit viss ir kārtībā, un kā var pārbaudīt vai ievadītā vērtība X ir skaitlis... Quote Link to comment Share on other sites More sharing options...
ezis Posted September 13, 2011 Report Share Posted September 13, 2011 nokompilē un paskaties? Quote Link to comment Share on other sites More sharing options...
Zefirs Posted September 13, 2011 Report Share Posted September 13, 2011 Skatos te pēc C vairāk nekā C++ izskatās. C++ parasti cin cout lieto. No lietotāja saņemtos datus glabajam stringā. Tālāk var ar isdigit pārbaudīt kas ir ievadīts. Par aprēķina pareizību nemāku teikt, nav laika iedziļināties. Nākotnē lieto figūriekavas { } if else utt. , jā, arī tad, ja tikai viena rindiņa. Komentārus pievieno! Quote Link to comment Share on other sites More sharing options...
goma smile Posted September 13, 2011 Author Report Share Posted September 13, 2011 Tur tā lieta ka pie rezultāta izmet -2147483648 nokompilējot vienīgais ko izmet ir brīdinājumi... C:\Documents and Settings\Brudza\Desktop\darbs_1\Untitled1.cpp In function `int main()': 13 C:\Documents and Settings\Brudza\Desktop\darbs_1\Untitled1.cpp [Warning] converting to `int' from `double' 17 C:\Documents and Settings\Brudza\Desktop\darbs_1\Untitled1.cpp [Warning] converting to `int' from `double' 19 C:\Documents and Settings\Brudza\Desktop\darbs_1\Untitled1.cpp [Warning] converting to `int' from `double' Quote Link to comment Share on other sites More sharing options...
Zefirs Posted September 13, 2011 Report Share Posted September 13, 2011 (edited) Pārvērt tos mainīgos kas sākumā ir, izņemot x , uz double! Edited September 13, 2011 by Zefirs Quote Link to comment Share on other sites More sharing options...
goma smile Posted September 13, 2011 Author Report Share Posted September 13, 2011 Uj sajaucu iespējams tas ir C nevis C++ nezināju ka ir atsķirības.... Quote Link to comment Share on other sites More sharing options...
goma smile Posted September 13, 2011 Author Report Share Posted September 13, 2011 Pārvērt tos mainīgos kas sākumā ir, izņemot x , uz double! Domā šitā ? int x; double a,b,y; Tad vienmēr rezultātu izvada 0 Quote Link to comment Share on other sites More sharing options...
Zefirs Posted September 13, 2011 Report Share Posted September 13, 2011 (edited) #include <stdio.h> #include <windows.h> #include <math.h> int main (){ int x; double a,b,y; printf("Ievadiet X veertiibu:"); scanf("%d",&x); a = log(x + pow(x,3)); // Apreikinam a printf("\n %f",a) ;b = 7/(2*x+3) - 5/(2*x*x+3*x); // Apreikina b printf("\n %f",b); if(a <= B) y = (log(B))/pow(a,3) + 2*b/pow(a,4) - b*b/2* pow(a,5); else y = (tan(a))/2*a + (log(tan(b/2))) / 2*b; printf("\n %f",y); system("pause"); return 0; } Kad strādās ar x kas ir int, pārraksti x lai ir string, un tālāk veic pārbaudes un pārveidošanu. Edited September 13, 2011 by Zefirs Quote Link to comment Share on other sites More sharing options...
goma smile Posted September 13, 2011 Author Report Share Posted September 13, 2011 http://www.bildites.lv/images/pcjhhd8kqg5acw50pn93.png Quote Link to comment Share on other sites More sharing options...
Zefirs Posted September 13, 2011 Report Share Posted September 13, 2011 (edited) Tu ja paņem pārāk lielu skaitli, viņš noapaļo līdz nullei, bet man liekas kur precizitāte zūd. Tev B sanāk 0, bet man 0.0000266534 http://www.wolframal...=1&incTime=true Tālāk ja B ir nulle , tad dalīšana tur vairs kāda... Edited September 13, 2011 by Zefirs Quote Link to comment Share on other sites More sharing options...
Zefirs Posted September 13, 2011 Report Share Posted September 13, 2011 Boot.lv forumā arī matemātiķi griežas ar C zināšanām. Quote Link to comment Share on other sites More sharing options...
goma smile Posted September 13, 2011 Author Report Share Posted September 13, 2011 Tu ja paņem pārāk lielu skaitli, viņš noapaļo līdz nullei, bet man liekas kur precizitāte zūd. Tev B sanāk 0, bet man 0.0000266534 http://www.wolframal...=1&incTime=true Tālāk ja B ir nulle , tad dalīšana tur vairs kāda... Jā man tieši tas pats http://www.wolframalpha.com/input/?i=7%2F%282*x%2B3%29+-+5%2F%282*x*x%2B3*x%29%3B+x%3D25%3B bet ja programmā x ievadu kā 25 tad izvada 0.000000 Kapēc tā ? Quote Link to comment Share on other sites More sharing options...
Zefirs Posted September 14, 2011 Report Share Posted September 14, 2011 Kas notiek ja arī x tipu nomaina uz double? Quote Link to comment Share on other sites More sharing options...
goma smile Posted September 19, 2011 Author Report Share Posted September 19, 2011 Visas problēmas līdzšim esmu atrisinājis, tikai ne to vai pārbauda vai ievadīts tika skaitlis..., kāds nezin kādu funciju jāizmanto .... ? Quote Link to comment Share on other sites More sharing options...
marcis Posted September 20, 2011 Report Share Posted September 20, 2011 No lietotāja saņemtos datus glabajam stringā. Tālāk var ar isdigit pārbaudīt kas ir ievadīts. Kāpēc neder vienkāršs if? int x; // vai double if(!(cin >> x)){ cout << "nav skaitlis"; } Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.