SLIDE1

Saturday, January 31, 2015

[oop c++] bài tập về doanh thu bán hàng, thuế, số lượng, giá tiền

[oop c++] bài tập về doanh thu bán hàng, thuế, số lượng, giá tiền viết chương trình theo phong cách hướng đối tượng c++ thiết kế chuong trình nhập vào số lượng hồ sơ bán ra với giá à có thuế hay khong thì tùy nhập vào. xuất ra thông tin đã nhập và tính tổng doanh thu bán hàng. với thuế có 2 loại là 7% hoặc 8%. đồng thời thiết kế chương trình theo phương pháp enu lựa chọn. bài này mình chia ra làm nhiều fle nhỏ để dễ quản lý và viết code hơn. ...

[oop c++] tính chu vi, diện tích, tọa đô trọng tâm, trực tâm

[oop c++] tính chu vi, diện tích, tọa đô trọng tâm, trực tâm của tam giác nhập vào tọa độ 3 đỉnh #include<iostream> using namespace std; class diem { private: float x,y; public: diem(void); ~diem(void); float getx(); float gety(); void nhapdiem(); void xuatdiem(); float tinhkhoangcach(diem); }; diem::diem(void) { } diem::~diem(void) { } float diem::getx() { return x; } float diem::gety() { return y; } void...

PHẠM VI LỚP VÀ TRUY CẬP CÁC THÀNH VIÊN LỚP C++

PHẠM VI LỚP VÀ TRUY CẬP CÁC THÀNH VIÊN LỚP C++ Các thành viên dữ liệu của một lớp (các biến khai báo trong định nghĩa lớp) và các hàm thành viên (các hàm khai báo trong định nghĩa lớp) thuộc vào phạm vi của lớp.  Trong một phạm vi lớp, các thành viên của lớp được truy cập ngay lập tức bởi tất cả các hàm thành viên của lớp đó và có thể được tham chiếu một cách dễ dàng bởi tên.  Bên ngoài một phạm vi lớp, các thành viên của lớp được tham chiếu thông qua hoặc một tên đối tượng, một tham chiếu đến một đối tượng, hoặc một con trỏ tới đối...

Lớp CLASS trong C++ || Lập trình OOP

