Bài tập về kiểu mảng trong pascal
N<= 20.
Bài 1: Tính tổng bình phương các phần từ ở vị trí lẻ
Bài 2: Hãy liệt kê phần tử có số lần xuất hiện nhiều nhất trong mảng
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.
Câu 1:
uses crt;
var a:array[1..10]of integer;
i,t,dem,tam,j:integer;
begin
clrscr;
for i:=1 to 10 do
begin
write('a[',i,']='); readln(a[i]);
end;
{------------------------xuat----------------------------}
for i:=1 to 10 do
write(a[i]:4);
{-----------------------in-ra-tong-so-am------------------}
writeln;
t:=0;
for i:=1 to 10 do
if a[i]<0 then t:=t+a[i];
writeln('tong cac so am trong day la: ',t);
{---------------in-ra-so-luong-so-duong-----------------}
dem:=0;
for i:=1 to 10 do
if a[i]>0 then inc(dem);
writeln('so luong so duong la: ',dem);
{---------------sap-xep-tang-dan-----------------------}
for i:=1 to 9 do
for j:=i+1 to 10 do
if a[i]>a[j] then
begin
tam:=a[i];
a[i]:=a[j];
a[j]:=tam;
end;
writeln('day so tang dan la: ');
for i:=1 to 10 do
write(a[i]:4);
readln;
end.
Câu 2:
uses crt;
var a,vt:array[1..15]of integer;
i,t,dem,k,dvt,j:integer;
begin
clrscr;
for i:=1 to 15 do
begin
write('a[',i,']='); readln(a[i]);
end;
write('k='); readln(k);
{------------------------xuat----------------------------}
for i:=1 to 15 do
write(a[i]:4);
writeln;
{-----------------------in-ra-tong-so-chan------------------}
t:=0;
for i:=1 to 15 do
if a[i] mod 2=0 then t:=t+a[i];
writeln('tong cac so chan la: ',t);
{--------------------in-ra-so-luong-so-le----------------------}
dem:=0;
for i:=1 to 15 do
if a[i] mod 2=1 then dem:=dem+1;
writeln('so luong so le la: ',dem);
{-------------------xuat-vi-tri-cua-khoa-k-----------------------}
writeln('vi tri cua ',k,' trong day la: ');
dvt:=0;
for i:=1 to 15 do
if a[i]=k then
begin
inc(dvt);
vt[dvt]:=i;
end;
for j:=1 to dvt do
write(vt[j]:4);
readln;
end.
cái đó không phải là ký tự nhé bạn
cái đó là hàm tăng biến dem lên 1 đơn vị
có nghĩa là inc(dem)⇒dem:=dem+1
Bài 1:
uses crt;
var a:array[1..20]of integer;
i,t:integer;
begin
clrscr;
for i:=1 to 20 do
begin
repeat
write('a[',i,']='); readln(a[i]);
if a[i]<0 then writeln('ban da nhap sai, yeu cau ban nhap lai');
until a[i]>=0;
end;
t:=0;
for i:=1 to 20 do
if (a[i] mod 2=0) and (i mod 2=1) then t:=t+a[i];
writeln('tong cac phan tu la so chan o vi tri le trong day la: ',t);
readln;
end.
Bài 2:
uses crt;
var a:array[1..150]of longint;
i,dem,n:integer;
begin
clrscr;
write('n='); readln(n);
if n<=150 then
begin
for i:=1 to n do
begin
repeat
write('a[',i,']='); readln(a[i]);
if a[i]>=1000 then writeln('ban da nhap sai, yeu cau ban nhap lai');
until a[i]<1000;
end;
{----------------------------------------------------------}
dem:=0;
for i:=1 to n do
if a[i]>0 then inc(dem);
writeln('so luong so duong trong day la: ',dem);
end;
readln;
end.
Program hotrotinhoc;
var i1,i,n: longint;
function nt(x: longint): boolean;
var j: longint;
begin
nt:=true;
if (x=2) or (x=3) then exit;
nt:=false;
if (x=1) or (x mod 2=0) or (x mod 3=0) then exit;
j:=5;
while j<=trunc(sqrt(x)) do
begin
if (x mod j=0) or (x mod (j+2)=0) then exit;
j:=j+6;
end;
nt:=true;
end;
begin
readln(n);
if (n mod 2<>0) or (n<=2) then write('Khong the phan tich') else
begin
for i:=1 to n do
for i1:=i to n do
if (i+i1=n) and nt(i) and nt(i1) then writeln('N=',i,'+',i1);
end;
readln
end.
uses crt;
var n,i,j,a,b,kt1,kt2,kt,k:longint;
begin
clrscr;
write('nhap n='); readln(n);
if n mod 2=1 then begin
a:=2;
b:=n-a;
kt:=0;
for k:=2 to trunc(sqrt(b)) do
if b mod k=0 then kt:=1;
if kt=0 then writeln(n,'=',a,'+',b)
else write(n,' khong the phan tich thanh tong nguyen to');
end;
if n mod 2=0 then begin
for i:=2 to n div 2 do
begin
a:=i;
b:=n-i;
kt1:=0;
kt2:=0;
for j:=2 to trunc(sqrt(a)) do
if a mod j=0 then kt1:=1;
for j:=2 to trunc(sqrt(b)) do
if b mod j=0 then kt2:=1;
if (kt1=0) and (kt2=0) then writeln(n,'=',a,'+',b);
end;
end;
readln;
end.
Program hotrotinhoc;
var i,n,x,d: integer;
t,t1: longint;
a: array[1..500] of integer;
begin
write('N='); readln(n);
write('X='); readln(x);
t:=0; t1:=0; d:=0;
for i:=1 to n do
begin
write('a[',i,']=');
readln(a[i]);
if a[i]>0 then t:=t+a[i];
if (a[i]>0) and (a[i] mod 5=0) then t1:=t1+a[i];
if a[i]=x then inc(d);
end;
writeln('Tong cac so duong trong day A la :',t);
writeln('Tong cac so duong va chia het cho 5 trong day A la :',t1);
write('So lan xuat hien so nguyen X trong day A la :',d);
readln
end.
mình viết 1 đoạn thôi nha
max:=0;
for i:=1 to n do if a[i]>max then max:=a[i];
max2:=0;
for i:=1 to n do if a[i]<>max then if a[i]>max2 then max2:=a[i];
max3:=0;
for i:=1 to n do if (a[i]>max3) then if (a[i]<>max) and (a[i]<>max2) then max3:=a[i];
write ra max2 và max3 thôi.
uses crt;
var a,b:array[1..100]of integer;
i,n,dem,kt,j,tam:integer;
begin
clrscr;
write('nhap so phan tu:'); readln(n);
for i:=1 to n do
begin
write('a[',i,']='); readln(a[i]);
end;
{-------------------------------------------------}
writeln;
b[1]:=a[1];
dem:=1;
for i:=1 to n do
begin
kt:=0;
for j:=1 to dem do
if a[i]=b[j] then kt:=1;
if kt=0 then begin
dem:=dem+1;
b[dem]:=a[i];
end;
end;
for i:=1 to dem-1 do
for j:=i+1 to dem do
if b[i]<b[j] then
begin
tam:=b[i];
b[i]:=b[j];
b[j]:=tam;
end;
writeln('so lon thu 2 trong day la: ',b[2]);
writeln('so lon thu 3 trong day la: ',b[3]);
readln;
end.
*Thuật toán tìm phần tử lớn nhất
Bước 1: nhập n và nhập dãy số
Bước 2: i←1; ln←a[1];
Bước 3: i←i+1;
Bước 4: nếu ln<a[i] thì ln←a[i]
Bước 5: nếu i<=n thì quay lại bước 3
Bước 6: xuất ln
Bước 7: Kết thúc
*Thuật toán sắp xếp các số nguyên
Bước 1: nhập n và nhập dãy số
Bước 2: chạy for i đi từ 1 tới n-1
chạy for j đi từ i+1 tới n
Bước 3: tam:=a[i];
a[i]:=a[j];
a[j]:=tam;
Bước 4: nếu a[i]>a[j] thì quay lại bước 3
Bước 5: Xuất dãy số sau khi đã sắp xếp
Bước 6: kết thúc
Bài 1:
uses crt;
var a:array[1..20]of integer;
i,n,t:integer;
begin
clrscr;
write('n='); readln(n);
for i:=1 to n do
begin
write('a[',i,']='); readln(a[i]);
end;
{-----------------------------------------------------------------}
t:=0;
for i:=1 to n do
if i mod 2=1 then t:=t+sqr(a[i]);
writeln('tong binh phuong cac phan tu o vi tri le la: ',t);
readln;
end.