1. Trang chủ
  2. » Giáo án - Bài giảng

bai tap pascal co ban

20 71 0

Đ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 20
Dung lượng 86 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Input: File dạng text BAI4.INP có cấu trúc như sau: - Dòng đầu tiên chứa số tự nhiên N - Dòng thứ i+1 chứa số hạng thứ i của mảng A.. Output: File dạng text BAI4.OUT có cấu trúc như sau:

Trang 1

Bài 1: Với mỗi số thực x nhập vào từ bàn phím hãy tính tổng sau:

Quá trình tính tổng kết thúc khi

PROGRAM BAI_1;

USES CRT;

VAR X,S,T:REAL;

N:WORD;

CHON:CHAR;

BEGIN

CLRSCR;

REPEAT

WRITE('X = ');

READLN(X);

S:=0;

T:=1;

N:=1;

WHILE ABS(T)>=0.000001 DO

BEGIN

S:=S+T;

T:=T*((-(X*X*X))/((3*N)*(3*N-1)*(3*N-2)));

INC(N);

END;

WRITELN('S = ',S:0:3);

WRITE('BAN CO MUON TIEP TUC KHONG? (C/K): '); READLN(CHON);

UNTIL UPCASE(CHON)='K';

END

Bài 2: Cho dãy số un mà mỗi phần tử của nó được xác định như sau:

Nếu n lẽ Nếu n chẵn

Tính tổng TONG=u0 +u1+u2+u3+ +u n

Quá trình tính tổng kết thúc khi 6

1 10 −

− 

n

uu n  10 − 6

PROGRAM BAI_2;

USES CRT;

)!

3 ( ) 1 (

! 9

! 6

! 3

=

n

x x

x x

6

3

10 )!

3 (

<

n

x n

!

n

x u

n

n =

!

) 1 (

n x

u n = − n

Trang 2

VAR X,S1,S2,T1,T2:REAL;

N:WORD;

BEGIN

CLRSCR;

WRITE('X = ');

READLN(X);

S1:=0;

S2:=0;

T1:=X;

T2:=1;

N:=1;

WHILE (ABS(T1)>=0.000001) AND (ABS(T2)>=0.000001) DO BEGIN

IF ODD(N) THEN

BEGIN

S1:=S1+T1;

T1:=T1*(X/N);

END

ELSE

BEGIN

T2:=T2*((X-1)/N);

S2:=S2+T2;

END;

INC(N);

END;

WRITE('S = ',S1+S2:0:3);

READLN;

END

BÀI 3: Cho hai số tự nhiên k, n (k<=n) Tính

PROGRAM BAI_3_BT;

USES CRT;

VAR N,K,I:BYTE;

GTN,GTK,GTN_K:LONGINT;

TIEP:CHAR;

BEGIN

CLRSCR;

REPEAT

)!

