Tải bản đầy đủ (.pdf) (8 trang)

Thực Hành Tin Học Đại Cương 6

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (259.01 KB, 8 trang )

TRNG I HC CÔNG NGH THÔNG TI N THC HÀNH MÔN TIN HC I CNG
Khoa Khoa Hc Máy Tính Bài 6. Mng


TH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 trúc d liu mng 1 chiu và mng 2 chiu.
¬ Vit đc các chng trì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 trong mng.
̇ Tính tng các s l trong mng.
̇ 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.
¬ Vit đc ch
ng trình v m ng hai chiu :
̇ Nhp, xut m a trn s nguyên.
̇ In ra các s ln nht trên mi dòng.
̇ In ra các s trên đng chéo chính, đng chéo ph.
¬ Chú ý:
̇ Lu đ
̇ Cách tip cn đ gii bài toán trê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
//cha ti đa 20 phn t
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

1
TRNG I HC CÔNG NGH THÔNG TIN THC HÀNH MÔN TIN HC I CNG
Khoa Khoa Hc Máy Tính Bài 6. Mng


for(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à:

2
TRNG I HC CÔNG NGH THÔNG TIN THC HÀNH MÔN TIN HC I CNG

Khoa Khoa Hc Máy Tính Bài 6. Mng



2.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)

3
TRNG I HC CÔNG NGH THÔNG TIN THC HÀNH MÔN TIN HC I CNG
Khoa Khoa Hc Máy Tính Bài 6. Mng



̇ 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ì
̇ Mng gim (kt = 2)
̇ Ngc li
̇ 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à:


4
TRNG I HC CÔNG NGH THÔNG TIN THC HÀNH MÔN TIN HC I CNG
Khoa Khoa Hc Máy Tính Bài 6. Mng


2.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à:

5
TRNG I HC CÔNG NGH THÔNG TIN THC HÀNH MÔN TIN HC I CNG
Khoa Khoa Hc Máy Tính Bài 6. Mng



2.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)
max = a[i][j];
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]


//In các s trên đng chéo chính
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

6
TRNG I HC CÔNG NGH THÔNG TIN THC HÀNH MÔN TIN HC I CNG
Khoa Khoa Hc Máy Tính Bài 6. Mng


̇ Lp j t 0 đn m – 1
̇ Nu i+j == n-1 thì in ra a[i][j]


//In các s trên đng chéo ph
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.

7
TRNG I HC CÔNG NGH THÔNG TIN THC HÀNH MÔN TIN HC I CNG
Khoa Khoa Hc Máy Tính Bài 6. Mng


o 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
̇ …


8

×