Jump to content
GSForum - Segélyvonal

Programozás C/C++-ban


Recommended Posts

Posted

Őket nem ismerem. Gondolom azért, mert én B-s vagyok.

 

Sehol nem szánnak rá többet. Nekünk laborgyakorlat sem volt. Alaposan ásd bele magad, mert az egyetem hátralévő részében enélkül nem leszel meg.

Posted

Na péntek hajnalban (3 órakor) kaptam egy levelet, hogy vasárnap éjfélig be kell adnom, vagy nem kapok gyakorlati jegyet. Aznap hajnalban eljöttem Prágába, még mindig itt vagyok, így magammal kellett hoznom a laptopom és elkezdeni a feladatot. A vonaton foglalkoztam vele, tegnap semmi idõm nem volt, ma valahogy be kell fejeznem a dolgot. Eddig jutottam vele:

 

delt.h tartalma

#ifndef DELT_H_INCLUDED
#define DELT_H_INCLUDEDusing namespace std;

#include <iostream>

using namespace std;

class deltoid {

    private:
        int atlo1;
        int atlo2;
        float arany;


    public:
        deltoid ();
        //deltoid ();
        void Beolvas();
        void Kiir();

        int Oldalak (int o1, int o2, float a);
        int Kerulet (int k);

};

#endif // DELT_H_INCLUDED

 

delt.cpp tartalma

#include "delt.h"

using namespace std;

deltoid::deltoid(){
    atlo1=0;
    atlo2=0;
    arany=0;
    };

void deltoid::Beolvas (){

    int sv;
    float sv2;

    do{
    cout <<"Kerem az e atlot: ";
        cin >> sv;
        atlo1=sv;

    }while (atlo1<=0);


    do{
    cout <<"Kerem az f atlot: ";
        cin >> sv;
        atlo2=sv;

    }while (atlo2<=0);

    do{
    cout <<"Kerem az aranyt: ";
        cin >> sv2;
        arany=sv2;

    }while (arany<=0 || arany >=1);

}


void deltoid::Kiir () {

    cout <<"\n A deltoid e atloja: " << atlo1 << endl;
    cout <<"\n A deltoid f atloja: " << atlo2 << endl;
    cout <<"\n Az atlok keresztezesenek aranya: " << arany << endl;

    }

int deltoid::Kerulet (int k) {

    k=((atlo1*atlo2)/2);

    cout << " A deltoid kerülete: " << k << endl;

    return k;
    }

int deltoid::Oldalak (int o1, int o2, float a) {

    a=0;

    a=atlo1/arany;

    return a;

    }

 

main.cpp


#include "delt.h"

using namespace std;

int main () {

    deltoid a;

    a.Beolvas();
    a.Kiir();


    return 0;

};

 

A program ugyan helyesen lefut és kéri a 2 átlót valamint az arányt. De a feladatokat azt nem akarja kiírni.

Meg tudnátok mondani, hogy mi a helyes módja ennek? Nagyon fontos lenne.

Elõre is köszönöm a fáradozását annak, aki segít.

 

Kérlek, használj ékezeteket! <KGigi>

Posted

Ööö ez így elég érdekes:

 

#define DELT_H_INCLUDEDusing namespace std;

Az a csoda, hogy ez így lefordult.

 

Biztos vagy benne, hogy nem írja ki az eredményt? Nem csak bezáródik a konzol?

 

Az oldalak és a kerület függvényed mit csinál? Milyen paramétereket kapnak? Egyébként a beolvasásod elszáll, vagy értelmetlen számokat olvas be, ha nem számot írsz be, vagy pl. 5 helyett 5.0-t.

 

Persze, hogy nem kapsz gyakjegyet, ha nem adod le. Már a múlt hét sem szorgalmi időszak volt.

Posted

Azt a kod reszlet amit belinkeltel a codeblocks magatol rakja bele.

Bocsi az ekezetekert, de cseh billentyuzeten ezt nem tudom kivitelezni.

Az oldalak fuggveny az oldalakat fogja majd kiszamitani, de ott egyelore a kodban meg csak az e atlo kisebbik felet szamolom ki. Tudod kis haromszogekbol es pitagorasztetelbol megvannak a deltoid oldalai. De azt meg nem irtam oda.

 

A kerulet fuggveny pedig a deltoid keruletet hivatott kiszamolni.

Az ablak nem csak magatol zarodik be. Rendesen megadom az adatokat es aztan vissza kiratom a kepernyore. De utana nem kapom meg a Kerulet fuggveny eredmenyet.

Posted

#define DELT_H_INCLUDED

using namespace std;

 

