1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu Bài Tập Tin học chọn lọc ppt

51 626 5
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Bài Tập Tin Học Chọn Lọc
Tác giả Nguyễn Đình Chiến
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Tin Học
Thể loại Bài Tập
Định dạng
Số trang 51
Dung lượng 170,58 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài Tập Tin học chọn lọc{Bai toan Xep BALO KNAPSACLE PROBLEM * Co N hop kim loai trong luong PiKG ,co gia ban la Vi USD.Mot balo co the mang duoc M KG .Hay xac dinh ti le can lay o mo

Trang 1

Bài Tập Tin học chọn lọc

Trang 2

Bài Tập Tin học chọn lọc

{Bai toan Xep BALO (KNAPSACLE PROBLEM)

* Co N hop kim loai trong luong Pi(KG) ,co gia ban la Vi (USD).Mot balo

co

the mang duoc M KG Hay xac dinh ti le can lay o moi hop sao cho thu duoc

1 Balo co gia tri nhat

Vi du:Co 3 hop sat

0USD 24USD 7,5USD 31,5 USD

Ta con rat nhieu phuong an de sap xep.Nhung cach xep de co duoc gia tri nhieu nhat la XEP NHUNG HOP KIM LOAI MA GIA TRI CUA 1 KG LA LON NHAT vao truoc GIAI THUAT:Xep lai cac hop Kim loai,Hop nao ma gia tri 1 KG cao nhat thi xep truoc.Sau do bo tung hop vao cho den khi day Tui thi thoi.Ta co the tach KL cua hop ra}

Program Bai_toan_BALO;

Uses crt;

const N=5;

type arr=array[1 N]of byte;

var P,V,id:arr;{Khoi luong moi hop sat,Gia tri moi hop sat,Giu chi so}

M:real;{Khoi luong tui xach}

{********************************************************************}

Procedure Input;

Var i:byte;

begin

write('Khoi luong tui xach:');readln(M);

write('Do vat :');For i:=1 to n do write(i:5);

Trang 3

for j:=i+1 to n do

if V[id[j]]/P[id[j]]>V[id[i]]/P[id[i]] then

begin

temp:=id[i];

id[i]:=id[j];

id[j]:=temp;

end;

end;

{********************************************************************}

Procedure Output;

var i:byte;

begin

write('Do vat :');For i:=1 to n do write(id[i]:5);

writeln;

write('Khoi luong:');for i:=1 to n do write(P[id[i]]:5);

writeln;

write('Gia tri :'); for i:=1 to n do write(V[id[i]]:5);

end;

{********************************************************************}

Procedure Control;

var Value,Temp,Cost:real;i:byte;

begin

i:=1;Value:=0;{Gia tri cua nhung hop duoc xep vao tui}

repeat

if P[id[i]]>=M then temp:=M else temp:=P[id[i]];

Cost:=(V[id[i]]/P[id[i]])*temp;{Chua gia tri cua hop sat duoc chon de bo vao}

writeln('Vat thu ',id[i],' duoc chon:');

write(temp:0:3,'KG ');writeln(cost:0:3,'$ ');

value:=value+cost;

M:=M-temp;

inc(i);

until (M=0) or (i=n+1);

writeln('Tong gia tri cua cac mat hang duoc chon:',value:0:3,'$');

end;

{********************************************************************}

Begin

clrscr;

Randomize;

Input;

writeln;

Sortmax;

writeln('Cac do vat sau khi duoc sap xep:');

Output;

writeln;

Control;

readln;

end

{Cho mot cai can gom 2 dia can va N qua can co trong luong la A[1],A[2] A[n]

la nhung so nguyen Hay tim tat ca cac cach dat mot so qua can len dia ben trai va len dia ben phai sao cho can thang bang(Can thang bang khi trong luong tren hai dia can bang nhau

GIAI THUAT:Vi du cho 4 qua can voi trong luong la:1 2 1 3

Ta co cac cach xep le hai ben nhu sau:

TRAI PHAI

1 1

1 1

1 1 2

1 2 3

2 1 1

3 1 2

+ Ta dung phuong phap vet can

+ Cac bien duoc dung:

Luu1:Luu tru nhung trong luong de dat ben trai

Trang 4

Luu2:Luu tru nhung trong luong de dat ben phai

K1:So luong qua can dat ben trai

K2:So luong qua can dat ben phai

Can1:Luu lai tong khoi luong cua cac qua can duoc chon o ben trai

Can2:Luu lai tong khoi luong cua cac qua can duoc chon o ben phai

Chon:Danh dau nhung qua can da duoc chon

Xet qua cac qua can J bat dau tu 1 den N

+ Neu qua can J chua duoc dat len ben nao thi

* Neu ben trai nhe hon ben phai thi

- Dat qua can do ben trai

- Danh dau qua J da duoc chon

- Tang so qua can ben trai le va luu lai khoi luong cua no

- Tang trong luong cua can ben trai

- Xet qua can ke tiep

* Neu ben phai nhe hon ben trai thi lam nguoc lai doi voi ben phai

* Chu Y:Khi chon duoc 1 cach can thi ta quay lui lai de tim cach can khac} Program bancan;

Trang 5

{(Chai mang ty le 1:k);Tim cach chia A[1 N] cho truoc thanh hai doan

co tong cac phan tu trong doan nay gap k lan tong cac phan tu trong doan

kia ,K nguyen duong

GIAI THUAT:Tim tong cua toan bo cac phan tu

Neu tong chia het cho K+1 phan thi

+ Tinh gia tri cua phan 1:TB=Tong div (K+1); + Tim nhung so trong day co tong la TB}

Trang 7

Giai thuat:Quay lui(Back tracking)}

Trang 8

Procedure Input;

Var I:Byte;

Begin

Write('Nhap So loai tien:');Readln(M);

Write('Nhap so tien can doi:');Readln(N);

2) Tu 1 thanh pho so cac duong di ra bang so cac duong di vao

