1. Trang chủ
  2. » Khoa Học Tự Nhiên

pascal _ ngôn ngữ lập trình phổ thông

13 343 2
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

Định dạng
Số trang 13
Dung lượng 146 KB

Nội dung

đây là những tài liệu rất bổ ích đối vs các bạn muốn thi HSG môn tin học và Tin HỌc trẻ. mình đã sưu tầm rất lâu mới có đc

Một số bài giải của Pascal Nâng cao đây  3.1. Lập chương trình khởi tạo và in ra màn hình 1 danh sách liên kết mà mỗi phần tử của danh sách chứa 1 số nguyên. Việc khởi tạo kết thúc khi số nguyên được nhập bằng 0. Code: type TroPt=^DS; DS = record nd:integer; ke:TroPt; End; Var F,L,Q:TroPT; N:integer; Begin Repeat write('Moi nhap: (0 thoat):');readln(n); if n<>0 then Begin New(Q); Q^.nd:=n; Q^.ke:=nil; if F=nil then Begin F:=Q; L:=Q; End Else Begin L^.ke:=Q; L:=Q; ENd; End; until N=0; Q:=F; while Q<>Nil do begin write(Q^.nd,' '); Q:=Q^.ke; end; readln end. --- Bài viết tự động gộp --- Bài 3.2. 3.2. Lập chương trình chuyển một mảng số nguyên thành danh sách liên kết đơn. Code: type TroPt=^DS; DS = record nd:integer; ke:TroPt; End; Var F,L,Q:TroPT; i,n:byte; A:array[1 100] of integer; Begin write('Nhap so phan tu cua mang:');readln(n); For i:=1 to n do Begin Write('Nhap phan tu A[',i,']=');readln(A[ i ]); End; New(Q); Q^.nd:=A[1]; Q^.ke:=Nil; F:=Q; L:=Q; for i:=2 to n do Begin New(Q); Q^.nd:=A[ i ]; Q^.ke:=Nil; L^.Ke:=Q; L:=Q; End; End. --- Bài viết tự động gộp --- 3.3. Lập chương trình dùng danh sách liên kết đơn nhập danh sách sinh viên gồm 2 trường họ tên, điểm tổng kết. In ra màn hình danh sách tất cả sinh viên và danh sách những sinh viên có điểm tổng kết trên 7. Code: type TroPt=^DS; DS = record ht:String; diem:real; ke:TroPt; End; Var F,L,Q:TroPT; st:string; Begin F:=Nil;L:=Nil; Repeat Write('Nhap Ho Ten SV (0 de thoat):');readln(St); if st<>'0' then Begin New(Q); Q^.ht:=St; Write('Nhap diem cho ',st,' =');readln(Q^.diem); Q^.ke:=Nil; if F=Nil then Begin F:=Q; L:=Q; End Else Begin L^.ke:=Q; L:=Q; End; End; until st='0'; Q:=F; Writeln('Danh sach cac SV'); While Q<>Nil do Begin writeln(Q^.ht); Q:=Q^.ke; End; Writeln('Danh sach cac SV co diem >7'); Q:=F; While Q<>Nil do Begin if Q^.diem>7 then writeln(Q^.ht); Q:=Q^.ke; End; Readln End. --- Bài viết tự động gộp --- 3.4. Lập chương trình nhập một danh sách số nguyên và một số nguyên S. Hãy kiểm tra xem số nguyên S có trong danh sách hay không? Nếu có hãy in ra vị trí của số nguyên S trong danh sách. Nếu không hãy bổ sung số nguyên S vào cuối danh sách. Code: type TroPt=^DS; DS = record nd:integer; ke:TroPt; End; Var F,L,Q:TroPT; N,cs:integer; KT:boolean; Begin Repeat write('Moi nhap: (0 thoat):');readln(n); if n<>0 then Begin New(Q); Q^.nd:=n; Q^.ke:=nil; if F=nil then Begin F:=Q; L:=Q; End Else Begin L^.ke:=Q; L:=Q; ENd; End; until N=0; Write('Moi nhap S=');readln(N); KT:=False; Q:=F; CS:=0; while Q<>Nil do begin Cs:=Cs+1; if Q^.nd=N then Begin if not KT then Begin Writeln('Danh sach chua so nguyen ',N); KT:=True; Writeln('Vi tri cu so nguyen ',N,' co trong DS la:'); End; Write(cs,' '); end; Q:=Q^.ke; end; if Not KT then Begin Write('Trong DS khong ton tai so nguyen ',N); New(Q); Q^.nd:=N; Q^.ke:=nil; L^.ke:=Q; L:=Nil; End; readln end. Các bài viết ngẫu nhiên cùng chủ đề: • Một số bài giải của Pascal Nâng cao đây Sống, là phải biết quý trọng những gì mình đang có Trả lời Trích dẫn Cảm ơn Blog this Post 02-18-2010  03:51 PM #2 Đ.G.T • Xem Hồ sơ • Xem bài viết diễn đàn • Tin nhắn riêng • Xem bài viết Blog • Thêm vào Danh bạ :: T::T::P :: Ngày tham gia Feb 2010 Đang ở Nam Định Tuổi 28 Bài viết 880 Tài sản 168,364 Cảm ơn 54 Được cảm ơn 206 lần trong 143 bài viết Blog Entries 2 3.4. Lập chương trình nhập một danh sách số nguyên và một số nguyên S. Hãy kiểm tra xem số nguyên S có trong danh sách hay không? Nếu có hãy in ra vị trí của số nguyên S trong danh sách. Nếu không hãy bổ sung số nguyên S vào cuối danh sách. Code: type TroPt=^DS; DS = record nd:integer; ke:TroPt; End; Var F,L,Q:TroPT; N,cs:integer; KT:boolean; Begin Repeat write('Moi nhap: (0 thoat):');readln(n); if n<>0 then Begin New(Q); Q^.nd:=n; Q^.ke:=nil; if F=nil then Begin F:=Q; L:=Q; End Else Begin L^.ke:=Q; L:=Q; ENd; End; until N=0; Write('Moi nhap S=');readln(N); KT:=False; Q:=F; CS:=0; while Q<>Nil do begin Cs:=Cs+1; if Q^.nd=N then Begin if not KT then Begin Writeln('Danh sach chua so nguyen ',N); KT:=True; Writeln('Vi tri cu so nguyen ',N,' co trong DS la:'); End; Write(cs,' '); end; Q:=Q^.ke; end; if Not KT then Begin Write('Trong DS khong ton tai so nguyen ',N); New(Q); Q^.nd:=N; Q^.ke:=nil; L^.ke:=Q; L:=Nil; End; readln end. --- Bài viết tự động gộp --- 3.5. Cho một danh sách liên kết đơn mà mỗi phần tử của nó là một số nguyên. Lập chương trình bổ sung số nguyên X vào vị trí k trong danh sách. Code: type TroPt=^DS; DS = record nd:integer; ke:TroPt; End; Var F,L,Q:TroPT; N,i:integer; procedure BoSungPT(var F:TroPt;gt,K:integer); var i:integer; Q,P:TroPt; Begin i:=1; Q:=F; while (Q<>Nil) and (i <> K) do Begin I:=i+1; P:=Q; Q:=Q^.ke; End; if Q=F then Begin New(Q); Q^.nd:=gt; Q^.ke:=F; F:=Q; End Else Begin New(Q); Q^.nd:=gt; if P^.ke <> Nil then Q^.ke:=P^.ke^.ke Else Q^.Ke:=P^.ke; P^.ke:=Q; End; End; Begin Repeat write('Moi nhap: (0 thoat):');readln(n); if n<>0 then Begin New(Q); Q^.nd:=n; Q^.ke:=nil; if F=nil then Begin F:=Q; L:=Q; End Else Begin L^.ke:=Q; L:=Q; ENd; End; until N=0; Write('Nhap gia tri can bo sung=');readln(n); write('Nhap vi tri can bo sung=');readln(i); BosungPt(F,n,i); Q:=F; while Q<>Nil do begin write(Q^.nd,' '); Q:=Q^.ke; end; readln end. --- Bài viết tự động gộp --- 3.6. Lập chương trình thực hiện các công việc sau: - Khởi tạo danh sách các số nguyên - Loại bỏ phần tử đầu tiên chứa số nguyên X. - In danh sách trước và sau khi loại bỏ ra màn hình. Code: type TroPt=^DS; DS = record nd:integer; ke:TroPt; End; Var F,L,Q:TroPT; N:integer; procedure Loaibo(var F:TroPt;gt:integer); var Q,P:TroPt; Begin Q:=F; while (Q<>Nil) and (Q^.nd<>gt) do Begin P:=Q; Q:=Q^.ke; End; if Q=F then Begin F:=F^.ke; Dispose(Q); End; if Q<>Nil then Begin P^.ke:=Q^.ke; Dispose(Q); End; End; Begin Repeat write('Moi nhap: (0 thoat):');readln(n); if n<>0 then Begin New(Q); Q^.nd:=n; Q^.ke:=nil; if F=nil then Begin F:=Q; L:=Q; End Else Begin L^.ke:=Q; L:=Q; ENd; End; until N=0; Write('Nhap gia tri can loai bo=');readln(n); LoaiBo(F,n); Q:=F; while Q<>Nil do begin write(Q^.nd,' '); Q:=Q^.ke; end; readln end. --- Bài viết tự động gộp --- 3.7. Dùng danh sách liên kết đơn để quản lý hồ sơ sinh viên gồm 2 trường họ tên, năm sinh. Công việc quản lý gồm nhập, thêm, loại bỏ các phần tử trong danh sách. Code: type TroPt=^DS; DS = record Hoten:String; Nsinh:integer; ke:TroPt; End; Var F,Q:TroPT; N,i:integer; procedure Loaibo(var F:TroPt); var Q,P:TroPt; hoten:string; Begin Q:=F; write('Nhap ho ten nguoi can loai bo:');Readln(hoten); while (Q<>Nil) and (Q^.Hoten<>Hoten) do Begin P:=Q; Q:=Q^.ke; End; if Q=Nil then Write('Khong tim thay nguoi can loai bo'); if Q=F then Begin F:=F^.ke; Dispose(Q); Writeln('Loai bo thanh cong ',Hoten); End; if Q<>Nil then Begin P^.ke:=Q^.ke; Dispose(Q); Writeln('Loai bo thanh cong ',Hoten); End; End; Procedure ThemDS(var F:TroPt); var Hoten:String; NSinh:integer; Q:Tropt; Begin New(Q); Q^.ke:=F; Write('Nhap Ho va ten:');readln(Q^.Hoten); Write('Nhap nam sinh:');readln(Q^.NSinh); F:=Q; End; Procedure CapNhat(F:TroPT); var Hoten:string; NSinh:integer; CH:Char; Q:TroPT; Function TimSV(F:TroPT;Ht:string):TroPT; var Q,P:TroPt; Begin Q:=F; While (Q<>Nil) and (Q^.Hoten<>Hoten) do Begin P:=Q; Q:=Q^.ke; End; if Q=Nil then Writeln('Khong tim thay:'); TimSV:=Q; end; Begin write('Nhap Ho ten nguoi can cap nhat');Readln(Hoten); Repeat Q:=TimSv(F,Hoten); if Q<>Nil then Begin Write('Sua SV:',Q^.Hoten,' Nam sinh:',Q^.Nsinh,' (C/K)');Readln(Ch); . Một số bài giải của Pascal Nâng cao đây  3.1. Lập chương trình khởi tạo và in ra màn hình 1 danh sách liên kết mà mỗi phần tử của danh sách chứa 1 số. L^.ke:=Q; L:=Nil; End; readln end. Các bài viết ngẫu nhiên cùng chủ đề: • Một số bài giải của Pascal Nâng cao đây Sống, là phải biết quý trọng những gì

Ngày đăng: 18/09/2013, 21:53

TỪ KHÓA LIÊN QUAN

w