Trong thời đại CNTT phát triển nhanh với tốc độ chóng mặt như hiện nay, Tin học Văn phòng là một trong những Kỹ năng mềm không thể thiếu được với mỗi sinh viên, nhân viên văn phòng,… Bất kỳ Nhà tuyển dụng nào cũng thường yêu cầu rất cao khả năng sử dụng thành thạo Tin học văn phòng như: Word, Excel, PowerPoint, Access,…Và trong những năm gần đây thì yêu cầu đó ngày càng cao hơn trước rất nhiều. Trang bị Kiến thức, kỹ năng sử Tin học văn phòng thành thạo là một việc rất cần thiết trước khi bạn tiến hành đi xin việc.
Trang 1TH C HÀNH MÔN TIN H C I C NG
Bài 6 M NG
I TÓM T T BÀI TH C HÀNH
¬ Th c hành v c u t r úc d li u m ng 1 chi u và m ng 2 chi u
¬ Vi t đ c các ch ng t r ình v m ng m t chi u:
̇ Nh p, xu t m ng s nguy ên
̇ Tìm s l n nh t / nh nh t t r ong m ng
̇ Tính t ng các s l t r ong m ng
̇ Cho bi t m ng t r ên là m ng t ng, m ng gi m hay không t ng không gi m
¬ Vi t đ c ch ng t r ình v m ng hai chi u :
̇ Nh p, xu t m a t r n s nguy ên
̇ I n r a các s l n nh t t r ên m i dòng
̇ I n r a các s t r ên đ ng chéo chính, đ ng chéo ph
¬ Chú ý:
̇ L u đ
̇ Cách t i p c n đ gi i bài t oán t r ên m áy t ính
II THAO TÁC T NG B C
2.1 Vi t ch ng trình v m ng m t chi u:
2.1.1 Nh p, xu t m ng s nguyên
̇ Nh p s ph n t m ng n
̇ L p i t 0 đ n n – 1
̇ Nh p s nguy ên a[ i]
̇ L p i t 0 đ n n – 1
̇ Xu t s nguy ên a[ i]
#include "stdio.h"
#include "conio.h"
void main()
{
int n,i;//Khai báo bi n
int a[20]; //Khai báo m ng s nguyên 1 chi u a
printf("\nNhap vao so phan tu cua mang: n=");
scanf("%d",&n);
//Nh p m ng 1 chi u a[] có n ph n t
Trang 2for(i=0;i<n;i++) {
printf("a[%d] = ",i);
scanf("%d",&a[i]);
}
//Xu t m ng m t chi u a[] có n ph n t ra màn hình
printf("Mang mot chieu vua nhap la:\n");
for(i=0;i<n;i++) printf("%3d",a[i]);
getch();
}
K t qu ch y ch ng trình là:
2.1.2 Tìm s l n nh t/ nh nh t trong m ng
̇ Kh i t o max = a[0]
̇ L p i t 1 đ n n – 1
̇ N u max < a[i] thì gán max = a[i]
̇ Xu t giá tr l n nh t là max
//Tìm ph n t l n nh t trong m ng
int max=a[0];
for(i=1;i<n;i++)
if(max < a[i]) max=a[i];
printf("\nPhan tu lon nhat trong mang la %d",max);
K t qu ch y ch ng trình là:
Trang 32.1.3 Tính t ng các s l trong m ng
̇ Kh i t o Tong = 0
̇ L p i t 0 đ n n – 1
̇ N u a[i] % 2 != 0 thì Tong = Tong + a[i]
̇ Xu t Tong
// Tính t ng các s l trong m ng
int Tong=0;
for(i=0;i<n;i++)
if(a[i]%2!=0) Tong+=a[i];
printf("\nTong cac so le trong mang la %d",Tong);
K t qu ch y ch ng trình là:
2.1.4 Cho bi t m ng trên là m ng t ng, m ng gi m hay không t ng không
gi m
̇ Kh i t o kt=0 (m ng không t ng không gi m)
Trang 4̇ L p i t 0 đ n n – 2
̇ N u (a[i]<a[i+1] && (kt==1 || kt==0) thì
̇ M ng t ng (kt = 1)
̇ Ng c l i
̇ N u(a[i]>a[i+1] && (kt==2 || kt==0) thì
̇ N u ((kt==1 && a[i]>a[i+1]) ||( kt==2 &&
a[i]<a[i+1])) thì
̇ Thoát kh i vòng l p, m ng không t ng
không gi m
̇ In k t qu ra màn hình
//Ki m tra m ng t ng, gi m hay không t ng không gi m
int kt=0;//m ng không t ng không gi m
for(i=0;i<n-1;i++)
{
if(a[i]<a[i+1] && (kt==1 || kt==0))
kt=1;//m ng t ng
else
if(a[i]>a[i+1] && (kt==2 || kt==0))
kt=2;//m ng gi m
else
if((kt==1 && a[i]>a[i+1]) ||( kt==2 &&
a[i]<a[i+1]))
break;//m ng không t ng không gi m
}
if(kt==1 && i==n-1)
printf("\nMang tang");
else
if(kt==2 && i==n-1)
printf("\nMang giam");
else
printf("\nMang khong tang, khong giam");
K t qu ch y ch ng trình là:
Trang 52.2 Vi t đ c ch ng trình trên m ng hai chi u :
2.2.1 Nh p, xu t m ng s nguyên có n dòng, m c t
̇ Nh p s dòng n
̇ Nh p s c t m
̇ L p i t 0 đ n n – 1
̇ L p j t 0 đ n m – 1
̇ Nh p ph n t a[i][j]
̇ L p i t 0 đ n n – 1
̇ L p j t 0 đ n m – 1
̇ Xu t ph n t a[i][j]
̇ Xu ng dòng
#include "stdio.h"
#include "conio.h"
void main()
{
clrscr();
int a[10][10]; //Khai báo m ng 2 chi u a ch a t i đa 10 dòng,
//10 c t
int n,m,i,j; //Khai báo bi n
printf("\nNhap so dong va so cot:");
scanf("%d %d",&n,&m);
//Nh p m ng 2 chi u a[][]có n dòng và m c t
for(i=0;i<n;i++)
for(j=0;j<m;j++)
printf("a[%d][%d] = ",i,j);
scanf("%d",&a[i][j]);
//Xu t m ng 2 chi u a[][] có n dòng và m c t ra màn hình
for(i=0;i<n;i++) {
for(j=0;j<m;j++) printf("%3d",a[i][j]);
printf("\n");
}
getch();
}
K t qu ch y ch ng trình là:
Trang 62.2.2 In s l n nh t c a m i dòng
̇ L p i t 0 đ n n – 1
̇ Kh i t o max = a[i][0]
̇ L p j t 1 đ n m – 1
̇ N u a[i][j]>max thì gán max = a[i][j]
̇ In max ra màn hình
//Tìm s l n nh t trên m i dòng c a m ng 2 chi u
for(i=0;i<n;i++) {
int max=a[i][0];
for(j=1;j<m;j++)
if(a[i][j] > max)
printf("\nSo lon nhat tren dong %d la %d",i,max);
}
2.2.3 In các s trên đ ng chéo chính, đ ng chéo ph
(Áp d ng cho ma tr n vuông, s dòng = s c t) 2.2.3.1 In các s trên đ ng chéo chính
̇ L p i t 0 đ n n – 1
̇ L p j t 0 đ n m – 1
̇ N u i==j thì in ra a[i][j]
printf("\nCac so tren duong cheo chinh la");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(i==j)//đ ng chéo chính i=j
printf("%4d",a[i][j]);
2.2.3.2 In các s trên đ ng chéo ph
̇ L p i t 0 đ n n – 1
Trang 7̇ L p j t 0 đ n m – 1
̇ N u i+j == n-1 thì in ra a[i][j]
printf("\nCac so tren duong cheo phu la");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(i+j == n-1)//đ ng chéo ph i+j = n-1
printf("%4d",a[i][j]);
K t qu ch y ch ng trình là:
III BÀI T P LÀM T I L P
̇ Cho m t m ng s nguyên:
o Ki m tra m ng đ i x ng không
o Nh p vào m ng b, ki m tra m ng b có ph i là m ng con c a m ng a
không? N u có tr v s l n m ng b xu t hi n trong m ng a
o In m ng đ o ng c c a m ng
o Nh p m t s nguyên x, xác đ nh x có trong m ng hay không N u có, in s
l n xu t hi n c a x trong m ng và xoá toàn b ph n t có giá tr x kh i
m ng
o S p x p m ng theo th t t ng
o Nh p m t s nguyên y, chèn y vào m ng sao cho m ng v n gi th t
t ng
̇ Cho ma tr n s nguyên
o m trong ma tr n có bao nhiêu s d ng, bao nhiêu s 0, bao nhiêu s
âm
o Tìm và in s l n nh t trong t ng hàng c a ma tr n
o Tìm và in s l n nh t trong t ng c t c a ma tr n
o Ki m tra ma tr n có đ i x ng qua đ ng chéo chính hay không
Trang 8o Ki m tra ma tr n có ph i là ma tr n tam giác trên/d i hay không
o S p x p các hàng theo th t t ng d n
IV BÀI T P V NHÀ
̇ Tách m ng trên thành m ng A g m các s l và m ng B g m các s ch n S p
A theo th t gi m d n và m ng B theo th t t ng d n Xu t 2 m ng A, B
̇ Nh p 2 m ng s nguyên A, B
o Xu t ra t p các s là h i c a A, B
o Xu t ra t p các s là hi u c a A và B
̇ Vi t ch ng trình nh p và m t m ng a, có n ph n t Ta đ nh ngh a m t m ng con t ng d n trong a là m t dãy các ph n t liên ti p g n nhau và có th t
t ng d n trong a
o Xác đ nh s m ng con t ng có trong a
o In ra m ng con t ng dài nh t trong a
̇ V các lo i tam giác vuông, tam giác cân:
Ví d : khi n=4
V CÁC CÂU H I TH NG G P
̇ M ng và con tr
̇ S khác nhau gi a m ng m t chi u và nhi u chi u
̇ Khi nào dùng c u trúc d li u m ng
̇ …