Autorius Tema: Reikia pagalbos  (Skaityta 454 kartus)

Neprisijungęs DovydasMi

  • Naujokas
  • *
  • Įrašai: 8
  • Karma: +0/-0
    • Žiūrėti profilį
Reikia pagalbos
« Įrašytas: 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?

Neprisijungęs Lukas Liesis

  • Administratorius
  • Herojus
  • ******
  • Įrašai: 7264
  • Karma: +221/-15
    • Žiūrėti profilį
    • mano CV
Ats: Reikia pagalbos
« Atsakymas #1 Įrašytas: 2014-01-17 09:15:39 am »
tai ka jau esi padares? pagelbes ar isspres uz tave? ka turi omeny?
Jūsų draugas, kolega ir puslapio administratorius,

Lukas.

Manualai.lt Facebooke
serveriai.lt 50% nuolaida!
Free Hosting
Free Templates

Neprisijungęs DovydasMi

  • Naujokas
  • *
  • Įrašai: 8
  • Karma: +0/-0
    • Žiūrėti profilį
Ats: Reikia pagalbos
« Atsakymas #2 Įrašytas: 2014-01-17 20:05:09 pm »
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.
« Paskutinį kartą keitė: 2014-01-17 20:13:32 pm sukūrė DovydasMi »

Neprisijungęs Lukas Liesis

  • Administratorius
  • Herojus
  • ******
  • Įrašai: 7264
  • Karma: +221/-15
    • Žiūrėti profilį
    • mano CV
Ats: Reikia pagalbos
« Atsakymas #3 Įrašytas: 2014-01-17 20:35:19 pm »
ka turi omeny "sudetingesni"?
Jūsų draugas, kolega ir puslapio administratorius,

Lukas.

Manualai.lt Facebooke
serveriai.lt 50% nuolaida!
Free Hosting
Free Templates

Manualai.lt Forumas

Ats: Reikia pagalbos
« Atsakymas #3 Įrašytas: 2014-01-17 20:35:19 pm »

Neprisijungęs DovydasMi

  • Naujokas
  • *
  • Įrašai: 8
  • Karma: +0/-0
    • Žiūrėti profilį
Ats: Reikia pagalbos
« Atsakymas #4 Įrašytas: 2014-01-17 22:11:01 pm »
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?

Neprisijungęs evolution

  • Naujokas
  • *
  • Įrašai: 100
  • Karma: +2/-0
    • Žiūrėti profilį
Ats: Reikia pagalbos
« Atsakymas #5 Įrašytas: 2014-01-17 23:19:41 pm »
trunc grąžina tik sveikąją dalį skaičiaus ( 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 :)

Neprisijungęs Lukas Liesis

  • Administratorius
  • Herojus
  • ******
  • Įrašai: 7264
  • Karma: +221/-15
    • Žiūrėti profilį
    • mano CV
Ats: Reikia pagalbos
« Atsakymas #6 Įrašytas: 2014-01-18 10:35:14 am »
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
Jūsų draugas, kolega ir puslapio administratorius,

Lukas.

Manualai.lt Facebooke
serveriai.lt 50% nuolaida!
Free Hosting
Free Templates

Neprisijungęs DovydasMi

  • Naujokas
  • *
  • Įrašai: 8
  • Karma: +0/-0
    • Žiūrėti profilį
Ats: Reikia pagalbos
« Atsakymas #7 Įrašytas: 2014-01-18 13:19:41 pm »
Ta prasme gauna reiksmes ne tokias kokias gali gaut? Apie ka tu?

Neprisijungęs Lukas Liesis

  • Administratorius
  • Herojus
  • ******
  • Įrašai: 7264
  • Karma: +221/-15
    • Žiūrėti profilį
    • mano CV
Ats: Reikia pagalbos
« Atsakymas #8 Įrašytas: 2014-01-18 13:21:53 pm »
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
Jūsų draugas, kolega ir puslapio administratorius,

Lukas.

Manualai.lt Facebooke
serveriai.lt 50% nuolaida!
Free Hosting
Free Templates

Neprisijungęs DovydasMi

  • Naujokas
  • *
  • Įrašai: 8
  • Karma: +0/-0
    • Žiūrėti profilį
Ats: Reikia pagalbos
« Atsakymas #9 Įrašytas: 2014-01-18 14:27:25 pm »
Tai va, man ir idomu kaip susitvarkyt su tokiais skaiciais :)

Neprisijungęs DovydasMi

  • Naujokas
  • *
  • Įrašai: 8
  • Karma: +0/-0
    • Žiūrėti profilį
Ats: Reikia pagalbos
« Atsakymas #10 Įrašytas: 2014-01-18 18:50:57 pm »
Hey chebryte. Kaip for cikle parodyti didziausia jo reiksme?

Neprisijungęs evolution

  • Naujokas
  • *
  • Įrašai: 100
  • Karma: +2/-0
    • Žiūrėti profilį
Ats: Reikia pagalbos
« Atsakymas #11 Įrašytas: 2014-01-19 15:43:47 pm »
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)

Neprisijungęs DovydasMi

  • Naujokas
  • *
  • Įrašai: 8
  • Karma: +0/-0
    • Žiūrėti profilį
Ats: Reikia pagalbos
« Atsakymas #12 Įrašytas: 2014-01-19 21:54:51 pm »
Aciu jums, Ponas Evolution. Niekada negalvojau, kad viskas gali but taip paprasta...

Neprisijungęs DovydasMi

  • Naujokas
  • *
  • Įrašai: 8
  • Karma: +0/-0
    • Žiūrėti profilį
Ats: Reikia pagalbos
« Atsakymas #13 Įrašytas: 2014-02-02 14:58:41 pm »
#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?

Manualai.lt Forumas

Ats: Reikia pagalbos
« Atsakymas #13 Įrašytas: 2014-02-02 14:58:41 pm »