pqtoan Admin
Posts : 76 Danh tiếng : 3 Join date : 10/11/2014
| Tiêu đề: đề về nhà 2 17/1/2017, 10:29 | |
| Bài 1 xếp hàng Lớp 9A có N bạn học sinh (n<=50), mỗi bạn được gắn với một mã số bất kì. Trong buổi đồng diễn thể dục N bạn được xếp thành một hàng dọc theo thứ tự từ nhỏ đến lớn của mã số. Để đội hình toàn trường cân đối thầy giáo chuyển một bạn lớp khác vào vị trí trong hàng có mã số là K vào đội hình lớp 9A. Em hãy giúp thầy giáo xếp bạn có mã số K vào vị trí trong hàng sao cho không làm xáo trộn đội hình đã được sắp xếp mà vẫn đảm bảo nguyên tắc xếp hàng đã nói trên. Hãy viết chương trình để thực hiện công việc đó. Dữ liệu vào: cho file text XEPHANG.INP có 2 dòng, trong đó: -Dòng đầu :ghi hai số N và K -Dòng thứ hai ghi các mã số của mỗi học sinh viết cách nhau ít nhất một dấu cách. Kết quả ra: ghi ra file text XEPHANG.OUT gồm hai dòng -Dòng một: ghi vị trí xếp bạn mã số K vào hàng -Dòng hai: hàng được xếp Ví dụ Xephang.inp Xephang.out 7 3 2 4 5 7 8 9 12 2 2 3 4 5 7 8 9 12 Bài 2: MA TRẬN VUÔNG ĐỐI XỨNG Cho ma tr ận vuông A kích thư ớc N x N chứa các số tự nhiên trong kho ảng từ 0 đến 255; 4 ≤ N ≤ 50. Hãy tìm một ma trận vuông đối xứng có kích thước lớn nhất B trong A theo nghĩa các phần tử đối xứng qua đường chéo chính của B thì bằng nhau. Dữ liệu : Vào từ file văn bản matrix.inp • Dòng đầu ghi giá trị N. • Tiếp đến là N dòng của ma trận A. Dữ liệu trên cùng một dòng cách nhau ít nhất một khoảng trắng. Kết quả : Ghi ra file văn bản matrix.out • Gồm một dòng chứa ba giá trị i, j, d cách nhau ít nhất một khoảng trắng, trong đó i, j cho biết vị trí (dòng i, cột j) đầu tiên của ma trận B cần tìm trong ma trận A, còn d cho biết số phần tử trên cùng một dòng của B. Chỉ số dòng và cột được tính từ 1 đến N. (nếu có nhiều ma trận vuông đối xứng cùng kích thước trong A thì chọn một trong số đó). Ví Dụ : matrix.inp matrix.out 4 7 6 8 9 1 2 3 0 2 4 5 7 3 5 6 9 2 1 3 Bài 3: ĐỔI TIỀN Có n loại tiền từ A1, A2,…..,An. Hãy tìm cách dùng các loại tiền này để có số tiền L sao cho tổng số tờ tiền là ít nhất. Dữ liệu : Vào từ file money.inp • Dòng đầu ghi số nguyên L (10≤ L ≤ 10000). • Dòng thứ 2 ghi số n (n ≤ 40). • Các dòng tiếp theo ghi giá trị của các số ai (ai ≤ 100). Kết quả : Ghi ra file văn bản money.out các dòng chứa hai số k, m theo thứ tự là số lượng và loại tờ tiền (nếu không có cách đổi thì ghi 0). Ví Dụ : money.inp money.out 13 3 2 5 10 4 2 1 5 (Với 13 đồng thì dùng 4 tờ 2 đồng; 1 tờ 5 đồng.) | |
|
nhathuyvanlang
Posts : 49 Danh tiếng : 10 Join date : 26/03/2016
| Tiêu đề: Re: đề về nhà 2 17/1/2017, 19:48 | |
| Bài 1 - Code:
-
uses crt; var a,b:array[1..100] of integer; k,n,i,j,l,m,c,d,vt,thu:integer; f:text; procedure dc(var a,b:integer); var t:integer; begin t:=a;a:=b;b:=t; end; {--------------} begin clrscr; assign(f,'xephang.inp'); rewrite(f); write('nhap so ban hoc sinh:');readln(n); write(f,n:3); write('nhap so k:');readln(k); writeln(f,k:3); for i:=1 to n do repeat write('a[',i,']:');readln(a[i]); thu:=0; if a[i]=k then thu:=thu+1; if i<>1 then for j:=i-1 downto 1 do if a[i]=a[j] then thu:=thu+1; if thu<>0 then writeln('ma so da bi trung'); until thu=0; for i:=1 to n do b[i]:=a[i]; for i:=1 to n-1 do for j:=i+1 to n do if b[i]>b[j] then dc(b[i],b[j]); for i:=1 to n do write(f,b[i]:3); close(f); {Xong phan input} a[n+1]:=k; n:=n+1; for i:=1 to n-1 do for j:=i+1 to n do if a[i]>a[j] then dc(a[i],a[j]); assign(f,'xephang.out'); rewrite(f); for i:=1 to n do if a[i]=k then vt:=i; writeln(f,vt:3); for i:=1 to n do write(f,a[i]:3); close(f); readln; end. | |
|