Nội dung bài học Bài 5: Từ bài toán đến chương trình dưới đây chúng ta sẽ cùng tìm hiểu về khái niệm bài toán, thuật toán; các bước giải bài toán trên máy tính; cách xác định được Input, Output của một bài toán đơn giản;... Mời các em cùng theo bài học.
Bài toán là một công việc hay một nhiệm vụ cần phải giải quyết.
Ví dụ về bài toán:
Để giải quyết được một bài toán cụ thể, người ta cần xác định bài toán, tức là xác định rõ các điều kiện cho trước và kết quả thu được.
Ví dụ xác định các bài toán sau:
Bài toán 3: Tính diện tích hình tam giác
Ví dụ Bài toán điều khiển rô-bốt nhặt rác:
1. Tiến 2 bước;
2. Quay trái, tiến 1 bước;
3. Nhặt rác;
4. Quay phải, tiến 3 bước;
5. Quay trái, tiến 2 bước;
6. Bỏ rác vào thùng;
Hình 1. Quá trình giải bài toán trên máy tính
Quá trình giải bài toán trên máy tính gồm 3 bước:
Mô tả thuật toán là liệt kê các bước cần thiết để giải một bài toán
Ví dụ 1: Thuật toán pha trà mời khách
Các bước thực hiện để pha trà mời khách:
Ví dụ 2: Thuật toán "Làm món trứng tráng"
Các bước thực hiện để làm món trứng tráng:
Ví dụ 3: Một hình A được ghép từ một hình chữ nhật với chiều rộng 2a, chiều dài b và một hình bán nguyệt ban kính a như hình dưới đây:
Xác định bài toán:
Mô tả thuật toán:
Ví dụ 4: Viết thuật toán tính tổng 100 số tự nhiên đầu tiên
Xác định bài toán:
Mô tả thuật toán:
Mô phỏng thuật toán với số liệu cụ thể:
Bước | 1 | 2 | 3 | 4 | 5 | 6 |
i | 1 | 2 | 3 | 4 | 5 | 6 |
\(i \leq N\) | Đ | Đ | Đ | Đ | Đ | S |
SUM | 1 | 3 | 6 | 10 | 15 | Kết thúc |
Ví dụ 5: Đổi giá trị của hai biến x, y
Xác định bài toán:
Mô tả thuật toán:
Ví dụ 6: Cho hai số thực a, b. Hãy cho biết kết quả so sánh hai số đó dưới dạng "a lớn hơn b", "a nhỏ hơn b" hoặc "a bằng b"
Xác định bài toán:
Mô tả thuật toán:
Ví dụ 7: Tìm số lớn nhất trong dãy A các số: \(a_{1}, a_{2},...,a_{n}\)
Xác định bài toán:
Mô tả thuật toán:
Sau khi học xong Bài 5: Từ bài toán đến chương trình, các em cần ghi nhớ:
Các em có thể hệ thống lại nội dung kiến thức đã học được thông qua bài kiểm tra Trắc nghiệm Tin học 8 Bài 5 cực hay có đáp án và lời giải chi tiết.
Thứ tự các bước giải bài toán trên máy tính?
Hãy xác đinh bài toán sau: "Tìm số các số chia hết cho 5 trong dãy n số tự nhiên cho trước"?
Câu 3- 5: Mời các em đăng nhập xem tiếp nội dung và thi thử Online để củng cố kiến thức về bài học này nhé!
Các em có thể xem thêm phần hướng dẫn Giải bài tập Tin học 8 Bài 5để giúp các em nắm vững bài học và các phương pháp giải bài tập.
Bài tập 1 trang 45 SGK Tin học 8
Bài tập 2 trang 45 SGK Tin học 8
Bài tập 3 trang 45 SGK Tin học 8
Bài tập 4 trang 45 SGK Tin học 8
Bài tập 5 trang 45 SGK Tin học 8
Bài tập 6 trang 45 SGK Tin học 8
Trong quá trình học tập nếu có thắc mắc hay cần trợ giúp gì thì các em hãy comment ở mục Hỏi đáp, Cộng đồng Tin học DapAnHay sẽ hỗ trợ cho các em một cách nhanh chóng!
Chúc các em học tập tốt và luôn đạt thành tích cao trong học tập!
-- Mod Tin Học 8 DapAnHay
Thứ tự các bước giải bài toán trên máy tính?
Hãy xác đinh bài toán sau: "Tìm số các số chia hết cho 5 trong dãy n số tự nhiên cho trước"?
Hãy cho biết kết quả sau khi thực hiện thuật toán sau:
Bước 1. x←x+y;
Bước 2. y← x-y;
Bước 3. x← x-y;
Quá trình giải bài toán trên máy tính gồm có bao nhiêu bước?
Hãy chọn phát biểu Sai?
Hãy chỉ ra INPUT và OUTPUT của các bài toán sau:
a) Xác định số học sinh trong lớp cùng mang họ Trần.
b) Tính tổng của các phần tử lớn hơn 0 trong dãy n số cho trước.
c) Tìm số các số có giá trị nhỏ nhất trong n số đã cho.
Giả sử x và y là các biến số. Hãy cho biết kết quả của việc thực hiện thuật toán sau:
Cho hai biến x và y. Hãy mô tả thuật toán đổi giá trị của các biến nói trên để x và y có giá trị tăng dần.
Cho hai biến x và y. Hãy mô tả thuật toán đổi giá trị của các biến nói trên (nếu cần) để x và y theo thứ tự có giá trị không giảm.
Hãy mô tả thuật toán giải bài toán tính tổng các phần tử của dãy số A= {a1, a2,..., an} cho trước.
Hãy mô tả thuật toán tính tổng các số dương trong dãy số A = {a1, a2,..., an} cho trước.
Họ và tên
Tiêu đề câu hỏi
Nội dung câu hỏi
Viết thuật toán, chương trình.
-Nhập vào 1 số nguyên có 3 chữ số.
-Hiển thị số hàng trăm.
-Hiển thị số hàng chục.
-Hiển thị số hàng đơn vị.
Câu trả lời của bạn
VD: 2,4,6
- số hàng trăm là 2
- số hàng chục là 4
-số hàng đơn vị là 6
- Tổng các chữ số:2+4+6=12
GIÚP MK VS MK ĐANG CẦN GẤP!!!
cho phương trình bậc nhất bx+c=0 thí nghiệm của phương trình trên
a) Xác định bài toán
b) Mô tả thuật toán
c) viết phương trình thí nghiệm của phương trình trên
Câu trả lời của bạn
a,
-Input : b,c và bx+c =0;
-output : x.
b,
B1: Nhập a,b.
B2: Nếu a<>0 thì x=-b/a và kết thúc ngược lại thì đi tiếp.
B3: Nếu b=0 thì phương trình vô số nghiệm ngược lại thì phương trình vô nghiệm.
c,
program giaipb1;
uses crt;
var a,b:real;
begin
clrscr;
writeln('Chuong Trinh Giai PT bac 1: ax+b=0');
writeln('Nhap a va b'); readln(a,b);
If (a=0) and (b<>0) then writeln('Phuong trinh vo nghiem');
If (a=0) and (b=0) then writeln('Phuong trinh co vo so nghiem');
If (a<>0) and(b<>0) then writeln('Phuong trinh co nghiem x=',(-b)/a:4:2);
readln;
end.
- Giả sử x và y là các biến số. Hãy cho biết kết quả của việc thực hiên thuật toán sau
Bước 1: x ← x + y
Bước 2: y ← x - y
Bước 3: x ← x - y
Câu trả lời của bạn
Sau 3 bước, x có giá trị ban đầu của y và y có giá trị ban đầu của x, tức giá trị của 2 biến x và y được hoán đổi cho nhau.
viet chuong trinh tinh tong 100 so tu nhien đầu tiên từ 1...100
Câu trả lời của bạn
program tong;
var
i, S: integer;
begin
S:=0
for i:=1 to 100 do S:=S+i;
writeln('tong la=', S);
readln
end.
Mô tả thuật toán: tổng của n số tự nhiên chẵn , lẽ đầu tiên.
Câu trả lời của bạn
uses crt;
var n,i,t,t1:longint;
a:array[1..100] of longint;
begin clrscr;
write('nhap n:');readln(n);
for i:=1 to n do readln(a[i]);
for i:=1 to n do if a[i] mod 2=0 then t:=t+i;
for i:=1 to n do ì a[i] mod 2=1 then t1:=t1+i;
writeln('tong cac so chan la:',t);
writeln('tong cac so le la:',t1);
end.
dựa vào thuật toán sau viết chương trình pascal
Bước 1: s <-- 0; n<--0;
Bước 2: Nếu n>=5 thì chuyển tới bước 4
Bước 3: n<-- n+1; S<-- S+n và quay lại bước 2
Bước 4: In giá trị S và kết thúc thuật toán
Câu trả lời của bạn
uses crt;
var n,s:integer;
begin
clrscr;
s:=0; n:=0;
while n<5 do
begin
n:=n+1;
s:=s+n;
end;
write('s=',s);
readln;
end.
Mô tả thuật toán của các bài toán sau:
a/ tìm giá trị tuyệt đối của một số a cho trước
b/ tìm số lớn nhất trong ba số a, b và c nhập từ bàn phím
Câu trả lời của bạn
program bai_5;
uses crt;
var a,b,c :real;
BEGIN
write('nhap vao so a'); Readln(a);
write('nhap vao so b'); Readln(b);
write('nhap vao so c'); Readln(c);
if a<0 then a:=-a;
max:=a;
if max <b then max:=b;
if max<c then max:=c;
write('gia tri tuyet doi cua a la:',a);
write('so lon nhat trong ba so a,b,c la:',max);
Readln
END.
Thanks
Bài tập 1: Viết chứng trình tính tổng 3 số nguyên được nhập từ bàn phím
Bài tập 2: Viết chương trình nhập vào một số và in ra màn hình kết quả số chẵn hay số lẻ
Bài tập 3: Mô tả thuật toán tính tổng của 100 số tự nhiên đầu tiên
Câu trả lời của bạn
program bai1;
uses crt;
var a,b,c,s: real;
begin
clrscr;
write('nhap so thu nhat ='); readln(a);
write('nhap so thu hai ='); readln(b);
write('nhap so thu ba ='); readln(c);
s:=a+b+c;
writeln('tong ba so a,b,c =',s:4:2);
readln;
end.
tại sao người ta phải tạo ra các ngôn ngữ lập trình trong khi có thể điều khiển máy tính bằng ngôn ngữ máy?
giúp mình giải câu hỏi này nha :^ - ^!
Câu trả lời của bạn
_Tuy ngôn ngữ máy cũng là một loại ngôn ngữ lập trình nhưng ở đây chúng ta hiểu ngôn ngữ lập trình là ngộn ngữ lập trình bậc cao. Trong ngôn ngữ máy mọi chỉ thị đều được biểu diễn bởi các con số nhị phân 0 và 1.
_Ngôn ngữ máy khó đọc và khó sử dụng tuy vậy ngôn ngữ máy là ngôn ngữ duy nhất mà bộ vi xử lí có thể nhận biết và thực hiện một các trực tiếp.
_Ngoài ra yếu điểm chính của các chương trình viết bằng ngôn ngữ máy là phụ thuộc vào phần cứng máy tính.các ngôn ngữ lập trình bậc cao được phát triển để khắc phục các yếu điểm trên của ngôn ngữ máy.
_Ngôn ngữ lập trình sử dụng các cụm từ tự nhiên nên dễ nhớ, dễ học và không phụ thuộc vào phần cứng máy tính
viết chương trình nhập vào 2 số M,N nguyen dương(0<M<N).Hãy tìm ước chung lớn nhất của M va N
Câu trả lời của bạn
program ucln;
uses crt;
var M,N,ucln:longint;
begin
clrscr;
write('nhap M:');readln(M);
while M<=0 do
begin
write('nhap lai M:');readln(M);
end;
write('nhap N:'); readln(N);
while N<=M do
begin
write('nhap lai N:');readln(N);
end;
While M<>N do
if M>N then M:=M-N else N:=N-M;
ucln:=M;
write('ucln la:',ucln);
readln;
end.
viết chương trình nhập 2 số nguyên từ bàn phím sau đó hiển thị số lớn nhất trên màn hình?
Câu trả lời của bạn
program ct_dautien;
uses crt;
var x:integer;
begin
writeln('moi nhap a,b');readln(a,b);
if a>b then write(a) else write (b);
readln;
end.
program ct_dautien;
uses crt;
var x:integer;
begin
writeln('moi nhap a,b');readln(a,b);
if a>b then write(a) else write (b);
readln
end.
Kết thúc thuật toán sau đây, hãy cho biết giá trị của biến T và i là bao nhiêu?
B1: T <-- 20; i <-- 0;
B2: i <-- i + 5;
B3: Nếu i >= 20 thì T <-- T + i và quay lại bước 2;
B4: Thông báo kết qủa và kết thúc thuật toán.
mình cần gấp vào tối nay nhé
các bạn nhớ giải thích chi tiết dùm mình
Câu trả lời của bạn
T=40
i=20
T vẫn bằng 20 và i=5
Ban đầu i<----0 sau đó gán =5
5 0 thể >=20 => câu lệnh sau ko thực hiện đc và T vẫn giữ nguyên giá trị
Hãy mô tả thuật toán giải bài toán tính Trung bình cộng các phần tử của dãy số A = { a1 ,a2 ,....an } cho trước.
GIÚP MÌNH VỚI NHA,MÌNH ĐANG CẦN GẤP!!!! CẢM ƠN NHIỀU...
Câu trả lời của bạn
mình thấy ở trang 71 SGK có bài tương tự
program Tinh_trung_binh_cong;
uses crt;
var n, dem : integer;
a, TB : real;
begin clrscr;
dem:= 0; TB:=0;
write('Nhap so cac so can tinh n = '); realn(n);
write dem < n do
begin dem:= dem + 1;
write('Nhap so thu ', dem,' = '); realn(a);
TB:= TB + a;
end;
TB:= TB/n;
writeln('Trung binh cua ', n, ' so la = ', TB:10:3);
writeln('Nhan Enter de thoat ...');
readln;
end.
Tìm giá trị lớn nhất, nhỏ nhất, sắp xếp giá trị mảng tăng dần, giảm dần.
Câu trả lời của bạn
program ctdt;
uses crt;
type mang=array[1..100]of integer;
var n,i,j:integer;
a:mang;
(*----------------------------*)
begin
readln(N);
for i:=1 to n do
readln(a[i]);
(*----------------------------*)
{tim min}
min:=a[1];
for i:=2 to n do
if a[i]<min then
min:=a[i];
writeln(min);
(*----------------------------*)
{tim max}
max:=a[1];
for i:=2 to n do
if a[i]>max then
max:=a[i];
writeln(max);
(*----------------------------*)
{sap xep tang dan}
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]>a[j] then
begin
tam:=a[i];
a[i]:=a[j];
a[j]:=tam;
end;
(*----------------------------*)
{sap xep giam dan chi can doi dau o lenh if}
for i:=1 to n do
write(a[i],' ');
readln;
end.
Viết chương trình tính tổng các số tự nhiên đầu tiên cho đến khi tổng đó bằng 100 thì dừng lại?
Câu trả lời của bạn
program ctdt;
uses crt;
var i,tong:integer;
(*-----------------------*)
begin
clrscr;
tong:=0;i:=0;
while tong<=100 do
begin
i:=i+1;
tong:=tong+i;
end;
readln;
end.
Viết chương trình tách một số n thành số a, b sao cho tích P=a*b^2 đạt được cực đại với n được nhập từ bàn phím.
Câu trả lời của bạn
uses crt;
var n: real;
begin
clrscr;
write('Nhap n='); readln(n);
writeln('n duoc tach thanh 2 so:');
writeln('a=',n/3 : 5 : 3);
writeln('b=',2*n/3 : 5 : 3);
readln;
end.
Cho hai biến X và Y. Hãy mô tả thuật toán biến đổi giá trị của hai biến trên.
Câu trả lời của bạn
B1:Nhập hai số x,y từ bàn phím
B2:z:=x;
x:=y;
y:=z;
B3: TBKQ và KTTT
Câu trả lời của bạn
Viết công thức nhập hai số từ bàn phím.a, tính tổng các số trong khoảng 2 số đó.b, in ra màn hình Ucln của hai số đó.
Program bai1;
uses crt;
var a,b,s: integer;
begin
clrscr;
write('nhap so a ='); readln(a);
write('nhap so b ='); readln(b);
s:=a+b;
writeln('- tong cua hai so a va b =',s);
if s mod 2 = 0 then writeln('tong la so chan ')
else writeln('- tong la so le ');
readln;
end.
hãy chỉ ra input và output của các bài toán sau:
a) xác định số hs trong lớp cùng mang họ trần
b) tính tổng của các phần tử lớn hơn 0 trong dãy n số cho trước
c) tìm các ssoos có giá trị nhỏ nhất trong n số đã cho
Câu trả lời của bạn
a) INPUT: Danh sách học sinh trong lớp
OUTPUT: số học sinh cùng mang họ Trần
b) INPUT: dãy n số
OUTPUT: tổng các phần tử lớn hơn 0
c) INPUT: dãy n số
OUTPUT: số có giá trị nhỏ nhất.
Câu 1: Để thực hiện phép tính tổng của hai số nguyên a và b ta thực hiện như thế nào?
Câu 2: Biến a nhận giá trị là 0, -1, 1, 2, 3. ta có thể khai báo a thuộc kiểu dữ liệu nào?
Câu 3: Để nhập dữ liệu từ bàn phím ta dùng lện gì?
Câu 4: Lệnh khai báo thư viện trong ngôn ngữ lập trình pascal là gì?
Câu 5: viết chương trình in ra màn hình diện tích và chu vi hình vuông và hình chữ nhật ( a, b là chiều dài, chiều rộng nhập từ bàn phím ( hình chữ nhật ) còn cạnh a của hình vuông nhập từ bàn phím
Câu trả lời của bạn
câu 1 :
b1: nhập 2 số a,b từ bàn phím
b2: in ra kết quả là tổng a+b ( vd :write(a+b); )
có thể thay bằng cách
b2: gắn biến s với tổng a,b ( s:=a+b;)
b3: in ra s
0 Bình luận
Để lại bình luận
Địa chỉ email của hạn sẽ không được công bố. Các trường bắt buộc được đánh dấu *