Ez két utasítás, annak, ami ott van, semmi értelme. A CodeBlocks ezt biztosan nem csinálta, valószínűleg ki lett törölve egy sor, és ez lett belőle. Javítsd ki, aztán meglátjuk, hogy mit csinál.

 

A kerulet() és oldalak() metódusoknak miért adsz paramétert? Minden ott van az osztályban, amire szükséged van. Ráadásul megint szembemész a konvenciókkal, ha egy paraméterül kapott változót meg akarsz változtatni, akkor referencia szerint add át, ha pedig nem, akkor konstansként, és ne szerepeljen értékadás bal oldalán. Ha paramétereken keresztül akarsz értéket visszaadni, és nem visszatérési értékként, akkor is referencia szerint kéne átadnod. Így nem lehet tudni, hogy mit is akarsz. Ráadásul az oldalak függvényed egészet adna vissza, a te 'a' változód viszont lebegőpontos. Figyelmeztet is rá a fordító, ezeket nem kéne figyelmen kívül hagyni.

 

Egyébként nálam kiír mindent, nem tudom, mit csinálsz. :D Ha a kerület függvényre gondolsz, azt nem is hívod meg sehol. Direkt CodeBlocks-szal fordítottam.

Posted

A floatert nalam is szolt a fordito. De a kerulet fuggvenynel nem, mig csak az volt.

A Terulet() fg-t a main-ben a.Terulet() -el hivom meg es így jo.

Most vettem eszre a kerulet a terulet akart lenni.

 

Igazad volt azzal a sorral kapcsolatban. Ott veletlenul egy soran maradtak a dolgok. Azt nem is vettem eszre rogton mikor eirtad :(

 

Itt van a valtoztatas most ugyan lefordul.

int deltoid::Terulet () {

    int t;
    t=((atlo1*atlo2)/2);

    cout << " A deltoid kerülete: " << t << endl;

    return 0;
    }

float deltoid::Oldalak () {

    float a,b,o1,o2;

    a=atlo1/arany;

    b=atlo1-a;

    o1 = ((a*a)+(b*b));

    return a;

    }

Posted

Ezt miért így csinálod? Inkább így:

 

int deltoid::Kerulet ()
{
    return (atlo1*atlo2)/2;
}

Aztán csinálsz egy ilyet:

 

cout << "A deltoid kerülete: " << a.Kerulet() << "." << endl;

Sokkal átláthatóbb, hogy mit csinálsz, és te sem őrülsz bele a hibakeresésbe.

 

Az Oldalak függvényben mit akarsz csinálni? Az o1, o2 lokális változókat mire használod? Mert vissza nem adod őket, az o2 pedig értéket sem kap.

Posted

Az o1 lenne a rovidebbik oldala az o2 pedig a hoszabbik oldala a deltoidnak.

Posted

De akkor miért nem adott vissza õket? Akár visszatérési értékként, akár paraméterként.

Posted

Az e atlonak, tehat az atlo1nek megvan a ket resze ami az a es a b valtozo.

 

Az o1-et kiiratom kepernyore, hogy lassam mit ad ertekul, csak ide nemm kerult bele a kodba.

 

btw hogy tudom a cosinust es a sinust hasznalni a kesobbiekben a szogek kiszamitasara? Nem igazan fordult meg elo, persze biztos,hogy 1-2szer igen. de nem jut eszmbe.

 

Az atlo2 csak siman felezve van az atlo 1el 2 egyenlo reszre, ugye?

Posted

Tehat most így nez ki az oldalak fuggveny. Majd ha kesz van minden szamitas akkor szepitem ahogy azt az elobb ajanlottad is :)

sinus, cosinus megvan. ugye kiszamolom pl sinusszal a szog szemkozti befogo per az atfogo erteket ez szinusz Alfa. De ebbol, hogy lesz meg nekem az alfa. Kodban, hogy hasznaljam?

 

Az atlo1 felosztasa sem jo. Mert ugye elosztom az arannyal es abbl kijon 3 cm eseten, ha 0.75 az arany, hogy 4. Azt, hogy kellene helyesen kiszamolni, hogy az atlo1et mileyn hosszu reszekre osztja az atlo2 ?

 

float deltoid::Oldalak () {

    float a,b,o1,o2, x;

    a=atlo1/arany;

    b=atlo1-a;

    x=atlo2/2;

    o1 = ((a*a)+(x*x));
    o1 = sqrt(o1);

    o2 = ((b*b)+(x+x));

    cout << "\nAz a oldal: " << o1 << endl;
    cout << "\nA b oldal: " << o2 << endl;

    return 0;

    }

Posted

#include <math.h>

Ebben a fejállományban találod a trigonometrikus függvényeket. Float paramétert várnak radiánban. Egyébként Google első találat...

 

