ÔN TẬP C

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 14

ÔN TẬP C++

Tên bài Thường Hàm Đệ quy


toán
Tìm gia #include <iostream> #include <iostream> #include <iostream>
thừa của using namespace std; using namespace std; using namespace std;
n (n!)
int main() { int tinhGiaiThua(int n) {
int n, giaiThua = 1; int giaiThua = 1; int main() {
cout << "Nhap vao so nguyen duong n: "; for (int i = 1; i <= n; i++) { int n;
cin >> n; giaiThua *= i; cout << "Nhap vao so nguyen duong n: ";
for (int i = 1; i <= n; i++) { } cin >> n;
giaiThua *= i; return giaiThua; int giaiThua = tinhGiaiThua(n);
} } cout << "Giai thua cua " << n << " la: " << giaiThua
cout << "Giai thua cua " << n << " la: " << << endl;
giaiThua << endl; int main() { return 0;
return 0; int n; }
} cout << "Nhap vao so nguyen duong n: "; Lưu ý: Tính n*Giaithua(n-1)
cin >> n; Không cần đặt gt =5
int giaiThua = tinhGiaiThua(n);
cout << "Giai thua cua " << n << " la: " <<
giaiThua << endl;
return 0;
}
Lưu ý: gt=1,for return gt.

Tìm ước #include <iostream> #include <iostream> #include <iostream>


chung lớn using namespace std; using namespace std; using namespace std;
nhất của
a và B int main() { int timUCLN(int a, int b) { int timUCLN(int a, int b) {
int a, b; if (a == 0) { if (b == 0) {
cout << "Nhap vao hai so a va b: "; return b; return a;
cin >> a >> b; } else { } else {
int ucln = 1; return timUCLN(b % a, a); return timUCLN(b, a % b);
for (int i = 1; i <= a && i <= b; i++) { } }
if (a % i == 0 && b % i == 0) { } }
ucln = i;
} int main() { int main() {
} int a, b; int a, b;
cout << "Uoc chung lon nhat cua " << a << " va " cout << "Nhap vao hai so a va b: "; cout << "Nhap vao hai so a va b: ";
<< b << " la: " << ucln << endl; cin >> a >> b; cin >> a >> b;
return 0; int ucln = timUCLN(a, b); int ucln = timUCLN(a, b);
} cout << "Uoc chung lon nhat cua " << a << " va " cout << "Uoc chung lon nhat cua " << a << " va " << b
Chú ý: a%i==0&& b%i==0; << b << " la: " << ucln << endl; << " la: " << ucln << endl;
return 0; return 0;
} }
Tìm x^n #include <iostream> #include <iostream> #include <iostream>
using namespace std; using namespace std; using namespace std;

