|
|
Các trao đổi khác về Lập trình - Có Anh nào Giúp Em Mấy Đề Pascal này với
| Có Anh nào Giúp Em Mấy Đề Pascal này với |
|
Member
Member since
20:32 07-03-2010
Posts:
1
Fantasy Points:
5
|
Đề 1 : Lập phương trình từ bàn phím một danh sách sinh viên gồm : Họ và tên , năm sinh , giới tính , quê quán(Tỉnhthành,quậnhuyện,phườngxã). a. Đưa ra màn hình danh sách này và danh sách các sinh viên là nữ và sinh năm 1975. b. Đưa ra màn hình danh sách các sinh viên quê quán tại Hà Nội và theo thứ tự giảm dần của năm sinh. c. Nhập Họ và tên của thí sinh bất kỳ từ bàn phím , xóa khỏi danh sách các thí sinh này . Nếu không có thí sinh này trong danh sách thì thông báo ra màn hình.
Đề 2 : Lập chương trình quản lý hóa đơn tính tiền . Mỗi hóa đơn tính tiền gồm có : SOHD,HOTEN,SOTIEN,NGAYTHU(ngày,thang,năm) a. Ghi vào file với tên 'QLHD' các tờ hóa đơn nói trên b. Tính tổng số tiền đưa ra màn hình các tờ phiếu thu trong năm 2000 c. Cho một số hóa đơn bất kỳ . Hãy tìm và sửa lại số tiền của tờ hóa đơn đó
Đề 3 : Lập chương trình nhập n xâu ký tự vào từ bàn phím a. Hãy sắp xếp các xâu trên theo thứ tự tăng dần (Không phân biệt chữ hoa , chữ thường). Đưa dãy xâu đã được sắp xếp ra màn hình. b. Nhập 1 xâu ký tự bất kỳ nào từ bàn phím , kiểm tra xem xâu đó có ở trong dãy hay không(không phân biệt chữ hoa , chữ thường) nếu có thông báo là có . Ngược lại đưa ra màn hình thông báo là không tìm thấy .
Đề 4 : Quản Lý sinh viên bằng Pascal . Các thông tin về sinh viên được khai báo như sau : Sinhvien = Record Hoten:String[50]; Namsinh:integer; Diem:Real; End; Chương trình lần lượt làm các công việc sau : a. Nhập dữ liệu từ bàn phím và ghi vào tệp trên đĩa có tên 'LOP.DAT' . Kết thúc nhập dữ liệu khi tên sinh viên nhập là xâu rỗng . b. Đọc dữ liệu từ tệp LOP.DAT và in ra màn hình những sinh viên có điểm >=5.0 , mỗi sinh viên chiếm 1 dòng theo dạng : Họ tên : 50 ký tự ; Năm sinh : 4 ký tự ; Điểm : 7 ký tự trong đó có 2 ký tự thập phân c. In ra màn hình họ và tên những sinh viên có điểm cao nhất (nếu có nhiều sinh viên có điểm cao nhất thì phải in ra tất cả)
Đề 5 : Viết chương trình thực hiện các việc sau : a. Tạo hai file f1 , f2 là những file text để ghi dữ liệu từ bàn phim. b. Nối file f2 vào cuối file f1 và tính độ dài f1 . c. Đưa nội dung file f1 ra màn hình và đếm xemtrong file này có bao nhiêu từ 'May mắn'
Đề 6 : Người ta lưu lại kết quả đo độ ẩm trong các ngày trong năm vào một tệp đính có tên là DOAM.DAT của các bản ghi có kiểu được khai báo như sau : Type SODO=Record Ngày:Integer:{Ngày} Tháng:Integer:{Tháng} DOAM:Real:{Độ ẩm đo được} End; Em hãy viết một chương trình bằng Pascal làm các công việc sau : a. Đọc tất cả dữ liệu về tháng 12 có trong tệp và in ra màn hình theo dạng(mỗi ngày chiếm một dòng trên trang màn hình): Ngày:5 ký tự ; Tháng:5 ký tự ; Độ ẩm:6 ký tự trong đó có 2 ký tự thập phân . b. Tìm và in ra màn hình tất cả các ngày có độ ẩm lớn hơn 50 theo khuôn dạng (mỗi ngày chiếm một dòng trên màn hình): Ngày:5 ký tự ; Tháng:5 ký tự ; Độ ẩm:6 ký tự trong đó có 2 ký tự thập phân. c. Tìm và in ra màn hình thông qua tin tổng tháng 12 có bao nhiêu ngày có độ ẩm là một số cho trước, số cho trước này nhập từ bàn phím , nếu không tìm thấy được thì in ra màn hình thông báo "Không có ngày nào có độ ẩm như vậy".
This post has been viewed
906
time(s).
2 direct repli(es)
and
0 indirect repli(es).
|
| Re: Có Anh nào Giúp Em Mấy Đề Pascal này với |
|
Member
Member since
00:40 28-11-2009
Posts:
757
Fantasy Points:
2,649
|
 Posted at