Các lớp cho phép lập trình viên mô hình các đối tượng mà có các thuộc tính (biểu diễn như các thành viên dữ liệu – Data members) và các hành vi hoặc các thao tác (biểu diễn như các hàm thành viên – Member functions). Các kiểu chứa các thành viên dữ liệu và các hàm thành viên được định nghĩa thông thường trong C++ sử dụng từ khóa class, có cú pháp như sau:  class <class-name> { <member-list> //Thân của lớp }; Trong đó: class-name:...

Friday, January 30, 2015

[Olympic Tin Học] Đề Thi Sinh Viên Cao Đẳng 2014

Bài 1. Tính tổng (30 điểm)Viết chương trình đọc vào hai số thực dương a và b và tính tổng tất cả các số nguyên không nhỏ hơn a và không lớn hơn b.Dữ liệu: Vào từ file văn bản SUM.INP gồm một dòng chứa hai số thực dương a, b.Kết quả: Đưa ra file văn bản SUM.OUT gồm một dòng chứa một số nguyên là tổng tất cảcác số nguyên không nhỏ hơn a và không lớn hơn b.Ví dụ:SUM.INP SUM.OUT0.3 2.89SUM.OUT 3Chú ý:- Có 50% số test có 0 < a ≤ b ≤ 1000;-...

viết chương trình c chuyển đổi hệ đếm nhị phân, bát phân, thập lục phân

viết chương trình c chuyển đổi hệ đếm nhị phân, bát phân, thập lục phân.  DEC,BIN,HEX,OCT.   Viết chương trình in bảng của các số từ 1 đến 256 dưới dạng nhị phân, bát phân và thập lục phân tương ứng #include<iostream> using namespace std; long sodu(int a,int b) { return a-b*int(a/b); } void dao(char *s) { char a; for(int i=0;i<strlen(s)/2;i++) { a=s[i];s[i]=s[strlen(s)-1-i];s[strlen(s)-1-i]=a; } } void...

Thursday, January 29, 2015

lập trình tìm các bộ số pitago | lập trình c/c++

lập trình tìm các bộ số pitago | lập trình c/c++.   Một tam giác vuông có thể có tất cả các cạnh là các số nguyên. Tập của ba số nguyên của các cạnh của một tam giác vuông được gọi là bộ ba Pitago. Đó là tổng bình phương của hai cạnh bằng bình phương của cạnh huyền, chẳng hạn bộ ba Pitago (3, 4, 5). Viết chương trình tìm tất cả các bộ ba Pitago như thế sao cho tất cả các cạnh không quá 500. #include<iostream> #include<math.h> using...

viết hàm in các tam giác bằng dấu sao *

viết hàm in các tam giác bằng dấu sao * Viết chương trình nhập vào số nguyên dương h (2<h<23), sau đó in ra các tam giác có chiều cao là h.viết hàm in các tam giác có chiều cao h=N nhập vào #include<iostream> using namespace std; void tamgiac1(int n) { int i,j; for (i = n; i >=1; i--) { for (j = i; j <= n; j++)cout << "  "; for (j = 1; j <= 2 * i - 1; j++) cout << "* "; cout <<...

thuật toán tìm kiếm tuyến tính cải tiến trên dãy đã sắp xếp

thuật toán tìm kiếm tuyến tính cải tiến trên dãy đã sắp xếp #include<iostream> using namespace std; int tim(int *a,int n,int x) { int i=0; while(a[i]!=x && i<n) i++; if(i==n) return 0; return i; } int tim1(int *a,int n,int x) { int i=0; a[n]=x; while(a[i]!=x) i++; if(i==n) return 0; return i...

thuật toán tìm kiếm nhị phân bằng đệ quy

//thuật toán tìm kiếm nhị phân bằng đệ quy #include<iostream> using namespace std; int tim(int *a,int left,int right,int x) { int m; if(left>right) return 0; m=(left+right)/2; if(a[m]==x) return m; if(x<a[m]) return tim(a,left,m-1,x); return tim(a,m+1,right,x); } void main() { int a[10]={1,2,3,4,5,6,7,8,9,10}; int x; cout<<"tim so: ";cin>>x; if(int z=tim(a,0,9,x)) cout<<"tim thay tai vi tri: "<<z<<"\n"; ...

viết hàm kiểm tra số chính phương

in ra màn hình số chính phương lớn nhất trong dãy. nếu không có só chính phương nào thì in ra dãy không có số chính phương nào. viết hàm kiểm tra 1 số có phải là số chính phương hay không. #include<iostream> #include<math.h> #include<stdlib.h> using namespace std; int sochinhphuong(float n) { if((float)sqrt(n)-(int)sqrt(n)==0) return 1; return 0; } void main() { int max=0; int *a=(int*)malloc(91*sizeof(int)); ...

Tuesday, January 27, 2015

Tính Giá Trị Biểu Thức Nhập Từ Bàn Phím

//lập trình c tính giá trị của 1 biểu thức bất kỳ nhập từ bàn phím gồm các phép tính cộng, trừ, nhân, chia (+-/*). biểu thức nhập ở dạng chuỗi. giống máy tính bỏ túi casio #include<iostream> #include<string.h> #include<conio.h> #include<math.h> #include<stdlib.h> using namespace std; float tinhgiatri(char *s); void sohang(char *s,float *a,int &n); void dau(char *s,char *b); int kiemtra(char *s); void...

Saturday, January 24, 2015

thuật toán tìm kiếm nhị phân

/*thuật toán tìm kiếm nhị phân Được áp dụng trên mảng đã có thứ tự. Ý tưởng: . Giả xử ta xét mảng có thứ tự tăng, khi ấy ta có ai-1<ai<ai+1 Nếu X>ai thì X chỉ có thể xuất hiện trong đoạn [ai+1, an-1] Nếu X<ai thì X chỉ có thể xuất hiện trong đoạn [a0,   ai-1] Ý tưởng của giải thuật là tại mỗi bước ta so sánh X với phần tử đứng giữa trong dãy tìm kiếm hiện hành, dựa vào kết quả so sánh này mà ta quyết định giới hạn dãy tìm kiếm ở nữa dưới hay nữa trên của dãy tìm kiếm hiện hành. Giả sử dãy tìm kiếm hiện hành bao gồm các phần tử...

thuật toán tìm kiếm tuyến tính

/*thuật toán tìm kiếm tuyến tính Cho danh sách có n phần tử a0, a1, a2…, an-1. Để đơn giản trong việc trình bày giải thuật ta dùng mảng 1 chiều a để lưu danh sách các phần tử nói trên trong bộ nhớ chính. Tìm phần tử có khoá bằng X trong mảng Giải thuật tìm kiếm tuyến tính (tìm tuần tự) Giải thuật tìm kiếm nhị phân Lưu ý: Trong quá trình trình bày thuật giải ta dùng ngôn ngữ lập trình C. Ý tưởng : So sánh X lần lượt với phần tử thứ 1, thứ 2,…của mảng a cho đến khi gặp được khóa cần tìm, hoặc tìm hết mảng mà không thấy. Các bước tiến hành Bước 1:...

thuật toán selection sort

/*thuật toán selection sort Ý tưởng: Chọn phần tử nhỏ nhất trong N phần tử trong dãy hiện hành ban đầu. Đưa phần tử này về vị trí đầu dãy hiện hành Xem dãy hiện hành chỉ còn N-1 phần tử của dãy hiện hành ban đầu Bắt đầu từ vị trí thứ 2; Lặp lại quá trình trên cho dãy hiện hành... đến khi dãy hiện hành chỉ còn 1 phần tử Bước 1:   i = 0; Bước 2:  Tìm phần tử a[min] nhỏ nhất trong    dãy hiện hành từ a[i] đến a[N] Bước 3 :  Đổi chỗ a[min] và a[i] Bước 4 :  Nếu  i < N-1 thì i = i+1; Lặp lại Bước 2;  ...

thuật toán interchange sort

/*thuật toán interchange sort Ý tưởng: Xuất phát từ đầu dãy, tìm tất các các nghịch thế chứa phần tử này, triệt tiêu chúng bằng cách đổi chỗ 2 phần tử trong cặp nghịch thế. Lặp lại xử lý trên với phần tử kế trong dãy. Bước 1: i = 0;  // bắt đầu từ đầu dãy Bước 2: j = i+1; //tìm các nghịch thế với a[i] Bước 3: Trong khi j < N thực hiện Nếu a[j]<a[i] //xét cặp a[i], a[j] Swap(a[i],a[j]); j = j+1; Bước 4: i = i+1; Nếu  i < N-1: Lặp lại Bước 2. Ngược lại:  Dừng. */ #include<iostream> using namespace std; void xep(int...

thuật toán bubble sort

/*thuật toán bubble sort Ý tưởng: Xuất phát từ cuối dãy, đổi chỗ các cặp phần tử kế cận để đưa phần tử nhỏ hơn trong cặp phần tử đó về vị trí đúng đầu dãy hiện hành, sau đó sẽ không xét đến nó ở bước tiếp theo, do vậy ở lần xử lý thứ i sẽ có vị trí đầu dãy là i. Lặp lại xử lý trên cho đến khi không còn cặp phần tử nào để xét. Bước 1 : i = 0; // lần xử lý đầu tiên Bước 2 : j = N-1;//Duyệt từ cuối dãy ngược về vị trí i Trong khi (j > i) thực hiện: Nếu a[j]<a[j-1] Doicho(a[j],a[j-1]); j = j-1; Bước 3 : i = i+1; // lần xử lý kế tiếp Nếu  i...

thuật toán sắp xếp shaker sort

/*thuật toán sắp xếp shaker sort Trong mỗi lần sắp xếp, duyệt mảng theo 2 lượt từ 2 phía khác nhau: Lượt đi: đẩy phần tử nhỏ về đầu mảng. Lượt về: đẩy phần tử lớn về cuối mảng. Ghi nhận lại những đoạn đã sắp xếp nhằm tiết kiệm các phép so sánh thừa. Bước 1: l=0; r=n-1; //Đoạn l->r là đoạn cần được sắp xếp k=n; //ghi nhận vị trí k xảy ra hoán vị sau cùng // để làm cơ sơ thu hẹp đoạn l->r Bước 2: Bước 2a: j=r; //đẩy phần tử nhỏ về đầu mảng Trong khi j>l nếu a[j]<a[j-1] thì {Doicho(a[j],a[j-1]): k=j;} j--; l=k; //loại phần tử đã có thứ...

Wednesday, January 21, 2015

Đối số mảng truyền cho hàm - con trỏ

xuat(int a[10]) hoàn toàn tương đương với xuat(int *a), tức đối số là biến con trỏ, do đó khi printf phải thêm dấu * để chuyển thành giá trị để in. vì a là mảng ( là 1 chuổi ô nhó liên tiếp nhau, mặt định a là ô nhớ đầu tiên == a[0]) khi truyền mảng vào hàm thức chất là truyền địa chỉ của ô nhớ đầu tiên trong mảng, còn n là biến thông thường, xuat(int n) hoàn toàn khác với xuat(int *n). mảng a trong main là nơi ta khai báo, mặt định trong main() lúc này là biến giá trị thông thường, nếu ta khai báo trong hàm xuat() mảng a[10] này thì trong hàm...