int main() { double power(double x, int n) { double power(double x, int n) {


double x, n; double result = 1; if(n == 0) {
cout << "Nhap x: "; for(int i = 1; i <= n; i++) { return 1;
cin >> x; result *= x; } else {
cout << "Nhap n: "; } return x * power(x, n-1);
cin >> n; return result; }
} }
double result = 1;
for(int i = 1; i <= n; i++) { int main() { int main() {
result *= x; double x, n; double x, n;
} cout << "Nhap x: "; cout << "Nhap x: ";
cin >> x; cin >> x;
cout << x << " mu " << n << " = " << result << cout << "Nhap n: "; cout << "Nhap n: ";
endl; cin >> n; cin >> n;
return 0;
} double result = power(x, n); double result = power(x, n);

cout << x << " mu " << n << " = " << result << cout << x << " mu " << n << " = " << result << endl;
endl; return 0;
return 0; }
}
Tổ #include <iostream> #include <iostream> #include <iostream>
hợp n using namespace std; using namespace std; using namespace std;
chập k
int main() int combination(int n, int k) { int tohop(int n, int k) {
{ int numerator = 1, denominator = 1; if (k == 0 || k == n) {
int n, k; for (int i = n; i >= n - k + 1; i--) { return 1;
cout << "Nhap n: "; numerator *= i; }
cin >> n; } return tohop(n - 1, k - 1) + tohop(n - 1, k);
cout << "Nhap k: "; for (int i = 1; i <= k; i++) { }
cin >> k; denominator *= i;
} int main()
int numerator = 1, denominator = 1; return numerator / denominator; {
for (int i = n; i >= n - k + 1; i--) { } int n, k;
numerator *= i; cout << "Nhap n: ";
} int main() { cin >> n;
for (int i = k; i >= 1; i--) { int n = 5, k = 2; cout << "Nhap k: ";
denominator *= i; int result = combination(n, k); cin >> k;
} cout << "Combination of " << n << " choose " <<
k << " is " << result << endl; int C = tohop(n, k);
int C = numerator / denominator; return 0;
} cout << "To hop " << n << " chap " << k << " la: " <<
cout << "To hop " << n << " chap " << k << " la: C << endl;
" << C << endl; return 0;
return 0; }
}
Tìm số #include <iostream> #include <iostream> #include <iostream>
nguyên tố using namespace std; using namespace std; using namespace std;
int main() { bool isPrime(int n) { bool isPrime(int n, int i = 2) {
int n; if (n <= 1) { if (n <= 2) {
bool flag; return false; return (n == 2) ? true : false;
cout << "Nhap vao so n: "; } }
cin >> n; for (int i = 2; i <= n / 2; i++) { if (n % i == 0) {
cout << "Cac so nguyen to nho hon hoac bang " if (n % i == 0) { return false;
<< n << " la: "; return false; }
for (int i = 2; i <= n; i++) { } if (i * i > n) {
flag = true; } return true;
for (int j = 2; j <= i / 2; j++) { return true; }
if (i % j == 0) { } return isPrime(n, i + 1);
flag = false; int main() { }
break; int n; void printPrimes(int n) {
} cout << "Nhap vao so n: "; if (n >= 2) {
} cin >> n; printPrimes(n - 1);
if (flag == true) { cout << "Cac so nguyen to nho hon hoac bang " if (isPrime(n)) {
cout << i << " "; << n << " la: "; cout << n << " ";
} for (int i = 2; i <= n; i++) { }
} if (isPrime(i)) { }
return 0; cout << i << " "; }
} } int main() {
} int n;
return 0; cout << "Nhap vao so n: ";
} cin >> n;
cout << "Cac so nguyen to nho hon hoac bang " << n
<< " la: ";
printPrimes(n);
return 0;
}
In ra số nguyên tố #include <iostream> Số đảo ngược:
using namespace std; #include <iostream>
using namespace std;
bool isPrime(int number) {
if(number < 2) { // Số nguyên tố phải lớn hơn 1 int main() {
return false; int n, dao = 0, rem, temp;
} cout << "Nhap vao so nguyen: ";
for(int i=2; i<=number/2; i++) { // Lặp từ 2 đến cin >> n;
n/2 temp = n;
if(number%i == 0) { // Nếu n chia hết cho i thì n while (temp != 0) {
không phải số nguyên tố rem = temp % 10;
return false; dao = dao * 10 + rem;
} temp /= 10;
} }
return true;
if (dao == n)
}
cout << n << " la so doi xung";
int main() { else
int number; cout << n << " khong doi xung";
cout << "Nhap mot so: "; return 0;
cin >> number; }
if(isPrime(number)) { Rem đảo Tem
cout << number << " la so nguyen to.";
} else {
cout << number << " khong phai la so nguyen
to.";
}
return 0;
}
Xóa phần tử X trong mang A(Với x được nhập từ Xắp xếp các phần tử trong mảng A Tìm vị trí thứ i của X trong mảng.
bàn phím ) void TimKiem(int A[], int n, int x){
void SapXep(int A[], int n){ int i = 0;
int XoaX(int A[], int &n, int x){ for (int i = 0; i < n-1; i++){ while (i < n && A[i] != x) {
int dem=0; for (int j = i+1; j < n; j++){ i++;
for( int i = 0; i < n; i++){ if (A[j] < A[i]){ }
if(A[i]==x){ swap(A[i], A[j]); if (i == n) {
for (int j = i; j < n-1; j++){ } cout << "Khong tim thay " << x << endl;
A[j]=A[j+1]; } } else {
} } cout << x << " co vi tri la " << i << endl;
n--; } }
dem++; }
i--; // adjust loop index to
recheck current position after shift
}
}
if (dem == 0) {
cout << "Khong tim thay phan tu
de xoa" << endl;
} else {
cout << "Da xoa " << dem << "
phan tu " << x << " khoi mang." << endl;
}
return n;
}
Chèn phần tử X vào vị trí k trong mảng A
void ChenPhanTu(int A[], int &n, int x, int k){
if (k < 0 || k >= n) {
cout << "Vi tri k khong hop le. Nhap lai: ";
cin >> k;
}
n++;
for (int i = n-1; i > k; i--) {
A[i] = A[i-1];
}
A[k] = x;
}

