Bài tập ngôn ngữ lập trình PasCal
Bài 5 :
Viết chơng trình nhập một xâu kí tự , sau đó chỉ ra xem xâu đó có phải là xâu đối xứng không ( xâu đối xứng
là xâu có các kí tự giống nhau và đối xứng nhau qua điểm giữa xâu , ví dụ ‘ABBA’ hoặc ‘ABCBA’ ) .
Bài giải:
Uses Crt;
Var St : string;
dx : Boolean;
i, len: byte;
===============*) Procedure phantich(N1:longint); Begin If N1>1 then Begin u:=2; dem:=0; 18 Bài tập ngôn ngữ lập trình PasCal Biên soạn: Hoàng Đức Hà Repeat If (N1 mod u=0) then Begin inc(dem); a[dem]:=u; N1:=N1 div u; End Else inc(u); Until N1=1; End Else dem:=0; Viet; End; (*==============================*) BEGIN (* Main Program *) Clrscr; Writeln('Phan tich so N thanh tich cua cac so nguyen to :'); nhap(N); phantich(N); Write('Nhan Enter de ket thuc ...'); Readln; END . 19 Bài tập ngôn ngữ lập trình PasCal Biên soạn: Hoàng Đức Hà Bài tập chơng 4 L#m viƯc víi d# liƯu kiĩu m#ng: Bài 1 : Giải hệ phơng trình tuyến tính hai ẩn dùng ma trận : a11x + a12y = c1 a21x + a22y = c2 Bài giải: Uses Crt; Var a: array[1..2, 1..2] of real; c: array[1..2] of real; d, dx, dy, x, y: real; BEGIN Clrscr; Writeln('Giai he phuong tring tuyen tinh hai an:'); Writeln(' a11x+a12y=c1'); Writeln(' a21x+a22y=c2'); Writeln('Nhap cac he so cua he phuong trinh'); Write('a11='); Readln(a[1,1]); Write('a12='); Readln(a[1,2]); Write('c1='); Readln(c[1]); Write('a21='); Readln(a[2,1]); Write('a22='); Readln(a[2,2]); Write('c2='); Readln(c[2]); d:=a[1,1]*a[2,2] - a[2,1] * a[1,2]; dx:=c[1]*a[2,2] - c[2] * a[1,2]; dy:=a[1,1]*c[2] - a[2,1] * c[1]; If d=0 then Writeln(' He vo nghiem hoac vo so nghiem') Else Begin x:=dx/d; y:=dy/d; Writeln('He co nghiem duy nhat :'); Writeln('x=', x:0:2, ' ; y=', y:0:2); End ; Readln; END . Bài 2 : Lập phơng trình tạo ra một mảng chứa bảng cửu chơng . Bài giải: Uses Crt ; Var a : Array[1..10, 2..9] Of Byte ; i, j : Byte ; BEGIN Clrscr ; For i := 1 To 10 Do For j := 2 To 9 Do a[i, j] := i*j ; Writeln(' Bang cuu chuong : ') ; Writeln ; For i := 1 To 10 Do For j := 2 to 9 do Write ( j:4 , 'x' , i:2 , '=' , a[i , j]:2) ; (* hết 80 cột tự động xuống hàng *) Readln ; END . 20 Bài tập ngôn ngữ lập trình PasCal Biên soạn: Hoàng Đức Hà Bài 3 : Viết chơng trình nhập hai số nguyên dơng m , n . Sau đó tính trung bình cộng bình phơng các số nguyên từ m đến n . Bài giải: Var m , n , k , s : Word ; tb : real ; BEGIN Writeln('Nhap 2 so nguyen duong m, n :') ; Write (' m = ') ; Readln(m) ; Write (' n = ') ; Readln(n); If m > n Then (* đỗi chỗ để m <= n *) Begin k := m ; m := n ; n := k ; End ; s := 0 ; For k := m To n do s := s + sqr(k) ; tb := s / (n - m + 1) ; Writeln ('Trung binh cong bimh phuong cac so ' + 'nguyen tu m den n la: ', tb:12:2); Readln ; END . Bài 4 : Viết chơng trình nhập từ bàn phím các phần tử của một mảng hai chiều . Kích thớc của mảng đợc nhập trớc từ bàn phím . Bài giải: Var m , n , i , j : Byte ; a : Array[1..100, 1..100] Of Real; BEGIN Write ('Nhap cac kich thuoc cua mang hai chieu : ') ; Write (' So hang m = ') ; Readln(m) ; Write (' So cot n = ') ; Readln(n) ; Writeln (' Nhap cac phan tu cua mang : ') ; For i := 1 To m Do For j := 1 To n Do Begin Write ('a[', i:2, ', ' , j:2 ,']=') ; Readln(a[i, j]) ; End ; Readln ; END . Bài 5 : Dãy số sau đợc gọi là dãy Fibonaci : a1 = 1 a2 = 1 a3 = 2 a4 = 3 . . . an = an-1 + an-2 Viết chơng trình tính 20 số Fibonaci đầu tiên và đa ra kết quả vào một mảng 20 phần tử . Var a : Array[1..20] Of Byte ; i : Byte ; BEGIN a[1] :=1; 21 Bài tập ngôn ngữ lập trình PasCal Biên soạn: Hoàng Đức Hà a[2] :=1; For i:=3 to 20 do a[i]:=a[i-1]+a[i-2] ; END . Bài 6 : Dãy số an đợc định nghĩa nh sau : a1 = 1 a2 = 2 . . . an = 2an-1 + an-2 ( n > 2 ) Hãy lập chơng trình tính và gán giá trị của dãy vào biến mảng . Bài giải: Var a : Array [1..100] Of Word ; i, N : Byte ; S : Real ; BEGIN Write (' Nhap so N>=2 : ') ; Readln(n) ; a[1] := 1 ; a[2] := 2 ; For i := 3 To N Do a[i] := 2*a[i-1]+a[i-2] ; S := 0 ; For i := 1 to N do S := S+1/sqr(a[i]) ; Writeln (' S = ', S:12:6) ; Readln ; END . Bài 7 : Nhập số tự nhiên N và viết chơng trình tạo mảng bao gồm N số nguyên tố đầu tiên . Bài giải: var a:array[1..100,1..100]of byte; n,i,j,k,l,ba:byte; d:boolean; BEGIN write(' Nhap kich thuoc cua mang hai chieu NxN. N = ');readln(n); for i:=1 to n do for j:=1 to n do begin ba:=0; repeat d:=FALSE; if j>1 then for k:=1 to j-1 do if a[i,k]=ba then d:=true; if i>1 then for k:=1 to i-1 do if a[k,j]=ba then d:=true; ba:=ba+1; until not d; a[i,j]:=ba-1; end; for i:=1 to n do for j:=1 to n do write(a[i,j]:8); readln; END . Bài 8 : 22 Bài tập ngôn ngữ lập trình PasCal Biên soạn: Hoàng Đức Hà Viết chơng trình nhập một bảng số 3 x 3 với điều kiện các số đợc nhập sẽ hiện trên màn hình đúng tại vị trí của mình trên bảng số . Bài giải: Uses Crt; Var a : array[1..3, 1..3] of integer ; i, j: byte ; BEGIN Clrscr; Writeln('Nhap mot bang so nguyen kich thuoc 3x3:'); Gotoxy(10, 4); Write(1); Gotoxy(19, 4); Write(2); Gotoxy(28, 4); Write(3); Gotoxy(5, 6); Write(1); Gotoxy(5, 8); Write(2); Gotoxy(5,10); Write(3); For i:=1 to 3 do For j:=1 to 3 do Begin Gotoxy(9*j-1, 2*i+4); Read(a[i, j]); Gotoxy(9*j-1, 2*i+4); ClrEol; Write(a[i, j]:6); End; Readln; END . Bài 9 : a. Viết chơng trình nhập dữ liệu từ dãy đối xứng vào mảng một chiều . b. Viết chơng trình nhập dữ liệu là ma trận đối xứng vào mảng hai chiều . Bài giải: a) Var a: array [1..100] of integer; n, i: byte; Begin Write('Nhap so phan tu cua day doi xung:'); Readln(n); Writeln('Nhap cac phan tu cua day:'); For i:=1 to (n+1) div 2 do Begin Write('a[', i:2, ']='); Readln(a[i]); a[n-i+1] := a[i]; End; Readln ; END ; b) Var a: array [1..100, 1..100] of integer; n, i, j: integer; BEGIN Write('Nhap kich thuoc cua mang doi xung: '); Readln(n); Write('Nhap cac phan tu cua mang:'); For i:=1 to n do For j:=1 to i do Begin Write('a[', i:2, ',', j:2, ']='); Readln(a[i, j]); 23 Bài tập ngôn ngữ lập trình PasCal Biên soạn: Hoàng Đức Hà a[j,i]:=a[i,j]; End; Readln ; END ; 24 Bài tập ngôn ngữ lập trình PasCal Biên soạn: Hoàng Đức Hà Bài tập chơng 5 Bài 1 : Lập trình đếm số lần xuất hiện ở mỗi loại kí tự thuộc bảng chữ cái tiếng Anh trong một xâu kí tự Str . Bài giải: Var A: array [ 'A'..'Z'] of integer; S: string; ch: char; i: integer; BEGIN Write(' Cho mot xau ki tu : '); Readln(s); For ch:= 'A' to 'Z' do A[ch]:=0; For i:=1 to length(s) do Begin If Upcase(S[i]) in (['A'..'Z']) then Begin S[i]:= Upcase(S[i]); A[S[i]]:= A[S[i]]+1; End; End; For ch:= 'A' to 'Z' do Writeln('So lan xuat hien cua ',ch,' trong xau la: ', A[ch]:4) ; Readln ; END . Bài 2 : Cho số tự nhiên n và xâu có độ dài n . Hãy biến đổi xâu đã cho bằng cách thay đổi trong đó : a. Tất cả các dấu ! bằng dấu chấm . b. Mỗi một nhóm các dấu chấm liền nhau bằng một dấu chấm . c. Một nhóm các dấu chấm đứng liền nhau bằng dấu ba chấm . Bài giải: a ) Var S: string; i: byte; BEGIN Write(' Cho mot xau ki tu S = '); Readln(S); For i:=1 to length(S) do If S[i] = '!' then S[i]:= '.'; Write( ' Chuoi sau khi da bien doi la : ', S); Readln; END . b ) Uses crt; Var S : string; i : byte; BEGIN Clrscr; Write(' Cho mot xau ki tu S = '); Readln(S); i:=1; While i< length(S) do If (S[i]='.')and(S[i+1]='.') then Delete(S,i,1) 25 Bài tập ngôn ngữ lập trình PasCal Biên soạn: Hoàng Đức Hà Else inc(i); Write('Chuoi sau khi da bien doi la: ' ,S); Readln; END . c ) Uses crt; Var S: string; i, j: byte; BEGIN Clrscr; Write('Nhap xau S='); Readln(S); i:=1; While i<=Length(S) do Begin If S[i]='.' then Begin j:=i; While (S[i]='.')and(i<=length(S)) do inc(i); dec(i); If (i-j)=1 then insert('.',S,i) Else If (i-j)>2 then Begin Delete(S,j+2,i-j-2); i:=j+1; End; End ; Inc(i); End; Write('Chuoi sau khi bien doi la: ',S); Readln; END . Bài 3 : Cho số tự nhiên n và một dãy các kí tự S1 , S2 , , S… n . Hãy tìm số tự nhiên I đầu tiên sao cho các kí tự Si , Si+1 đều là chữ cái a . Nếu trong dãy không có những cặp nh vậy thì thông báo . Bài giải: Var S: string; i: integer; BEGIN Write(' Cho mot xau ki tu : '); Readln(S); i:= pos('aa', S); {tìm vị trí xâu con 'aa' trong S} If i0 then Writeln(' Ton tai "aa" tai vi tri ', i) Else Writeln(' Khong ton tai .') ; Readln; END . Bài 4 : Cho số tự nhiên n và dãy các kí tự S1 , S2 , , S… n . Biết rằng trong dãy có ít nhất một dấu phẩy . Hãy tìm số tự nhiên i sao cho : a. a. Si là dấu phẩy đầu tiên . b. b. Si là dấu phầy cuối cùng . Bài giải: a ) Var S: string; 26 Bài tập ngôn ngữ lập trình PasCal Biên soạn: Hoàng Đức Hà i: integer; BEGIN Write('Cho mot xau S co dau ",": '); Readln(S); i:= pos(',', S); (* vị trí của dấu ',' trong S *) If i 0 then Write(' Vi tri thoa man la: ', i); Readln; END . b ) Var S: string; i: integer; BEGIN Write('Cho mot xau S co dau ",": '); Readln(S); i:= length(S); While (i>=1)and(S[i] ',' ) do i:=i -1; If i>=1 then Write('So thu tu thoa man la: ', i) Else Write('Khong ton tai.'); Readln; END . Bài 5 : Viết chơng trình nhập một xâu kí tự , sau đó chỉ ra xem xâu đó có phải là xâu đối xứng không ( xâu đối xứng là xâu có các kí tự giống nhau và đối xứng nhau qua điểm giữa xâu , ví dụ ‘ABBA’ hoặc ‘ABCBA’ ) . Bài giải: Uses Crt; Var St : string; dx : Boolean; i, len: byte; BEGIN Clrscr; Write(' Nhap xau St = '); Readln(St); dx:= True; i:=1; len:= Length(St); While dx and (i<=(len div 2)) do Begin dx:=(St[i] = St[len - i+1]); inc(i); End; If dx then Write(' St la xau doi xung ') Else Write(' St khong phai la xau doi xung ') ; Readln; END . Bài 6 : Cho một xâu kí tự S . Hãy viết chơng trình tính xem trong S có bao nhiêu loại kí tự khác nhau ( phân biệt chữ in hoa với chữ in thờng ) . Ví dụ với S là “Pascal” ta có đáp số là 5 . Bài giải: Var S: string; i, j, dem: integer; t: boolean; BEGIN 27 Bài tập ngôn ngữ lập trình PasCal Biên soạn: Hoàng Đức Hà Write('Cho mot xau ki tu S: '); Readln(S); dem:=0; For i:=1 to length(S) do Begin t:=false; For j:=1 to i-1 do if (S[j]=S[i]) then t:=true; If not t then dem:= dem+1; End; Write('So ki tu khac nhau cua xau S la: ', Dem); Readln; END . Bài 7 : Viết chơng trình nhập một xâu kí tự và biến đổi chúng thành toàn chữ in hoa . Bài giải: Var S : string; i : integer; BEGIN Write('Cho mot xau ky tu: '); Readln(S); For i:=1 to length(S) do If S[i] in ['a' ..'z'] then S[i]:= Upcase(S[i]); Write('Chuoi sau khi da bien doi la: ', S); Readln; END . Bài 8 : Họ tên một học sinh đợc nhập từ bàn phím . Bạn hãy viết chơng trình điều chỉnh lại các kí tự đầu của các từ đơn trong tên của học sinh ấy trở thành chữ in hhoa . Bài giải: Uses crt; Const Chu=['a'..'z']; Var Hoten: string; i,len: byte; BEGIN Clrscr; Write('Ho ten='); Readln(Hoten); Len:=length(Hoten); If Hoten[1] in Chu then Hoten[1]:=Upcase(Hoten[1]); For i:=2 to len do If (Hoten[i-1]=#32)and(Hoten[i] in Chu) then Hoten[i]:=Upcase(Hoten[i]); Write('Ho ten sau khi dieu chinh la: ', Hoten); Readln; END . Bài 9 : Viết chơng trình nhập xãu kí tự từ bàn phím , sau đó gọt xâu lại bằng cách cách xoá đi các kí tự trống ở hai đầu của xâu . Ví dụ nếu nhập xâu “ Ha noi “ , thì kết quả sẽ là “Ha noi” . Bài giải: Var S: String; BEGIN Write('Cho mot xau ky tu: '); Readln(S); While S[1] = #32 do Delete(S,1,1); While (S[length(S)] = #32) do Delete(S,length(S),1); Write('Chuoi sau khi da bien doi la: ', S); 28 Bài tập ngôn ngữ lập trình PasCal Biên soạn: Hoàng Đức Hà Readln; END . 29 Bài tập ngôn ngữ lập trình PasCal Biên soạn: Hoàng Đức Hà Bài tập chơng 6 Bài 1 : Bạn hãy viết hàm Card(A) đếm số phần tử của tập hợp A cho trớc có kiểu Set Of 0 .. 99 . Bài giải: (* hàm đếm số phần tử của tập hợp *) Uses Crt; Type Tap=set of 0..99; Const inp='Number.dat'; Var S : Tap; i : byte; Procedure Nhap; Var a: byte; f: text; Begin S:=[]; Assign(f,inp); Reset(f); While not SeekEoF(f) do begin Readln(f,a); If (a>=0)and(a<=99) then S:=S+[a]; End; Close(f); End; Function Card(S: Tap): byte; Var i,n: byte; Begin n:=0; For i:=0 to 99 do If i in S then Inc(n); Card:=n; End; BEGIN Nhap; Clrscr; Write('Tap S co ',Card(S),' phan tu.'); Readln; END. Bài 2 : Bạn hãy lập chơng trình tạo một tập hợp các số nguyên chẵn kiểu Byte và loại khỏi nó các số chia hết cho 3 . Kết quả thể hiện trên màn hình . Bài giải: Uses Crt; Const n=5; Type Danhsach=record holot: string[25]; ten: string[10]; tuoi: 0..99; lop: string[3]; End ; Var ds: array [1..20] of Danhsach; i,j: byte; 30 Bài tập ngôn ngữ lập trình PasCal Biên soạn: Hoàng Đức Hà f: file of Danhsach; Procedure Doi(i,j: byte); Var tg: Danhsach; Begin tg:=ds[i]; ds[i]:=ds[j]; ds[j]:=tg; End; BEGIN ClrScr; Writeln('Nhap danh sach hoc sinh tu file data.dat : '); Writeln; Assign(f,'data.dat'); Reset(f); For i:=1 to n do Read(f,ds[i]); Close(f); For i:=1 to n-1 do For j:=i+1 to n do begin If (ds[i].ten>ds[j].ten) then Doi(i,j) Else If (ds[i].ten=ds[j].ten)and(ds[i].holot>ds[j].holot) then Doi(i,j); end; Writeln('Danh sach hoc sinh:'); For i:=1 to n do With ds[i] do Writeln(holot:20,ten:11,tuoi:4,lop:5); Writeln; Write('Bam Enter de ket thuc...'); Readln; END. Bài 3 : Xét chơng trình sau : Program B4 ; Var Thoat : Set Of Char = [‘e’ , ’E’] ; BEGIN Write (‘ Hay go E de ket thuc : ‘) ; Repeat Ch := Readkey ; Until Ch in thoat ; END . Hãy tìm và sửa lỗi trong chơng trình đó . Bài giải: Uses Crt; Const thoat: set of char=['e','E']; Var ch: char; BEGIN Write('Hay go E de thoat khoi chuong trinh: '); Repeat ch:=readkey; Until ch in thoat; 31 Bài tập ngôn ngữ lập trình PasCal Biên soạn: Hoàng Đức Hà END . Bài 4 : Bạn hãy lập chơng trình hiển thị một menu dạng sau trên màn hình 1. Xem 2. 2. Sua chua 3. 3. Loai bo 4. 4. Nhap them 5. 5. Thoat Lua chon cua ban : _ Sau đó đợi gõ phím . Chơng trình phải đợi cho tới khi phím gõ vào là một trong các chữ số 1 .. 5 hoặc các chữ cái đầu của các tuỳ chọn thì thông báo phím gõ vào hợp lệ và kết thúc chơng trình . Trong chơng trình phải dùng một tập hợp để kiểm tra việc nhập giá trị cho biến từ bàn phím . Bài giải: (* Hiển thị menu *) Uses Crt; Const menu: set of char = ['1'..'5','X','S','L','N','T']; Var ch: char; BEGIN Clrscr; Writeln(' 1. Xem '); Writeln(' 2. Sua chua '); Writeln(' 3. Loai bo '); Writeln(' 4. Nhap them'); Writeln(' 5. Thoat '); Write('Lua chon cua ban: '); Repeat ch:=readkey; ch:=Upcase(ch); Until ch in menu; Writeln; Write('Ban da chon:'); Case ch of '1','X': Writeln(' 1. Xem '); '2','S': Writeln(' 2. Sua chua '); '3','L': Writeln(' 3. Loai bo '); '4','N': Writeln(' 4. Nhap them'); '5','T': Writeln(' 5. Thoat '); End; Readln; END. Bài 5 : Hãy lập chơng trình nhập vào một xâu nhị phân . Các kí tự nhập vào không hợp lệ bị bỏ qua . Bài giải: (* nhập một xâu nhị phân *) Uses Crt; Const bit : set of char= ['0','1']; Var ch: char; st: string; BEGIN Clrscr; st:=''; 32 Bài tập ngôn ngữ lập trình PasCal Biên soạn: Hoàng Đức Hà Write('Nhap vao mot xau nhi phan : '); Repeat ch:= Readkey; If ch in bit then begin st:=st+ch; Write(ch); end Else If ch#13 then Write(#7); Until ch=#13; Readln; END. Bài 6 : Hãy lập chơng trình nhập vào một xâu kí tự từ bàn phím . Yêu cầu các kí tự nhập vào phải là các chữ cái thuộc bảng chữ cái tiếng Anh , bỏ qua các phím khác . Bài giải: (* Nhập một xâu toàn các chữ cái *) Uses Crt; Const A:set of char=['a'..'z','A'..'Z']; Var ch: char; st: string; BEGIN Clrscr; st:=''; Writeln('Nhap vao mot xau toan cac chu cai:'); Repeat ch:=Readkey; If ch in A then begin st:=st+ch; write(ch); End Else if ch#13 then Write(#7); If ch=#0 then ch:=Readkey; Until ch = #13; END . Bài 7 : Viết chơng trình có chức năng thêm phần tử vào tập hợp trực tiếp từ bàn phím và loại bớt phần tử khỏi tập hợp cũng trực tiếp từ bàn phím . Bài giải: (* loai bo cac phan tu khoi tap hop *) Uses Crt; Var tap: set of char; ch: char; BEGIN tap:=[]; Writeln('Nhap cac phan tu cho mot tap hop cac ki tu: '); Repeat ch:=ReadKey; tap:=tap+[ch]; Writeln(ch); Until not(ch in ['a'..'z']); Writeln('Cac phan tu cua tap hop la:'); For ch:='a' to 'z' do If ch in tap then Write(ch,' '); 33 Bài tập ngôn ngữ lập trình PasCal Biên soạn: Hoàng Đức Hà Writeln; Writeln('Ban muon bo cac phan tu nao khoi tap hop:'); Repeat ch:=ReadKey; tap:=tap-[ch]; Writeln(ch); Until not(ch in ['a'..'z']); Writeln('Cac phan tu con lai cua tap hop la:'); For ch:='a' to 'z' do If ch in tap then Write(ch,' '); Readln; END . 34 Bài tập ngôn ngữ lập trình PasCal Biên soạn: Hoàng Đức Hà Bài tập chơng 7 Cấu trúc dữ liệu kiểu Record: Bài 1 : Thông tin về mỗi học sinh gồm : • Họ đệm : một xâu 25 kí tự . • Tên : một xâu 10 kí tự . • Tuổi : một số nguyên hai chữ số . • Lớp : một xâu hai chữ số và một chữ cái viết hoa Hãy lập chơng trình nhập từ bàn phím danh sách một lớp 15 học sinh vào một mảng bản ghi . Sau đó hiển thị danh sách lên màn hình , mỗi ngời một dòng . Bài giải: (* Nhập danh sách học sinh từ bàn phím *) Uses Crt; Const n=15; Type Danhsach=record holot: string[25]; ten: string[10]; tuoi: 0..99; lop: string[3]; End; Var ds: array [1..n] of Danhsach; i : byte; BEGIN ClrScr; Writeln('Hay nhap danh sach hoc sinh : '); Writeln; For i:=1 to n do Begin Writeln('Thong tin hoc sinh thu ',i); Write('Cho ho lot : '); Readln(ds[i].holot); Write('Cho ten : '); Readln(ds[i].ten); Write('Cho tuoi : '); Readln(ds[i].tuoi); Write('Cho lop : '); Readln(ds[i].lop); Writeln; End; Writeln('Danh sach hoc sinh :'); For i:=1 to n do With ds[i] do Writeln(holot:20,ten:10,tuoi:4,lop:5); Writeln; Write('Bam Enter de ket thuc...'); Readln; END. Bài 2 : Thông tin về mỗi học sinh là một bản ghi gồm các trờng : • Họđệm : một xâu 25 kí tự . • Tên : một xâu 10 kí tự . • Tuổi : một số nguyên hai chữ số . • Lớp : một xâu hai chữ số và một chữ cái viết hoa Một file bản ghi chứa một danh sách một lớp gồm 20 học sinh . Hãy lập chơng trình hiển thị danh sách lên màn hình , mỗi ngời một dòng . Bài giải: 35 Bài tập ngôn ngữ lập trình PasCal Biên soạn: Hoàng Đức Hà (* Doc tu mot file ban ghi *) Uses Crt; Const n=5; Type Danhsach=record holot: string[25]; ten: string[10]; tuoi: 0..99; lop: string[3]; end; Var ds: Danhsach; i: byte; f: file of Danhsach; BEGIN ClrScr; Writeln('Danh sach hoc sinh tu file bai2.dat'); Writeln; Assign(f,'bai2.dat'); Reset(f); For i:=1 to n do Begin Read(f,ds); With ds do Writeln(holot:20,ten:11,tuoi:4,lop:5); End; Close(f); Writeln; Write('Bam Enter de ket thuc...'); Readln; END . Bài 3 : Một file bản ghi chứa một danh sách học sinh , thông tin về mỗi học sinh giống nh bài trên . Hãy lập chơng trình tạo một file bản ghi khác chứa danh sách đó , mỗi bản ghi gồm các trờng : • Họtên : một xâu 35 kí tự . • Tuổi : một số nguyên hai chữ số . • Khối : một số nguyên hai chữ số . • Lớp : một chữ cái viết hoa Bài giải: (* Doi kieu ban ghi *) Uses Crt; Type Danhsach1=record holot: string[25]; ten: string[10]; tuoi: 0..99; lop: string[3]; End; Danhsach2=record hoten: string[35]; tuoi: byte; khoi: byte; lop: char; End; Var ds1 : Danhsach1; ds2 : Danhsach2; f1 : file of Danhsach1; f2 : file of
File đính kèm:
- Tai lieu boi duong Tin hoc 8.pdf