Lap thuat toan tim mot con duong xuat phat tu 1 thanh pho nao do ,di qua tat

ca cac tuyen duong ,moi tuyen duong 1 lan ,cuoi cung tro ve thanh pho ban dau GIAI THUAT:Quay lui}

Trang 9

var A:arr;{Quan he cua Thanh pho I voi J}

TD:arr1;{Luu tru thanh pho da di qua}

Ok:arr2;{Kiem tra thnh pho da duoc di qua}

if A[TD[n],Td[1]]=1 then {Kiem tra thanh pho cuoi cung voi thanh pho

dau tien di qua co duong di voi nhau khong}

if (a[i,j]=1) and Ok[j] then

{Dieu kien de di tu TP I de TP J la hai thanh pho phai thong nhau

Va thanh pho J chua di qua}

begin

Inc(k);

TD[k]:=j;{luu tru thanh pho duoc di qua}

Ok[j]:=false;{Thanh pho J da di qua}

truyhoi(j);{Xet thanh pho J voi thanh pho chua duoc chon}

Trang 10

dem:=0;

fillchar(Ok,sizeof(ok),true);

Ok[2]:=false;k:=1;

Td[1]:=2;{Xuat phat tu thanh pho thu 2}

writeln('Cac cach di:');

truyhoi(2);

if dem=0 then writeln('Khong co cach di nao')

else writeln('Co ',dem,' cach di');

de sap xep moi nguoi 1 cong viec sao cho cong suc bo ra la it nhat

THUAT TOAN: Vet can tat ca cac truong hop xay ra Chon truong hop toi uu} Program baitoan_congviec;

Var C:arr;{Cong suc lam viec}

A:arr1;{Chua cong viec duoc chon khi xet tung truong hop}

B:arr1;{Luu lai ket qua cong viec duoc chon tam thoi}

j,n:byte;