(

!

k n k

n

C k

Trang 3

REPEAT

WRITE('NHAP N VA K: ');

READLN(N,K);

IF (N<K) OR (K<0) THEN

WRITELN('MOI NHAP LAI');

UNTIL (N>K) AND (K>0);

GTN:=1;

FOR I:=2 TO N DO

GTN:=GTN*I;

GTK:=1;

FOR I:=2 TO K DO

GTK:=GTK*I;

GTN_K:=1;

FOR I:=2 TO N-K DO

GTN_K:=GTN_K*I;

WRITELN('TO HOP CHAP ',K,' CUA ',N,' = ',GTN DIV GTK DIV GTN_K); WRITE('CO MUON TIEP TUC KHONG? (C/K): ');

READLN(TIEP);

UNTIL UPCASE(TIEP)='K';

END

Bài 4: Cho số tự nhiên N và mảng một chiều các số thực A[1 N] Hãy tính tổng các

phần tử của mảng A có giá trị lớn hơn hoặc bằng -5 và nhỏ hơn hoặc bằng 5

Input: File dạng text BAI4.INP có cấu trúc như sau:

- Dòng đầu tiên chứa số tự nhiên N

- Dòng thứ i+1 chứa số hạng thứ i của mảng A

Output: File dạng text BAI4.OUT có cấu trúc như sau:

Chỉ một dòng chứa tổng theo yêu cầu của bài toán

PROGRAM BAI_4;

USES CRT;

VAR F:TEXT;

I,N:BYTE;

A:ARRAY[1 20] OF REAL;

S:REAL;

BEGIN

CLRSCR;

ASSIGN(F,'BAI4.INP');

RESET(F);

READLN(F,N);

Trang 4

FOR I:=1 TO N DO

READLN(F,A[I]);

ASSIGN(F,'BAI4.OUT');

REWRITE(F);

S:=0;

FOR I:=1 TO N DO

IF ABS(A[I])<=5 THEN

S:=S+A[I];

WRITE(F,'TONG LA = ',S:0:3);

CLOSE(F);

WRITE('XONG');

READLN;

END

Bài 5: Cho số tự nhiên N và mảng một chiều các số thực A[1 N] Với hai số thực X

và Y cho trước, hãy đếm số luợng các phần tử của mảng A có giá trị bằng X và số luợng các phần tử của mảng A có giá trị bằng Y

Input: File dạng text BAI5.INP có cấu trúc như sau:

- Dòng đầu tiên chứa số tự nhiên N

- Dòng thứ hai chứa hai số thực X và Y, hai số cách nhau tối thiểu một dấu trống

- Dòng thứ i+2 chứa số hạng thứ i của mảng A

Output: File dạng text BAI4.OUT có cấu trúc như sau:

Dòng thứ nhất chứa số lượng các phần tử của A có giá trị bằng X

Dòng thứ hai chứa số lượng các phần tử của A có giá trị bằng X

PROGRAM BAI_5;

USES CRT;

VAR N,I,SL1,SL2:BYTE;

X,Y:REAL;

F:TEXT;

A:ARRAY[1 50] OF REAL;

BEGIN

CLRSCR;

ASSIGN(F,'BAI5.INP');

RESET(F);

READLN(F,N);

READLN(F,X,Y);

FOR I:=1 TO N DO

READLN(F,A[I]);

Trang 5

ASSIGN(F,'BAI5.OUT');

REWRITE(F);

SL1:=0;

SL2:=0;

FOR I:=1 TO N DO

IF A[I]=X THEN

INC(SL1)

ELSE

IF A[I]=Y THEN

INC(SL2);

WRITELN(F,'SO CAC PHAN TU BANG ',X:0:3,' LA: ',SL1);

WRITELN(F,'SO CAC PHAN TU BANG ',Y:0:3,' LA: ',SL2);

CLOSE(F);

WRITE('XONG');

READLN;

END

Bài 6: Cho số tự nhiên N và mảng một chiều các số thực A[1 N] Với mỗi số thực

X nhập từ bàn phím, hãy xác định phần tử đầu tiên của mảng A có giá trị bằng X PROGRAM BAI_6;

USES CRT;

CONST MAX=50;

VAR A:ARRAY[1 MAX] OF REAL;

I,OK,N:BYTE;

X:REAL;

TIEP:CHAR;

BEGIN

CLRSCR;

WRITE('SO LUONG PHAN TU CUA MANG LA: ');

READLN(N);

FOR I:=1 TO N DO

BEGIN

WRITE('GIA TRI THU ',I,' = ');

READLN(A[I]);

END;

REPEAT

WRITE('X = ');

READLN(X);

OK:=0;

FOR I:=1 TO N DO

IF A[I]=X THEN

Trang 6

BEGIN

WRITELN('VI TRI ',X:0:3,' TRONG DAY: ',I);

OK:=0;

BREAK;

END

ELSE

OK:=1;

IF OK=1 THEN

WRITELN(X:0:3,' KHONG CO TRONG DAY');

WRITE('CO MUON TIEP TUC KHONG? (C/K): ');

READLN(TIEP);

UNTIL UPCASE(TIEP)='K';

END

Bài 7: Cho số tự nhiên N và mảng một chiều các số thực A[1 N] Hãy sắp xếp A

thành một dãy tăng dần theo giá trị tuyệt đối của các phần tử

Input: File dạng text BAI7.INP có cấu trúc như sau:

- Dòng đầu tiên chứa số tự nhiên N

- Dòng thứ i+1 chứa số hạng thứ i của mảng A

Output: File dạng text BAI7.OUT có cấu trúc như sau:

Chỉ một dòng chứa mảng A đã sắp xếp các phần tử cách nhau tối thiểu một dấu trống

PROGRAM BAI_7;

USES CRT;

VAR F:TEXT;

I,J,N:BYTE;

A:ARRAY[1 50] OF REAL;

TG:REAL;

BEGIN

CLRSCR;

ASSIGN(F,'BAI7.INP');

RESET(F);

READLN(F,N);

FOR I:=1 TO N DO

READLN(F,A[I]);

FOR I:=1 TO N-1 DO

FOR J:=I+1 TO N DO

IF ABS(A[I])<ABS(A[J]) THEN

BEGIN

Trang 7

TG:=A[I];

A[I]:=A[J];

A[J]:=TG

END;

ASSIGN(F,'BAI7.OUT');

REWRITE(F);

FOR I:=1 TO N DO

WRITE(F,A[I]:0:3,' ');

CLOSE(F);

WRITE('XONG');

READLN;

END

Bài 8: Cho hai số tự nhiên M, N và ba mảng một chiều các số thực A[1 M], B[1 N],

C[1 M+N] Hãy lần lượt làm các công việc sau:

- Nhập từ bàn phím hai mảng A và B sao cho A, B là hai dãy tăng dần

- Đưa tất cả các phần tử của hai mảng A, B vào mảng C sao cho C cũng là dãy tăng dần

PROGRAM BAI_8;

USES CRT;

CONST MAX=50;

VAR A,B,C:ARRAY[1 MAX] OF REAL;

I,J,K:BYTE;

PROCEDURE NHAP_MANG(VAR A:CHAR; N:BYTE);

BEGIN

WRITE('NHAP SO LUONG PHAN TU MANG ',A,': ');

READLN(N);

FOR I:=1 TO N DO

BEGIN

WRITELN('GIA TRI THU ',I,' = ');

READLN(A[I]);

END;

END;

BEGIN

CLRSCR;

NHAP_MANG('A',3);

READLN;

END

Bài 9: Để quản lý sinh viên của một lớp người ta lưu trữ hồ sơ của mỗi sinh viên vào

một bản ghi có dạng sau:

TYPE

Trang 8

Ho_so= Record

Ho_dem:string[18];

Ten:string[7];

Tuoi:byte;

End;

Hãy lần lượt thực hiện các công việc sau:

- Nhập vào một danh sách có N sinh viên (N là số tự nhiên)

- Sắp xếp danh sách đó theo thứ tự alphabet của họ và tên

- Sắp xếp danh sách đó theo thứ tự giảm dần của tuổi

Input: File dạng text BAI9.INP có cấu trúc:

- Dòng đầu tiên chứa số tự nhiên N

- Cứ ba dòng tiếp theo chứa thông tin về một sinh viên theo thứ tự như sau:

+ Dòng thứ nhất chứa họ và chữ lót

+ Dòng thứ hai chứa tên

+ Dòng thứ ba chứa tuổi

Output: File dạng text BAI9_1.OUT chứa danh sách theo thứ tự Alphabet có cấu trúc:

Mỗi dòng chứa thông tin của một sinh viên

File dạng text BAI9_2.OUT chứa danh sách theo thứ tự tuổi có cấu trúc: Mỗi dòng chứa thông tin của một sinh viên

Bài 10: Để quản lý sinh viên của một lớp người ta lưu trữ hồ sơ của mỗi sinh viên

vào mỗi bản ghi có dạng sau:

TYPE

Ho_so= Record

Ma_so_SV:string[4];

Ho_dem:string[18];

Ten:string[7];

Tuoi:byte;

End;

Hãy lần lượt thực hiện các công việc sau:

- Nhập vào một danh sách có N sinh viên (N là số tự nhiên)

- Với mỗi mã số sinh viên được nhập từ bàn phím hãy in hồ sơ của sinh viên tương ứng ra màn hình

Input: File dạng text BAI10.INP có cấu trúc:

- Dòng đầu tiên chứa số tự nhiên N

- Cứ bốn dòng tiếp theo chứa thông tin về một sinh viên theo thứ tự như sau:

+ Dòng thứ nhất chứa mã số sinh viên

+ Dòng thứ hai chứa họ và chữ lót

+ Dòng thứ ba chứa tên

+ Dòng thứ tư chứa tuổi

Trang 9

PROGRAM BAI3;

USES CRT;

CONST MAX=100;

TYPE HSHS=RECORD

MASO:STRING[4];

HD:STRING[30];

TEN:STRING[7];

TUOI:BYTE;

END;

VAR LOP:ARRAY[1 MAX] OF HSHS; N,N1,N2,I,J:BYTE;

TG:HSHS;

F:TEXT;

BEGIN

CLRSCR;

N:=0;

{ NHAP DU LIEU TU TEP THU 1 } ASSIGN(F,'CAU31.INP');

RESET(F);

READLN(F,N1);

FOR I:=1 TO N1 DO

WITH LOP[I] DO

BEGIN

READLN(F,MASO);

READLN(F,HD);

READLN(F,TEN);

READLN(F,TUOI);

END;

CLOSE(F);

N:=N1+N;

{ NHAP DU LIEU TU TEP THU 2 } ASSIGN(F,'CAU32.INP');

RESET(F);

READLN(F,N2);

FOR I:=(N+1) TO (N+N2) DO

WITH LOP[I] DO

BEGIN

READLN(F,MASO);

READLN(F,HD);

READLN(F,TEN);

Trang 10

READLN(F,TUOI);

END;

CLOSE(F);

N:=N2+N;

FOR I:=1 TO N-1 DO

FOR J:=I+1 TO N DO

IF (LOP[I].TEN>LOP[J].TEN) OR (LOP[I].TEN=LOP[J].TEN) AND (LOP[I].HD>LOP[I].HD) THEN

BEGIN

TG:=LOP[I];

LOP[I]:=LOP[J];

LOP[J]:=TG;

END;

ASSIGN(F,'CAU3.OUT');

REWRITE(F);

FOR I:=1 TO N DO

WITH LOP[I] DO

WRITELN(F,MASO:7,HD:15,TEN:7,TUOI:5);

CLOSE(F);

WRITELN;

WRITELN(' ====================== DA HOAN THANH

=======================');

READLN;

END

Bài 11: Cho hai số tự nhiên M, N và mảng hai chiều các số thực A[1 M,1 N] Với

mỗi số thực X nhập từ bàn phím, hãy xác định phần tử đầu tiên của mảng A có giá trị bằng X (thứ tự các phần tử của mảng được tính theo ưu tiên hàng, cột)

PROGRAM BAI_11;

USES CRT;

CONST MAX=50;

VAR A:ARRAY[1 MAX,1 MAX] OF REAL;

I,J,OK,M,N:BYTE;

X:REAL;

TIEP:CHAR;

BEGIN

CLRSCR;

WRITE('NHAP SO HANG VA SO COT: ');

READLN(M,N);

FOR I:=1 TO M DO

FOR J:=1 TO N DO

Trang 11

BEGIN

WRITE('NHAP GIA TRI HANG ',I,' COT ',J,' = ');

READLN(A[I,J]);

END;

CLRSCR;

FOR I:=1 TO M DO

BEGIN

FOR J:=1 TO N DO

WRITE(A[I,J]:8:1);

WRITELN;

END;

REPEAT

WRITE('X = ');

READLN(X);

OK:=0;

FOR I:=1 TO M DO

BEGIN

FOR J:=1 TO N DO

IF X=A[I,J] THEN

BEGIN

WRITELN('VI TRI ',X:0:1,' TRONG MAT LA HANG ',I,' COT ',J); OK:=0;

BREAK;

END

ELSE

OK:=1;

IF X=A[I,J] THEN

BREAK;

END;

IF OK=1 THEN

WRITELN(X:0:1,' KHONG CO TRONG MAT');

WRITE('CO MUON TIEP TUC KHONG? (C/K): ');

READLN(TIEP);

UNTIL UPCASE(TIEP)='K';

END

Bài 12: Cho hai số tự nhiên M, N và mảng hai chiều các số thực A[1 M,1 N] Hãy

sắp xếp A thành một ma trận có các dòng là các dãy tăng dần

PROGRAM BAI_12;

USES CRT;

CONST MAX=50;

Trang 12

VAR K,I,J,M,N:BYTE;

A:ARRAY[1 MAX,1 MAX] OF REAL;

TG:REAL;

BEGIN

CLRSCR;

WRITE('NHAP SO HANG VA COT: ');

READLN(M,N);

FOR I:=1 TO M DO

FOR J:=1 TO N DO

BEGIN

WRITE('NHAP GIA TRI HANG ',I,' COT ',J,' = '); READLN(A[I,J]);

END;

CLRSCR;

FOR I:=1 TO M DO

BEGIN

FOR J:=1 TO N DO

WRITE(A[I,J]:8:1);

WRITELN;

END;

FOR K:=1 TO M DO

FOR I:=1 TO N-1 DO

FOR J:=I+1 TO N DO

IF A[K,I]>A[K,J] THEN

BEGIN

TG:=A[K,I];

A[K,I]:=A[K,J];

A[K,J]:=TG;

END;

WRITELN('MANG SAU KHI XU LY');

FOR I:=1 TO M DO

BEGIN

FOR J:=1 TO N DO

WRITE(A[I,J]:8:1);

WRITELN;

END;

READLN;

END

Trang 13

Bài 13: Cho số tự nhiên N và mảng hai chiều các số thực A[1 N,1 N] Hãy chuyển

vị ma trận A

PROGRAM BAI_13;

USES CRT;

CONST MAX=50;

VAR A,B:ARRAY[1 MAX,1 MAX] OF REAL;

I,J,M,N:BYTE;

BEGIN

CLRSCR;

WRITE('NHAP SO HANG VA SO COT: ');

READLN(M,N);

FOR I:=1 TO M DO

FOR J:=1 TO N DO

BEGIN

WRITE('NHAP GIA TRI HANG ',I,' COT ',J,' = ');

READLN(A[I,J]);

END;

CLRSCR;

FOR I:=1 TO M DO

BEGIN

FOR J:=1 TO N DO

WRITE(A[I,J]:8:1);

WRITELN;

END;

FOR I:=1 TO M DO

FOR J:=1 TO N DO

B[I,J]:=A[J,I];

WRITELN('MA TRAN CHUYEN VI LA');

FOR I:=1 TO N DO

BEGIN

FOR J:=1 TO M DO

WRITE(B[I,J]:8:1);

WRITELN;

END;

READLN;

END

Bài 14: Cho ba số tự nhiên M, P, N và ba mảng hai chiều các số thực A[1 M,1 P],

B[1 P,1 N] và C[1 M,1 N] Hãy lần lượt thực hiện các công việc sau:

- Nhập hai ma trận A, B từ bàn phím

Trang 14

- Tính C= A*B

- In ra màn hình 3 ma trận A, B và C

PROGRAM BAI_14;

USES CRT;

CONST MAX=50;

TYPE MAT=ARRAY[1 MAX,1 MAX] OF REAL;

VAR A,B,C:MAT;

I,J,K,M,N,P:BYTE;

PROCEDURE NHAP_MANG(HANG,COT:BYTE; VAR TEN_MT:MAT); BEGIN

FOR I:=1 TO HANG DO

FOR J:=1 TO COT DO

BEGIN

WRITE('NHAP GIA TRI HANG ',I,' COT ',J,' = ');

READLN(TEN_MT[I,J]);

EPROCEDURE IN_MANG(HANG,COT:BYTE; VAR TEN_MT:MAT); BEGIN

FOR I:=1 TO HANG DO

BEGIN

FOR J:=1 TO COT DO

WRITE(TEN_MT[I,J]:8:1);

WRITELN;

END;

END;

BEGIN

CLRSCR;

WRITE('LAN LUOT NHAP SO HANG VA COT MANG A VA B: ');

READLN(M,P,N);

Trang 15

NHAP_MANG(M,P,A);

NHAP_MANG(P,N,B);

FOR I:=1 TO M DO

FOR J:=1 TO N DO

BEGIN

C[I,J]:=0;

FOR K:=1 TO P DO

C[I,J]:=C[I,J]+A[I,K]+B[K,J];

END;

CLRSCR;

WRITELN('MANG A');

IN_MANG(M,P,A);

WRITELN('MANG B');

IN_MANG(P,N,B);

WRITELN('MANG C');

IN_MANG(M,N,C);

READLN;

END

Bài 15: Cho hai số tự nhiên M, N và mảng hai chiều các số thực A[1 M,1 N] Việc

lưu trữ ma trận A trên file dạng Text được tổ chức như sau:

- Dòng đầu tiên chứa hai số M và N

- Dòng thứ i+1 của file chứa dòng thứ i của ma trận

- Trên mỗi dòng các phần tử phân cách nhau tối thiểu một dấu trống

Giả sử đã tồn tại trên điã tệp INPUT.DAT có cấu trúc như trên Hãy đọc dữ liệu vào cho mảng A và in mảng đó ra màn hình

PROGRAM BAI_15;

Trang 16

USES CRT;

CONST MAX=50;

VAR F:TEXT;

A:ARRAY[1 MAX,1 MAX] OF REAL;

M,N,I,J:BYTE;

BEGIN

CLRSCR;

ASSIGN(F,'INPUT.DAT');

RESET(F);

READLN(F,M,N);

FOR I:=1 TO M DO

BEGIN

FOR J:=1 TO N DO

READ(F,A[I,J]);

READLN(F);

END;

CLOSE(F);

FOR I:=1 TO M DO

BEGIN

FOR J:=1 TO N DO

WRITE(A[I,J]:8:1);

WRITELN;

END;

READLN;

END

Bài 16: Cho hai số tự nhiên M, N và mảng hai chiều các số thực A[1 M,1 N] Việc

lưu trữ ma trận A trên file dạng Text được tổ chức như sau:

- Dòng đầu tiên chứa hai số M và N

- Dòng thứ i+1 của file chứa dòng thứ i của ma trận

- Trên mỗi dòng các phần tử phân cách nhau tối thiểu một dấu trống

Hãy đọc dữ liệu vào cho mảng A từ bàn phím và ghi mảng đó ra tệp OUTPUT.DAT có cấu trúc như trên

PROGRAM BAI_16;

USES CRT;

CONST MAX=50;

VAR F:TEXT;

A:ARRAY[1 MAX,1 MAX] OF REAL;

M,N,I,J:BYTE;

BEGIN

Ngày đăng: 07/01/2020, 15:25

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w