Trang Chủ | Diễn Đàn | Thành Viên (Đăng Ký) | Tìm Kiếm | Tutorial Room
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
First page Previous page  (Page 1 )   1   Next page Last page
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
Rank
smile Posted at 20:37 07-03-2010 Move Move Topic   Pin/Unpin Pin Topic   Lock Lock Topic
Đề 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".
Reply Reply   Quote Quote   Edit Edit   Delete Delete   Report Report
This post has been viewed 906 time(s). 2 direct repli(es) and 0 indirect repli(es).
Title Poster
smile Có Anh nào Giúp Em Mấy Đề Pascal này với
 
answer Re: Có Anh nào Giúp Em Mấy Đề Pascal này với
bigbelly
answer Re: Có Anh nào Giúp Em Mấy Đề Pascal này với
bigbelly
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
Rank
answer 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.
Reply Reply   Quote Quote   Edit Edit   Delete Delete   Report Report
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
Rank
answer 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
Reply Reply   Quote Quote   Edit Edit   Delete Delete   Report Report
This post has been viewed 845 time(s). 0 direct repli(es) and 0 indirect repli(es).
First page Previous page  (Page 1 )   1   Next page Last page

Permissions: Create Topic: No  |  Reply Topic: No  |  Attach File: No  |  Make Poll: No

Vietnamese Keyboard: AUTO TELEX VNI VIQR VIQR* OFF

Go top || Print page ||

All logos, trademarks and graphics artwork in this site are property of their respective owners.
Opinions expressed in articles within this site are those of their owners and may not reflect the opinion of TXBB.

TXBB: Home - Disclaimer - Help - Contact
Copyright (C) 2000-2006 TXBB. All rights reserved.

TreXanh Bulletin Board v2.0 (Build: #332 Nov 21, 2006)

DEBUG INFORMATION
Execution 0.164s - SQL used 6s - Concurrent process(es) 0