Results 1 to 5 of 5

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Registered User
    Join Date: Jan:2018
    Location: Âðàöà
    Posts: 9

    Ïðîãðàìà íà c++

    Çäðàâåéòå ,èçïèòâàì çàòðóäíåíèÿ ñ òàçè çàäà÷à ,ñòèãàí ñúì äî íÿêúäå ,íî íå çíàì êàê äà ïðîäúëæà

    Äà ñå ñúçäàäå êëàñ ,îïèñâàù ëèíèÿ ïî äâå òî÷êè ,Êëàñúò äà ñúäúðæà ìåòîäè çà âúâåæäàíå è èçâåæäàíå êîðäèíàòèòå íà òî÷êàòà è êîíñòðóêòîð çà íóëèðàíå íà ÷ëåí äàííèòå.Êëàñúò äà ñúäúðæà ìåòîä çà íàìèðàíå äúëæèíàòà íà îòñå÷êàòà .Äà ñå ñúçäàäå ïðîãðàìà êîÿòî äåôèíèðà äèíàìè÷åí ìàñèâ îò n îòñå÷êè â ðàâíèíàòà ,âúâåæäà ñòîéíîñòèòå çà êîðäèíàòèòå è ñîðòèðà ëèíèèòå ïî òåõíèÿ ðàçìåð íà ìåòîäà íà Øåë .Ñîðòèðàíåòî íà ìàñèâà äà ñå èçÿâúðøè ÷ðåç ïðèÿòåëêà ôóíêöèÿ íà êëàñà .


    #include "pch.h"
    #include <iostream>
    #include <math.h>
    using namespace std;


    class Point
    {
    private:
    double x, y;
    public:
    Point();
    void Output();
    void Input();
    double getx();
    double gety();
    double Leught(Point a, Point b);
    friend void sort(int,int);


    };


    Point::Point()
    {
    x = y = 0;

    }

    double Point::getx()
    {
    return x;
    }

    double Point::gety()
    {

    return y;
    }


    void Point::Input()
    {
    cout << "Kordinati za x = ";
    cin >> x;
    cout << "Kordinati za y = ";
    cin >> y;

    }

    void Point::Output()
    {
    cout << "(" << x << "," << y << ")";
    }


    double Point::Leught(Point a ,Point b)
    {

    double d;
    d = sqrt((a.getx() - b.getx())*(a.getx() - b.getx()) + (a.gety() - b.gety())*(a.gety() - b.gety()));
    return d;


    }


    void sort(int a[],int n)
    {
    int gap,i,j,temp;

    for(gap=n/2;gap>0;gap/=2)
    {
    for(i=gap;i<n;i+=1)
    {
    temp=a[i];
    for(j=i;j>=gap&&a[j-gap]>temp;j-=gap)
    a[j]=a[j-gap];

    a[j]=temp;
    }
    }
    }


    int main()

    {
    int n;

    cout << "Broi tochki";
    cin >> n;

    Point *Line = new Point[n];
    for (int i = 0; i < n; i++)
    {
    Line[i].Input();
    }



    }

  2. #2
    Deleted User 4eRNoBiL's Avatar
    Join Date: Oct:2005
    Location: Ñòàðà Çàãîðà
    Posts: 739
    Ïúðâî, äàäåíè ñà òè äâå çàäà÷è, êîåòî ñïîðåä ìåí çíà÷è, ÷å òðÿáâà äà íàïðàâèø äâå ïðîãðàìè, à íå åäíà. Åäíà - çà ëèíèÿòà (îòñå÷êàòà?) è åäíà - çà ìàñèâà ñ îòñå÷êè. Àêî ãè íàïðàâèø ïîîòäåëíî, ùå ïðåìàõíåø äîñòà çàòðóäíåíèÿ.

    Âòîðî: óñëîâèåòî íà ïúðâàòà çàäà÷à å íåïúëíî è íåÿñíî. Äàëè òîâà èäâà îò òåá èëè îò çàäàëèÿ äîìàøíàòà íå çíàì, íî íÿìà êàê äà ñå èçïúëíè áåç äà ñå óòî÷íè. Ïðàâà (íå ëèíèÿ) èëè îòñå÷êà òðÿáâà äà ñå îïèøå? Êëàñúò òðÿáâà äà ñúäúðæà ìåòîä çà âúâåæäàíå è èçâåæäàíå íà êîîðäèíàòèòå íà òî÷êàòà - êîÿ òî÷êà? Çàùî å åäíà? Îòêúäå ùå äîéäå äðóãàòà, çà äà ñå ïîëó÷è ïðàâà? Êàêâà äúëæèíàòà íà îòñå÷êà ñå òúðñè, ñëåä êàòî îòñå÷êà íå ìîæå äà áúäå îïðåäåëåíà ñàìî ñ åäíà òî÷êà?

    Òðåòî: óñëîâèåòî íà âòîðà çàäà÷à ñòàâà, ñàìî ÷å ïàê íå å ÿñíî ùî å ïðàâà, ëèíèÿ è îòñå÷êà. Ïúðâî ñè èçÿñíè òåçè ïîíÿòèÿ è ñëåä òîâà ùå ìîæåø äà ÿ ðåøèø. Ïîíå òóê îò êîíòåêñòà ñòàâà ÿñíî, ÷å ñå èìà ïðåäâèä îòñå÷êà.

    Ôóíêöèÿòà òè çà ñîðòèðàíå íå å êàêòî òðÿáâà. Êîãàòî äåëèø, íèêîãà íå ìîæå äà äîñòèãíåø íóëà, òîåñò íàé-âúíøíèÿ öèêúë íå áè òðÿáâàëî äà ñïðå íèêîãà.
    Fujistu Lifebook E756 | Core i7-6500U / 400MHz-3.1GHz | 8 GB DDR4-2133 | Samsung PM871 / 256 GB SSD | 15" 1920x1080 | Manjaro Linux + kernel 4.19

  3. #3
    Registered User
    Join Date: Jan:2018
    Location: Âðàöà
    Posts: 9
    Eìè âñúùíîñò ñêàëúïèõ íåùî ,íî äîêîëêî å âÿðíî ..

    #include <iostream>
    #include <math.h>
    #include <windows.h>
    using namespace std;


    class Line
    {
    private:
    int id ;
    double xa, ya, xb, yb;


    public:
    double length;
    Line();
    void Input(int tid);
    void Output();
    void getLength();
    friend void ShellSort();
    };

    Line::Line()
    {
    xa = xb = ya = yb =id= length = 0;
    }






    void Line::Input(int tid)
    {
    id = tid;
    cout << "---Line id: " << tid << endl;
    cout << "Enter X coordinate for point A" << endl;
    cin >> xa;
    cout << "Enter Y coordinate for point A" << endl;
    cin >> ya;
    cout << "Enter X coordinate for point B" << endl;
    cin >> xb;
    cout << "Enter Y coordinate for point B" << endl;
    cin >> yb;
    }


    void Line::Output()
    {

    cout << "Line : "<<id << " xA : " << xa << " yA: " << ya << " xB : " << xb << " yB: " << yb << " Length : " << length << endl;
    }


    void Line::getLength()
    {

    length = sqrt((xa - xb)*(xa - xb) + (ya - yb)*(ya - yb));
    }


    void ShellSort(int n, Line Array[])
    {
    for (int gap = n / 2; gap > 0; gap /= 2)
    {
    for (int i = gap; i < n; i += 1)
    {
    Line temp = Array[i];
    int j;
    for (j = i; j >= gap && Array[j - gap].length > temp.length; j -= gap)
    Array[j] = Array[j - gap];
    Array[j] = temp;
    }
    }
    }




    int main()

    {
    int nLines;



    cout << "Broi tochki ";
    cin >> nLines;

    Line* Array = new Line[nLines];
    for (int i = 0; i < nLines; i++)
    {
    Array[i].Input(i);
    Array[i].getLength();

    }

    for (int i = 0; i < nLines; i++)
    {

    Array[i].Output();
    }



    Line* unsortedLines = new Line[nLines];
    for (int i = 0; i < nLines; i++)
    {
    unsortedLines[i] = Array[i];
    }

    ShellSort(nLines,Array);

    for ( int i =0; i < nLines; i++ )
    {

    cout << endl;
    cout << Array[i].length<< " || " << unsortedLines[i].length;
    cout << endl;

    }


    delete[]Array;
    delete[]unsortedLines;

    return 0;
    }

  4. #4
    Banned
    Join Date: Apr:2018
    Location: .
    Posts: 2,742
    Ïî-äîáðå å äà èìàø è êëàñ çà òî÷êà è êëàñ çà îòñå÷êà, êîèòî ñè ðàçäåëÿò ôóíêöèèòå ïîäõîäÿùî.
    Ïî-õóáàâî áè áèëî äà ïîëçâàø vector<Line> âìåñòî new[] è delete[].
    Òîâà id çà îòñå÷êè èçãëåæäà ñèëíî èçëèøíî, òî÷êèòå çà äâàòà êðàÿ ãè îïðåäåëÿò åäíîçíà÷íî.
    Àêî èìàø ìåòîä getLength() òîé òðÿáâà äà òè âðúùà äúëæèíàòà, à íå ñàìî äà ÿ çàïèñâà íÿêúäå. Òîâà äà ÿ ïàçèø â ïðîìåíëèâà è äà ÿ ÷åòåø îò òàì, ðàç÷èòàéêè, ÷å íÿìà äà ñè çàáðàâèë äà âèêíåø getLength() ïðåäâàðèòåëíî è ñëåä âñÿêà ïðîìÿíà íà íÿêîÿ îòñå÷êà å ìíîãî ëîø ïîäõîä è ïðè ïî-ñëîæåí êîä ùå òè ïðè÷èíè ìíîãî ãðåøêè. Àêî ãî ïðàâèø òàêà òðÿáâà äà ñå ïîäñèãóðèø, ÷å ïðè âñÿêà âúçìîæíà ïðîìÿíà íà ïàðàìåòðèòå íà îòñå÷êà ùå áúäå ñìåòíàòà àâòîìàòè÷íî, äîñòà ïî-ñëîæåí ïîäõîä.
    Íå èçãëåæäà íóæíî äà ïàçèø îòñå÷êèòå äâà ïúòè (unsortedLines).

  5. #5
    Registered User
    Join Date: Jan:2018
    Location: Âðàöà
    Posts: 9
    Áëàãîäàðÿ òè çà ñúâåòèòå .Àêî èçïîëçâàì våctor íÿìà äà å ìíîãî àêàäåìè÷íî .Çàùîòî â ëåêöèèòå èëè ñìå èçïîëçâàëè äåñòðóêòîð èëè delete
    Èíà÷å åòî ìàëêî ìîäèôèêàöèÿ îò ìîÿ ñòðàíà ,ñîðè ,íî ñúì ìíîãî çåëåí â òåçè ñðåäè .

    #include <iostream>
    #include <math.h>
    #include <windows.h>

    using namespace std;

    class Line
    {
    private:
    double xa,ya,xb,yb;
    public:

    Line();
    void input();
    void output();
    double leanght();
    friend void ShellSort();



    };
    Line::Line()
    {
    xa=ya=xb=yb=0;

    }


    void Line::input()
    {
    cout<<"enter X cordinates of for point A"<<endl;
    cin>>xa;
    cout<<"enter Y cordinates of for point A"<<endl;
    cin>>ya;
    cout<<"enter X cordinates of for point B"<<endl;
    cin>>xb;
    cout<<"enter Y cordinates of for point B"<<endl;
    cin>>yb;



    }

    double Line::leanght()
    {

    return sqrt(((xa - xb)*(xa - xb) + (ya - yb)*(ya - yb))) ;


    }

    void Line:utput()
    {
    cout<<"xa: "<<xa<<"xb: " <<xb<<"ya: "<<ya<<"yb: "<<yb<<" length : "<<leanght()<<endl;
    }

    void ShellSort(int nLines, Line Array[])
    {
    int gap =nLines/2;
    while(gap>0)
    {
    int j=0;
    for(int i=gap; i<nLines; i++)
    {
    Line temp=Array[i];
    for(j=i; j>=gap&&Array[j-gap].leanght()>temp.leanght(); j-=gap)
    {
    Array[j]=Array[j-gap];
    }
    Array[j]=temp;
    }


    gap=gap/2;
    }
    }

    int main()
    {
    int nLines;
    cout<<"Broi to4ki: ";
    cin>>nLines;
    Line * Array =new Line[nLines];
    for(int i =0; i<nLines; i++)
    {
    Array[i].input();
    Array[i].leanght();

    }
    cout<<endl;

    for(int i=0; i<nLines; i++)
    {
    Array[i].output();
    }

    Line *UnsordetLine =new Line[nLines];
    for(int i =0; i<nLines; i++)
    {
    UnsordetLine[i]=Array[i];
    }
    ShellSort(nLines,Array);

    cout<<"[Arrey before sorting] "<<endl;

    for(int i=0; i<nLines; i++)
    {
    cout<<" "<<UnsordetLine[i].leanght();
    }




    cout<<endl;
    cout<< " [Arrey after sorting]"<<endl;


    for(int i=0; i<nLines; i++)
    {

    cout<<" "<<Array[i].leanght();

    }



    delete[]Array;
    delete[]UnsordetLine;

    return 0;




    }
    Last edited by aremlakve; 24th October 2018 at 18:08.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Copyright © 1999-2011 Õàðäóåð ÁÃ. Âúçìîæíî å ñúäúðæàíèåòî íà òàçè ñòðàíèöà äà å îáåêò íà àâòîðñêè ïðàâà.
iskamPC.com | mobility.BG | Bloody's Techblog | Êðèïòîâàëóòè è ìàéíèíã | 3D Vision Blog | Ìàãàçèí çà åëåêòðîííè öèãàðè