Tong:word;{Chua tong cac cong viec cua tung buoc chon}

min:word;{Giu gia tri de tim ra TONG cac cong viec nho nhat}

Chon:arrbol;{keim tra xem Cong Viec do duoc chon hay chua}

{***************************************************************************} Procedure nhap;

End;

End;

{***************************************************************************} Procedure truyhoi(i:byte);

Trang 11

Tong:=Tong+C[i,j];{Tinh TONG cac cong suc lam viec cua nguoi i voi viec j}

Chon[j]:=true;{Danh dau cong viec J duoc chon}

Truyhoi(i+1);{Xet nguoi tiep theo}

Tong:=Tong-c[i,j];{Bot lai cong suc lam viec J cua nguoi I}

Chon[j]:=False;{Tra lai cong viec J}

End;

end;

{***************************************************************************} Begin

writeln('Cong viec duoc sap xep lai la:');

write('Nguoi thu :');for j:=1 to n do write(j:4);writeln;

write('Cong viec :');for j:=1 to n do write(b[j]:4);writeln;

write('Suc Lam :');for j:=1 to n do write(c[j,b[j]]:4);writeln;

writeln('Cong suc bo ra la:',min);

Readln;

end

{De 211:Cho truoc so tu nhien N.Lap thuat toan cho biet N co the bieu dien thanh tong cua hai hay nhieu so tu nhien lien tiep hay khong?

Trong truong hop co ,hay the hien tat ca cac cach co the co

GIAI THUAT:Vet can tat cac cac truong hop xay voi dieu kien so duoc chon sau phai lon hon so duoc chon truoc}

Program De_so_211;

uses crt;

var a:array[1 255]of byte;{Chua cac so duoc chon}

n:byte;{So muon phan tich}

k:byte;{So luong So duoc chon}

tong:byte;{Chua tong cac so duoc chon ,de so sanh voi N}

solan:word;{So luong cac cach bieu dien}

{******************************************************************}

Procedure print;

var j:byte;

begin

solan:=solan+1;{Tang so cach bieu dien}

write('Cach thu ',solan,':');

for j:=1 to k do begin write(a[j]);if j<k then write('+');end;

if (j+tong<=n) and (i<j) then

{Dieu kien de so duoc chon:So do cong voi tong cu <=N,So chon sau phai

lon hon so chon truoc}

begin

tong:=tong+j;{Cong so duoc chon vao tong}

inc(k);

Trang 12

a[k]:=j;{Ghi nhan so duoc chon}

Tim(j);{Tim so tiep theo}

Trong truong hop co ,hay the hien tat ca cac cach co the co

GIAI THUAT:Vet can tat cac cac truong hop xay voi dieu kien so duoc chon sau phai lon hon so duoc chon truoc}

Program De_so_211;

uses crt;

var a:array[1 255]of byte;{Chua cac so duoc chon}

n:byte;{So muon phan tich}

k:byte;{So luong So duoc chon}

tong:byte;{Chua tong cac so duoc chon ,de so sanh voi N}

solan:word;{So luong cac cach bieu dien}

{******************************************************************}

Procedure print;

var j:byte;

begin

solan:=solan+1;{Tang so cach bieu dien}

write('Cach thu ',solan,':');

for j:=1 to k do begin write(a[j]);if j<k then write('+');end;

if (j+tong<=n) and (i<j) then

{Dieu kien de so duoc chon:So do cong voi tong cu <=N,So chon sau phai

lon hon so chon truoc}

begin

tong:=tong+j;{Cong so duoc chon vao tong}

inc(k);

a[k]:=j;{Ghi nhan so duoc chon}

Tim(j);{Tim so tiep theo}

Trang 13

GIAI THUAT:Quay lui

Ban Nu nao da duoc moi khieu vu cung voi nguoi ban trai

ma minh quen thi ban do khong duoc chon nua.Neu chon

duoc dung N cap thi Print,neu khong thi quay lai chon

