goma smile Posted September 13, 2011 Report 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
Zefirs Posted September 13, 2011 Report 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
goma smile Posted September 13, 2011 Author Report 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
Zefirs Posted September 13, 2011 Report 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
goma smile Posted September 13, 2011 Author Report Posted September 13, 2011 Uj sajaucu iespējams tas ir C nevis C++ nezināju ka ir atsķirības.... Quote
goma smile Posted September 13, 2011 Author Report 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
Zefirs Posted September 13, 2011 Report 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
goma smile Posted September 13, 2011 Author Report Posted September 13, 2011 http://www.bildites.lv/images/pcjhhd8kqg5acw50pn93.png Quote
Zefirs Posted September 13, 2011 Report 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
Zefirs Posted September 13, 2011 Report Posted September 13, 2011 Boot.lv forumā arī matemātiķi griežas ar C zināšanām. Quote
goma smile Posted September 13, 2011 Author Report 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
Zefirs Posted September 14, 2011 Report Posted September 14, 2011 Kas notiek ja arī x tipu nomaina uz double? Quote
goma smile Posted September 19, 2011 Author Report 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
marcis Posted September 20, 2011 Report 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
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.