Keresés

Új hozzászólás Aktív témák

  • icespeak

    csendes tag

    Helló!
    A segítségeteket szeretném kérni az alábbi programban. Az lenne a feladat, hogy egy origóból induló vektorral eltoljam a megadott köröket. Megadjuk a vektor végpontját a körök középpontját és a sugaraikat. Csak valamiért nem megy.

    [B]main.cpp[/B]
    #include <iostream>
    #include <vector>
    #include "read.h"
    #include "pont.h"
    #include "kor.h"
    #include "vektor.h"
    #include <string>

    using namespace std;

    int main()
    {
    double d,e,r,x,y,u,k;
    cout<<"Adja meg a vektort\n";
    cout<<"d= "; cin>>d;
    cout<<"e= "; cin>>e;


    int n=ReadInt("\nKorok szama: ", "Termeszetes szamot varok!");
    vector<Kor> t(n);
    for(int i=0; i<n;++i)
    {
    cout<<"Az"<<i+1<<"-dik kor koordinatai:\n";
    x=ReadReal("\t x: ", "Valos szamot varok!");
    y=ReadReal("\t y: ", "Valos szamot varok!");
    Pont c;
    c.Beallit(x,y);
    r=ReadRealP("A kor sugara: ","Nem negativ valos szamot varok!");

    c.Eltol(u,k,d,e);
    c.Kiir(u, k);
    }


    return 0;
    }

    [B]kor.h[/B]
    #ifndef KOR_H_INCLUDED
    #define KOR_H_INCLUDED

    #include "pont.h"


    class Kor{
    private:
    Pont c;
    double r;
    public:
    };

    #endif // KOR_H_INCLUDED

    [B]pont.h[/B]
    #ifndef PONT_H_INCLUDED
    #define PONT_H_INCLUDED

    #include "vektor.h"


    class Pont{
    private:
    double x,y;
    public:
    Pont() {x=y=0.0;}
    void Beallit (double a, double b) {x=a; y=b;}
    void Eltol(double u, double k, double &a, double &b);
    void Kiir(double u, double k);
    };


    #endif // PONT_H_INCLUDED

    [B]vektor.h[/B]
    #ifndef VEKTOR_H_INCLUDED
    #define VEKTOR_H_INCLUDED

    class Vector2D{
    private:
    double d,e;
    public:
    Vector2D(): d(0.0), e(0.0) {}
    Vector2D(double &a, double &b): d(a), e(b) {}
    };

    #endif // VEKTOR_H_INCLUDED

    [B]pont.cpp[/B]
    #include <iostream>
    #include "pont.h"
    #include "vektor.h"

    using namespace std;

    void Pont::Eltol(double u, double k, double &a, double &b)
    {
    u=x+a;
    k=y+b;
    }

    void Pont::Kiir(double u, double k)
    {
    cout <<"u: "<<u<<endl;
    cout <<"k: "<<k<<endl;
    }

  • icespeak

    csendes tag

    válasz skoda12 #549 üzenetére

    Köszi a segítséget. A probléma azonban az hogy két hibával nem tudok mit kezdeni.
    Az egyik a main-ben 41-es sor error: at this point in file ez így érthetetlen számomra.
    A másik a headerben 11-es sor error: too many arguments to function `bool ReadFromFile(const std::string&).

  • icespeak

    csendes tag

    Hellótok C++-ban a header fájlnál van problémám a függvényekkel

    #include "read.h"
    #include "ellenoriz.h"
    #include <iostream>
    #include <vector>
    #include <sstream>
    #include <fstream>


    using namespace std;

    int main(int argc, char *argv[])
    {
    vector<vector<int> > t;

    char ch;
    do{
    // Adatok beolvasása
    vector<vector<int> > t;
    bool file_ok = true;

    // Adatbevitel módja
    int v;
    if(argc>1) v = 1;
    else{
    cout << "Az adatbeolvasás módja:"<< endl
    << " SZÖVEGES FÁJL(1)"<< endl
    << " BILLENTYŰZET (2)"<< endl;
    v = Read12("Válasszon: ","Csak 1 vagy 2 közül választhat!");
    }

    // Beolvasás
    string fname;
    switch(v)
    {
    case 1 :
    if(argc<=1){
    cout << "Adja meg a szöveges fájl nevét: ";
    cin >> fname;
    }
    else fname = argv[1];

    file_ok = ReadFromFile(fname, t);
    break;
    case 2 :
    cout << "Adja meg az értékeket!";
    ReadFromKeyboard(t);
    break;
    }

    // Kiíratás
    if(file_ok)
    {
    if(minden(t)) cout << "Minden sorban van legalabb egy primszam"<< endl;
    else cout << "Nincs minden sorban primszam"<< endl;

    cout << endl << "Futtassam újra? (I/N) "; cin >> ch;
    }
    }while(ch!='n' && ch!='N');

    return 0;
    }




    read.cpp tartalma



    #include "read.h"
    #include <iostream>
    #include <vector>
    #include <fstream>


    using namespace std;

    int Read12(const string &msg, const string &errormsg)
    {
    int n;
    bool hiba = true;
    do{
    cout << msg;
    string str;
    cin >> str;
    n = atoi(str.c_str());
    hiba = (n==0 && str!="0") || n<1 || n>2;
    if(hiba) cout << errormsg << endl;
    }while(hiba);
    return n;
    }

    void ReadFromKeyboard(vector<vector<int> > &t)
    {
    int n=ReadNat("kerek egy pozitiv egesz szamot( hany soros a matrix):\t","nem pozitiv egesz szamot adtal meg!");
    int m=ReadNat("kerek egy pozitiv egesz szamot( hany oszlopa van a matrixnak):\t","nem pozitiv egesz szamot adtal meg!");
    t.resize(n);
    for (int i=0;i<n;i++)
    {
    t[i].resize(m);
    for (int j=0;j<m;j++)
    {
    cout <<"t["<<i+1<<"]["<<j+1<<"]: ";
    t[i][j]=ReadInt("","nem szamot adtal meg!");
    }
    }
    }

    bool ReadFromFile(const string &fname)
    {
    int n,m,ertek;
    int t[n][m];
    ifstream x(fname.c_str());
    if(x.fail()){
    cout << "Hibás fájlnév!"<< endl;
    return false;
    }


    while(!x.eof()){
    for (int i=0;i<n;i++)
    {
    for (int j=0;j<m;j++)
    {
    x >> ertek;
    t[i][j]=ertek;
    }
    }
    }
    return true;
    }

    bool good(int k) {
    if (k>0)
    {
    return true;
    }
    else
    {
    return false;
    }
    }


    int ReadInt(string msg, string errormsg, bool cond(int) )
    {
    int n;
    bool hiba;
    do{
    cout << msg;
    string str;
    cin >> str;
    n = atoi(str.c_str());
    hiba = n==0 && str!="0" || !cond(n);
    if(hiba) cout<< errormsg<< endl;
    }while(hiba);
    return n;
    }


    int ReadNat(string msg, string errormsg, bool cond(int) )
    {
    int n;
    bool hiba;
    do{
    cout << msg;
    string str;
    cin >> str;
    n = atoi(str.c_str());
    hiba = n==0 && str!="0" || n<0 || !cond(n);
    if(hiba) cout<< errormsg<< endl;
    }while(hiba);
    return n;
    }





    read.h tartalma

    #ifndef _READ_
    #define _READ_

    #include <string>


    bool good(int k);
    int Read12(const string &msg, const string &errormsg);
    void ReadFromKeyboard(vector<vector<int> > &t);
    bool ReadFromFile(const string &fname);
    int ReadInt(std::string msg, std::string errormsg, bool cond(int) = good);
    int ReadNat(std::string msg, std::string errormsg, bool cond(int) = good);

    #endif

  • icespeak

    csendes tag

    válasz Jester01 #495 üzenetére

    Nagyon köszönöm, hogy kijavítottad, hálám a sírig...:R

  • icespeak

    csendes tag

    Hi mindenki. Szerintetek mi lehet az alábbi kóddal a probléma?

    /*
    10. A Föld felszínének egy vonala mentén egyenlő távolságonként megmértük a terep tengerszint
    feletti magasságát, és a mért értékeket egy vektorban tároljuk. Hány darab hegycsúcs van a
    mérési sorozatban?
    */

    #include <iostream>
    #include <fstream>
    #include <sstream>
    #include <vector>

    int Megszamol(const vector<int> t, int &c);
    bool ReadFromFile(const string &fname, vector<int> &t);
    void ReadFromKeyboard(vector<int> &t);
    int Read12(const string &msg, const string &errormsg);

    int main(int argc, char *argv[])
    {
    char ch;
    do{
    // Adatok beolvasása
    vector<int> t;
    bool file_ok = true;

    // Adatbevitel módja
    int v;
    if(argc>1) v = 1;
    else{
    cout << "Az adatbeolvasás módja:"<< endl
    << " SZÖVEGES FÁJL(1)"<< endl
    << " BILLENTYŰZET (2)"<< endl;
    v = Read12("Válasszon: ","Csak 1 vagy 2 közül választhat!");
    }

    // Beolvasás fájlból
    string fname;
    switch(v)
    {
    case 1 :
    if(argc<=1){
    cout << "Adja meg a szöveges fájl nevét: ";
    cin >> fname;
    }
    else fname = argv[1];

    file_ok = ReadFromFile(fname, t);
    if(!file_ok && argc>1) {
    char ch; cin >> ch;
    exit(1);
    }
    break;
    case 2 :
    cout << "Adjon meg mérési értékeket! Kilépés: quit \n";
    ReadFromKeyboard(t);
    break;
    }

    // Kiíratás
    if(file_ok)
    {
    if(Megszamol(c)) cout << "Hegycsúcsok száma:" << c << endl;
    else cout << "Nincs hegycsúcs"<< endl;

    cout << endl << "Futtassam újra? (I/N) "; cin >> ch;
    }
    }while(ch!='n' && ch!='N');

    return 0;
    }

    //Feladat: 1-es vagy 2-es beolvasása
    //Tevékenység: Billentyűzetről kizárólag két szám, az 1-es vagy a 2-es valamelyikét fogadja el
    // más adatot nem
    //Bemenő adat: string msg - a beolvasás előtt megjelenítendő üzenet
    // string error - hibás adat beírásakor megjelenítendő üzenet
    //Kimenő adat: int v - 1-es vagy 2-es szám (visszatérési értékként)
    int Read12(const string &msg, const string &errormsg)
    {
    int n;
    bool hiba = true;
    do{
    cout << msg;
    string str;
    cin >> str;
    n = atoi(str.c_str());
    hiba = (n==0 && str!="0") || n<1 || n>2;
    if(hiba) cout << errormsg << endl;
    }while(hiba);
    return n;
    }

    //Feladat: Integereket tartalmazó tömb (vector) feltöltése billentyűzetről
    //Tevékenység: Billentyűzetről olvas be egymás után integereket és helyezi el őket egy vektorban
    // addig, amíg a "quit" szót nem írjuk.
    //Bemenő adat: -
    //Kimenő adat: vector<int> t
    void ReadFromKeyboard(vector<int> &t)
    {
    int meres;
    cin >> meres;
    while(meres!="quit"){
    t.push_back(meres);
    cin >> meres;
    if (meres < 0){
    meres = 0;
    }
    }
    }

    //Feladat: Integereket tartalmazó vektor feltöltése szöveges állományból
    //Tevékenység: Megnyitja a megadott szöveges állományt (sikertelen kísérlet esetén hibát jelez)
    // majd a fájlból egymás után beolvassa az összes elválasztójelekkel határolt számot
    // és elhelyezi azokat egy vektor-ban
    //Bemenő adat: string fname - szöveges állomány neve
    //Kimenő adat: vector <int> t
    // bool ok - sikerült-e az állomány megnyitása (visszatérési értékként)
    bool ReadFromFile(const string &fname, vector<int> &t)
    {
    ifstream x(fname.c_str());
    if(x.fail()){
    cout << "Hibás fájlnév!"<< endl;
    return false;
    }

    int meres;
    x >> meres;
    while(!x.eof()){
    t.push_back(meres);
    x >> meres;
    if (meres<0){
    meres = 0;
    }
    }
    return true;
    }

    int Megszamol(const vector<int> t, int &c){
    int c=0;
    for(int i=0; i<(int)t.size(); i++){
    if(i<i+1 || i+1>i+2){
    c=c+1;
    }
    }
    return c;
    }

  • icespeak

    csendes tag

    válasz ArchElf #435 üzenetére

    A konkrét feladat az, hogy N napon át feljegyezzük, hogy mennyit nyertünk vagy vesztettünk és ki kell számolni, hogy hetente mennyit változott a pénzünk.

  • icespeak

    csendes tag

    Hogyan lehet elérni egy for ciklusnál, hogy az elemeket hetesével összeadja majd kiírja egymás után ezeket majd képezze ezeknek a hetesével összeadottaknak a különbségeit és azt is kiírja?

  • icespeak

    csendes tag

    válasz Jester01 #431 üzenetére

    Az OK, hogy úgy kell, de ha mittomén megadok 77 napot akkor eléggé nehézkes minden hetet összeadni és kivonni egymásból, ezért nem tudom a megoldást.

  • icespeak

    csendes tag

    válasz Jester01 #416 üzenetére

    Köszi a választ.
    Most az érdekelne, hogy ugyanebben a feladatban hogy tudnám megoldani hogy hetente legyenek a megadott összegek tehát első hét nap összege az 1. hét a második hét nap összege a 2. hét stb. és még ezt bonyolítva azzal, hogy a hetek közötti különbséget meg kell adni tehát 1. és 2. hét különbsége és a többi. Bármilyen ötletet szívesen fogadok.

  • icespeak

    csendes tag

    Hello mindenki, a következő programban érdekelne, hogy mit csinál a void kölcsönkérésben mert nem igazán tudom értelmezni.
    #include <iostream>

    using namespace std;

    const int maxN=100;
    void beolvasas(int &N,int P[],int &X);
    void kolcsonkeres(const int N,const int P[],const int X,bool &Van,int &Nap);
    void kiiras(const int N,const int P[],const int X,const bool Van, const int Nap );

    int main()
    { int N,X,Nap; //N napig jártunk lóversenyre, X pénzünk van kezdetben, Nap-on kell kölcsönkérni
    int P[maxN]; // naponként nyereségek, vagy veszteségek
    bool Van; //Van olyan nap, amikor kölcsön kell kérni
    cout<<"Loversenyezes.Mikor kell eloszor kolcsonkerni?"<<endl<<endl;
    beolvasas(N,P,X);
    kolcsonkeres(N,P,X,Van,Nap);
    kiiras(N,P,X,Van,Nap);
    return 0;
    }
    void beolvasas(int &N,int P[],int &X){
    do{
    cout<<"Hany napig loversenyezunk? (0.."<<maxN<<")";
    cin>>N;
    }while (!((N>=0)&&(N<=maxN))); //napok szama csak nem negativ lehet
    cout<<"Mennyi volt az indulo osszeg? "; //az előfeltétel nem írja elő, hogy csak pozitív adatot használhatunk
    cin>>X;

    for (int i=0;i<N;++i){
    cout<<i<<". napi nyereseg vagy veszteseg osszege FT-ban ";
    cin>>P[i];
    }
    }
    void kolcsonkeres(const int N,const int P[],const int X,bool &Van,int &Nap){
    int S=0;
    int i=0;
    while ((i<N)&&((S+P[i])>=0)){
    S+=P[i];
    ++i;
    }
    Van=(i<N);
    if (Van){
    Nap=i;
    }

    }
    void kiiras(const int N,const int P[],const int X,const bool Van, const int Nap ){
    cout<<X<<" FT-unk volt kezdetben."<<endl;
    cout<<"A verseny napjainak nyeresege es vesztesege..."<<endl;
    for (int i=0;i<N;++i){
    cout<<P[i]<<", ";
    }
    if (Van){
    cout<<endl<<" Az elso nap, amikor kolcson kellett kerni a(z) " <<Nap<<"."<<endl;
    }
    else {
    cout<<endl<<" Nem volt olyan nap, amikor kolcson kellett kerni..."<<endl;
    }

    }

  • icespeak

    csendes tag

    Hellótok!

    Segítséget szeretnék kérni egy program megírásához C++-ban. A lényeg hogy N napon át naponta feljegyeztük, hogy mennyit nyertünk vagy vesztettünk és ki kell számolni, hogy hetente mennyit változott a pénzünk. Ezen a feladaton keresztül szeretnék pár dolgot megtanulni a C++-ról szóval ha van tippetek szívesen fogadom.

Új hozzászólás Aktív témák

Hirdetés