Nêu cách khai báo biến mảng trong Pascal
Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.
Dữ liệu kiểu mảng là một tập hợp hưu xhanj các phần tử có thứ tự, mọi phần tử đều có chung kiểu dữ liệu, gọi là kiểu dữ liệu phần tử.
*Ví dụ về hoạt động lặp với số lần biết trước:
1: Viết chương trình in ra màn hình 10 số từ 1 tới 10
2: Viết chương trình tìm min trong dãy số có 10 phần tử
*Ví dụ về hoạt động lặp với số lần chưa biết trước
1: Viết chương trình in ra màn hình 100 số bắt đầu từ số 5
2: Viết chương trình tìm max trong dãy số gồm n phần tử
Lời giải :
Bài 1 :
program hotrotinhoc ;
var a : array[1..9999] of in teger ;
i,N,tong : integer ;
begin
write('Nhap gia tri cua cac phan tu');
write('Nhap do dai cua mang :'); readln(N);
for i:= 1 to N do
begin
write('a[',i,'])='); readln(a[i]);
end;
tong:=0;
for i:= 1 to N do
tong := tong + a[i] ;
write('Tong cac phan tu la :',tong);
readln
end.
Bài 2 :
program hotrotinhoc ;
var a : array[1..9999] of in teger ;
i,N,SLN : integer ;
begin
write('Nhap gia tri cua cac phan tu');
write('Nhap do dai cua mang :'); readln(N);
for i:= 1 to N do
begin
write('a[',i,'])='); readln(a[i]);
end;
SLN:= a[1] ;
if SLN < a[i] then write('Phan tu lon nhat la',SLN);
readln
end.
Câu 3 :
Đoạn khai báo : var a : array[1..15] of real ;
Chỉ số phần tử cuối thì cần viết cả chương trình thì mới có thể là nhập phần tử cuối là 100 bạn nhé.
mình nghĩ câu 3 là var a:array[86..100] of real; thì đúng hơn
Bài 1.
B1: Nhập n
B2: Cho i chạy từ 1 đến n thực hiện: S:=S+(1/(n+1)(n+2));
B3: Xuất S
B4: Kết thúc
Bài 2:
B1: Nhập n
B2: S:=1;
B3:
Cho i chạy từ 2 đến n thực hiện
begin
Cho j chạy từ 2 đến i-1 thực hiện
+ dem:=0;
+ Nếu (i mod j = 0) thì dem:=dem+1;
+ Nếu dem:=0 thì S:=S+i^2;
end;
B4: Xuất S
B5: Kết thúc
* Lưu ý: Giải thuật ở đây là khởi tạo S là 1. Và các số 9,25,... đều là bình phương của các số nguyên tố 3,5... nên chạy vòng lặp kiểm tra nguyên tố sau đó cộng dồn tổng cho bình phương của số kiểm tra được
var n:integer;
function dem_uoc(m:integer):integer;
var i,d:integer;
begin
i:=0;
d:=0;
for i:=1 to m do
if m mod i=0 then d:=d+1;
dem_uoc:=d;
end;
function ktnt(k:integer):boolean;
begin
if dem_uoc(k)=2 then ktnt:=true
else ktnt:=false;
end;
function ktsnt(n:integer):boolean;
begin
while ktnt(n) and (n>10) do
n:=n div 10;
if n<=1 then ktsnt:=true
else ktsnt:=false;
end;
begin
write('n=');readln(n);
if ktsnt(n) then writeln(n,' la so snt ')
else writeln(n,' ko phai snt ');
readln;
end.
Có 2 cách khai báo mảng:
C1: Khai báo trực tiếp
VAR <Tên biến>:array[<chỉ số đầu>,<chỉ số cuối>] of <kiểu dữ liệu>;
VD:a:array[1..50] of string;
C2:Khai báo gián tiếp
Type <Tên biến>=array[<chỉ số đầu>,<chỉ số cuối>] of <kiểu dữ liệu>;
Var <Tên mảng>:<Tên biến>;