00:43 08-03-2010
Reply to
Có Anh nào Giúp Em Mấy Đề Pascal này với
( mrgau)
Dùng chung cái record này:
Sinhvien=record hoten[50]:string; namsinh:integer; gioi[20]:string; tinhthanh[20]:string; quanhuyen[20]:string; fuongxa[20]:string;
Bài 1:
sv[1..100]=array of sinhvien; mangkey[1..100]=array of integer; {bảng chứa key để sắp xếp}
procedure NhapLieuSV; begin nhap: biendem=0; writeln('Ho va ten?'); readln(ht); if ht="" then goto NhapXong; biendem=biendem+1 writeln('Nam sinh?'); readln(sv[biendem].namsinh); {cái này lâu quá ko xài ko bjk đúng ko} writeln('Gioi tinh?'); readln(sv[biendem].gioitinh); writeln('Tinh thanh?'); readln(sv[biendem].tinhthanh); writeln('Quan huyen?'); readln(sv[biendem].quanhuyen); writeln('Fuong xa?'); readln(sv[biendem].fuongxa); goto nhap; NhapXong: writeln('Hoan tat nhap lieu'); readln; end
{Câu a: Vui lòng làm rõ mấy chữ 'và' đó giùm}
{Câu b:} procedure XuatSV; begin biendem2=0; for i=1 to biendem do if sv[i].tinhthanh="Ha Noi" then begin biendem2=biendem2+1; mangkey[biendem2]=i; end; if biendem2=0 then begin writeln('Ko co sv nao o Ha Noi hjt'); goto XuatXong; end; hoandoi=false;
{Shaker Sort) {Dùng mảng key trỏ vào mảng dữ liệu}
hoandoi=true; {khởi đầu lặp} while hoandoi do begin hoandoi=false; {chưa đổi} for i=1 to biendem2-1 do if sv[mangkey[i]].namsinh<sv[mangkey[i+1]].namsinh then begin traodoi(mangkey[i],mangkey[i+1]); hoandoi=true; end; for i=biendem2 to 2 do if sv[mangkey[i]].namsinh<sv[mangkey[i-1]].namsinh then begin traodoi(mangkey[i],mangkey[i-1]); hoandoi=true; end; end; writeln('Danh sach sv co que quan Ha Noi') for i=1 to biendem2 do begin Khoa=mangkey[i]; writeln('Sv thu ',i); writeln('Ho ten: ',sv[khoa].hoten); {tự làm nhé} end; XuatXong: readln; end
{Câu c: } procedure DelSv; nhapsv: writeln('Ten sv can del:'); readln(ht); if ht="" then goto DelXong; for i=1 to biendem do if sv[i].hoten=ht then {xoá sạch dữ liệu trong ô đó}; if i>biendem then writeln('Ko co sv ten la ',ht) else writeln('Da xoa du lieu cua sv ten la ',ht); goto nhapsv; DelXong: end
Cái bài dài quá thôi mai post tiếp.
Trên đời nghìn vạn điều cay đắng Cay đắng chi bằng học môn văn
This post has been edited 2 time(s).
Last edited by bigbelly on 03:53 08-03-2010.
This post has been viewed
896
time(s).
0 direct repli(es)
and
0 indirect repli(es).
|
| Re: Có Anh nào Giúp Em Mấy Đề Pascal này với |
|
Member
Member since
00:40 28-11-2009
Posts:
757
Fantasy Points:
2,649
|
 Posted at