Rajzolj már le egy deltoidot, egyből látszik. Túlbonyolítod. :)

Posted

Lerajzoltam a deltoidot de akkor sem vagyok benne bizos. A math-h pedig hasznalom mert ugye kell a pitagorasz tetelhez, hogy gyokotvonjak.

Csak nekem az kell, hogy hogy lesz meg a sin L egyenlo b/c-bol az L.

Posted

Ööö 1) minek az neked, 2) tg alfa = sin alfa / cos alfa.

Posted
Csakhogy kell tan-1 t csinalni azt nem vagom.

Úgy hívják, hogy arcus tangens, atan néven fut.

Posted
Ööö 1) minek az neked, 2) tg alfa = sin alfa / cos alfa.

 

 

Nem tan-1et akartam irni.

 

Azert, hogy ki tudjam szamolni a szogeket. Tudod derekszogu haromszogben. Es mivel a szoget kell kiszamolni es a szog sinuszanak az erteke a befogo meg az atofogo hanyadosa, van megadva. Es ugye nekem nem a szog szinusza hanem maga a szog kell.

Posted

Jah, hogy arcus tangens. Bocs, én azt hittem, hogy tg -1 kell neked... Egyébként át lehet hidalni pl. egy koszinusztétellel.

 

Oké, hogy nincsen ékezeted, de attól még lehet normálisan írni.

Posted

Nem hiszem, hogy nem normalisan irnek :) Most mi ezen a nem normalis. Lehet picit erzodik, hogy kapkodok, de hat szerintem te is voltal mar ilyen szituacioban.

Posted
Pl. szituációban, és nem szituációba. Az egyik legnagyobb igénytelenség, amit magyarul el lehet követni. De alapvetően tele van elgépelésekkel. Egyébként nem, nem voltam hasonló helyzetben, soha nem csúsztam beadandóval. Heteket főleg nem. Szerencséd van, engem simán megvágtak volna a szorgalmi időszak végével, ha nem adom le. És jogos is lett volna, ez nem olyan nagy munka. Majd a grafikus programokra kellenek napok. Ez 1-2 óra alatt simán megírható. Amikor tanultam, akkor sem volt soha több egy délutánnál.
Posted

Jo neked, hogy így vagod a programozast. En nem az a zseni programozo vagyok. Az elgepelesert bocsanat. Netbookot hasznalok eloszor eletembe es utalom nagyon, raadasul olyan kicsik a betuk, hogy alig latom.

A nyelvezetre hidd el mindig megprobalok odafigyelni.

Posted
Az egyetem elõtt kiírattam 1-tõl 10-ig a számokat a képernyõre, ez volt a programozás. Szóval azt tudom, amit az ELTÉ-n megtanítottak, illetve amit meg kellett volna tanítaniuk, de csak számonkérték.
Posted

(off)

 

Pont ma délelőtt találtam egy marha jó kis oldalt: webdevRefinery. Gyakorlatilag egy fórum, ahol fejlesztők segítenek fejlesztőknek. A regisztráció előtt van egy kis útbaigazítás a fórum 3 alapszabályáról:

 

Rule 1: Mean Devs Suck. We're patient with folks here, and always encouraging. We hope you are too :). We'll ask people to leave if they talk down to others or discourage them, but we really hate doing that. So only get involved if you can stay cool!

 

Rule 2: Google first, ask questions later! Folks are genuinely happy to teach here, but you have to show that you're capable of helping yourself! If you have a question Google can answer, try Google first -- then tell us what you learned :)

 

Rule 3: Use full words and punctuation. Some of you may be more comfortable with txt tlk, but a forum like this doesn't work unless everyone is easy to understand. No typing 'u' for 'you' or skipping the commas and periods, please :)

Néha olyan jó viszontlátni, hogy nem vagyok egyedül ezekkel a gondolatokkal. :)

 

(Lefordítsam?)

 

(on)

Posted
Az egyetem elõtt kiírattam 1-tõl 10-ig a számokat a képernyõre, ez volt a programozás. Szóval azt tudom, amit az ELTÉ-n megtanítottak, illetve amit meg kellett volna tanítaniuk, de csak számonkérték.

 

Na én tegnap megszenvedtem a dolgokkal. De legalább mostmár jobban értem így. Köszi a segítséget :)

P.s: most már nem lesz gond az ékezetekkel :)

 

Posted

Ásd bele magad az osztályokba, ha legközelebb nem szeretnél így járni. :)

Posted

Muszáj leszek :) Még egyszer köszi az instrukciókat.

Eddig mindig megcsináltam a házikat időben, csak most úgy gondoltam jobb egy 0-ás.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...