Manualai.lt Forumas
C++ => C++ Klausimai ir pagalba => Temą pradėjo: DovydasMi 2014-01-16 23:35:53 pm
-
Sveiki. Esu naujokas C++. Turiu uzdavini su kuriuo pats nesusitvarkau, tai gal atsiras gerieciu kurie pagelbes.
Stai uzdavinys: Iš Kauno į Vilnių išvyko automobilis „MAZDA“, kurio greitis V km/h, o iš Vilniaus į Kauną tuo pačiu metu išvyko automobilis „AUDI100“, kurio greitis V1 km/h. Žinoma, kad tarp miestų atstumas yra D km. Sudarykite programą, kuri nustatytų, po kurio laiko automobiliai susitiks (laikas apskaičiuojamas valandomis ir minutėmis, panaudojant funkcijas FRAC ir TRUNC).
Kas per funkcijos FRAC ir TRUNC kas galit paaiskint?
-
tai ka jau esi padares? pagelbes ar isspres uz tave? ka turi omeny?
-
Man tik reikia, kad paaiskintu kas nors, ka tos funkcijos reiskia.
Kol kas esu tiek parases:
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
int main ()
{
double v , v1 , D, i, dv, dvy, m;
double dvs;
cout << "Iveskite automobilio Mazda greiti: " ; cin >> v;
cout << "Iveskite automobilio Audi greiti: " ; cin >> v1;
cout << "Iveskite atstuma tarp miestu: " ; cin >> D;
dv = D / v * 60 ; // gauname kiek laiko minutemis uztruko autmobilis mazda iveikti visa kelia
dvy = D / vy * 60; // gauname kiek laiko minutemis uztruko automobilis audi iveikti visa kelia
v = v * 1000 / 60;
v1 = v1 * 1000 / 60;
D = D * 1000;
for (m = 1; m <= 50 ; m+=0.05){
lm = (v * m) + (v1 * m);
cout << m << " " << lm << endl;
}
}
Bandziau su kintamaisiais, nes suprantu, kad kai jie susitiks tai abieju nuvaziuotu atstumu suma turi buti lygi keliui.
Bet jei greiciai buna sudetingesni nei 120 ar 60, tai funkcija neisveda tikslaus skaiciaus.
-
ka turi omeny "sudetingesni"?
-
Greitis koks tarkim 53 ir 73, nezinau ar daug ten po kablelio yra skaiciu, bet is tokiu nelabai gaunasi. O kaip manai ar i ta puse rasau programa?
-
trunc grąžina tik sveikąją dalį skaičiaus ( http://www.cplusplus.com/reference/cmath/trunc/ (http://www.cplusplus.com/reference/cmath/trunc/) yra lentelė su pvz. )
frac metodo nesugebėjau rasti. ar tikrai būtent toks? nes kiek google rado, tai nebent rankiniu būdy kiekvienas savo metodą pasirašo. Turbūt frac metdoas reiškia fractional. Tai bus skaičius esantis po kablelio. good luck :)
-
kazkodel man panasu, kad tau cia kazkas fail'ina del kintamuju tipu ir kad kazkuriuo metu jie gauna reiksmes ne tokias, kokias gali gauti.. siaip nezinau, as dirbu su php, ten tokiu bedu nebuna
-
Ta prasme gauna reiksmes ne tokias kokias gali gaut? Apie ka tu?
-
Ta prasme gauna reiksmes ne tokias kokias gali gaut? Apie ka tu?
na buna pvz int tipo kintamasis ir jei jam priskiri atsakyma 4/2 viskas ok, bet jei 4/3 jau nesigauna sveikas skaicius ir fail'as
-
Tai va, man ir idomu kaip susitvarkyt su tokiais skaiciais :)
-
Hey chebryte. Kaip for cikle parodyti didziausia jo reiksme?
-
Hey chebryte. Kaip for cikle parodyti didziausia jo reiksme?
gali tiksliau paaiškint ką nori padaryti? Matau, kad sunkiai sekasi su šiuo reikalu tai truputį padėsiu. Čia ciklas visiškai nereikalingas. Pagalvok taip: atstumas D trumpėja iš abiejų pusių (V1 ir V2 juda link vienas kito). Tad atstumas D per vieną valandą sutrumpėja V1 (iš vienos pusės) ir V2(iš kitos pusės). Vieot to, kad atliktum sudėtingus skaičiavimus, įsivaizduok automobilį, kuris juda V1 ir V2 sumos greičiu. Jis nuvažiuos atstumą D, tada automobiliai V1 ir V2 susitiks. Taigi paprastas algoritmas:
float laikas = D / (V1 + V2)
int valandos = trunc(laikas) // laiko sveikoji dalis - valandos
float minutės = (laikas - valandos) * 60 // atiimame valandas iš bendro laiko (juk nenorime, kad tas pačias valandas kelis kartus naudoti) ir padaugine iš 60 (valandų dalį paverčiame minutėmis)
-
Aciu jums, Ponas Evolution. Niekada negalvojau, kad viskas gali but taip paprasta...
-
#include <iostream>
using namespace std;
int main ()
{
int x , n , i ;
x = 1;
n = 75;
for (i = 0; i <= n; i = x * x){
x++;
cout << i << endl;
}
cout << i << endl;
}
Kodel pirmasis i issiveda 64, o sekantis jau 81? Gal kas nepagailes minutes ir paaiskins?