02:54 10-03-2010
Reply to
Có Anh nào Giúp Em Mấy Đề Pascal này với
( mrgau)
2. Ko bjk đc ko
HoaDon = record sohd:long; hoten[50]:string; sotien:extended; ngay:integer; thang:integer; nam:integer; end;
hd=array[1..100] of hoadon;
procedure NhapHd; begin bientren=0; while true do begin writeln('ID?'); readln(sohoadon); writeln('Ho ten?'); readln(ht); if ht="" then break; writeln('So tien?'); readln(st); writeln('Ngay thang nam (dd/mm/yyyy)?') readln(d,m,y); hd[bientren].sohd=sohoadon; hd[bientren].hoten=ht; hd[bientren].sotien=st; hd[bientren].ngay=d; hd[bientren].thang=m; hd[bientren].nam=y; end; writeln('Nhap lieu ket thuc') end
{Câu a:} procedure LuuVaoFile; assign(f1,'qlhd'); open(f1); for i=1 to bientren do writeln(f1,hd[i]); close(f1) writeln('Luu xong') end
{Câu b:} procedure TongTienTrongNam; sum=0; for i=1 to bientren do if hd[i].nam=2000 then sum=sum+hd[i].sotien; writeln('Tong tien cua cac hoa don nam 2000 la ',sum); end
{Câu c:} procedure TimVaSuaTien; writeln('So hoa don can sua?'); readln(sohdcansua); for i=1 to bientren do if hd[i].sohoadon=sohdcansua then begin writeln('Hoa don so ',sohdcansua,'co so tien ',hd[i].sotien); writeln('Nhap so tien moi:'); readln(st); hd[i].sotien=st; break; end; if i>bientren then writeln('Ko co hoa don nao mang so ',sohdcansua); end
3. a/ Upcase tất rùi dùng Shaker như post 2 Cấu trúc: Mảng lưu input gốc, mảng đã biến đổi và mảng trỏ (vào mảng biến đổi và mảng input gốc)(khi sort phải sort mảng biến đổi và mảng trỏ) b/ Upcase dãy nhập rồi search wa mảng đã biến đổi.
4. a/ Coi lại post 2. b/
{Câu b:} procedure XuatSV; assign(f1,'lop.dat'); open(f1); for i=1 to biendem do read(f1,sv[i]); close(f1); for i=1 to biendem do begin if sv[i].diem>5 then writeln('Ten sv ',sv[i].hoten,' Nam sinh ',sv[i].namsinh,' Diem ',sv[i].diem:7:2); end
{Câu c:} procedure XuatSVDiemCaoNhat; if biendem=0 then begin writeln('Ko co sv nao hjt!'); goto XuatXong; end; max=sv[1].diem for i=2 to biendem do if sv[i].diem>max then max=sv[i].diem; writeln('Ten cac sv dc diem max:') for i=2 to biendem do if sv[i].diem=max then writeln(sv[i].hoten); XuatXong: readln; end
5. a/,b/: Chuối hơn trái chuối. c/
{Tui ko rành cái vụ trích mã ASCII trong Pascal, dùng tạm 2 cái hàm chuối là Asc: lấy mã và Chr: lấy kí tự.} {Trích chuỗi từ f1 làm tham số 1, "May mắn" làm tham số 2)
{Câu c:} function DemSoLanXuatHien(dat,stri:string); {Dùng thuật toán KMP} if length(dat)<length(stri) then begin solan=0; goto DemXong; end; hash1=0; hash2=0; lstri=length(stri); ldata=length(dat); for i=1 to lstri do begin hash1=hash1+asc(stri[i]); hash2=hash2+asc(dat[i]); end; if hash1=hash2 then solan=1 for i=lstri+1 to ldata do begin hash2=hash2+asc(dat[i])-asc(dat[i-lstri]); if hash1=hash2 then solan=solan+1; else {trích chuỗi từ i-lstri tới i và so nó với stri}; end; DemXong: DemSoLanXuatHien=solan; end;
6. Xem lại các search và thay mã là xong.
Trên đời nghìn vạn điều cay đắng Cay đắng chi bằng học môn văn
This post has been viewed
845
time(s).
0 direct repli(es)
and
0 indirect repli(es).
|
|
Permissions:
Create Topic:
No
|
Reply Topic:
No
|
Attach File:
No
|
Make Poll:
No
|
|