Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 13 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
13
Dung lượng
22,65 KB
Nội dung
Kiểm tra số phương mảngchiều Trước hết, tìm hiểu khái niệm số phương Số phương gì? Số phương một số mà tự nó bậc hai của một số tự nhiên khác, hay nói rõ số phương bình phương của một số tự nhiên.Ví dụ: 289 một số phương 289 = 17 bình phươn Thuật toán Pascal giúp tìm số phương mảngchiều uses crt; type ArrInt = array[1 250] of integer; Var n,i,x : integer; a: ArrInt; BEGIN clrscr; write('Nhap so phan tu: '); readln(n); for i:=1 to n begin write('Phan tu thu ',i,'= '); readln(a[i]); end; writeln('Cac so chinh phuong co mang:'); for i:=1 to n begin x:=trunc(sqrt(a[i])); if sqr(x)=a[i] then write(a[i]:4); end; readln; END Trong đó lệnh hàm sqrt để lấy hàm trunc để lấy phần nguyên in hình pascal phần tử có dạng '3 mũ k cộng 2' Viết chương trình nhập mảngchiều có N phần tử In hình phần tử có dạng 3k+2 (k=0,1,2,3 ) Ý tưởng: Viết hàm kiểm tra xem phần tử a[i] có dạng 3^k+2 hay không uses crt; var b,j,i,x:integer; a:array[1 100] of integer; Function gt(k:integer):longint; var j:integer;s:longint; begin s:=1; for j:=1 to k s:=s*3; gt:=s; end; { -} Function kt(x:integer):boolean; var i,j,k:integer;s:longint; begin kt:=false; s:=1; k:=0; Repeat inc(k); gt(k); Until gt(k)>=x-2; if gt(k)=x-2 then kt:=true; end; { -} begin clrscr; Write('Nhap so phan tu= ');readln(x); For i:=1 to x begin write('a[',i,']= '); readln(a[i]); end; For i:=1 to x if kt(a[i]) then write(a[i],' ');writeln; readln end Bài Xóa phần tử trùng mảngchiều (pascal) 10:13 Dinh Nhập vào mảngchiều gồm dãy số nguyên N phần tử Hãy xóa phần tử trùng mảng in kết hình Ý tưởng: Duyệt mảngchiều biến, phát phát phần tử trùng xóa phần tử khỏi mảng Program Bo_so_trung; Const Max=100; Var a:Array[1 Max] Of Integer; i,j,k,n:Integer; Begin Writeln('XOA BO CAC SO TRUNG NHAU'); Writeln(' '); Writeln; Write('-Nhap so phan tu mang: '); Readln(n); For i:=1 To N Do Begin Write('-Phan tu A[',i,']= '); Readln(a[i]); End; i:=2; While i y then x:=x-y else y:=y-x; h_ucln:=x; end; begin clrscr; repeat write('Nhap N (N>=2): '); readln(n); until(n>=2); for i:=1 to n begin write('Phan tu thu ',i,' = '); readln(a[i]); end; ucln:=h_ucln(a[1],a[2]); bcnn:=(a[1]*a[2]) div ucln; for i:=3 to n begin ucln:=h_ucln(bcnn,a[i]); bcnn:=(bcnn*a[i]) div ucln; end; writeln('bcnn la: ',bcnn); readln; end Bài 8: Kiểm tra cấp số cộng pascal Nhập dãy số gồm N số nguyên (N1) and (n(a[i] div 2) then inc(d); j:=1; end; write('Co ',d,' so ngto trog day'); readln; end Bài 10 Phân loại lứa tuổi 10:42 Đô Rê Mon ĐZ Nhập họ tên năm sinh của người cho biết người thuộc lứa tuổi nào: sơ sinh, nhi đồng, thiếu niên, niên, trung niên, người lớn tuổi Biết rằng: + Sơ sinh tuổi từ 0->0 + Nhi đồng tuổi từ 2->9 + Thiếu niên tuổi từ 10->15 + Thanh niên tuổi 16->32 + Trung niên tuổi từ 33 -> 50 + Người già tuổi từ 50 trở lên uses crt;var a:array[1 100] of longint; i,n:longint; begin clrscr; write('nhap so nguoi:'); readln(n); for i:=1 to n begin write('nhap tuoi cua nguoi thu ',i,':'); readln(a[i]); end; for i:=1 to n begin write('nguoi thu',i,':'); case a[i] of 0:writeln('tre so sinh'); 9:writeln('nhi dong'); 10 5:writeln('thieu nien'); 16 32:writeln('thanh nien'); 33 50:writeln('trung nien'); Else writeln('nguoi gia'); end; end; readln; end Bài 11 Sắp xếp mảngchiều Viết chương trình nhập vào một mảng gồm N số nguyên Sắp xếp lại mảng theo thứ tự tăng dần in kết hình Ý tưởng: Cho biến i chạy từ đến N-1, đồng thời cho biến j chạy từ i+1 đến N: Nếu A[i]>A[j] đổi chổ A[i], A[j] Dưới thuật toán xếp mảng chiều: Uses Crt; Type Mang = ARRAY[1 50] Of Integer; Var A:Mang; N,i,j,Tam:Integer; Begin {Nhập mảng} Write('Nhap N='); Readln(N); For i:=1 To N Do Begin Write('A[',i,']='); Readln(A[i]); End; {Sắp xếp} For i:=1 To N-1 Do For j:=i+1 To N Do If A[i]>A[j] Then Begin Tam:=A[i]; A[i]:=A[j]; A[j]:=Tam; End; {In kết hình} Writeln('Ket qua sau sap xep:'); For i:=1 To N Do Write(A[i]:5); Readln; End Tính trung bình cộng số dương, âm nhập vào từ mảngchiều Pascal Viết chương trình nhập số nguyên N (0 < N ≤ 10 000) mảng a gồm N số nguyên Tính in trung bình cộng của số âm, số dương a Không tính số Ví dụ : a[] = {1, -6, 0, 3, -1} Trung bình cộng -0.75 PROGRAM tbc_am_duong_mang; USES crt; VAR a:ARRAY[1 100] OF REAL; i,n,x,y:INTEGER; tongam,tongduong,tba,tbd:REAL; BEGIN clrscr; write('So phan tu cua day n= ');readln(n); FOR i:=1 TO n DO BEGIN write('Nhap phan tu a[',i,']: '); readln(a[i]); END; tongam:=0; x:=0; FOR i:=1 TO n DO IF a[i]0 THEN BEGIN tongduong:=tongduong+a[i]; y:=y+1; END; tbd:=tongduong/y; write('TB cong cac so duong la: ',tbd:5:1); readln; END ... i: =1 to x begin write('a[',i,']= '); readln(a[i]); end; For i: =1 to x if kt(a[i]) then write(a[i],' ');writeln; readln end Bài Xóa phần tử trùng mảng chiều (pascal) 10 :13 Dinh Nhập vào mảng chiều. .. i: =1 TO 10 0 DO BEGIN a[i]:=random(8999) +10 00; END; writeln('Cac so ma tong binh phuong cac chu so bang no la:'); FOR i: =1 TO 10 0 DO BEGIN m:=a[i] MOD 10 ; n:=a[i] DIV 10 00; h:=(a[i] DIV 10 0)-n *10 ;... q:=0; for i: =1 to n if qp then begin inc(q); b[q]:=a[i]; end; writeln('Mang sau xoa la: '); for i: =1 to q write(b[i],' '); readln end Bài 5: Nhập thêm phần tử vào mảng chiều 09 :11 Đô Rê Mon