cach khac}

Program De_so_216;

uses crt;

const n=8;{So cap}

type arr=array[1 n,1 n]of byte;

var A:arr;{Quan he cua N ban nam va N ban nnu}

dem:byte;{Dem so lan chon}

dance:array[1 n]of boolean;{Xet xem ban Nu duoc chon chua}

nguoi:array[1 n]of integer;{Luu tru lai nhung ban nu duoc chon}

{Kiem tra xem quan he ban dau co dung qui dinh khong:

2 nam quen voi 2 nu va nguoc lai}

if a[i,j]=1 then tong1:=tong1+1;

if a[j,i]=1 then tong2:=tong2+1;

if (tong1>2) or (tong2>2) then exit;

end;

end;

Trang 14

Ok:=true;

end;

{************************************************************************} Procedure Print;

timketiep(i+1);{Xet nguoi Nam ke tiep}

dance[j]:=false;{Xoa bo viec danh dau,Nguoi Nu thu j khong

duoc chon}

end;

end;

{************************************************************************} begin

GIAI THUAT:Viet 1 ham doi ra nhi phan(nguoc) cua 1 so

Viet ham OK kiem tra so a co nam trong so b khong

Cho d chay tu N xuong M Kiem tra dong thoi d co nam trong

Trang 15

{**************************************************************}

Function Ok(st1,st2:string):boolean;{Kiem tra nhi phan cua so nay co the

thu duoc bang cach bo di 1 so chu so cua

nhi phan cua so kia hay khong}

for i:=1 to length(st1) do

if pos(st1[i],st2)<>0 then delete(st2,pos(st1[i],st2),1)

{De_so_254:Bai toan "Ca Heo":

Loai ca heo chi chuyen dong theo 3 huong:Tu vi tri (X,Y) no chi co the chuyen

dich duoc den vi tri (X+1,Y) hoac (X,Y+1) hoac (X-1,Y-1).Gia su vi tri ban dau cua ca heo la o trai duoi cua luoi o vuong NxN

Lap thuat toan cho biet ca heo co the di khap ban co ,moi o 1 lan hay khong? Neu duoc ,chi ra lo trinh cua ca heo

GIAI THUAT:Ca heo chi chuyen dong duoc ve 1 trong 3 huong:

Tu (X,Y) > (U,V) =>U=X+1;V:=Y+0;

Tu (X,Y) > (U,V) =>U=X+0;V:=Y+1;

Tu (X,Y) > (U,V) =>U=X-1;V:=Y-1;

+ Dung ma tran A de chua danh dau cot ,dong da di qua:A[Dong,Cot]=1

Va chua di qua A[Dong,Cot]=0;

+ Dung Mang Luu de luu tru Dong va Cot vua di qua

Trang 16

+ Luu giu lai U,V

+ Danh dau Dong V ,Cot V da di qua :A[U,V]:=1;

+ Xet O(U,V) voi cac o con lai + Neu khong tim duoc duong di hay

da tim 1 con duong

di,Quay lai de tim duong khac} Program Baitoan_Caheo;

Trang 17

GIAI THUAT :Xet tung thanh pho.Gia su xuat phat tu 1 thanh pho Ai nao do Xem luong xang du tru voi luong xang phai di tu

type arr=array[1 n] of integer;

var X:arr;{So xang du tru}

P,id:arr;{So xang hao khi di giua hai TP}

i,j,k:byte;

q:boolean;{Kiem tra dieu kien de thoat:Khi xuat phat tu thanh pho

nao do ma co the di het duoc qua tat ca cac thanh pho con lai}

Xangdu:integer;{Tinh luong xang con du khi chay giua hai thanh pho} {****************************************************************}

Trang 18

inc(i);{Kiem tra thanh pho Ai}

q:=false;

xangdu:=X[i]-P[i];{Luong xang}

k:=1;j:=i;{bat dau xet tu thanh pho Ai tro di}

