Pereiti prie turinio

c++ uzduotis


Rekomenduojami pranešimai

  • po 1 metų...

5. Užduotis „Spalvojimo pieštukai“. Turime n (1 ≤ n ≤ 100) spalvotų pieštukų naudojimo istoriją. Pieštukai naudojimo metu buvo drožiami peiliu arba drožtuku. Nudrožtais pieštukais buvo braižomi brėžiniai. Pieštukai galėjo būti ir nulūžę. Naudojimo istorija koduojama raidėmis: D – drožimas drožtuku, P – drožimas peiliu, B – braižymas, L – lūžimas.

 

Parenkite programą, kuri apskaičiuotų likusį pieštukų ilgį. Skaičiuojant svarbu žinoti, kad:

 

1. Naudojimo pradžioje visi pieštukai yra nauji, nedrožti ir yra 15 cm ilgio.

 

2. Drožiant pieštuką peiliu, jis sutrumpėja 10 mm.

 

3. Drožiant pieštuką drožtuku, jis sutrumpėja 7 mm.

 

4. Pieštukas gali nulūžti drožiant arba braižant.

 

5. Jeigu braižant brėžinius pieštukas nenulūžta, tai:

 

a) drožtas peiliu jis sutrumpėja 7 mm;

 

b) drožtas drožtuku jis sutrumpėja 5 mm.

 

6. Jeigu braižant brėžinius pieštukas nulūžta, tai jis drožiamas peiliu arba drožtuku.

 

Pirmoje pradinių duomenų failo eilutėje nurodytas pieštukų skaičius n, kitose n eilučių yra pieštukų naudojimo istorijos. Eilutės pradžioje nurodyta pieštuko spalva (jai skiriama 20 pozicijų). Toliau eilutėje yra veiksmų, atliekamų su pieštuku, skaičius m (1 ≤ m ≤ 100) ir patys veiksmai, atskirti tarpo simboliais.

 

Atskirose rezultatų failo eilutėse turi būti nurodoma kiekvieno pieštuko spalva ir jo ilgis milimetrais naudojimo pabaigoje.

--------------------------------------------------------------------------------------------

Pradiniai duomenys

 

3

 

Mėlynas 9 P B L D B P L P B

 

Raudonas 15 D B D B D B D L D B D B D B L

 

Šviesiai žalias 1 P

-------------------------------------------------------------------------------------------------------------

Rezultatai

 

Mėlynas 81

 

Raudonas 62

 

Šviesiai žalias 140

 

 

galit gal padėti ???

Nuoroda į pranešimą
Dalintis kituose puslapiuose
  • po 5 mėnesių...

Prikeliu temą, nesuprantu kodėl error meta, štai kodas:

 

#include <iostream>
#include <iomanip>
#include <cmath>

using namespace std;

const char FVD = "duom.txt";
const char FVR = "rez.txt";

void ivesk(const char FV[], double &a, double &b);
void rasyk(const char FV[], double x);
double StPlotas(double a, double b);

int main()
{
   double a, b, S;
   ivesk(FVD, a, b);
   S = StPlotas(a, b);
   rasyk(FVR, S);
   return 0;
}

void ivesk(const char FV[], double &a, double &b)
{
   ifstream Duom(FV);
   Duom >> a >> b;
   Duom.close();
}

void rasyk(const char FV[], double x)
{
   ofstream Rez(FV);
   Rez << "Staciakampio plotas S = ";
   Rez << setprecision(4) << setw(11);
   if (abs(x) < 1 || abs(x) > 100)
       Rez << scientific;
       else Rez << fixed;
   Rez << x << endl;
   Rez.close();
}

double StPlotas(double a, double b)
{
   return a * b;
}

 

Pats error: invalid conversion from char to const char*. Ačiū. :)

 

EDIT: Radau klaidą. Vadovėlio autoriai išsižioję, jau ne pirmas kartas kai klaidų randu.

 

vietoje

 

const char FVD = "duom.txt";
const char FVR = "rez.txt";

 

turi buti

 

const char FVD[] = "duom.txt";
const char FVR[] = "rez.txt";

