Đến nội dung

Hình ảnh

một số thuật toán khó, mong người vào giúp

mình rất cần gấp mọi người giúp nhé

  • Please log in to reply
Chủ đề này có 3 trả lời

#1
HD.Nhat

HD.Nhat

    Binh nhì

  • Thành viên
  • 19 Bài viết
Bài 1:Cho dãy A có N phần tử A1, A2,…, An. Xây dựng thuật toán :
a, Tìm phần tử đầu tiên lớn hơn số nguyên x cho trước
b, Tìm phần tử dương nhỏ nhất
c, Tìm phần tử âm lớn nhất
( Mình cần gấp 2 câu b và c, câu a mọi người không làm cũng được, nếu làm mình cảm ơn hơn nữa)
Bài 2 : a,Xây dựng thuật toán tìm ƯCLN của 2 số nguyên dương m và n
b, Xây dựng thuật toán tìm BCNN của 2 số nguyên dương m và n

#2
Crystal

Crystal

    ANGRY BIRDS

  • Hiệp sỹ
  • 5534 Bài viết
Bài 1.b,c:
Program Bai1bc;
Uses Crt;
Var A : Array[1..100] of integer;
n : integer;
(**************************************************************************)
Procedure Input;
Var i : integer;
Begin
Repeat
ClrScr;
Writeln(' Nhap vao so phan tu cua day so (2 < n < 100) : ');
Write(' n = '); Readln(n);
Until (2 < n) and (n < 100);
Writeln;
Writeln(' Nhap cac phan tu cua day so : ');
For i := 1 to n do
Begin
Write(' A[',i,'] = '); Readln(A);
End;
Writeln(' *********************************');
End;
(**************************************************************************)
Function AmLonNhat : integer;
Var i, MaxAm : integer;
Begin
MaxAm := A[1];
For i := 1 to n do
If ((A < 0) and (MaxAm < A)) or ((MaxAm >= 0) and (A < 0)) then
MaxAm := A;
AmLonNhat := MaxAm;
End;
(**************************************************************************)
Function DuongNhoNhat : integer;
Var i, MinDuong : integer;
Begin
MinDuong := A[1];
For i := 1 to n do
If ((A > 0) and (MinDuong > A)) or ((MinDuong <= 0) and (A > 0)) then
MinDuong := A;
DuongNhoNhat := MinDuong;
End;
(**************************************************************************)
Procedure HienThiKetQua;
Var i : integer;
Begin
Writeln;
For i := 1 to n do
Write(' ',A : 6);
Writeln;
If AmLonNhat >= 0 then
Writeln(' Khong ton tai phan tu am nao trong day tren')
Else
Writeln(' Phan tu am lon nhat la : ',AmLonNhat);
If DuongNhoNhat <= 0 then
Writeln(' Khong ton tai phan tu duong nao trong day tren')
Else
Writeln(' Phan tu duong nho nhat la : ',DuongNhoNhat);
Readln;
End;
(**************************************************************************)
BEGIN
Input;
HienThiKetQua;
END.

Bài 2.a,b:
Program Bai2ab;
Var
m,i,n:integer;
u,b:integer;
(********************************************)
function UCLN(m,n:integer):integer;
begin
while m<>n do
if m>n then m:=m-n else n:=n-m;
UCLN:=m;
end;
(********************************************)

function BCNN(m,n:integer):integer;
begin
BCNN:=m*n div UCLN(m,n);
end;

begin
clrscr;
write('N = ');readln(n);
write('So thu 1 : ');readln(m);
u:=m;n:=m;
for i:=2 to n do
begin
write('So thu ',i,' : ');readln(m);
u:=UCLN(u,m);
b:=BCNN(b,m);
end;
writeln('UCLN = ',u);
writeln('BCNN = ',b);
readln;
end.

Bài viết đã được chỉnh sửa nội dung bởi xusinst: 15-10-2011 - 17:20


#3
HD.Nhat

HD.Nhat

    Binh nhì

  • Thành viên
  • 19 Bài viết
Em rất cảm ơn anh, nhưng em hỏi về thuật toán chứ có phải pascal đâu anh. Ý em là thuật toán mà tin học lớp 10 học ấy ,mấy bài này em đã suy nghĩ rồi mà vẫn chưa ra, anh có thể trình bày thuật toán cho em được không. Em cảm ơn anh trước nhé.

#4
perfectstrong

perfectstrong

    $LOVE(x)|_{x =\alpha}^\Omega=+\infty$

  • Quản lý Toán Ứng dụng
  • 5004 Bài viết
Nếu bạn có thể đọc được pascal thì nhìn vào là đọc được rồi.
Còn không thì bạn đọc theo thuật toán sau (kiểu liệt kê):
Bài 1:
Câu b và c tương tự nhau. Làm câu b thôi.
B1: Nhập n, dãy $a_n; min \leftarrow 0; i \leftarrow 0$
B2: $i \leftarrow i+1$
B3: Nếu i<=n thì làm B4. Nếu không thì tới B6.
B4: Nếu min=0 thì (( $min \leftarrow a_i$ nếu $a_i>0$ ))
Còn không thì (( nếu $min > a_i$ thì $min \leftarrow a_i$ )).
B5: Quay lại B3.
B6: In ra min nếu min khác 0 hoặc in ra "không tồn tại" nếu min=0. Kết thúc.
Bài 2:
a)Sử dụng thuật toán Euclide: $$UCLN(a;b)=UCLN(b;r)$$ với r là số dư khi a chia b.
B1: Nhập a,b.
B2: Nếu a=b thì tới B5.
B3: $c \leftarrow a; a \leftarrow b; b \leftarrow c mod b$.
B4: Quay lại B2.
B5: In ra a.
b)$$BCNN[a;b]=ab/UCLN(a;b)$$

Bài viết đã được chỉnh sửa nội dung bởi perfectstrong: 16-10-2011 - 22:48

Luôn yêu để sống, luôn sống để học toán, luôn học toán để yêu!!! :D
$$\text{LOVE}\left( x \right)|_{x = \alpha}^\Omega = + \infty $$
I'm still there everywhere.




0 người đang xem chủ đề

0 thành viên, 0 khách, 0 thành viên ẩn danh