Để thay đổi tham số truyền vào khi gọi ta them dấu & trước tham số call.

Mảng là một dãy các phần tử, lưu trữ kế tiếp nhau trong bộ nhớ.

Mảng một chiều:

Cú pháp khai báo:

<Kiểu DL> <Ten biến mảng><[Kích thước]>;

Ví dụ: Khai báo mãng một chiều chưa 10 số nguyên;

Int A[10];

Như vậy:

Phần tử đầu tiên xác định chỉ số 0

Cuối chữ số n – 1

Chú ý: Chỉ sử dụng bằng hoặc nhỏ hơn số phần tử khai báo.

0 1 2 3 ................................... 9

Truy cập (read, write)


9 5
1 2 3 4 5 6 7 8 9

Dùng tên biến mạng và chỉ số của phương trình

-A[3]=9

STRUCK

-Kiểu cấu trúc dùng để mô tả các đổi tượng có những trường dữ liệu thương khác nhau.

-Ví dụ một mô tả kiểu dữ liệu sinh viên mô tả mọt điểm trong trung gian R^n,

Cú pháp khai báo:

Struct Tenkieu{
Kiểu dữ liệu: Tên trường 1;
Kiểu dữ liệu: Tên trường 2;
......

Kiểu dữ liệu: Tên trường n ;

Khai báo biến thuộc kiểu dữ liệu đã dịnh nghĩa trên

TenKieu TenBien;

TRUY CẬP VÀO Biến Struct:

Muốn truy cập ào biến kiểu struct ta sử dụng tên biến.tên trường

Đề thi:

1.Tìm ước chung lớn nhất

2.Số hoàn hảo / hoàn thiện

3. Số nguyên tố

4. Số chính phương

5.Sắp xếp tăng giảm

Chuỗi kết tức bằng kí tự ‘\0’ ( Kí tự NULL trong bảng mã ASCII)

Sử dụng chuỗi ko dùng cin mà dùng gets()


//-----------------------------------------------------------------------------------------------------------------------------------//

#include <iostream>

#include <string.h>

#include <ctype.h>

#define max 200

using namespace std;

struct SinhVien{

char masv[30];

char tensv[30];

double diem;

char XepLoai[30];

};

SinhVien Lop[max];

int siso;

void XepLoai(SinhVien &X ){

if(X.diem >= 8){

cout<<"Xep loai: Gioi";

}if (X.diem>=6.5){

cout<<"Xep loai: Kha";

}if (X.diem>=5){

cout<<"Xep loai: Trung Binh";


} else{

cout<<"Xep loai: Yeu";

//-----------------------------------------------------//

void XoaSV(SinhVien Lop[], int &siso, char masv[]){

int index=-1;

for ( int i=1; i <siso;i++){

if (strcmp(Lop[i].masv,masv)==0){

index=1;

break;

if ( index = 1){

cout<<"Khong co sinh sinh vien co ma so "<<masv;

}else {

for(int i= index; i < siso; i++){

Lop[i]=Lop[i+1];

siso --;

cout<<"Xoa thanh cong "<<endl;

//------------------------------------------------------//

void CNDIEM(SinhVien Lop[], int siso, char* masv, double diem_moi) {


bool tim_thay = false;

for (int i = 1; i <= siso; i++) {

if (strcmp(Lop[i].masv, masv) == 0) {

Lop[i].diem = diem_moi;

XepLoai(Lop[i]);

cout << "Cap nhap diem thanh cong!\n";

tim_thay = true;

break;

if (!tim_thay) {

cout << "Khong tim thay sinh vien co ma " << masv << "\n";

//------------------------------------------------------//

SinhVien Input(){

SinhVien X;

Label:

cout<<"Nhap ma sinh vien: ";cin>>X.masv;

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

if (strcmp(Lop[i].masv,X.masv)==0){

cout<<"Trung ma sinh vien. Nhap lai !";

goto Label;

}
cout<<"Nhap ten sinh vien: ";

fflush(stdin);

gets(X.tensv);

cout<<"Nhap diem sinh vien: ";

fflush(stdin);

cout<<"Nhap diem: ";cin>>X.diem;

XepLoai(X);

cout<<"---------------------";

return X;

//----------------------------------------------//

void Output(SinhVien X){

cout<<"Ma sinh vien: "<<X.masv;

cout<<"Ten sinh vien: "<<X.tensv;

cout<<"Diem: "<<X.diem;

cout<<"Xep loai: "<<X.XepLoai;

void TaoLop(SinhVien Lop[],int &siso){

for ( int i = 1; i <= siso; i ++){

cout<<"Nhap sinh vien thu "<<i<<cout<<"\n";

Lop[i]=Input();

}
void InDS( SinhVien Lop[], int siso){

for ( int i=1; i < siso; i ++){

Output(Lop[i]);

//----------------------------------------------//

void Sort(SinhVien Lop[], int siso){

for(int i = 1; i <= siso; i++){

for(int j = siso; j > i ; j--){

if(Lop[j].diem > Lop[j - 1].diem){

swap(Lop[j], Lop[j-1]);

int main() {

cout <<"Nhap si so lop: ";

cin >> siso;

while(siso<=0){

cout <<"Nhap si so lop: ";

cin >> siso;

TaoLop(Lop, siso);

cout << endl << "Danh sach lop: "<< endl;


printf("*-----------------*\n");

InDS(Lop, siso);

cout << endl << "Danh sach sau khi sap xep: "<< endl;

printf("*-----------------*\n");

Sort(Lop, siso);

InDS(Lop, siso);

char masv[30];

int choice;

do {

cout << "Nhap 1: Xoa sinh vien, Nhap 2: Nhap ma sinh vien can cap nhat , 0 de ket thuc: " << endl;

cin >> choice;

switch(choice) {

case 1:

cout << "Nhap ma so sinh vien muon xoa: ";

cin >> masv;

XoaSV(Lop, siso, masv);

InDS(Lop, siso);

break;

case 2:

cout << "Nhap ma sinh vien can cap nhat diem: ";

cin >> masv;

double diem_moi;

cout<<"Nhap diem moi: "; cin >> diem_moi;

CNDIEM(Lop,siso,masv,diem_moi);

InDS(Lop, siso);
Sort(Lop, siso);

InDS(Lop, siso);

break;

case 0:

break;

default:

cout << "Nhap sai, vui long nhap lai!" << endl;

break;

} while(choice != 0);

File là một kiểu cấu trúc dữ liệu lưu trữ ở bộ nhớ ngoài

Cấu trúc khai báo:

FILE*<tenbienfile>

Vd:

File*fptr;

Các hàm thường sử dụng

Mở file để đọc: f=fopen(tenfile.”r”)

Mở file để ghi: f=fopen(tenfile,”w”);

Đóng file fopen(f);

Ki tự cuối cùng EOF: END Open file

Khi tạo ra một file để ghi, sẽ tạo ra file trắng nếu như trùng tên đã ghi.

Kieeur con tro la mot kieu du lieu ma noi dung cua no chua dia chi cua mot bien khac

Uu diem cua con tro: khai thac vung nho mo rong,

Nhuoc diem: kho su dung


Cu phap khai bao:

KieuDL*Tenbiencontro

VD: int*n; double*x,truct Node{int infor; node*leak;} Node*L;

You might also like