Redagavo Drenx
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Sveiki, gavau tokią užduotį Žmogus išvyksta i susitikima d diena h valanda ir m minuciu. Jo keliones trukme yra h1 valandu ir m2 minuciu. Ar jis suspes atvykti i susitikima kurio pradzia d1 diena h2 valanda m3 minuciu. NURODYMAS naudoti void tipo funkcija kuri išmestų atsakymą TAIP arba NE.

 

 

Viską čia suskaičiuoju, toj funkcijoj randu atsakymą, tačiau kaip padaryti, kad ji grazintu atsakyma taip arba ne?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Sveiki, gavau tokią užduotį Žmogus išvyksta i susitikima d diena h valanda ir m minuciu. Jo keliones trukme yra h1 valandu ir m2 minuciu. Ar jis suspes atvykti i susitikima kurio pradzia d1 diena h2 valanda m3 minuciu. NURODYMAS naudoti void tipo funkcija kuri išmestų atsakymą TAIP arba NE.

 

 

Viską čia suskaičiuoju, toj funkcijoj randu atsakymą, tačiau kaip padaryti, kad ji grazintu atsakyma taip arba ne?

 

naudok Bool tipą jeigu teisingai suprantu tau reikia TRUE / FALSE, kad rašytu?, o jei paprastai , kad rašytų tai su IF sakinių daryk sąlygą jeigu sąlyga tenkinama tada

cout << "TAIP" << endl;

jeigu ne tada

cout<< "NE" <<endl;

 

pvz:
if( A == 1)
{
cout << " TAIP" << endl;

} else if( A != 1)
{
 cout<< "Ne" <<endl;
}

Redagavo Julinho
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Gal galite pagelbėti. Koki duomenų tipą galėčiau panaudoti jei man reikalingi skaičiai yra iki 10^30 ir atsakymas turi būti nesuapvalintas ir tikslus.

Kaip ir rašiau praeitoje temoje, tau reikia susikurti savo duomenų tipą. Kaip pagrindą gali naudoti int(arba char jei nori sutaupyti truputį atminties) masyvą iš 30 elementų. Kiekvienas masyvo elementas bus skaičiaus skaitmuo. Tada dar reikęs apsirašyti operacijas kurias tau reikia atlikti su tais skaičiais, pvz. sudėtis ar daugyba. Naudojant string vietoje masyvo darbas gal kažkiek sumažėtų.

Nuoroda į pranešimą
Dalintis kituose puslapiuose
  • po 2 savaičių...

Sveiki, darau užduotį ir niekaip nesugalvoju kaip atspausdinti atsakymą.

Užduotis

 

http://www.part.lt/img/018766012b4c4326c8737407c0bc5664656.JPG

 

Darau taip:

nuskaitau duomenis

suskaičiuoju taškų atstumą

surikiuoju

reikia atspausdinti atsakymą bet niekaip nesugalvoju kaip tai padaryti, o gal blogas mano sprendimas ?

 

Kodas

#include <iostream>
#include <fstream>
#include <cmath>
#include <iomanip>
using namespace std;

const char Dfailas[]="duomenys.txt";
const char Rfailas[]="rezultatas.txt";

void skaitytid(int X[], int Y[], int &x0, int &y0, int &n);
void atstumas(int X[], int Y[], double C[], int x0, int y0, int n);
void rikiavimas(double C[], int n);
int main ()
{
   int n, x0, y0;
   int X[50], Y[50];
   double C[50];

   skaitytid(X, Y, x0, y0, n);
   atstumas(X, Y, C, x0, y0, n);
   rikiavimas(C, n);

   for(int i=0; i<n; i++)
   {
       cout << C[i] << endl;

   }

   return 0;
}

void skaitytid(int X[], int Y[], int &x0, int &y0, int &n)
{
   ifstream fd(Dfailas);
   fd >> n >> x0 >> y0;
   for(int i=0; i<n*2; i++)
       fd >> X[i] >> Y[i];
   fd.close();
}

void atstumas(int X[], int Y[], double C[], int x0, int y0, int n)
{
   for (int i=0; i<n; i++)
       C[i]=sqrt(((X[i]-x0)*(X[i]-x0))+((Y[i]-y0)*(Y[i]-y0)));
}

void rikiavimas(double C[], int n)
{
   for(int i=0; i<n-1; i++)
       for(int j=i+1; j<n; j++)
           if(C[j]<C[i])
               swap(C[j],C[i]);
}

 

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...