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

Bài tập dài Kĩ thuật lập trình docx

7 567 0
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Bài Tập Dài Kỹ Thuật Lập Trình
Trường học Trường Đại Học Kỹ Thuật
Chuyên ngành Kỹ Thuật Lập Trình
Thể loại Bài Tập Dài
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 7
Dung lượng 22,14 KB

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

Nội dung

Việc chấm điểm được thực hiện một cách tự động bằng máy tính.. Mỗi Test chạy đúng in đúng cả thứ tự của lệnh và số lần xuất hiện lệnh sẽ được 10 điểm.. Nếu chỉ in đúng số thứ tự mà in sa

Trang 1

BÀI TẬP DÀI KỸ THUẬT LẬP TRÌNH K55

Alex đangthamgiamộtdựánđiềukhiểnRobot bằnggiọngnói Robot đượcđiềukhiểnthông qua cáckhẩulệnhcủa Alex.Mộttậplệnhmẫusẽđượcdạytrướccho Robot.Khẩulệnhcủa Alex

rồitruyềnxuốngchocáccơcấuchấphànhcủaRobot Tuynhiên, do chấtlượngcủa Microphone cũngnhưảnhhưởngcủamôitrườngxungquanh, lệnhthuđượccóchứarấtnhiềunhiễu.Nhiệmvụcủa

Alex làphảiviếtchươngtrìnhxửlýlệnhthuđượcxemnókhớpnhấtvớilệnhnàotrongtậplệnh

Tậplệnhmẫudạytrướccho Robot đượclưuthànhcácchuỗicóđộdàikhôngquá 20 kýtự,

đượclưuvàomáytínhdướidạngcácchuỗicóđộdàikhôngquá 100 kýtự,

khôngphânbiệthoathường Mộtlệnh X đượcgọilàkhớpvớilệnh Y trongtậplệnhmẫunếucáckýtựcủachuỗi Y xuấthiệntheođúngthứtựtrongchuỗi X

(khôngnhấtthiếtliềnnhau) Lệnh X đượcgọilàkhớpvớilệnh Y1 hơnlệnh Y2nếusốlầnxuấthiệncủachuỗi Y1 nhiềuhơn so vớisốlầnxuấthiệncủachuỗi Y2 trongchuỗi X.

Cáclệnhcũngnhưtậplệnhđượclưutrữtrongmáytínhdướidạng file vănbản: VOICE.INcócấutrúc:

- Dòngđầutiênchứa 2 sốnguyên m, n (m ≤ 10; n ≤ 10)

- mdòngtiếptheochứacácchuỗitrongtậplệnhmẫu Mỗilệnhtrên 1 dòngvàcókhôngquá 20 kýtự

- ndòngtiếptheochứacácchuỗitrongtậpkhẩulệnhcủa Alex Mỗilệnhtrên 1 dòngvàcókhôngquá 100 kýtự

Mỗidòngghi02sốnguyênbiểuthịsốthứtựcủalệnhmẫutrongtậplệnhkhớpvớilệnhtươngứngcủa Alex vàsốlầnlặplạicủalệnhmẫuđó.Nếukhôngcólệnhmẫunàokhớpghi 0.Cácsốghicáchnhaubởidấucách.

Vídụ:

4 3

UP

DOWN

LEFT

RIGHT

UUUPPPPPPPUP

TURN

UDdOOPpPWNwNwnWn

1 3

0 0

2 2

ĐÁNH GIÁ VÀ CHO ĐIỂM

1. Việc chấm điểm được thực hiện một cách tự động bằng máy tính.

2. Có tất cả 10 Tests với mức độ từ dễ đến khó.

3. Mỗi Test chạy đúng (in đúng cả thứ tự của lệnh và số lần xuất hiện lệnh) sẽ được 10 điểm Nếu chỉ in đúng số thứ tự mà in sai số lần xuất hiện của lệnh sẽ được 5 điểm Tráilại, được0 điểm.

4. Điểm của bài tập dài sẽ là tổng điểm thu được sau khi chạy 10 Tests.

5. Điểm thu được sau khi chia 10 và làm tròn sẽ được tính làm điểm quá trình

6. Mỗi người hoàn thành và nộp bài tập của mình một cách độc lập.

Trang 2

