Professional Documents
Culture Documents
1.BẢN T¾P 1
Tậptinvào một tậptins sốnguyên n (32 n 255) và in ký tự t cómã ASCII cu an.
Chương trình :
#bao gồmde <stdio.h>
#bao gồmde <conio.h>
int maTRONG()
{
int n;/*khaibao bivi n*/
PriNtf("NhMộtP N=");/*hTôivi tCHÀOdồNg tuy nhiênNgbMộtồNhap N*/
quét("%d",&n); /*nhhẹn gặp lạiban phim*/
printf(“Kỳ tửcô maASCII củamột: %c",N);
chết tiệt();
}
2. BẢN T¾P 2
Viếtchương trìnhfile pgi ờh, phút m và giây s hiệnt ạ tôivà m ộ t s sốnguyên dương
N. TÔIvà ramàn hình ginước , phút, giây sau n giây.
Thuthậptoán học :
Bước 1 : Nhập pgi ờ h , phút m, giây s và số tự nhiên n ;
Bưnhớc 2 : Tínhgi phút _Giây sau n giây theo công đoạn dưới đây;
h = (h + ((n + s)/60 + m)/60)%24;
m = (tôi +(N+ s)/60)%60;
s = (n+ s)%60;
Bước 3 : In ra giá tr ị giờ , phútvàgiây phút i .
Chương trình :
#bao gồmde <conio.h>
#bao gồmde <stdio.h>
int maTRONG()
{
int n,h, tôi,S;
printf("Nhậpgio: ");
quét("%d", &h);
printf("Nhậpphut: ");
quét("%d", &m);
printf("Nhậpgia: ");
about:blank 1/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
quét("%d", &S);
printf("Nhậprất nguy hiểmvà n: ");
quét("%d", &n);
h = (h+ ((n+s)/60+m)/60)%24;
m = (m+ (n +giây)/60)%60;
s = (n+s)%60;
printf("Két qua gió,phut, gtôi sauvà giây:");
printf("%d :%d : %d\n", h, m, s);
chết tiệt();
}
3. BẢN T¾P 3
Viếtchương trìnhfile bán kính R và xut ramàn hìnhhình ảnh _phân tích S và chu vi L
2
cuahìnhòn (di en tích S = R và chuviL = 2 R).
Thuthậptoán học :
Bước 1 : Nhập p bán kínhR;
2
Bưnhớc 2 : Tínhdiệ n _tích S = R và L = 2 R. S sửdụng ụ ng h chứa s cố (M_PI )thu thập thư ri
viemath.h;
Bước 3 : In ra giá tr ị cu adiệ n _tích và chu vi.
Chương trình :
#bao gồmde <stdio.h>
#bao gồmde <conio.h>
#bao gồmde <mathh>
int maTRONG()
{
trôi nổiR, S, L;/*Khaibảo cácbiên*/
printf("Nhậpbán thânh R = "); /*Thơng bảo nmay mắn thaykinh r*/
quét("%f",&R); /*Nhap ban kinh R tbạn cấm điện thoạiTôi*/
S = R*R*M_PI;/*M_PIla vậy PTÔI*/
L = 2*M_PI*R;
printf("Diêntích chàonh tron= %0,3f\n“, S);
printf("Chu vtôi hinhtron = %0,3f\n",L);
chết tiệt();
}
4.BẢN T¾P 4
Viếtchương trìnhtập tin sốtự cx và tính toángiácác vị trígiăm bôngm ộ t bi ế n sau:
3
x +2 x +5ln(x +41)
f (x) =
x2 +
Thuthậptoán học :
Bước 1 : Nh file p vào s ố thư c x;
about:blank 2/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
Bưnhớc 2 : Tínht ử sốc ủ a bi thểu thư ức lưu vào biế n tuso. Sử dụnghàm pow() để tính toán
tăng cường từ a vàhàm log() để tính logarit, cácgiăm bôngthis thu thập thư việ n math.h;
Bưnhớc 3 : Tínhmẫu bạn _số cừ a bi thển thư ức lưu vào biế n mausồ;
Bươc 4 : Tính hàm f(x) = tuso/mauso và in ra kế t qbạn là.
Chương trình :
#bao gồmde <stdio.h>
#bao gồmde <conio.h>
#bao gồmde <mathh>
int maTRONG()
{
trôi nổinước sốt cà chua,bạn, mẹbạn;
trôi nổix;
printf("Nhậpx: ");
quét("%f",&x);
bạn = pôi(x*x,1.0/3)+ pow(x,5) + log(p(x,4)+1);
mau =x*x + M_PI/4;
nước sốt cà chua= tu/mau;
printf("Gia tri cuabiểu thuc = %4.2f", kết quảqua);
chết tiệt();
trở lại0;
}
1.BẢN T¾P 5
Viếtchương trìnhfile p 03 s ốa,b,ct ừbàn phím. Tíms _ trung gian củ a 03 s số này
b toántoán _ ?.
Ví dụ : có 03số : 3,4,5 thì số trung gian là ố4 .
Thuthậptoán học :
Bước 1 : Nhập p vào s ố a,b,c
Thưc2 : Tìmgiátr ị l ớ n nh ố t, nh ỏ nh ậ t tủ a 3 s ốđó
Bưnhớc 3 : Lâ y t ổ ng c ủ a 3 sốtrừđi cho giá trị lơ nhât và nhỏ nhứt __
Bươc 4 : Tôin ra k ế t qu ảnh.
Chương trình :
#bao gồmde <stdio.h>
#bao gồmde <conio.h>
chủ yếu()
{
trôi nổia,b,c,mrìu, phút;
printf("nhapa,b,c:");
about:blank 3/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
quét("%f%f%f",&a,&b,&c);
tối đa=a>b&&a>c?một:(b>c?b:c);
phút=a<b&&a<c?một:(b<c?b:c);
printf("vậy can tim lmột:%f",a+b+c-max-mTRONG);
chết tiệt();
}
2.BẢN T¾P 6
Viếtchương trìnhtập tin dữ liệucái chvà in rachchữ hoa n ế uch is ch ữcờ ng;
ngoạic lại, in ra chthư cờng nEU_ch làchữ hoa .
Nhậmđiểm: Chúng ta nhtậptinchứamộtmã ASCII chứamộtch ữcái cờ có nội dung mã hóa
ASCII cu ach ữ cái hoa c ộ ng 32. Ch ẳng h ạ n , ch ữ cátôi 'a'có mã ASCII là 97 thì chữ cái
'A' có mã ASCII là 65.
Thuthậptoán học :
Bước 1 : Nhập p vào ch ữ cái ch.
Bước 2 : N ế u là ch ữcái normal,nghĩa là ch >= 'a' vàch<= 'z' thì có thể thành công
chữcáihoa,nghĩa là ch = ch - 32.
Bước 3 : N ế u là ch ữ cáihoa,nghĩa là ch >= 'A' và ch <= 'Z' thì chuyể n thành ch ữ
cái bình thường, nghĩalà ch = ch+ 32.
Chương trình :
#bao gồmde<stdiồ>
#bao gồmde<coniồ>
int maTRONG()
{
char ch;
printf("Nhậpvao mộtchu cai: ");
quét("%c", &ch);
nếu (ch>='a' &&ch<='z')
printf("Chuyen thanh chồ caihoa: %c\n", ch -= 32);
nếu không thì tôif (ch>='MỘT' &&ch<='Z')
printf("Chuyen thanhchu caithường: %c\n",ch+= 32);
chết tiệt();
trở lại0;
}
3.BẢN T¾P 7
Viếtchương trìnhtập tin hai s cốđịnh cx, y và tính giá trị hàm sau:
3 x2 + y2 − nhật ký+ (x
f (x, y) =
arctg(x-y) +
about:blank 4/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
Thuthậptoán học :
Bước 1 : Nh tập p vào hai s số th ự c x và y;
Bước 2: Nếu (x + y) > 0 và nếu mẫu số khác không thì tính hàm f, và in ra kết
quả. Sử dụng các hàm pow(), log() và atan() trong thư viện math.h;
Bước 3: Ngược lại, nếu (x + y) ≤ 0 thì không tính được log5(x+y), nên báo lỗi.
Chương trình:
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main()
{
float x, y, tuso, mauso, f;
printf("Nhap x = ");
scanf("%f", &x);
printf("Nhap y = ");
scanf("%f", &y);
if ((x + y) > 0)
{
mauso = atan(x-y) + M_PI/4;
if(mauso == 0) printf("Loi mau so bang 0!\n");
else
{
tuso = pow(x*x + y*y, 1.0/3) - log(x+y)/log(5);
f = tuso / mauso;
printf("Gia tri cua ham=%4.2f", f);
}
}
else
printf("Loi mien xac dinh cua ham logarit!\n");
getch();
}
4. BÀI T¾P 8
Viết chương trình giải phương trình bậc 2 (ax2 + bx + c = 0, a 0)
Thuật toán:
Bước 1: Nhập các hệ số a, b và c;
Bước 2: Tính delta = b*b - 4*a*c;
Bước 3: Nếu delta > 0 thì tính và in hai nghiệm:
x1 = (-b - sqrt(delta))/(2*a);
x2 = (-b + sqrt(delta))/(2*a);
Bước 4: Nếu ngược lại (delta ≤ 0), nếu delta = 0 thì tính và in nghiệm kép x = -
b/(2*a);
Bước 5: Ngược lại nếu (delta < 0), thì in ra phương trình vô nghiệm.
Chương trình:
about:blank 5/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
Đ ¾ I H Þ C Đ À N Ẵ N G − T R ¯ Þ N G Đ ¾ I H Þ C B Á C H K H O A
KHOA CÔNG NGHÞ THÔNG TIN
54, Nguyễn Lương Bằng, Hoà Khánh, Liên Chiểu, TP. Đà Nẵng
Tél. 84 236 3 736 949 Web: http://itf.dut.udn.vn/ Email: cntt@udn.dut.vn
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main()
{
float a, b, c, delta, x1, x2;
printf("Giai phuong trinh bac hai\n");
printf("Nhap he so a = ");
scanf("%f", &a);
printf("Nhap he so b = ");
scanf("%f", &b);
printf("Nhap he so c = ");
scanf("%f", &c);
delta = b*b - 4*a*c;
if (delta > 0)
{
printf("Phuong trinh co hai nghiem phan biet\n");
x1 = (-b - sqrt(delta))/(2*a);
x2 = (-b + sqrt(delta))/(2*a);
printf("Nghiem x1 = %4.2f\n",x1);
printf("Nghiem x2 = %4.2f\n", x2);
}
else
if (delta == 0) printf("Phuong trinh co nghiem kep
la: %4.2f\n",-b/(2*a));
else printf ("Phuong trinh vo nghiem.\n");
getch();
}
Nhận xét: Có thể cải tiến chương trình trên để tính nghiệm cả trong trường hợp
hệ số a bằng 0.
5. BÀI T¾P 9
Viết chương trình mô phỏng cách gọ imenu. Chẳn ng hà n,n ếu nh tậpp vào chữ fhay
F thì ở rMộtlàb ạ n menu File ; _n ế u nh tập p vào ch lưu h hay H thì in ra là b ạ n ch ọ n
trình đơn Trợgiúp .
Thuthậptoán học :
Bước 1 : Nh file p vào ký tự ch ;
Bước 2 : Ki ể m tragiánấu chín một ch ;
•Nếu ch = 'F' thì in ra "Ban chon menu File"
•Nếu ch = 'f' thì in ra "Ban chon menu File"
•Nếu ch = 'H' thì in ra "Ban chon menu Help"
•Nếuch = 'h thì trongra“Bán chơn thực đơnGiúp đỡ"
Chương trình :
Nguyễn Văn Nguyên Bài thực hành Tin học Đại cương 6
about:blank 6/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
[123doc] - full-de-
thi-thuc-hanh-tin…
21
Trình cài
100% (4)
đặt kỹ…
about:blank 7/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
Trình cài 100% (2)
đặt kỹ…
Đ ¾ TÔI H QUẦN QUÈ C Đ MỘT N MỘT N G − T R ¯ QUẦN QUÈ N G Đ ¾ TÔI H
KHOA CÔNGNGH Þ THÔNG TIN
ĐỀ THI THỬ
54, NguyễnLương Bệ, Hòa Khành, LIên Chiểu , TP. Đà LạtUnẵn có
Điện thoại. 84236 3 736 949 Web: http://itf.dut.udn.vn/ Email: cntt@udn.dut.vn
CUỐI
KỲ KỸ Thuật NHIỆT
#bao gồmde <stdio.h> 5
#bao gồmde <conio.h> Trình cài
100% (2)
#bao gồmde <mathh>
đặt kỹ…
int maTRONG()
{
char ch;
printf("Nhậpvao mộtkỷ tử:");
quét("%c", &ch);
công tắc(ch)
{
trường hợp 'F':
trường hợp 'f': tiênntf("Ban chon menu File"); break;
trường hợp 'H':
trường hợp 'h': tiênntf("Ban chon menu Help"); break;
mặc địnht : tiênntf("Ban da nhap sai kbạn bạn yêucau");
}
chết tiệt();
}
x 3 + ồg 5(| x −3 | +2)
g(x) = 2
− +
Bài 4 . Viết chương trìnhfile p hai s ố th ự c x, y và tgiá trịtr ị c ủ a hàm hai kế n sau:
e x +y ln(| x 2 y | 5)
g(x, y) = + − +
+ − +
Bài 5.Viếttrình duyệtnhập vào đáy a, dư thừai b và chiều cao h của một hình
thang. Tính diện tích của hình thang này.
Bài 6. Viết chương trfile Haisố thực x, y và tính giá trị hàm sau:
e x +y lN(x2 y)
g(x, y) = − −
Lưu ýthể tìm lỗi khi hàm không xác định .
Bài 7. Viết chươtrình duyệtgiải phương trình bằng cách lặp lại phương thức:
about:blank 8/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
4 2
(ax + bx + c = 0, a 0)
Lưu ý đếm số ốnghi ệm khácnhauc ủa chương trình.
Bài 8. Viết chươtrình duyệtgiả định tôi h ệ phương trình gồm hai phương trbình và hai xuất n x, yv ớ
các hệthống ố tậptin ừ _ Keyboard.
NguyễnVăn Nguyên Bài viết tựhành động Tin học Đại cương số 8
about:blank 9/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
Thuthậptoán học :
Cho i=1 đế n 10
Cho j=2 đến 10 sau đótrong tôi*j.
Chương trình :
#include<stdio.h>
#bao gồmde<coniồ>
int maTRONG()
{
printf("________________Bang cuuchương________________\N\N");
int i,j,k;
vì(i=1;i<=10;i++)
{
vì(j=2;j<=10;j++)
printf("%dx%2d=%2d ",j,i,tôi*j);
printf("\n");
}
getch();
}
NguyễnVăn Nguyên Bài viết tựhành động Tin học Đại cương 9
about:blank 10/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
2. BÀI T¾P 2
Công thức đổi độ Fahrenhenó F tốc độ độ C là: C=5(F-32)/9.Viết chương
chương trình trong rab ảnh chuyển đổi i v ớ i 0 F 300 với bướ có hình ảnhy 20. Use value value
cho F vàgiátrị tự _c cho C.
Thuthậptoán học :
Thưnhớc1 : ChoF= 0;
Bước 2 : N ế u F>300 thì dừ ng ;
Bưnhớc 3 : TínhC = 5(F-32)/9.In F và C trên 1 dòng;
Bưnhớc 4 : ChoF= F + 20.Quay lngược lạibướ c 2.
Chương trình :
#bao gồmde <stdio.h>
#bao gồmde <conio.h>
int maTRONG()
{
int F;
trôi nổiC;
cho (F=0; F<=300; F+=20)
{
C=5*(F-32)/9.0;
printf("\n%-5dF <-->%.2f",F, C);
}
chết tiệt();
}
3. BẢN T¾P 3
Giácôgáilãi suấtcao nhấttrong thánglà d=2%, tiền vay ngân hàng là T = 1000000. Vì ết
file chương trìnhsố nguyên _ dương n vàở raVì thế tôi đền ph ảtôi tr ảsau n tháng.
Thuthậptoán học :
Bước 1 : Nhập p n;
Bưnhớc 2 : ChoT = 1000000;
Bưnhớc 3 : ChoTôicha ạ y t ừ0 đế n n - 1 tính: T= 1,02T;
Bước 4 : In ra T.
Giảithích_:
GọtôiTktôiMộtSốtI ENPh imageTôithình ảnhSaukthMỘTg. SốtI ENNMộtyba _ngSốtI ENPh imageTôit
đếnthángtrước(Tk-1)cTRÊN_gtI ENtôiMộttôi 1thMộtngcbạn sốTôicùNg (2%T k-1 =0.02Tk-1).CócôNgquần qu
trbạnyh ồTôichoTktôiMột:T k =Tk-1+0.02T k-1=10,02T k-1.
Yêu cầu đầutiên :
Chạy_unơngtrìnhbạn _ở đầu _vớ _Tôivi c _thayT làgiá vị trí file file _ừ _ lệnh cấmphTôi.
Chương trình :
#bao gồmde <stdio.h>
NguyễnVăn Nguyên Bài viết tựhành động Tin học Đại cương 10
about:blank 11/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
Đ ¾ I H Þ C Đ À N Ẵ N G − T R ¯ Þ N G Đ ¾ I H Þ C B Á C H K H O A
KHOA CÔNG NGHÞ THÔNG TIN
54, Nguyễn Lương Bằng, Hoà Khánh, Liên Chiểu, TP. Đà Nẵng
Tél. 84 236 3 736 949 Web: http://itf.dut.udn.vn/ Email: cntt@udn.dut.vn
#include <conio.h>
int main()
{
int k, n;
float T=1000000;
printf("n= "); scanf("%d",&n);
for (k=0; k<n; k++) T*=1.02;
printf("So tien phai tra = %0.2f", T);
getch();
}
4. BÀI T¾P 4
Viết chương trình nhập số nguyên dương n và tính tổng:
1 1 1
Sn = + + ...+
1 2 n
Thuật toán:
Bước 1: Nhập n;
Bước 2: Cho S = 0;
Bước 3: Cho k chạy từ 1 đến n tính:
1
S = S+
k
Bước 4: In ra S.
Nhận xét:
Phép chia dùng cho cả số thực lẫn số nguyên. Ngôn ngữ C luôn ngầm định là
phép chia kiểu số nguyên (int).
Chương trình:
#include <stdio.h>
#include <conio.h>
int main()
{
int k, n;
float S=0;
printf("n= "); scanf("%d",&n);
for (k=1; k<=n; k++) S+=1.0/k;
printf("Sn = %0.2f", S);
getch();
}
5. BÀI T¾P 5
Số hoàn hảo là số nguyên dương bằng tổng các ước thực sự của nó. Ví dụ: 6 =
1+2+3. Viết chương trình in ra tất cả các số hoàn hảo nhỏ hơn 1000.
Nguyễn Văn Nguyên Bài thực hành Tin học Đại cương 11
about:blank 12/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
Đ ¾ I H Þ C Đ À N Ẵ N G − T R ¯ Þ N G Đ ¾ I H Þ C B Á C H K H O A
KHOA CÔNG NGHÞ THÔNG TIN
54, Nguyễn Lương Bằng, Hoà Khánh, Liên Chiểu, TP. Đà Nẵng
Tél. 84 236 3 736 949 Web: http://itf.dut.udn.vn/ Email: cntt@udn.dut.vn
Thuật toán:
Cho n chạy từ 1 đến 999 thực hiện các bước sau:
Bước 1: Cho S = 0, k = 1;
n
Bước 2: Lặp cho đến khi k > : Nếu k là ước của n thì cộng k vào S;
2
Bước 3: Nếu S = n thì in ra n.
Yêu cầu:
Thay số 1000 trong chương trình bởi số lớn hơn để tìm thêm các số hoàn hảo.
Chương trình:
#include <stdio.h>
#include <conio.h>
int main()
{
int n, k, S;
for (n=1; n<1000; n++){
S=0;
for (k=1; k<=n/2; k++){
if (n%k==0) S+=k;
}
if (S==n) printf("\n%d", n);
}
getch();
}
6. BÀI T¾P 6
Viết chương trình in ra tất cả các số hoàn hảo nhỏ hơn n có sử dụng hàm :
Chương trình:
#include <stdio.h>
#include <conio.h>
#include <math.h>
int Hoanhao(int n)
{
int i,sum;
sum=0;
for(i=1;i<=n/2;i++)
if(n%i==0) sum+=i;
if(sum==n) return 1 ;
else return 0;
}
main()
{
int n,i;
printf("nhap so n =");scanf("%d",&n);
Nguyễn Văn Nguyên Bài thực hành Tin học Đại cương 12
about:blank 13/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
Đ ¾ I H Þ C Đ À N Ẵ N G − T R ¯ Þ N G Đ ¾ I H Þ C B Á C H K H O A
KHOA CÔNG NGHÞ THÔNG TIN
54, Nguyễn Lương Bằng, Hoà Khánh, Liên Chiểu, TP. Đà Nẵng
Tél. 84 236 3 736 949 Web: http://itf.dut.udn.vn/ Email: cntt@udn.dut.vn
for(i=1;i<=n;i++)
if (Hoanhao(i)==1) printf("%10d",i);
getch();
}
7. BÀI T¾P 7
Viết chương trình in ra tất cả các số nguyên tố từ 2 đến 1000000.
Thuật toán:
Thuật toán đơn giản kiểm tra n có phải là số nguyên tố hay không và in n nếu
nguyên tố.
Bước1: Cho nt = 1, k = 2;
Bước 2: Lặp trong khi k < n:
• Nếu k là ước của n thì nt = 0;
• Cho k = k + 1.
Bước 3: Nếu nt = 1 thì in ra n.
Nhận xét:
a) Ngôn ngữ C ngầm định hằng số kiểu nguyên (int). Nên với hằng số nguyên
lớn (long int) thì thêm L ở cuối. Như 123456L.
b) Nếu n = x.y và nếu y> n thì x < n . Do đó chì cần kiểm tra đến k= n hay
k2=n. Hơn nữa, nếu k là ước của n thì không cần kiểm tra tiếp.
Vậy có thể cải tiến cho chương trình chạy nhanh hơn bằng cách thay bước kiểm
tra n nguyên tố như sau:
• Tăng k lên một đơn vị trong khi k2<=n và k không là ước của n.
• Nếu k2 > n thì n là số nguyên tố.
Yêu cầu:
Thay số 1000000L trong chương trình bởi số lớn hơn như 1000000000L để theo
dõi thời gian chạy chương trình.
Chương trình:
#include <stdio.h>
#include <conio.h>
int main()
{
long n, k, nt;
for (n=2; n<1000000L; n++){
nt=1;
for (k=2; k<n; k++)
Nguyễn Văn Nguyên Bài thực hành Tin học Đại cương 13
about:blank 14/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
Đ ¾ I H Þ C Đ À N Ẵ N G − T R ¯ Þ N G Đ ¾ I H Þ C B Á C H K H O A
KHOA CÔNG NGHÞ THÔNG TIN
54, Nguyễn Lương Bằng, Hoà Khánh, Liên Chiểu, TP. Đà Nẵng
Tél. 84 236 3 736 949 Web: http://itf.dut.udn.vn/ Email: cntt@udn.dut.vn
if (n%k==0) nt=0;
if (nt) printf("\n%ld", n);
}
getch();
}
8. BÀI T¾P 8
Viết chương trình có sử dụng hàm kiểm tra n (nhập từ bàn phím) có phải số nguyên
tố không ?
Chương trình:
#include <stdio.h>
#include <math.h>
#include <conio.h>
int kt(int n)
{ int i;
if(n<2) return 0;
for(i=2;i<=(int)sqrt(n); i++)
if(n%i==0) return 0;
return 1;
}
main()
{
int n;
printf("Nhap n=") ;
scanf("%d",&n);
if(kt(n)) printf("Day la so nguyen to"); else printf("Khong phai
la so nguyen to");
getch();
}
9. BÀI T¾P 9
Viết chương trình có sử dụng hàm in ra các nguyên tố nhỏ hơn hoặc bằng n (n nhập
từ bàn phím) ?
Chương trình:
#include <stdio.h>
#include <conio.h>
#include <math.h>
int kt(int n)
{ int i;
if(n<2) return 0;
for(i=2;i<=(int)sqrt(n); i++)
if(n%i==0) return 0;
Nguyễn Văn Nguyên Bài thực hành Tin học Đại cương 14
about:blank 15/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
trở lại1;
}
chủ yếu()
{
int tôi,N;
inf("Nhapn=") ;
quét("%d",&N);
vì (tôi=0; tôi <=n; tôi++)
nếu(kt(i)) printf("%4d”, tôi);
khốn nạn();
}
10.BẢN T¾P 10
Vi ết chươn g trmàn hình hiển thịhìnhb ả ng chân trưc cữu logic toán được phép :
VÀ, HOẶC,NAND, KHÔNG, CŨNG KHÔNG, XOR. Use cMộtcphéPtôiôiictươngứ ngtôiMột: &&, ||, !, ^
Cụ quần quèthẻbMộtngchMộtNtị _ NhưSau:YtôiMộtkế _tqbạn làaicu a _các pAnh taPtoáNtôiôiTôictrêN
Phép KHÔNG:
MỘT Y
0 1
0 1
1 0
1 0
Phép AND
MỘT B Y
0 0 0
0 1 0
1 0 0
1 1 1
Phép OR
MỘT B Y
0 0 0
0 1 1
1 0 1
1 1 1
Phép NOR
MỘT B Y
0 0 1
0 1 0
1 0 0
1 1 0
about:blank 16/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
Đ ¾ I H Þ C Đ À N Ẵ N G − T R ¯ Þ N G Đ ¾ I H Þ C B Á C H K H O A
KHOA CÔNG NGHÞ THÔNG TIN
54, Nguyễn Lương Bằng, Hoà Khánh, Liên Chiểu, TP. Đà Nẵng
Tél. 84 236 3 736 949 Web: http://itf.dut.udn.vn/ Email: cntt@udn.dut.vn
Phép NAND
A B Y
0 0 1
0 1 1
1 0 1
1 1 0
Phép XOR
A B Y
0 0 0
0 1 1
1 0 1
1 1 0
Chương trình:
#include <stdio.h>
#include <conio.h>
#define TRUE 1
#define FALSE 0
/*--KHAI BAO CAC HAM NGUYEN MAU--*/
/*--------------------------------*/
int NOT(int x);
int AND(int x,int y);
int OR(int x,int y);
int NAND(int x,int y);
int NOR(int x,int y);
int XOR(int x,int y);
void VIET();
/*--------------------------------*/
int main()
{
char ch;
tt:
printf("\n\tCopyright by NGUYEN VAN NGUYEN \n");
printf("\n");
printf("\n\tBang chan tri cua dinh luat DE Morgan");
printf("\n");
VIET();
printf("\n");
printf("\nAn Enter tiep tuc.An phim ESC de thoat");
do
{
ch=getch();
}while(ch!=13 && ch!=27);
if(ch==13) goto tt;
return(0);
Nguyễn Văn Nguyên Bài thực hành Tin học Đại cương 16
about:blank 17/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
}
/*--------------------------------*/
int AND(intx, int y)
{
trở lạin(x&&y);
}
/*--------------------------------*/
int HOẶC(int x,int y)
{
trở lạin(x||y);
}
/*--------------------------------*/
int KHÔNGR(int x,int y)
{
trở lại(!(x||y));
}
/*--------------------------------*/
int NAND(intx, int y)
{
trở lại(!(x&&y));
}
/*--------------------------------*/
int KHÔNGT(int x)
{
trở lại(!x);
}
int XOR(int x,int y)
{
trở lại(x^y);
}
/*--------------------------------*/
khoảng trống VIET()
{
int A,B,C,D,E,F,G,H;
inf("\n\tA\tB\tC\tD\tE\tF\tG\tH");
cho một=SAI;A<=ĐÚNG;A++)
cho (B=SAI;B<=ĐÚNG;B++)
{
C=VÀ(A,B);
D=HOẶC(A,B);
E=CŨNG(A,B);
F=NAND(A,B);
G=KHÔNG(A);
H=XOR(A,B);
PRintf("\n\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%thoa,C,D,E,F,G,H);
}
}
about:blank 18/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
11.BẢN T¾P 11
Viết_Ngày đótính toánN!!, vớitôi N làSố tự nhiê_ n <=19và đifile filept ừ bàn làm việckey.
Sẵn có :N!!=2*4*6*…*N.
N l ẻ: N!!=1*3*5**…*N
Một.Use vì
b.Use wh ile
c.Use làm gìle
d.Use recursive _
Chươngchương trình
#bao gồmbạn ơi <stdio.h>
#bao gồmbạn ơi <ccủ hành.h>
#bao gồmbạn ơi <mà.h>
dài gtkep(lớngn)
{ lớngp=1;
intTôi;
vì(tôi=n; Tôi>0;tôi-=2)p*=tôi;
return p;
}
dàigtk(long n)
{
ồng p=1;
cái gìile(n>0) {p=p*n;
N-=2;}
trở lạinp;
}
int giathumột (trongtn)
{
nếu như(n<2)về lạibình đựng tro cốt1;
về lạibình đựng tro cốtn*giai đóua(n-2);
}
dàigt(lớngn)
{ lớngp=1;
LÀM{p*=n; n-=2;}
cái gìle (n>0);
về lạibình p;
}
chủ yếu()
{intN;
inf("Nhapn=");
quétf("%ld",&N);
hoàng tửtf("Gtgiữ=%ld\N",gtkep(n));
hoàng tửtf("Gtgiữ=%ld\N",gtk(N));
hoàng tửtf("Gtgiữ=%ld\N",giaithua(N));
hoàng tửtf("gtgiữ =%ld\n",gt(N));
getch();
}
about:blank 19/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
Đ ¾ I H Þ C Đ À N Ẵ N G − T R ¯ Þ N G Đ ¾ I H Þ C B Á C H K H O A
KHOA CÔNG NGHÞ THÔNG TIN
54, Nguyễn Lương Bằng, Hoà Khánh, Liên Chiểu, TP. Đà Nẵng
Tél. 84 236 3 736 949 Web: http://itf.dut.udn.vn/ Email: cntt@udn.dut.vn
12 BÀI T¾P 12
Các cách hoán đổi hai số nhập từ bàn phím
Chương trình
#include <stdio.h>
#include <conio.h>
void Swap1(int &a, int &b) // Hoan doi khong dung bien tam
{
a=a+b;
b=a-b;
a=a-b;
}
void Swap2(int &a, int &b) // Hoan doi khong dung bien tam. Dung phep
XOR
{
a = a ^ b;
b = a ^ b;
a = a ^ b;
}
void Swap3(int &a, int &b) // Hoan doi dung bien tam
{
int tam;
tam=a;
a=b;
b=tam;
}
void Swap4(int *a, int *b) // Hoan doi dung con tro va bien tam
{
int tam;
tam=*a;
*a=*b;
*b=tam;
}
main()
{int a,b;
printf("Nhap a=");
scanf("%d",&a);
printf("Nhap b=");
scanf("%d",&b);
Swap1(a,b);
Swap1(a,b);
Swap2(a,b);
Swap3(a,b);
Swap4(&a,&b);
printf("Gia tri a sau khi hoan doi %d\n",a);
printf("Gia tri b sau khi hoan doi %d\n",b);
getch();
}
Nguyễn Văn Nguyên Bài thực hành Tin học Đại cương 19
about:blank 20/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
Đ ¾ I H Þ C Đ À N Ẵ N G − T R ¯ Þ N G Đ ¾ I H Þ C B Á C H K H O A
KHOA CÔNG NGHÞ THÔNG TIN
54, Nguyễn Lương Bằng, Hoà Khánh, Liên Chiểu, TP. Đà Nẵng
Tél. 84 236 3 736 949 Web: http://itf.dut.udn.vn/ Email: cntt@udn.dut.vn
Chương trình
#include<bits/stdc++.h>
float ptb2(float a, float b, float c, float *x1, float *x2);
main(){
Nguyễn Văn Nguyên Bài thực hành Tin học Đại cương 20
about:blank 21/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
Đ ¾ I H Þ C Đ À N Ẵ N G − T R ¯ Þ N G Đ ¾ I H Þ C B Á C H K H O A
KHOA CÔNG NGHÞ THÔNG TIN
54, Nguyễn Lương Bằng, Hoà Khánh, Liên Chiểu, TP. Đà Nẵng
Tél. 84 236 3 736 949 Web: http://itf.dut.udn.vn/ Email: cntt@udn.dut.vn
Bài 1. Viết chương trình tính sin(x) triển khai theo chuỗi số sau:
sin(x) = x/1! – x3/3! + ... + (-1)n.x2n+1/(2n+1)!
Số phần tử được chọn cho tới khi đạt độ chính xác: x2n+1/(2n+1)!| < EPS=10-6 (dùng
hàm fabs trong <math.h>)
Bài 2. Viết chương trình tính cos(x) triển khai theo chuỗi số sau:
2 4 2n
S = Cos(x) = 1 -
x +
x - ... + (-1)n
x + ...
2! 4! (2n )!
Bài 3. Viết chương trình tính Sh(x) triển khai theo chuỗi số sau:
3 5 2 n +1
Bai 4. Viết chương trình tính ch(x) triển khai theo chuỗi số sau:
2 4 2n
x x x + ...
S = ch(x) = 1 + + + ....+
2! 4! (2n )!
Nguyễn Văn Nguyên Bài thực hành Tin học Đại cương 21
about:blank 22/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
Đ ¾ I H Þ C Đ À N Ẵ N G − T R ¯ Þ N G Đ ¾ I H Þ C B Á C H K H O A
KHOA CÔNG NGHÞ THÔNG TIN
54, Nguyễn Lương Bằng, Hoà Khánh, Liên Chiểu, TP. Đà Nẵng
Tél. 84 236 3 736 949 Web: http://itf.dut.udn.vn/ Email: cntt@udn.dut.vn
Chương trình:
#include <stdio.h>
#include <conio.h>
#include <math.h>
void Nhap(int a[], int n)
{
int i;
for(i=0; i<n; i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
}
void Xuat(int a[], int n)
{
int i;
for(i=0; i<n; i++) printf("%4d",a[i]);
}
main()
{ int a[100];
int n;
printf("Nhap n");
scanf("%d",&n);
Nhap(a,n);
Xuat(a,n);
getch();
}
Nguyễn Văn Nguyên Bài thực hành Tin học Đại cương 22
about:blank 23/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
Đ ¾ I H Þ C Đ À N Ẵ N G − T R ¯ Þ N G Đ ¾ I H Þ C B Á C H K H O A
KHOA CÔNG NGHÞ THÔNG TIN
54, Nguyễn Lương Bằng, Hoà Khánh, Liên Chiểu, TP. Đà Nẵng
Tél. 84 236 3 736 949 Web: http://itf.dut.udn.vn/ Email: cntt@udn.dut.vn
2. BÀI T¾P 2
Viết chương trình có sử dụng hàm
a. Nhập mảng một chiều nguyên với n phần tử nhập từ bàn phím, n>=10.
b. Xuất mảng A ra màn hình
c. Đảo mảng A, sau đó xuất lại mảng A.
Chương trình:
#include <stdio.h>
#include <conio.h>
#include <math.h>
void Nhap(int a[], int n)
{
int i;
for(i=0; i<n; i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
}
void Xuat(int a[], int n)
{
int i;
for(i=0; i<n; i++) printf("%4d",a[i]);
}
void Dao(int a[],int n)
{ int i,tam;
for (i=0; i<n/2; i++)
{
tam=a[i] ;
a[i] =a[n-i-1];
a[n-i-1]=tam;
}
}
main()
{ int a[100];
int n;
do {
printf("Nhap n=");
scanf("%d",&n);
}while (n<10);
Nhap(a,n);
Xuat(a,n);
Dao(a,n);
printf("\nMang A sau khi dao\n");
Xuat(a,n);
getch();
}
Nguyễn Văn Nguyên Bài thực hành Tin học Đại cương 23
about:blank 24/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
Đ ¾ I H Þ C Đ À N Ẵ N G − T R ¯ Þ N G Đ ¾ I H Þ C B Á C H K H O A
KHOA CÔNG NGHÞ THÔNG TIN
54, Nguyễn Lương Bằng, Hoà Khánh, Liên Chiểu, TP. Đà Nẵng
Tél. 84 236 3 736 949 Web: http://itf.dut.udn.vn/ Email: cntt@udn.dut.vn
3. BÀI T¾P 3
Viết chương trình nhập mảng 1 chiều A có n phần tử có sử dụng hàm(với n nhập từ
bàn phím). :
a. Xuất các phần tử đã nhập ra màn hình.
b. Sắp xếp mảng theo thứ tự tăng dần
Chương trình:
#include <stdio.h>
#include <conio.h>
#include <math.h>
void Nhap(float a[], int n)
{
int i;
for(i=0; i<n; i++)
{
printf("a[%d]=",i);
scanf("%f",&a[i]);
}
}
void Xuat(float a[], int n)
{
int i;
for(i=0; i<n; i++) printf("%6.2f",a[i]);
}
void Hoandoi( float *x, float *y)
{ float tam;
tam=*x;
*x=*y;
*y=tam;
}
void Sapxep( float a[], int n)
{ int i,j;
for(i=0; i<n-1; i++)
for(j=i+1;j<n; j++ )
if(a[i]>a[j]) Hoandoi(&a[i],&a[j]);
}
main()
{ float a[100];
int n;
printf("Nhap n");
scanf("%d",&n);
Nhap(a,n);
Xuat(a,n);
Sapxep(a,n);
printf("\n Mang sau khi sap xep tang dan\n");
Xuat(a,n);
getch();
Nguyễn Văn Nguyên Bài thực hành Tin học Đại cương 24
about:blank 25/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
4.BẢN T¾P 4
Viếtchương trìnhntậppmảnh ng1 chi đều A nguyên có n ph ầu nt sử có sử dụ nghàm (v ới n
tậptintừ bàn làm việckey). :
Một. Xấucác phẩn__xửlý màn hình.
b.Tìm ướ c s ốchung l ớn nh ậctủ acác ốtrên
c.Tìm b ội s ốchung nh hoặcnh ợttủa các ốtrên
Chương trình :
#bao gồmude<stdio.h>
#bao gồmde<coniồ>
khoảng trống Nhap(intmột[],trongtn)
{
int tôi;
cho (tôi=0; tôi<n; tôi++)
{
printf("NhậpA[%d]=",Tôi);
quét("%d",&a[Tôi]);
}
}
khoảng trống Xuat(intmột [], tôikhông n)
{
int tôi;
printf("Mangvua nhakế hoạch");
cho (tôi=0; tôi<n; tôi++)printf("%4d",a[Tôi]);
}
about:blank 26/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
{
nếu (n<1) return(a[0]);
int tôi,d=Bcnn(một [0], một [1]);
cho (tôi=2; tôi<n; tôi++)d=Bcnn(d,a[i]);
trở lại(đ);
}
chủ yếu()
{
int n;
printf("Nhậpn=");
quét("%d",&n);
int một [100];
Nháp(a,N);
Xuất(a,N);
printf("\nUCLNcua day la:%d",U có thể));
printf("\nBCNNcua day la:%d",Bc(a,n));
chết tiệt();
}
5. BÀI T¾P 5
Viếtchương trìnhntậppmảnh ng1 chi đều A nguyên có n ph ầu nt sử có sử dụ nghàm (v ới n
tậptintừ bàn làm việckey). :
Một. Xấucác phẩn__xửlý màn hình.
b.Remove các phẩn sửdụngâm thanh trong hìnhảnh
Chương trình :
#bao gồmde<stdiồ>
#bao gồmde<coniồ>
/*----------------------------------------*/
khoảng trống Nhap(int*a,intN)
{int tôi;
vì (tôi=0;tôi<n;i++)
{printf("a[%d]=",tôi);quét("%d",&a[Tôi]);
}
}
/*----------------------------------------*/
khoảng trống Xuat(int*a,intN)
{int tôi;
cho (tôi=0;i<n;tôi++)
inf("%5d",a[i]);
}
/*----------------------------------------*/
trống rỗng Xoaam(int *a,tôint *n)
{inttôi,j,L;
tôi=0;
trong khi(tôi<*n)
{nếu như(một[i]<0)
{fhoặc(j=i;j<*n-1;j++)
about:blank 27/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
Một[i]=a[j+1];
(*N)--;
đồngtiếp tục;
}
Tôi++;
}
}
/*----------------------------------------*/
chủ yếu()
{
int a[50],n,tôi, j;
inf("Nhapn=");scanf("%d",&N);
Nhập(MỘT);
Xuất(MỘT);
inf("\n");
Xoaam(MỘT);
Xuất(MỘT);
khốn nạn();
}
vô hiệuanso(char s[30])
{
ký tựnhiệt độ [30],c[2];
int tôi=0,j=0,d;
c[1]='\0';
nhiệt độ[0]='\0';
trong khi(tôi<=strlen (các)){
trong khie(isspace(s[i]))i++;
nếu (các)trchr(temp,s[i])==KHÔNG)
{
c[0]=s[i];
strctại (nhiệt độ,c);}
tôi++;
}
hoàng tửtf("\nTrong xabạn có thểc kỷ tu:%s",temp);
about:blank 28/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
trong khie(j<strlen(temP))
{
d=0;
vì(i=0;i<=strilen(s);i++)
nếu như(nhiệt độ[j]==s[i])d++;
ưu tiênntf("\nKỳ tử %c xuấthiện %ilan",temp[j],d);
++j;
}
}
/*--------------------------------------*/
chủ yếu()
{
char s[256],*s1;
trong khi(1) {
printf("\nNhapvào xãbạn ký tư:");
được (các));
tanso(S);
printf("\n Trướcss qor Q tớilối ra");
nếu(!kbđánh())
nếu (tphía trên(getch())=='Q')phá vỡ;
}
}
2.BẢN T¾P 2
Viếtchương trìnhnh tậptin vào m ộchu lỗi ký tự , sabạn đếm m số từcu a chu chu iký tự .
Chương trình :
about:blank 29/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
Đ ¾ I H Þ C Đ À N Ẵ N G − T R ¯ Þ N G Đ ¾ I H Þ C B Á C H K H O A
KHOA CÔNG NGHÞ THÔNG TIN
54, Nguyễn Lương Bằng, Hoà Khánh, Liên Chiểu, TP. Đà Nẵng
Tél. 84 236 3 736 949 Web: http://itf.dut.udn.vn/ Email: cntt@udn.dut.vn
}
/*--------------------------------------*/
main()
{
char s[256],*s1;
while(1) {
printf("\nNhap vao xau ky tu:");
gets(s);
printf("Xau ky tu %s",s);
printf("\n Co %d tu trong xau ky ",number_word(s));
printf("\n Press q or Q to exit");
if(!kbhit())
if (toupper(getch())=='Q') break;
}
}
Nguyễn Văn Nguyên Bài thực hành Tin học Đại cương 29
about:blank 30/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
Đ ¾ I H Þ C Đ À N Ẵ N G − T R ¯ Þ N G Đ ¾ I H Þ C B Á C H K H O A
KHOA CÔNG NGHÞ THÔNG TIN
54, Nguyễn Lương Bằng, Hoà Khánh, Liên Chiểu, TP. Đà Nẵng
Tél. 84 236 3 736 949 Web: http://itf.dut.udn.vn/ Email: cntt@udn.dut.vn
Trong hßc phần tin hßc Đ¿i c°¡ng yêu cầu sinh viên chỉ thÿc hißn một vài
ph°¡ng pháp sắp xếp đ¡n giÁn. Sau đây trình bày có hai ph°¡ng pháp
th°ßng hay áp dụng cho Tin hßc Đ¿i c°¡ng, cụ thể nh° sau:
GiÁi thu¿t
Ý tưởng của thuật toán chọn trực tiếp mô phỏng một trong những cách sắp xếp tự nhiên nhất trong
thực tế: chọn phần tử nhỏ nhất trong N phần tử ban đầu, đưa phần tử này về vị trí đúng là đầu dãy
hiện hành; sau đó không quan tâm đến nó nữa, xem dãy hiện hành chỉ còn N-1 phần tử của dãy
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ử. Dãy ban đầu có N phần tử, Vậy tóm tắt ý tưởng thuật toán là thực hiện N-1 lượt
việc đưa phần tử nhỏ nhất trong dãy hiện hành về vị trí đúng ở đầu dãy. Các bước tiến hành như
sau :
• Bước 1: i = 1;
• 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 : Hoán vị a[min] và a[i]
• Bước 4 : Nếu i < n-1 thì i = i+1; Lặp lại Bước 2 ngược lại: thì dừng. //n-1 phần tử đã nằm
đúng vị trí.
Chương trình:
#include<stdio.h>
#include<conio.h>
#include<time.h>
#include<stdlib.h>
}
void Swap(int *a,int *b){
int tmp =*a;
*a=*b;
*b=tmp;
}
void SelectionSort(int a[],int n )
{ int min; // chi so phan tu nho nhat trong day
int i,j;
for ( i=0; i<n-1 ; i++)
{ min = i;
for( j = i+1; j <n ; j++)
if (a[j] < a[min])
Nguyễn Văn Nguyên Bài thực hành Tin học Đại cương 30
about:blank 31/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
Đ ¾ I H Þ C Đ À N Ẵ N G − T R ¯ Þ N G Đ ¾ I H Þ C B Á C H K H O A
KHOA CÔNG NGHÞ THÔNG TIN
54, Nguyễn Lương Bằng, Hoà Khánh, Liên Chiểu, TP. Đà Nẵng
Tél. 84 236 3 736 949 Web: http://itf.dut.udn.vn/ Email: cntt@udn.dut.vn
Nguyễn Văn Nguyên Bài thực hành Tin học Đại cương 31
about:blank 32/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
Đ ¾ I H Þ C Đ À N Ẵ N G − T R ¯ Þ N G Đ ¾ I H Þ C B Á C H K H O A
KHOA CÔNG NGHÞ THÔNG TIN
54, Nguyễn Lương Bằng, Hoà Khánh, Liên Chiểu, TP. Đà Nẵng
Tél. 84 236 3 736 949 Web: http://itf.dut.udn.vn/ Email: cntt@udn.dut.vn
start=clock();
qsort(A, n, sizeof(int), Compare);
end=clock();
Output();
printf("\nXung bat dau: %ld",start);
printf("\nXung ket thuc: %ld",end);
getch();
}
void Input()
{ int i;
for(int i=0;i<n;i++)
{
A[i]=rand()%10000+1;
}
}
int Compare (const void * a, const void * b)
{
return ( *(int*)a - *(int*)b );
}
void Output()
{ int i;
printf("\nMang sau khi sap xep: \n\t");
for(i=0;i<n;i++)
printf("%10d",A[i]);
}
main()
{
clock_t start,end;
printf("\n\t\tHam Quicksort cua DEV-C");
srand(time(NULL));
Nguyễn Văn Nguyên Bài thực hành Tin học Đại cương 32
about:blank 33/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
Đ ¾ I H Þ C Đ À N Ẵ N G − T R ¯ Þ N G Đ ¾ I H Þ C B Á C H K H O A
KHOA CÔNG NGHÞ THÔNG TIN
54, Nguyễn Lương Bằng, Hoà Khánh, Liên Chiểu, TP. Đà Nẵng
Tél. 84 236 3 736 949 Web: http://itf.dut.udn.vn/ Email: cntt@udn.dut.vn
}
int Compare (const void * a, const void * b)
{
return ( *(int*)b - *(int*)a );
}
void Output()
{ int i;
printf("\nMang sau khi sap xep: \n\t");
for(i=0;i<n;i++)
printf("%10d",A[i]);
}
}
void Swap(int *a,int *b){
int tmp =*a;
Nguyễn Văn Nguyên Bài thực hành Tin học Đại cương 33
about:blank 34/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
Đ ¾ I H Þ C Đ À N Ẵ N G − T R ¯ Þ N G Đ ¾ I H Þ C B Á C H K H O A
KHOA CÔNG NGHÞ THÔNG TIN
54, Nguyễn Lương Bằng, Hoà Khánh, Liên Chiểu, TP. Đà Nẵng
Tél. 84 236 3 736 949 Web: http://itf.dut.udn.vn/ Email: cntt@udn.dut.vn
*a=*b;
*b=tmp;
}
void QuickSort(int a[], int left, int right)
{
int i = left, j = right;
int pivot = a[(left + right) / 2]; // Lay pivot là phan tu giua
do
{
// Tìm vi trí i, j can hoán vi
while (a[i] < pivot && i < right) i++;
while (a[j] > pivot && j > left) j--;
if (i <= j)
{
Swap(&a[i], &a[j]);
i++; j--;
}
} while (i <= j);
Nguyễn Văn Nguyên Bài thực hành Tin học Đại cương 34
about:blank 35/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
Đ ¾ I H Þ C Đ À N Ẵ N G − T R ¯ Þ N G Đ ¾ I H Þ C B Á C H K H O A
KHOA CÔNG NGHÞ THÔNG TIN
54, Nguyễn Lương Bằng, Hoà Khánh, Liên Chiểu, TP. Đà Nẵng
Tél. 84 236 3 736 949 Web: http://itf.dut.udn.vn/ Email: cntt@udn.dut.vn
#include<time.h>
#include<stdlib.h>
void Input(int a[], int n)
{ int i;
for(i=0;i<n;i++)
{
a[i]=rand()%1000+1;
}
void Swap(int *a,int *b){
int tmp =*a;
*a=*b;
*b=tmp;
}
void QuickSort(int a[], int left, int right)
{
int i = left, j = right;
int pivot = a[(left + right) / 2]; // Lay pivot là phan tu giua
do
{
// Tìm vi trí i, j can hoán vi
while (a[i] > pivot && i < right) i++;
while (a[j] < pivot && j > left) j--;
if (i <= j)
{
Swap(&a[i], &a[j]);
i++; j--;
}
} while (i <= j);
Nguyễn Văn Nguyên Bài thực hành Tin học Đại cương 35
about:blank 36/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
Đ ¾ I H Þ C Đ À N Ẵ N G − T R ¯ Þ N G Đ ¾ I H Þ C B Á C H K H O A
KHOA CÔNG NGHÞ THÔNG TIN
54, Nguyễn Lương Bằng, Hoà Khánh, Liên Chiểu, TP. Đà Nẵng
Tél. 84 236 3 736 949 Web: http://itf.dut.udn.vn/ Email: cntt@udn.dut.vn
Input(a,n);
start=clock();
QuickSort(a,0,n-1);
end=clock();
Output(a,n);
printf("\nXung bat dau: %ld",start);
printf("\nXung ket thuc: %ld",end);
getch();
}
1. BÀI T¾P 1
Chương trình:
#include <stdio.h>
#include <conio.h>
#include <math.h>
void Nhap(int a[][100], int n, int m)
{int i,j;
for(i=0; i<n; i++)
for(j=0; j<m; j++)
{
printf("a[%d][%d]",i,j);
scanf("%d",&a[i][j]);
}
}
void Xuat(int a[][100], int n, int m)
{int i,j;
for(i=0; i<n; i++)
{ printf("\n");
for(j=0; j<m;j++) printf("%4d",a[i][j]);
}
}
main()
{int a[100][100];
int n,m;
printf("Nhap n=");
scanf("%d",&n);
Nguyễn Văn Nguyên Bài thực hành Tin học Đại cương 36
about:blank 37/42
23:05 20/01/2024 <font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Các …
Đ ¾ I H Þ C Đ À N Ẵ N G − T R ¯ Þ N G Đ ¾ I H Þ C B Á C H K H O A
KHOA CÔNG NGHÞ THÔNG TIN
54, Nguyễn Lương Bằng, Hoà Khánh, Liên Chiểu, TP. Đà Nẵng
Tél. 84 236 3 736 949 Web: http://itf.dut.udn.vn/ Email: cntt@udn.dut.vn
printf("Nhap m=");
scanf("%d",&m);
Nhap(a,n,m);
Xuat(a,n,m);
getch();
}
2. BÀI T¾P 2
#include<conio.h>
#include<stdio.h>
void Nhap(int a[][50], int n)
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
printf("A[%d][%d]=",i,j);
scanf("%d",&a[i][j]);
}
}
Nguyễn Văn Nguyên Bài thực hành Tin học Đại cương 37
about:blank 38/42