Đề bài: cho dãy số gồm n phần tử. Thực hiện các chương trình sau a) nhập từ bàn phím số phần tử và giá trị từng phần tử b) xuất mảng vừa nhập theo chiều ngang c) tìm giá trị lớn nhất, nhỏ nhất của mảng vừa nhập d) tính tổng các phần tử âm của dãy
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.
uses crt;
var a:array[1..100]of integer;
i,n,t,ln,nn:integer;
begin
clrscr;
readln(n);
for i:=1 to n do readln(a[i]);
t:=0;
for i:=1 to n do
if a[i]>0 then t:=t+a[i];
ln:=a[1];
nn:=a[1];
for i:=1 to n do
begin
if ln<a[i] then ln:=a[i];
if nn>a[i] then nn:=a[i];
end;
writeln(t);
writeln(ln);
writeln(nn);
readln;
end.
Var a:array:[1..1000] of real;
i,n,max,min,s:real;
Begin
Write('n = ');readln(n);
For i:=1 to n do
Begin
Write('Nhap so thu ',i,' = ');readln(a[i]);
End;
max:=a[1];
min:=a[1];
For i:=2 to n do
Begin
If a[i] > max then max:=a[i];
If a[i] < min then min:=a[i];
End;
Write('Cac so vua nhap la ');
for i:=1 to n do write(a[i]:10:2):
Writeln;
Writeln('Tong la ',s:10:2);
Writeln('So nho nhat la ',min:10:2);
Write('So lon nhat la ',max:10:2);
Readln
End.
var
Mang: array[1..100] of Integer;
N, i, Tong, Min, Max: Integer;
begin
// Yêu cầu nhập độ dài của dãy số từ bàn phím
Write('Nhap do dai cua day so: ');
ReadLn(N);
// Yêu cầu nhập các phần tử của dãy từ bàn phím
for i := 1 to N do
begin
Write('Nhap phan tu thu ', i, ': ');
ReadLn(Mang[i]);
end;
// In ra màn hình các số vừa nhập
Write('Cac so vua nhap: ');
for i := 1 to N do
begin
Write(Mang[i], ' ');
end;
WriteLn;
// Tính tổng các phần tử của dãy số
Tong := 0;
for i := 1 to N do
begin
Tong := Tong + Mang[i];
end;
WriteLn('Tong cac phan tu cua day so la: ', Tong);
// Tìm giá trị nhỏ nhất của dãy số
Min := Mang[1];
for i := 2 to N do
begin
if Mang[i] < Min then
Min := Mang[i];
end;
WriteLn('Gia tri nho nhat cua day so la: ', Min);
// Tìm giá trị lớn nhất của dãy số
Max := Mang[1];
for i := 2 to N do
begin
if Mang[i] > Max then
Max := Mang[i];
end;
WriteLn('Gia tri lon nhat cua day so la: ', Max);
ReadLn;
end.
program tinh_toan_day_so;
const
MAX = 1000;
var
a: array[1..MAX] of integer;
n, i, tong, tong_duong, tong_am, tong_chan, tong_le, max, min, temp: integer;
begin
// Nhập dãy số và giá trị từng phần tử của dãy
write('Nhập số phần tử của dãy: ');
readln(n);
for i := 1 to n do
begin
write('Nhập phần tử thứ ', i, ': ');
readln(a[i]);
end;
// Xuất giá trị của dãy vừa nhập
writeln('Dãy số vừa nhập là: ');
for i := 1 to n do
begin
write(a[i], ' ');
end;
writeln();
// Tính tổng các phần tử của dãy
tong := 0;
for i := 1 to n do
begin
tong := tong + a[i];
end;
writeln('Tổng các phần tử của dãy là: ', tong);
// Tìm giá trị Max, Min của dãy
max := a[1];
min := a[1];
for i := 2 to n do
begin
if a[i] > max then
begin
max := a[i];
end;
if a[i] < min then
begin
min := a[i];
end;
end;
writeln('Phần tử lớn nhất của dãy là: ', max);
writeln('Phần tử nhỏ nhất của dãy là: ', min);
// Tính tổng các phần tử dương, âm, chẵn, lẻ của dãy
tong_duong := 0;
tong_am := 0;
tong_chan := 0;
tong_le := 0;
for i := 1 to n do
begin
if a[i] > 0 then
begin
tong_duong := tong_duong + a[i];
end
else
begin
tong_am := tong_am + a[i];
end;
if a[i] mod 2 = 0 then
begin
tong_chan := tong_chan + a[i];
end
else
begin
tong_le := tong_le + a[i];
end;
end;
writeln('Tổng các phần tử dương của dãy là: ', tong_duong);
writeln('Tổng các phần tử âm của dãy là: ', tong_am);
writeln('Tổng các phần tử chẵn của dãy là: ', tong_chan);
writeln('Tổng các phần tử lẻ của dãy là: ', tong_le);
// Sắp xếp các phần tử của dãy theo thứ tự giảm dần
for i := 1 to n-1 do
begin
for j := i+1 to n do
begin
if a[i] < a[j] then
begin
temp := a[i];
a[i] := a[j];
a[j] := temp;
end;
end;
end;
writeln('Dãy số sau khi được sắp xếp giảm dần là: ');
for i := 1 to n do
begin
write(a[i], ' ');
end;
writeln();
// Sắp xếp các phần tử của dãy theo thứ tự tăng dần
for i := 1 to n-1 do
begin
for j := i+1 to n do
begin
if a[i] > a[j] then
begin
temp := a[i];
a[i] := a[j];
a[j] := temp;
end;
end;
end;
writeln('Dãy số sau khi được sắp xếp tăng dần là: ');
for i := 1 to n do
begin
write(a[i], ' ');
end;
writeln();
readln;
end.
a) var a:array[1..1000] of integer;
i,k:integer;
p:longint;
begin
write('k = ');readln(k);
p:=1;
for i:=1 to k do
begin
write('Nhap so thu ',i,' = ');readln(a[i]);
if a[i]<30 then p:=p*a[i];
end;
write('Tich la ',p);
readln
end.
b)
var a:array[1..1000] of integer;
i,k:integer;
s:longint;
begin
write('k = ');readln(k);
for i:=1 to k do
begin
write('Nhap so thu ',i,' = ');readln(a[i]);
if a[i]<100 then s:=s+a[i];
end;
write('Tong la ',s);
readln
end.
uses crt;
var C : array [1 .. 50] of integer;
i, n : integer;
begin
clrscr;
write('Nhap so phan tu : '); readln(n);
write('Nhap day gom ', n ,' so : ');
for i := 1 to n do read(C[i]);
write('Cac gia tri chan : ');
for i := 1 to n do
if C[i] mod 2 = 0 then write(C[i], ' ');
readln
end.
uses crt;
var a:array[1..100] of integer;
max,n,i:integer;
begin
writeln('nhap do dai cua day');readln(n);
for i:=1 to n do begin writeln('A[',i,']=;);readln(a[i]); end;
max:=a[1];
for i:=2 to n do if a[i] > max then begin
max:=a[i]; writeln('vi tri cua max trong day la',i);end;
readln
end.
thật ra thì cũng không cần biến max nhưng mình làm vậy cho dễ hiểu hơn nhé!
*Thuật toán:
-Bước 1: Nhập n và nhập dãy số
-Bước 2: max←a[1]; i←1;
-Bước 3: i←i+1;
-Bước 4: Nếu max<a[i] thì max←a[i];
-Bước 5: Nếu i<=n thì quay lại bước 3
-Bước 6: Cho for chạy từ 1 đến n
Nếu a[i]=max thì xuất i
-Bước 7: Kết thúc
Bai 2:
uses crt;
var a:array[1..100]of integer;
i,n,t,nn:integer;
begin
clrscr;
readln(n);
for i:=1 to n do readln(a[i]);
nn:=a[1];
for i:=1 to n do
if nn>a[i] then nn:=a[i];
write(nn);
readln;
end.
program BaiTapMang;
var
n, i, max, min, s: longint;
a: array[1..100] of integer;
begin
// Nhập số phần tử của mảng
write('Nhap so phan tu cua mang: ');
readln(n);
// Nhập giá trị từng phần tử của mảng
for i := 1 to n do
begin
write('Nhap gia tri phan tu thu ', i, ': ');
readln(a[i]);
end;
// Xuất mảng theo chiều ngang
writeln('Mang vua nhap la:');
for i := 1 to n do
write(a[i], ' ');
// Tìm giá trị lớn nhất và nhỏ nhất của mảng
max := a[1];
min := a[1];
for i := 2 to n do
begin
if a[i] > max then
max := a[i];
if a[i] < min then
min := a[i];
end;
writeln;
writeln('Gia tri lon nhat cua mang la: ', max);
writeln('Gia tri nho nhat cua mang la: ', min);
// Tính tổng các phần tử âm của mảng
s:= 0;
for i := 1 to n do
begin
if a[i] < 0 then
s:= s + a[i];
end;
writeln('Tong cac phan tu am cua mang la: ', s);
readln;
end.
Có cách nào khác để làm nhanh hơn k