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
nhập vào ột số nguyên n lớn hơn 1 viết thuật toán kiểm tra xem só n có phải là số nguyên tố hay không biết ràng số nguyên tố chỉ chia hết cho 1 và chính nó
Câu trả lời của bạn
var i,n:integer;
ok:boolean;
begin
clrscr;
writeln('xet mot so co phai la so nguyen to khong?');
writeln('----------------------------------------------');
ok:=true;
write('nhap n:= ');readln(n);
for i:=2 to n-1 do if n mod i = 0 then ok:=false;
if ok then writeln('n la so nguyen to')
else writeln('n khong phai la so nguyen to');
readln;
end.
Viết chương trình nhập số nguyên a và 3 chữ số.Thông báo ra màn hình chữ số hàng trăm, hàng chục, hàng đơn vị
Viết chương trình nhập số giây báo ra giờ, phút, giây
Câu trả lời của bạn
var a, S, P: byte;
Begin
write('moi nhap a');
read(a);
S:= a/60;
P:= a/3600;
writeln('S:=','P:=', a);
readln
End.
Cái này viết bằng C nhé!
#include <stdio.h>
#include <conio.h>
int main() {
int n, a, b, c;
printf("Nhap so nguyen duong n(co 3 chu so): ");
scanf("%d", &n);
a = n/100;
b = ((n%100/10));
c = (n%10);
printf("- Chu so hang tram: %d\n", a);
printf("- Chu so hang chuc: %d\n", b);
printf("- Chu so hang don vi: %d", c);
getch();
}
Xác định bài toán , xây dựng thuật toán và diễn tả thuật toán ( nếu có thể , không thì thôi ) của các bài toán sau :
1. Tìm các số chia hết cho 3 trong dãy số n cho trước
2. Đếm các số k xuất hiện trong dãy số n cho trước
3. Tìm các số chẵn trong dãy số n cho trước và tính tổng của chúng
4. Tính tổng các số nguyên từ 1 đến n
Giúp mình nha ! Làm được câu nào hay câu ấy , không cần làm tất .
Câu trả lời của bạn
program bai3;
uses crt;
var a: array [1..100] of integer;
n,i: integer;
s: real;
begin
clrscr;
write('nhap mang n ='); readln(n);
for i:= 1 to n do
begin
write('nhap a[',i,'] ='); readln(a[i]);
end;
writeln('cac so chan trong day la :');
for i:= 1 to n do
if a[i] mod 2 = 0 then write(a[i] : 4);
writeln;
s:=0;
for i:= 1 to n do
if a[i] mod 2 = 0 then s:=s+a[i];
writeln('tong cua chung = ',s);
readln;
end.
M.n ơi help mình với, hãy trình bày thuật toán hoán đổi giá trị 2 số nguyên a và b
Câu trả lời của bạn
B0 Bắt đầu
B1 Nhập giá trị cho A và B
B2 Biến tam lấy giá trị của A ( Gọi là gán giá trị A cho tam , viết tam := A )
B3 A lấy giá trị của B ( Gọi là gán giá trị B cho A , viết A := B )
B4 B lấy giá trị của tam ( Gọi là gán giá trị tam cho B , viết B := tam )
B5 Thông báo kết quả
B6 Kết thúc
M.n ơi giúp mình với để giải 1 bài toán tin học cần thực hiện những việc gì? So sanh sự khác nhau giữa write và writeln.
Câu trả lời của bạn
Sự khác nhau giữa thủ tục chuẩn đưa dữ liệu ra màn hình Write và Writeln là
+ Với thủ tục write() sau khi đưa kết quả con trỏ ở cuối dòng văn bản
+ Thủ tục writeln() sau khi đưa kết quả con trỏ chuyển xuống đầu dòng tiếp theo
chuyển đổi phép toán trong pascal
vd: x ≥\(\dfrac{m+5}{2a}\)
Câu trả lời của bạn
* x >=(m+5)/(2*a).
Bài 2 : Viết chương trình tính tổng các số chẵn và tổng các số lẻ . So sánh cái nào lớn hơn . Với n nhập từ bàn phím ( Dùng While .. DO ) Vd : n = 5 Tổng số chẵn : 2+4 = 6 Tổng số lẻ : 1+3+5 = 9 Tổng số lẻ lớn hơn tổng số chẵn
Câu trả lời của bạn
program bai20;
uses crt;
var tl,tc,i,n:longint;
begin
clrscr;
write('Nhap N= '); readln(n);
tl:=0; tc:=0; i:=0;
while i<=n do
begin
if i mod 2=0 then tc:=tc+i;
if i mod 2<>0 then tl:=tl+i;
inc(i);
end;
writeln('Tong chan: ',tc);
writeln('Tong le: ',tl);
if tc>tl then write('Tong chan lon hon')
else if tc<tl then write('Tong le lon hon')
else if tc=tl then write('Hai tong bang nhau');
readln;
end.
Nhập số tự nhiên n (khai báo longint); in ra màn hình n có bao nhiêu chữ số, tổng các chữ số, số đảo ngược của n
Câu trả lời của bạn
iáo trình bài tập Pascal Lê Cường For i:=1 to N do S:=S+i; Writeln('Ket qua la :',S); Readln; End. Cách 2: Dùng vòng lặp REPEAT. Program TinhTong; Uses crt; Var N,i,S:integer; Begin Clrscr; Write('Nhap vao gia tri cua N :'); Readln(N); S:=0; i:=1; Repeat S:=S+i; i:=i+1; Until i>N; Writeln('Ket qua la :',S); Readln; End. Cách 3: Dùng vòng lặp WHILE. Program TinhTong; Uses crt; Var N,i,S:integer; Begin Clrscr; Write('Nhap vao gia tri cua N :'); Readln(N); S:=0; i:=1; While i<=N Do Begin S:=S+i; i:=i+1; End; Writeln('Ket qua la :',S); Readln; End. Bài tập 3.5: Viết chương trình nhập vào N số nguyên từ bàn phím. Hãy tính và in ra màn hình tổng của các số vừa được nhập vào. Ý tưởng: Dùng phương pháp cộng dồn. Cho vòng lặp FOR chạy từ 1 tới N, ứng với lần lặp thứ i, ta nhập vào số nguyên X và đồng thời cộng dồn X vào biến S. Program Tong; Uses crt; 16
Program tin_hoc;
Uses Crt;
Var n:longint;
a:string;
i,code,tong,tam:integer;
Begin
Clrscr;
Writeln('Nhap so tu nhien n:');
Readln(n);
str(n,a); tong:=0;
Writeln('So chu so cua n la: ',length(a));
For i:=1 to length(a) do
Begin
val(a[i],tam,code);
tong:=tong+tam;
End;
Writeln('Tong cac chu so cua n la: ',tong);
Write('So dao nguoc cua n la: ');
For i:=1 to length(a) do Write(a[length(a)-i+1]);
Readln;
End.
Viết phương trình tính:
{Q= 1+3+5+....+n khi n là số lẻ
{P= 2*4*6*......*n khi n là số chẵn
Câu trả lời của bạn
nhập số tiền ngẫu nhiên từ bàn phím.viết chương trình đổi số tiền đó ra thành 3 loại tiền có mệnh giá 50,200,500 nghìn đồng ?
Câu trả lời của bạn
viết thuật toán hoán đổi giá trị của 2 biến x và y
Câu trả lời của bạn
program hoan_vi;
uses crt;
var x,y,a:real;
begin
clrscr;
write('nhap x=');readln(x);
write('nhap y=');readln(y);
a:=x;
x:=y;
y:=a;
write('x=',x,'','y=',y);
readln;
end.
Program Hoandoi;
Uses Crt;
Var x,y,a: Real;
Begin
Write ('Nhap x ='); Readln (x);
Write ('Nhap y ='); Readln (y);
a:=x;
x:=y;
y:=a;
Write ('x=',x,' ', 'y=',y);
End.
Program Hoandoi;
Uses Crt;
Var x,y,a: Real;
Begin
Write ('Nhap x ='); Readln (x);
Write ('Nhap y ='); Readln (y);
a:=x;
x:=y;
y:=a;
Write ('x=',x,' ', 'y=',y);
End.
viết chương trình tính tổng các số nguyên lẻ từ 1-2 n ( N là số nguyên nhập từ bàn phím ) (n thuộc z *)
Câu trả lời của bạn
Mô tả thuật toán tìm số lớn nhất trong dãy số A={a1,a2,...,an} cho trước với a là các phân tử được nhập từ bàn phím
Câu trả lời của bạn
viết chương trình nhập vào mảng a gồm 10 phần tử số nguyên in ra màn hình các phần tử là số chẵn ở vị trí lẻ
Câu trả lời của bạn
program hacknao;
uses crt;
var A: array[1..10] of integer;
n,i: integer;
begin
clrscr;
writeln('Nhap so phan tu cua mang: '); read(n);
writeln('Nhap cac phan tu cua day: ');
for i:= 1 to n do
begin
writeln('a[',i,']='); readln(a[i]);
end;
for i:= 1 to n do
if i mod 2 <> 0 and a[i] mod 2 = 0 then write(i,',');
readln
End.
viêt chương trình tính tích n số tự nhiên nhập từ bàn phím
Câu trả lời của bạn
var i,n,s:integer;
begin
writeln('nhap so');
readln(n);
s:=1;
i:=0;
for i:=1 to n do
s:=s*i;
Writeln(' tich la',' ',s:2:1);
readln
end.
uses crt;
var n,i,t:integer;
begin
clrscr;
write('nhap n= ');readln(n);
t:=1;
for i:= 1 to n do t:=t*i;
write('Tich: ',t);
readln
end.
viết chương trình tìm số tự nhiên lớn nhất ,sao cho: tích các số từ 1 đến n nhỏ hơn 2019(1,2,3,..,n<2019
Câu trả lời của bạn
uses crt;
var n,i,t,max:integer;
a:array[1..100]of integer;
begin
repeat
clrscr;
write('nhap n= ');readln(n);
for i:= 1 to n do
begin
readln(a[i]);
for i:=1 to n do t:=t*a[i];
end;
until t<2019;
max:=a[1];
for i:=2 to n do if a[i] >max then max:=a[i];
write('So lon nhat :',max);
readln
end.
viết chương trình nhập vào số n từ bàn phím .In ra màn hình các số nhỏ hơn n mà chia hết cho 2 và 3
Câu trả lời của bạn
program battap;
uses crt;
var n,i:longint;
begin
clrscr;
write('Nhap N= '); readln(n);
for i:=1 to n-1 do
if (i mod 2=0) and (i mod 3=0) then write(i,' ');
readln;
end.
viết chương trình nhập vào một dãy số nguyên gồm n số
Câu trả lời của bạn
uses crt; var n,i: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 write(a[i],' '); readln end.
/
uses crt;
var n,i: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 write(a[i],' ');
readln
end.
program traloi;
uses crt;
var n,i:longint;
a:array[1..100] of longint;
begin
clrscr;
write('Nhap N= '); readln(n);
for i:=1 to n do
begin
write('A[',i,']= ');
readln(a[i]);
end;
for i:=1 to n do write(a[i],' ');
readln;
end.
uses crt;
var i,s,n:integer;
A:array[1..50] of integer;
begin
clrscr;
readln(n);
for i:=1 to n do read(a[i]);
s:=0;
for i:=1 to n do s:=s+a[i];
write(s);
readln
Bài 2 : Viết chương trình tính tổng các số chẵn và tổng các số lẻ . So sánh cái nào lớn hơn . Với n nhập từ bàn phím ( Dùng While .. DO ) Vd : n = 5 Tổng số chẵn : 2+4 = 6 Tổng số lẻ : 1+3+5 = 9 Tổng số lẻ lớn hơn tổng số chẵn
Câu trả lời của bạn
program sosanhchanle;
uses crt;
var n, i: integer;
A: array[1..1000] of integer;
c,l: integer;
begin
clrscr;
writeln('Nhap do dai day so: '); read(n);
writeln('Nhap cac phan tu cua day: ');
for i:= 1 to n do
begin
writeln('a[',i,'] = '); read(a[i]);
end;
c:=0;
l:=0;
for i:= 1 to n do
if a[i] mod 2 = 0 then c:=c+a[i] else l:=l+a[i];
if c > l then write('Tong so chan lon hon') else write('Tong so le lon hon');
readln
end.
.
báo biến và hằng?
Câu trả lời của bạn
Biến là đại lượng dùng để lưu trữ dữ liệu và dữ liệu được biến lưu trữ có thể thay đổi trong quá trình thực hiện chương trình.
_Giống và khác nhau của biến và hằng:
+ Giống: _Biến và hằng là các đại lượng được đặt tên dùng để lưu trữ dữ liệu.
_ Đều được khai báo trước khi sử dụng.
+ Khác :
* Biến: _ Giá trị của biến có thể thay đổi trong suốt quá trình thực hiện chương trình.
_ Biến được khai báo bằng từ khóa Var
* Hằng: _ Giá trị của hằng được giữ nguyên trong suôt quá trình thực hiện chương trình.
_ Hằng được khai báo bằng từ khóa Const
.Biến là đại lượng dùng để lưu trữ dữ liệu và dữ liệu được biến lưu trữ có thể
thay đổi trong quá trình thực hiện chương trình.
* Giống và khác nhau của biến và hằng
+ Giống
- Biến và hằng là các đại lượng được đặt tên dùng để lưu trữ dữ liệu.
- Đều được khai báo trước khi sử dụng.
+ Khác
* Biến:
- Giá trị của biến có thể thay đổi trong suốt quá trình thực hiện chương trình.
- Biến được khai báo bằng từ khóa Var
* Hằng:
- Giá trị của hằng được giữ nguyên trong suôt quá trình thực hiện chương trình.
- Hằng được khai báo bằng từ khóa Const
VD:
- var a,b: integer;
- const pi= 3.14;
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 *