Em hãy mô tả thuật toán bám tường bên trái để tìm đường thoát khỏi mê cung.
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.
Input: số lượng hàng N, đơn giá d, phí dịch vụ
Output: Số tiền phải thanh toán
Mô tả thuật toán bằng ngôn ngữ tự nhiên:
Bước 1: Nhập số lượng hàng N và đơn giá d.Bước 2: Tính số tiền mua hàng = số lượng hàng x đơn giá.Bước 3: Nếu số tiền mua hàng >= 500.000 thì số tiền thanh toán = số tiền mua hàng. Nếu ngược lại thì số tiền thanh toán = số tiền mua hàng x 105%Mô tả thuật toán bằng sơ đồ khối:Ý tưởng: cho trước một dãy số và tìm số x nằm ở vị trí nào trong dãy số đó.
Câu 1 :
Tham khảo
Y tưởng : xét từng số hạng trong dãy nếu số hạng > 0 thì xếp vào một biến tổng rồi chia cho số hàng đã xếp được
Input : Dãy A gồm N số nguyên a1....aN;
Output : Trung bình cộng của các số dương;
B1 : Nhập N số nguyên a1.... aN;
B2 : TB <--- 0, dem <---- 0, i <---- 1, Tong <--- 0;
B3 : Nếu a[i] > 0 thì Tong <--- TB + a[i];
B4 : dem <--- dem + 1;
B5 : Nếu i > N thì đưa ra màn hình kết quả TB = Tong/Dem rồi kết thúc chương trình;
B 6 : i <--- i + 1 rồi quay lại B3;
Câu 2 :
Tham khảo
Ta nhận thấy rằng, bội số chung nhỏ nhất của hai số nguyên dương a, b có thể được tính theo công thức:
ab/d
trong đó d là ước chung lớn nhất của a và b.
Bởi vậy:
Nên viết hàm để tính bội chung nhỏ nhất của hai số nguyên dương vì chương trình con cần trả ra một giá trị;
- Hàm tính bội chung nhỏ nhất của hai số nguyên dương a, b cần sử dụng hàm tính ước chung lớn nhất của a và b.
- Hàm tính ước chung lớn nhất của hai số nguyên dương a, b:
function ucln (a, b: integer): integer;
var r: integer;
begin
while b>0 do begin
r: = a mod b ,a : = b ; b:= r; end; ucln:= a; and;
- Hàm tính bội chung nhỏ nhất của hai số nguyên dương a, b:
ADVERTISING Video Player is loading.This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.lunction bcnn(a, b: integer): integer;
begin
bcnn:= a*b div ucln(a, b);
end;
Khi đó, chương trình con tính bội số chung nhỏ nhất của hai số nguyên dương a, b như sau:
program bai4_chuong6;
use crt ;
vai
X y: integer;
function ucln(a, b: integer): integer;
var r: integer;
begin
while b>0 do begin
r:= a mod b; a: = b ,b:= r;
end; ucln:= a;
end;
txnction bcnn(a, b: integer): integer;
begin
bcnn:= a*b div ucln(a, b);
end;
Begin
clrscr;
writeln('Nhap vao hai so can tim BCNN');
write ('x=') , readln(x); write ('y=') , readln(y);
writeln('bcnn cua hai so',x:4,'va',y:4,'la',bcnn(a,b)
readln
End.
Câu 3 : chịu
1
input: n và dãy a1,a2,a3,...,an
output: số lớn nhất trong dãy a1,a2,...,an
2.
b1: nhập n và gãy a1,a2,...,an
b2: a1<-max; i<-2;
b3: nếu i>n thì kết thúc và in kết quả ra màn hình
b4: nếu ai>max thì max:=a[i];
b5: i<-i+1 quay lại b3
#include <bits/stdc++.h>
using namespace std;
long long n,i,x,dem;
int main()
{
cin>>n;
dem=0;
for (i=1; i<=n; i++)
{
cin>>x;
if (x%2==0) dem++;
}
cout<<dem;
return 0;
}
tham khảo:
- Sơ đồ khối mô tả thuật toán tính tổng của hai số a và b.
- Đầu vào: hai số a và b.
Đầu ra: tổng hai số a và b.
- Mô tả thuật toán theo cách liệt kê là:
+ Nhập giá trị a, giá trị b
+ Tính Tổng ← a + b.
In ra màn hình giá trị Tổng.
uses crt;
var a:integer;
begin
clrscr;
readln(a);
if a mod 2=0 then write(a,' la so chan')
else write(a,' la so le');
readln;
end.
Lặp lại các bước đến khi thoát khỏi mê cung
- Nếu không có tường bên trái: quay trái 90 độ, tiến thẳng 1 bước về phía trước
- Nếu có tường bên trái:
+ Nếu không có tường phía trước: tiến 1 bước
+ Nếu có tường phía trước: quay phải 1 góc 90 độ