Bài 4: Trình bày thuật toán tìm giá trị lớn nhất của dãy N số nguyên.
Bài 5: Trình bày thuật toán sắp xếp một dãy N theo thứ tự tăng dần các giá trị.
Input: dãy số nguyên gồm n số được nhập từ bạn phím
Output: số lớn nhất, bé nhất trong dãy
B1: nhập dãy số nguyên
B2: gán max:=a[1]; min:=a[1]
B3: nếu max<a[i] thì max:=a[i]; min>a[i] then min:=a[i]
B4: in kết quả ra màn hình
c/ Tìm giá trị lớn nhất của 3 số nguyên a,b,c
d/ Cho dãy A gồm N số nguyên A,, A,....,An(0<N<=1000;
A <=10000). Tim và đưa ra giá trị bé nhất của dãy.
Yêu cầu: - Xác định Input và Output của các bài toán trên
- Trình bản thuật toán giải các bài toán trên bằng Liệt kẻ và Sơ đồ khối
c: include <bits/stdc++.h>
using namespace std;
long long a,b,c;
int main()
{
cin>>a>>b>>c;
cout<<max(a,max(b,c));
return 0;
}
Cho dãy A= [5, 8, 1, 0, 10, 4, 3]. Viết các chương trình sắp xếp dãy A theo thứ tự tăng dần theo các thuật toán sắp xếp chèn, sắp xếp chọn và sắp xếp nổi bọt.
THAM KHẢO!
1.Thuật toán sắp xếp chèn (Insertion Sort):
def insertion_sort(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i - 1
while j >= 0 and arr[j] > key:
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = key
return arr
A = [5, 8, 1, 0, 10, 4, 3]
sorted_A = insertion_sort(A)
print("Dãy A sau khi sắp xếp chèn:", sorted_A)
2. Thuật toán sắp xếp chọn (Selection Sort):
def selection_sort(arr):
for i in range(len(arr)):
min_idx = i
for j in range(i + 1, len(arr)):
if arr[j] < arr[min_idx]:
min_idx = j
arr[i], arr[min_idx] = arr[min_idx], arr[i]
return arr
A = [5, 8, 1, 0, 10, 4, 3]
sorted_A = selection_sort(A)
print("Dãy A sau khi sắp xếp chọn:", sorted_A)
3.Thuật toán sắp xếp nổi bọt (Bubble Sort):
def bubble_sort(arr):
n = len(arr)
for i in range(n - 1):
for j in range(n - 1 - i):
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
return arr
A = [5, 8, 1, 0, 10, 4, 3]
sorted_A = bubble_sort(A)
print("Dãy A sau khi sắp xếp nổi bọt:", sorted_A)
Trình bày các bước giải bài toán sau:
Cho số nguyên N và dãy A1,A2.....AN
Hãy tìm và đưa ra vị trí của phần tử có giá trị lớn nhất.
#include <bits/stdc++.h>
using namespace std;
long long a[10000],n,i,ln;
int main()
{
cin>>n;
ln=LLONG_MIN;
for (i=1; i<=n; i++)
{
cin>>a[i];
ln=max(ln,a[i]);
}
for (i=1; i<=n; i++)
if (ln==a[i]) cout<<i<<" ";
return 0;
}
mô tả thuật toán và viết chương trình sắp xếp dãy số A gồm N phần tử(N được nhập từ bàn phím) sắp xếp theo thứ tự tăng dần
(pascal)
Câu 6. Xác định Input, output, mô tả thuật toán và viết chương trình giải các bài toán:
a. Sắp xếp 2 số a, b theo thứ tự không tăng, không giảm.
b.Tìm giá trị lớn nhất, nhỏ nhất trong 3 số a, b, c.
Hãy xác định bài toán , mô tả thuật toán và viết chương trình nhập vào một dãy số nguyên với n phần tử ( n được nhập từ bàn phím ) , tìm giá trị nhỏ nhất và tích của dãy số đó
uses crt;
var a:array[1..100]of integer;
i,n,nn,s:integer;
begin
clrscr;
readln(n);
for i:=1 to n do readln(a[i]);
nn:=a[1];
s:=1;
for i:=1 to n do
begin
if nn>a[i] then nn:=a[i];
s:=s*a[i];
end;
writeln(nn);
writeln(s);
readln;
end.
Trình bày thuật toán đếm các số là ước của số nguyên K trên dãy N số nguyên a có giá trị lần lượt là a1,a2,…,aN .
#include <bits/stdc++.h>
using namespace std;
long long n,i,x,k,dem;
int main()
{
cin>>n>>k;
dem=0;
for (i=1; i<=n; i++)
{
cin>>x;
if (k%x==0) dem++;
}
cout<<dem;
return 0;
}
Trình bày thuật toán theo phương pháp sơ đồ khối với bài toán có dạng tìm số lớn nhất trong một dãy số N. Với N nhập từ bàn phím. Tìm số lớn nhất cho một dãy số N=(1/1;1/2/;1/3;1/4;1/N), mong mọi người giúp em.
#include <bits/stdc++.h>
using namespace std;
long long i,n,x,ln;
int main()
{
cin>>n;
ln=LLONG_MIN;
for (i=1; i<=n; i++)
{
cin>>x;
ln=max(ln,x);
}
cout<<ln;
return 0;
}