Hỏi & đáp lập trình

ctrl+R để hiện thị thước đo (bên trên và bên trái)
chọn move tool (phím nóng V) ,bấm vào cái thước rồi rê ra ngoài
 
ai giỏi về PTS cho mình nhờ chút...mình muốn làm áo phông đồng phục cho bang của mình, mình muốn in hình graffiti hay chữ nho cũng được có bạn nào giúp mình thiết kế vài mẫu với. àh áo có hình và chữ Smile Family tên bang mình hihi
 
Cho hỏi trong PTS 1 bức ảnh khi nào sử dụng đc thẻ adjustment trong image
nhiều khi mình mở ảnh lên chỉnh thì đc ... nhiều lúc lại ko đc
 
cưng dùng pts gì
ảnh như nào mà ko làm hiệu ứng đc :-?
 
^ ảnh jpg thôi bạn
khi xài thẻ này có yêu cầu j đối với ảnh ko hay open hoặc cắt ghép là đều xài đc ?
 
Khi dùng pts... sao ta thường duplicate cái layer background để làm gì ? Tại sao ko để nguyên layer gốc đó rồi chỉnh sửa ?
 
Phòng các trường hợp không mong muốn, muốn làm lại từ ảnh gốc!
Cái này trong mấy bài căn bản đã có nhắc đến chứ nhỉ?
 
thuật toán sàng Eratosthenes là gì vậy?
Cái phương pháp trên là do tôi tự chế ra mà!
 
Khi dùng pts... sao ta thường duplicate cái layer background để làm gì ? Tại sao ko để nguyên layer gốc đó rồi chỉnh sửa ?
lối thoát an toàn thôi
lớ làm sai chỉ cần xóa layer đó đi là xong
 
Chỉnh sửa cuối:
#include<iostream.h>
#include<conio.h>
#include<math.h>
class Diem
{
float x,y;
public:
Diem(float xx, float yy) {x=xx;y=yy;}
};

class Doanthang
{
Diem a,b;
public:
Doanthang(float xa,float ya,float xb,float yb):a(xa,ya),b(xb,yb){}
float Khoangcach();
};
float Doanthang::Khoangcach()
{
float kc;
kc=sqrt(pow(xb-xa,2)+pow(yb-ya,2));
return kc;
}
void main()
{
clrscr();
Doanthang m(200,200,400,500);
float k= m.Khoangcach();
cout<<k;
getch();
}

Mọi người xem fix dùm mình cái lỗi phát, cám ơn mọi người nhiều ^^!
 
C obj hả, ko giúp gì đc rồi
nhưng mà thấy đoạn này khai báo 2 constructor khác nhau quá
public:
Diem(float xx, float yy) {x=xx;y=yy;}
public:
Doanthang(float xa,float ya,float xb,float yb):a(xa,ya),b(xb,yb){}

xem lại xem :>
 
Bỏ cái hàm tính khoảng cách đi thì chạy đc còn bỏ vào thì báo lỗi. Còn 2 cái cons đấy 1 cái là điểm 1 cái là đoạn thẳng nên khác nhau đúng mà ^^!
 
mình tưởng khai báo constructor phải giống nhau, điển hình là vậy
public:
Doanthang(float xa,float ya,float xb,float yb):{a(xa,ya);b(xb,yb);}

nhưng chấc có lẽ là đặc trưng là vậy, mà như bạn nói bỏ cái hàm tính đó ra thì đoạn sai chỉ ở đây thôi
kc=sqrt(pow(xb-xa,2)+pow(yb-ya,2));
 
2 năm rồi ko động đến C mà nhìn code bạn viết nó cứ kiểu j ý
public:
Doanthang(float xa,float ya,float xb,float yb):a(xa,ya),b(xb,yb)
sao lại có dấu : ở đây ?
Cái hàm khoangcach ở class doanthang ko thấy khai báo ở đâu cả ?
float Doanthang::Khoangcach()
câu lệnh này nghĩa là j ? kế thừa à ?
 
Cái đấy là class DoanThang lấy kiểu của class Diem (1 đoạn thằng gồm 2 điểm a,b) còn cái dấu : đấy thì công thức nó phải thế

Còn cái

float Doanthang::Khoangcach()
Nghĩa là hàm KhoangCach thuộc class DoanThang, cũng 1 kiểu kế thừa ấy.
 
thôi mình hiểu rồi bạn, bạn viết dính cả cục làm khó nhìn quá
float Doanthang::Khoangcach()
{
float kc;
kc=sqrt(pow(xb-xa,2)+pow(yb-ya,2));
return kc;
}

4 giá trị này ở đâu ra, hoặc là tạo hàm Khoangcach có 4 giá trị truyền vào
hoặc sửa thành
kc=sqrt(pow(b.x-a.x,2)+pow(b.y-a.y,2));

Bạn viết như đám rừng ấy, mỗi câu lệnh một dòng thì có phải dễ thở hơn ko :-SS
 
Chỉnh sửa cuối:
ặc hồi trước học C đâu có cái toán tử nào là dấu : đâu nhỉ
 
Cái này là lập trình hướng đối tượng. Sửa mãi chẳng đc chán ghê :((
 
đã compile và chạy được ra kết quả 360.555 =.=
Mã:
[COLOR="#FF0000"]#include<iostream>[/COLOR] [COLOR="#008000"]//iostream.h?[/COLOR]
#include<conio.h>
#include<math.h>
[COLOR="#FF0000"]using namespace std;[/COLOR] [COLOR="#008000"]//thêm cái này cho 'cout'[/COLOR]
class Diem
{
   float x,y;
public:
   Diem(float xx, float yy) {x=xx;y=yy;}
   [COLOR="#008000"]//Thêm 2 cái này để có access vào Diem::x và Diem::y. Annoyer chỉ đúng lỗi sai rồi nhưng a.x thì x là private nên class Doanthang ko access được. Phải dùng getters để access Diem::x và Diem::y.[/COLOR]
   [COLOR="#FF0000"]float getX() const {return x;};[/COLOR]
   [COLOR="#FF0000"]float getY() const {return y;};[/COLOR]
};

class Doanthang
{
   Diem a,b;
public:
   Doanthang(float xa,float ya,float xb,float yb):a(xa,ya),b(xb,yb){}
   float Khoangcach();
};

float Doanthang::Khoangcach()
{
   float kc;
[COLOR="#FF0000"]   kc=sqrt(pow(b.getX()-a.getX(),2)+pow(b.getY()-a.getY(),2));[/COLOR]  [COLOR="#008000"]//đổi xa thành a.getX() v.v...[/COLOR]
   return kc;
}

void main()
{
   [COLOR="#FF0000"]//clrscr();[/COLOR] [COLOR="#008000"]//bạn có viết hàm clrscr() riêng à? Còn ko hình như c++ ko có clrscr(). Mình xài c++ để compile nên ko biết.[/COLOR]
   Doanthang m(200,200,400,500);
   float k= m.Khoangcach();
   cout<<k;
   cin.get();
}


cái ':' ở trước phần body của constructor là để set giá trị cho các attribute của object trước khi vào phần body của class. Tức là khi vào body {} rồi thì các thuộc tính của object đã được khởi tạo và object đã sẵn sàng để sử dụng. Cách khởi tạo như vậy thì nhanh hơn là vào body {} rồi mới set giá trị.
 
Chỉnh sửa cuối:
Ùh, cám ơn bạn. Tối qua đi học cô bảo xây dựng hàm get mới làm đc ^^!.
Còn clrscr là hàm xóa màn hình của C++
 
Back
Top