PDA

View Full Version : Pascal cần giúp đỡ



addyou
17-08-2009, 07:35
Hiện mình có 2 bài pascal sau mong cá pro code hoàn chỉnh giúp mình . Cám ớn nhiều

1. cho 1 tệp văn bản vanban.dat có chứa nhiều sâu ký tự phân biệt bằng dấu xuống dòng . Viết chương trình đọc tệp đã cho , tính số dòng và số ký tự in ra kết quả

2. cho 1 tệp văn bản vanban.dat có chứa 1 hoặc nhiều dòng văn bản. Viết [chương trình đọc tệp đã cho , lưu vào các mảng xâu ký tự s[1], s[2], s[n], ... mỗi phần tử một dòng. Liệt kê các phần tử mảng có chứa ký tự A , in ra màn hình

chick chick
17-08-2009, 10:48
mấy cái này mà code đầy đủ thì tức là bạn chỉ phụ thuộc vào mọi người thôi

cứ while not EOF(f) do là OK

quangtq
17-08-2009, 10:57
Bài này có gì đâu.
1. Cứ Readln(F) đến khi nào EOF. Xem bao nhiêu dòng
2. Đọc bình thường, cái xâu s[i] nào có pos('A',s[i])<>0 thì in ra.

addyou
17-08-2009, 10:59
căn bản là minh học C mình không học pascal nên không biết làm thế nào cả , em mình thi nó ko biết làm nên , nên mình post lên nhờ mọi người code hộ 2 bài thôi giúp mình đi

chick chick
17-08-2009, 14:08
bạn nào code đê, nếu cần thì mọi người sửa chữa cho.

addyou
17-08-2009, 17:47
minhf khong biet ngon ngu pascal sao code duoc bao C thi lam ngay nhung pascal chiu anh em nao giup voi

quangtq
17-08-2009, 20:06
@chick: Anh code đi. Lại bảo mọi người.
Thôi em code vậy
1.


Uses Crt;
Var F:Text;
S:Array[1..100] of String;
CountLn, CountCh : Word;
Procedure DelSpace(Var s:String);
Var k,n:Word;
Begin
n:=Length(s);
k:=Pos(' ',s);
If k<>0 then Delete(s,k,n-k+1);
End;

Procedure Input;
Begin
CountLn:=0; CountCh:=0;
Assign(F,'vanban.dat'); Reset(F);
While not EOF(F) do
Begin
Inc(CountLn);
Readln(F,S[CountLn]);
DelSpace(S[CountLn]); Inc(CountCh,Length(S[CountLn]));
End;
Close(F);
End;

Procedure Output;
Begin
Writeln(' Number of line : ',CountLn);
Writeln(' Number of char : ',CountCh);
End;

BEGIN
ClrScr;
Input;
Output;
Readln;
END.

2.


Uses Crt;
Var F:Text;
S:Array[1..100] of String;
n:Word;

Procedure ReadData;
Begin
n:=0;
Assgin(F,'vanban.dat'); Reset(F);
While not EOF(F) do
Begin
Inc(n);
Readln(F,s[n]);
End;
Close(F);
End;

Procedure PrintResult;
Var i:Word;
Begin
For i:=1 to n do If Pos('A',S[i])<>0 then Writeln(S[i]);
End;

BEGIN
ClrScr;
ReadData;
PrintResult;
Readln;
END.


Mình chưa test. Bạn test thử nhá.

addyou
17-08-2009, 23:10
Ai test hộ với mình không biết pascal huhuhuhuhu

chick chick
18-08-2009, 10:28
bó tay rồi, không biết thì lôi đề lên đây làm gì

hang_vt
18-08-2009, 16:18
k có cớ j` mà thầy cô bắt bạn làm trong khi test mà bạn cũng k bik :( . Làm bài tập này thì ít nhất phải học đến mảng & tệp ùi

atx
18-08-2009, 16:43
chắc là bài tập lớn ^^