7. Mỗi sinh viên nộp bài tập của mình trong một thư mục có định dạng: Họ và tên sinh viên –

Mã số sinh viên Ví dụ: Sinh viên Nguyễn Văn A có mã số sinh viên là 12345 thì tất cả các file của mỗi bài tập sẽ lưu vào trong thư mục NguyenVanA-12345.

8. Sinh viên chỉ nộp các file c và h cần thiết KHÔNG nộp cả thư mục Project.

9. Cả lớp copy vào 1 đĩa CD, ghi ngoài nhãn là: lớp “KTLT-K55-1”

10. Đĩa “KTLT-K55-1” nộp vào tuần 14 của học kỳ

11. Điểm giữa kỳ sẽ được công bố vào tuần 16 của học kỳ

12. Mỗi bài tập chỉ thu đúng 01 lần vào buổi học sáng thứ 6 của tuần 14 Không cho phép nộp

bổ sung.

13. Sinh viên thiếu bài trong đĩa “KTLT-K55-1” sẽ được 0 điểm quá trình.

14. Các bài giống nhau sẽ được chia đều số điểm theo số lượng giống tương ứng

Trang 3

//MSSV:20101962

//Lớp ĐK-TĐH-1 K55

//Bàitậpdàikĩthuậtlậptrình

#include<stdio.h>

#include"mystring.h"

intmlen( char *str)

{ inti=0;

while(str[i]!='\0') i++;

returni;

} intxauconchung(char *x,char *y)

{ inti,j,m,n;

int a[101][101];

m=mlen(x);

n=mlen(y);

for(i=0;i<m+1;i++)

a[i][0]=0;

for(i=0;i<n+1;i++)

a[0][i]=0;

for(i=1;i<m+1;i++)

for(j=1;j<n+1;j++)

{

if (x[i-1]==y[j-1]) a[i][j]=a[i-1][j-1]+1;

else {

Trang 4

if(a[i-1][j]<a[i][j-1]) a[i][j]=a[i][j-1];

else a[i][j]=a[i-1][j];

} } return a[m][n];

}

void copy(char *s1,char *s2)

{ inti=0;

while(s2[i]!='\0')

{ s1[i]=s2[i];

i++;

s1[i]='\0';

}

} voidchuthuong(char *x)

{ inti,m;

m=mlen(x);

for (i=0;i<m;i++)

{ if(x[i]>64&& x[i]<91) x[i]=x[i]+32;

} }

void main()

{ inti,j,somau,solenh ;

Trang 5

char x[21],y[101];

charmau[10][21];

charlenh[10][101];

FILE *f,*g;

f=fopen("void.in","r");

g=fopen("void.out","w");

//doc du lieu tu file voi.in

fscanf(f,"%d %d",&somau,&solenh);

for(i=0;i<somau;i++)

{ fscanf(f,"%s",&mau[i]);

} for(i=0;i<solenh;i++)

{ fscanf(f,"%s",&lenh[i]);

} // xacdinhtronglenh co chuamaunao

for(i=0;i<solenh;i++)

{ intmang[10]={0,0,0,0,0,0,0,0,0,0};

int max=0,maux=0,h;

copy(y,lenh[i]); //copy khaulenh de so sanh

chuthuong(y);

for(j=0;j<somau;j++)

{ copy(x,mau[j]); //copy lenhmau

chuthuong(x);

Trang 6

// neu co mautronglenhthithuchientim so mauxuathientronglenh do

if(h==mlen(x))

{ inti,n,l,a,td,daixc;

charxau[101];

int k=1;

n=mlen(x);

td=(int) 100/n;

// taomau de so sanh while(k<=td) { for(a=0;a<n;a++) for(i=0;i<k;i++) xau[k*a+i]=x[a];

xau[k*n]='\0';

daixc=xauconchung(xau,y);

if(daixc==k*n) mang[j]=k;

else break;

k++;

} //timlenhmauxuathiennhieunhatva so lanxuathientrongkhaulenh

for (l=0;l<10;l++)

if (mang[l]>max)

{ max=mang[l];

Trang 7

maux=l+1; // maux la lenhmauthui

} }

} fprintf(g,"%d %d\n",maux,max);

}

fclose(f);

fclose(g);

}

Ngày đăng: 20/03/2014, 17:21

TỪ KHÓA LIÊN QUAN

w