Giải thích thuật toán: ví dụ
- Hoán đổi giá trị của 2 biến x và y
Tìm giá trị lớn nhất của dãy A các số a , a ,…..,a
-…
Lời giải :
B1: nhập 2 biến x,y
B2: Nếu x>y tráo đổi gía trị của x và y, chuyển đến bước 3 . Nếu y > x thì 2 số đã theo thứ tự có giá trị không giảm , chuyển đến bước 3
B3: In ra kết qủa x, y và kết thúc thuật toán
Tính tổng của 100 số tự nhiên đầu tiên , hoán đổi giá trị của hai biến x,y và tìm số lớn nhất trong dãy số A cho trước ?
tổng của 100 số đt:
var i,b:integer;
begin
b:=0;
for i:=1 to 100 do
b:=b+i;
writeln('Tong cua 100 so dt:', b);
readln;
end.
tổng của 100 số đt:
var i,b:integer;
begin
b:=0;
for i:=1 to 100 do
b:=b+i;
writeln('Tong cua 100 so dt:', b);
readln;
end.
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;
}
Hoán đổi giá trị của 2 biến số a và b . Tìm input và output . Xây dựng thuật toán bằng phương pháp liệt kê và sơ đồ khối Vd: a=5; b=6 a =6 ; b =5
#include <bits/stdc++.h>
using namespace std;
long long a,b;
int main()
{
cin>>a>>b;
cout<<"a truoc khi doi la:"<<a<<endl;
cout<<'b truoc khi doi la:"<<b<<endl;
swap(a,b);
cout<<"a sau khi doi la:"<<a<<endl;
cout<<"b sau khi doi la:"<<b;
return 0;
}
Viết thuật toán làm các công việc sau
1. Hoán đổi giá trị của hai số thực A và C, dùng biến trung gian B ( biểu diễn thuật toán bằng cách liệt kê ).
2. Cho điểm I(x;y) trên mặt phẳng tọa độ và số thực R. Kiểm tra xem M(a;b) có nằm trên đường tròn tâm I bán kính R không? ( biểu diễn thuật toán bằng sơ đồ khối ).
2:
#include <bits/stdc++.h>
using namespace std;
double xm,ix,iy,r,ma,mb;
int main()
{
cin>>ix>>iy;
cin>>r;
cin>>ma>>mb;
xm=sqrt((ix-ma)*(ix-ma)+(iy-mb)*(iy-mb));
if (xm==r) cout<<"phai";
else cout<<"khong phai";
return 0;
}
Ví dụ 6. Tìm số lớn nhất trong dãy A các số a1, a2, ..., an cho trước.
Ta sẽ dùng biến MAX để lưu số lớn nhất của dãy A. Việc xác định MAX có thể được thực hiện như sau: Đầu tiên gán giá trị a1 cho biến MAX. Tiếp theo, lần lượt so sánh các số a2, ..., an của dãy A với MAX. Nếu ai> MAX, ta gán ai cho MAX.
INPUT: Dãy A các số ai, a¿, ..., a„ (n >]).
OUTPUT: Giá trị MAX = max{ay, 4ạ,..., a„Ì.
Từ đó, ta có thuật toán sau:
Bước 1. MAX← a1; i←1.
Bước 2. Nếu ai> MAX, gán MAX← ai.
Bước 3. i←i+ 1.
Bước 4. Nếu i≤n, quay lại bước 2.
Bước 5. Thông báo giá trị MAX và kết thúc thuật toán.
Dưới đây minh hoạ thuật toán trên với trường hợp chọn thỏ nặng nhất trong bốn chú thỏ có trọng lượng tương ứng là 2, 1, 5, 3 ki-lô-gam.
Ví dụ 6. Tìm số lớn nhất trong dãy A các số a1, a2, ..., an cho trước.
Ta sẽ dùng biến MAX để lưu số lớn nhất của dãy A. Việc xác định MAX có thể được thực hiện như sau: Đầu tiên gán giá trị a1 cho biến MAX. Tiếp theo, lần lượt so sánh các số a2, ..., an của dãy A với MAX. Nếu ai> MAX, ta gán ai cho MAX.
INPUT: Dãy A các số a1, a2, ..., an (n >1).
OUTPUT: Giá trị MAX = max{a1, a2,..., an}.
Từ đó, ta có thuật toán sau:
Bước 1. MAX← a1; i←1.
Bước 2. Nếu ai> MAX, gán MAX← ai.
Bước 3. i←i+ 1.
Bước 4. Nếu i≤n, quay lại bước 2.
Bước 5. Thông báo giá trị MAX và kết thúc thuật toán.
Dưới đây minh hoạ thuật toán trên với trường hợp chọn thỏ nặng nhất trong bốn chú thỏ có trọng lượng tương ứng là 2, 1, 5, 3 ki-lô-gam.
Cho số N nguyên dương và dãy số nguyên A gồm a1, a2,.....,an.
Hãy viết thuật toán
a) đưa ra màn hình tổng số các giá trị trong dãy
(Ví dụ: nhập n=4
Dãy A: 3 6 2 1 đưa ra màn hình tổng số bằng 12 <dạng> )
b) Đưa ra màn hình vị trí chứa giá trị lớn nhất. Nếu có 2 GTLN thì dưa ra vị trí nhỏ nhất chứa GTLN.
a:
#include <bits/stdc++.h>
using namespace std;
long long n,i,x,t;
int main()
{
cin>>n;
t=0;
for (i=1; i<=n;i++)
{
cin>>x;
t=t+x;
}
cout<<t;
return 0;
}