{Dieu kien xet tiep la Luong xang du>0 nghia la xang du tru phia nhieu hon xang su dung khi di va so thanh pho chua xet het}

while (xangdu>0) and (k<=n) do begin inc(j);

if j=n+1 then j:=1;{Neu qua thanh pho cuoi cung thi quay tro

khoi sao cho tong khoi luong cac do vat cua hai khoi la xap xi nhau nhat(nghia

la hieu hai kkhoi luong la nho nhat

GIAI THUAT:Tim tong khoi luong cua N do vat

=>Trung binh cua hai khoi

Sap xep do vat tang dan theo khoi luongffff

Tim nhung do vat co tong khoi luong gan voi Trung binh nhat} Program De299;

Writeln('Tong khoi luong cua ',n,' do vat la:',Tong);

TB:=Tong div 2;{Trung binh trung binh cua 1 khoi}

Trang 19

{De_so_380:Cho truoc 4 so tu nhien bat ky.Hay datcac dau + hoac - truoc

chung sao cho tong thu duoc chia het cho 10

Lap chuong trinh tinh tong do}

Trang 20

{De_so_39:Bai toan "DOI MAU BI":Tren ban co N1 hon bi xanh,N2 hon bi do,N3 hon

bi vang.Luat choi nhu sau:Neu 2 hon bi khac mau nhau cham nhau thi chung se cung ben thanh mau thu 3

(Vi Du:xanh,vang ->do,do)

Tim thuat toan va lap chuong trinh cho biet rang co the bien tat ca cac hon

bi do thanh 1 mau do duoc khong

GIAI THUAT:Trong 2 loai bi mau Xanh va mau Vang.Chon loai bi co so luong

nhieu hon.Lay bi co so luong nhieu hon ,cham voi

bi do

Luc nay Bi co so luong it hon se tang SL len 2 don vi.So

luong bi nhieu hon giam di 1 don vi

+ Neu so luong bi it hon ma tang len bang so luong bi nhieu hon

Trang 21

thi luc nay ta co the bien doi ve tat ca deu bi

Write('Nhap so luong bi Bi XANH:');readln(N1);

Write('Nhap so luong bi Bi DO:');readln(N2);

Write('Nhap so luong bi Bi VANG:');readln(N3);

do 2 bi kia cham nhau}

n2:=n2-1;{Bo so luong bi do}

N1:=N1+2;{Tang so luong bi xanh len 2 }

N3:=N3-1;{Giam so luong bi vang} writeln(n1:4,n2:4,n3:4);

vi tri nguoi dua).Sau do tat ca moi nguoi thong bao so de minh Da nhan duoc Lap chuong trinh xac dinh vi tri cua nhung nguoi trong ban can su Luu y rang

co the co nhieu loi giai Trong bang la 1 vi du voi M=N=6

Input Output

Trang 22

Neu mot vi tri ma xung quanh no cac vi tri deu

co gia tri >0

thi vi tri do la vi tri cua nguoi can su

Sau do bot gia tri cua nhung vi tri xung quanh

Var I,j:byte;

Begin

Writeln('Output:');

Trang 23

GIAI THUAT:+ Dieu kien can la: Dien tich S2>Dien tich S1

+ Dieu kien du la:Canh lon nhat cua S1 phai nho hon canh lon

Until (A1>0) and (B1>0) and (A2>0) and (B2>0);

Gotoxy(30,1);Writeln('Hinh chu nhat thu 1:');

Trang 24

Goi S la so luong cac "tu giac" A[i,j],A[i,j+1],A[i+1,j],A[i+1,j+1]

sao cho cac so o dinh cua no xep tang theo thu tu tang dan theo chieu kim dong ho (Tinh tu 1 dinh nao do)

1/ Lap chuong trinh tinh so luong S

2/ Lap thuat toan xac dinh A sao cho so S la:

Ngày đăng: 19/01/2014, 02:20

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w