Dưới đây là nội dung bài học bài Các thành phần của ngôn ngữ lập trình, thông qua bài học này các em sẽ biết được: ngôn ngữ lập trình có ba thành phần cơ bản; một số khái niệm tên, tên dành riêng, tên chuẩn, hằng và biến và các qui định về cách đặt tên hằng, biến,... Mời các em cùng theo dõi.
Mỗi ngôn ngữ lập trình có 3 thành phần cơ bản là Bảng chữ cái, cú pháp và ngữ nghĩa.
Ví dụ:
Trong Pascal bảng chữ cái bao gồm:
\(+\) | \(-\) | \(*\) | \(\diagup\) | \(=\) | \(<\) | \(>\) | \([\) | \(]\) | \(.\) | \(,\) | |
\(;\) | \(\#\) | \(\wedge\) | \(\alpha\) | \(\$\) | \(\&\) | \((\) | \()\) | \(\{\) | \(\}\) | \(:\) | \('\) |
Dấu cách (mã ASCII là 32) | _ Dấu gạch dưới |
Bảng 1. Các kí tự đặc biệt trong Pascal
* Lưu ý:
Turbo Pascal | C++ |
|
|
Bảng 2. Qui tắc đặt tên trong ngôn ngữ lập trình Pascal và ngôn ngữ lập trình C++
Ví dụ:
LOP11C2, LOP_11C2
LOP 11C2, 3D, A\B
Nhiều ngôn ngữ lập trình phân biệt ba loại tên:
Ví dụ:
LOẠI TÊN | PASCAL | C/ C++ |
Tên dành riêng | PROGRAM, USE, VAR, BEGIN, END,… | MAIN, INCLUDE, VOID, WHILE, IF… |
Tên chuẩn | BYTE, REAL, ABS... | COUT, CLRSCR, CIN… |
Tên do người lập trình đặt | BAITAP, A, X1, CHUVI, SO_LUONG, … |
Bảng 3. Phân biệt các loại tên trong ngôn ngữ lập trình Pascal và ngôn ngữ lập trình C++
Ví dụ:
LOẠI HẰNG | PASCAL | C/ C++ |
Hằng số học | 3 0 -8 +15 2.5 5.0 -12.79 +6.8 0.2 -2.259E02 1.7E-3 | |
Hằng lôgic | TRUE FALSE | |
Hằng xâu | 'Tin hoc' '12345' | "Tin hoc" "12345" |
Bảng 4. Các loại hằng trong ngôn ngữ lập trình Pascal và ngôn ngữ lập trình C++
Phân biệt Tên đúng/sai trong ngôn ngữ lập trình
Kiem tra
TRUE
Baitap5
Đúng
Tongso_lop11A
12_con_giap
Gợi ý trả lời:
TÊN ĐÚNG | TÊN SAI |
Baitap5 Tongso_lop11A | Kiem tra TRUE 12_con_giap Đúng |
Cho bài toán sau:
Tính chu vi (CV), diện tích (S) hình tròn với bán kính (R) bất kì được đưa vào từ bàn phím. Cho Pi=3.14.
Hãy xác định hằng và biến trong bài toán trên.
Gợi ý trả lời:
Hằng | Biến |
Pi=3.14 | R, CV, S |
Sau khi học xong bài Các thành phần của ngôn ngữ lập trình, các em cần ghi nhớ các nội dung trọng tâm:
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 11 Bài 2 cực hay có đáp án và lời giải chi tiết.
Phát biểu nào dưới đây là đúng
Chọn phát biểu đúng trong các phát biểu dưới đây:
Phát biểu nào dưới đây là hợp lí nhất khi nói về Biến?
Câu 4-10: 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 11 Bài 2để 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 4 trang 13 SGK Tin học 11
Bài tập 5 trang 13 SGK Tin học 11
Bài tập 6 trang 13 SGK Tin học 11
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 11 DapAnHay
Phát biểu nào dưới đây là đúng
Chọn phát biểu đúng trong các phát biểu dưới đây:
Phát biểu nào dưới đây là hợp lí nhất khi nói về Biến?
Phát biểu nào dưới đây là hợp lí nhất khi nói về Hằng?
Phát biểu nào dưới đây là hợp lí nhất khi nói về Tên?
Trong tin học, hằng là đại lượng
Các thành phần của ngôn ngữ lập trình là
Khái niệm nào sau đây là đúng về tên dành riêng
Khai báo nào sau đây là đúng về tên chuẩn?
Phát biểu nào dưới đây là hợp lí nhất
Hãy cho biết các điểm khác nhau giữa tên dành riêng và tên chuẩn?
Hãy tự viết ra ba tên đúng theo quy tắc của Pascal.
Những biểu diễn sau đây không phải là biểu diễn trong Pascal và chỉ rõ lỗi trong từng trường hợp.
a) 150.0 b) -22 c) 6,23
d) '43' e) A2 f) 1.06E-15
g) 4+6 h) c i) 'True'
Họ và tên
Tiêu đề câu hỏi
Nội dung câu hỏi
Câu trả lời của bạn
Hợp ngữ là một bước tiến vượt bậc đưa ngôn ngữ lập trình thoát ra khỏi ngôn ngữ máy khó hiểu. Ngôn ngữ này xuất hiện vào những năm 1950, nó được thiết kế để máy tính trở nên thân thiện hơn với người sử dụng. Hợp ngữ đưa ra khái niệm biến (variable), nhờ đó mà ta có thể gán một ký hiệu cho một vị trí nào đó trong bộ nhớ mà không phải viết lại địa chỉ này dưới dạng nhị phân mỗi lần sử dụng. Hợp ngữ cũng chứa vài "phép toán giả", tức là ta có thể biểu biễn mã phép toán dưới dạng phát biểu (hay còn gọi là câu lệnh) thay vì dưới dạng nhị phân. Các câu lệnh bao gồm hai phần: phần mã lệnh (viết tựa tiếng Anh) chỉ phép toán cần thực hiện và phần tên biến chỉ địa chỉ chứa toán hạng của phép toán đó.
Ðể máy thực hiện được một chương trình viết bằng hợp ngữ thì chương trình đó phải được dịch sang ngôn ngữ máy. Công cụ thực hiện việc dịch đó được gọi là Assembler
Câu trả lời của bạn
Ngôn ngữ máy (machine language) là các chỉ thị dưới dạng nhị phân, can thiệp trực tiếp vào trong các mạch điện tử. Chương trình được viết bằng ngôn ngữ máy thì có thể được thực hiện ngay không cần qua bước trung gian nào. Tuy nhiên chương trình viết bằng ngôn ngữ máy dễ sai sót, cồng kềnh và khó đọc, khó hiểu vì toàn những con số 0 và 1.
Câu trả lời của bạn
Ngôn ngữ cấp cao (High level language): là ngôn ngữ được tạo ra và phát triển nhằm phản ánh cách thức người lập trình nghĩ và làm. Ngôn ngữ cấp cao rất gần với ngôn ngữ con người (Anh ngữ) nhưng chính xác như ngôn ngữ toán học. Nhờ ngôn ngữ cấp cao mà lĩnh vực lập trình trở nên phổ biến, rất nhiều người có thể viết được chương trình, và nhờ thế mà các phần mềm phát triển như vũ bão, phục vụ nhiều lĩnh vực của cuộc sống. Cùng với sự phát triển của các thế hệ máy tính, ngôn ngữ lập trình cấp cao cũng được phát triển rất đa dạng và phong phú, việc lập trình cho máy tính vì thế mà cũng có nhiều khuynh hướng khác nhau: lập trình cấu trúc, lập trình hướng đối tượng, lập trình logic, lập trình hàm... Một chương trình viết bằng ngôn ngữ cấp cao được gọi là chương trình nguồn (source programs). Ðể máy tính "hiểu" và thực hiện được các lệnh trong chương trình nguồn thì phải có một chương trình dịch để dịch chương trình nguồn (viết bằng ngôn ngữ cấp cao) thành chương trình đích
Câu trả lời của bạn
const fi='supseq.inp';
fo='supseq.out';
var f1,f2:text;
i,j,n,k,dem,m,max,max2,x:longint;
a:array[1..100]of integer;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,n,k);
{----------------------------------}
for i:=1 to n do
begin
read(f1,x);
a[i]:=x;
end;
{---------------------------------}
writeln;
max:=0;
dem:=0;
for i:=1 to n do
if (a[i] mod k=0) and (a[i+1] mod k=0) then inc(dem)
else begin
if max<dem then max:=dem;
dem:=0;
end;
if max<dem then max:=dem;
writeln(f2,max);
close(f1);
close(f2);
end.
Câu trả lời của bạn
uses crt;
var n,ss,i:integer;
a: array [1..100] of integer;
begin
clrscr;
write('So cac phan tu: ');readln(n);
for i:= 1 to n do
begin
write('Phan tu thu ',i,': ');
readln(a[i]);
end;
ss:= a[1];
for i:= 1 to n do
if a[i] >= ss then
begin
write(a[i],' ');
ss:= a[i];
end;
readln
end.
Yêu cầu: Tìm cách loại bỏ đi một số cây sao cho số cây còn lại là nhiều nhất và hàng cây có độ cao tăng dần.
Dữ liệu vào: Cho trong file văn bản HANGCAY.INP, có cấu trúc:
- Dòng 1: Ghi số nguyên dương N, là số lượng cây ban đầu trong hàng cây (1≤N≤100)
- Dòng 2: Ghi N số nguyên dương hi (1 ≤ hi ≤ 32767) lần lượt là độ cao của cây thứ i trong hàng cây, tính từ ngoài cổng vào. Các số được ghi cách nhau ít nhất một dấu cách.
Dữ liệu ra: Ghi ra file văn bản HANGCAY.OUT, theo cấu trúc:
- Dòng 1: Ghi số nguyên dương M, là số lượng cây còn lại trong hàng cây sau khi loại bỏ.
- Dòng 2: Ghi M số nguyên dương là chỉ số của mỗi cây còn lại trong hàng cây sau khi loại bỏ. Các số phải được ghi cách nhau ít nhất một dấu cách.
Ví dụ:
HANGCAY.INP | HANGCAY.OUT |
5 5 8 3 4 9 | 3 1 2 5 |
Câu trả lời của bạn
const fi='nix.inp';
fo='nix.out';
var
f:text;
j,i,n,max:0..100;
a,b,l,m: array [0..101] of integer;
procedure ip;
begin
assign(f,fi);
reset(f);
readln(f,n);
for i:= 1 to n do
read(f,a[i]);
close(f);
end;
procedure out;
begin
assign(f,fo);
rewrite(f);
for i:= 0 to n do
l[i] := 1;
for i:= 1 to n do
for j:= i to n do
if (a[j] > a[i] ) and (l[j] < l[i] + 1 ) then
begin
l[j] := l[i] + 1;
m[j]:= i;
end;
max:=0;
for i:= 1 to n do
if l[i] > max then
begin
j:=i;
max:=l[i];
end;
while m[j] <> 0 do
begin
l[j]:=-l[j];
j:=m[j];
end;
l[j]:=-l[j];
for i:= 1 to n do
if l[i] < 0 then write(f,i,' ');
close(f);
end;
BEGIN
ip;
out;
END.
Câu trả lời của bạn
Chương trình dịch là chương trình đặc biệt, có chức năng chuyển đổi chương trình được viết trên ngôn ngữ lập trình bậc cao thành chươnng trình thực hiện được trên máy tính cụ thể.
- Chúng ta cần phải có chương trình dịch bởi vì chương trình dịch có chức năng chuyển đổi chương trình được viết bằng ngôn ngữ lập trình bậc cao thành chương trình thực hiện được trên máy cụ thể. Nó nhận đâu vào là chương trình viết bằng ngôn ngữ lập trình bậc cao (chương trình nguồn) là dữ liệu vào (Input), thực hiện chuyẻn đổi samg ngôn ngữ máy (chương trình đích) là kết qua ra (Output).
Ngoài ra, chương trình dịch trải qua hai giai đoạn: phân tích và tổng hợp.
Giai đoạn phâi tích nhầm phân tích chương trình nguồn về từ vựng và cú pháp. Giai đoạn tổng hợp nhằm tạo ra chương trình đích gồm ba bước, đó là:
Sinh mã trung gian (chuyển chương trình nguồn về chương trình trung gian); Tối ưu mã (chỉnh sửa, tối ưu chương trình trung gian); Sinh mã (tạo chương trình đích từ chương trinh trung gian đã tối ưu).
Câu trả lời của bạn
Biên dịch và thông dịch khác nhau ở những điếm sau:
- Trình biên dịch duyệt, kiểm tra, phát hiện lỗi, xác định chương trình nguồn có dịch được không. Dịch toàn bộ chương trình nguồn thành một chương trình đích có thể thực hiện trên máy và có thể lưu trữ lại để sử dụng về sau khi cần thiết.
Trình thông dịch lần lượt dịch từng câu lệnh ra ngôn ngữ máy rồi thực hiện ngay câu lệnh vừa dịch được hoặc thông báo lỗi nếu không dịch được.
Câu trả lời của bạn
Các điểm khác nhau giữa tên dành riêng và tên chuẩn, đó là:
Tên dành riêng không được dùng khác với ý nghĩa xác định, tên chuẩn có thể dùng với ý nghĩa khác.
Câu trả lời của bạn
Ba tên đúng theo quy tắc của Pascal và có độ dài khác nhau:
tinhoc
tin_hoc_2007
hanoi2007
Lưu ý: Tên trong Pascal được đặt theo quy tắc sau đây:
- Chỉ bao gồm chữ cái, chữ số và dấu gạch dưới;
- Không bắt đầu bằng chữ số;
Độ dài theo quy định của trình dịch (Turbo Pascal không quá 127 kí tự:, Free Pascal không quá 255 kí tự).
Tuy nhiên, tên không nên đặt quá dài hay quá ngắn mà nên đặt sao cho gợi nhớ ý nghĩa đối tượng mang tên đó
Câu trả lời của bạn
Cấu trúc chung của một chương trình gồm 2 phần:
1: Phần khai báo: thường dùng các câu lệnh dùng để :
- Khai báo tên trương trình .
- Khai báo các thư viện(chứa các lệnh có sẵn có thể sử dụng trong chương trình) và một số khai báo khác.
2: Phần thân của trương trình gồm các câu lệnh mà máy tính cần được thực hiện.
-Phần thân bắt đầu bằng từ khóa Begin và kết thúc bằng từ khóa End.
-Đây là phần bắt buộc phải có.
-Phần khai báo có thể có hoặc không.
-Tuy nhiên nếu có phần khai báo thì nó phải đặt trước phần thân trương trình.
A. SAI
B. ĐÚNG
C. CHƯƠNG TRÌNH BỊ LỖI
D. KHÔNG CÓ GÌ CẢ
Câu trả lời của bạn
Chương trình sẽ bị lỗi vì thiếu dấu ; ở chỗ sau write('dung')
→ Chọn C
Câu trả lời của bạn
uses crt;
var a:array[1..100]of integer;
i,n,min,dem:integer;
begin
clrscr;
write('Nhap n='); readln(n);
for i:=1 to n do
begin
write('A[',i,']='); readln(a[i]);
end;
min:=a[1];
for i:=1 to n do
if min>a[i] then min:=a[i];
dem:=0;
for i:=1 to n do
if min=a[i] then inc(dem);
writeln('So phan tu co gia tri nho nhat trong day la: ',dem);
readln;
end.
Input | Output |
Luon chuc hoc ban gioi luon 2 4 1 6 3 5 | Chuc ban luon luon hoc gioi |
Câu trả lời của bạn
Program hotrotinhoc;
var s,s1,st,st1: string;
d,i,j,n,d1,code : integer;
a: array[1..249] of string;
begin
Readln(s); s:=s+#32;
readln(s1);
i:=0;
while length(s)<>0 do
begin
d:=pos(#32,s);
st:=copy(s,1,d-1);
inc(i);
a[i]:=st;
delete(s,1,d);
end;
for j:=1 to length(s1) do
if s1[j] in ['0'..'9'] then
begin
val(s1[j],d1,code);
st1:=st1+a[d1]+#32;
end;
for i:=1 to length(st1) do
if st1[i] in ['A'..'Z'] then st1[i]:=chr(ord(st1[i])+32);
st1[1]:=Upcase(st1[1]);
write(st1);
readln
end.
Câu trả lời của bạn
Người ta phải xây dựng các ngôn ngữ lập trình bậc cao, bởi những lí do sau:
– Ngôn ngữ lập trình bậc cao gần với ngôn ngữ tự nhiên hơn, thuận tiện cho đông đảo người lập trình (không cho cho những người lập trình chuyên nghiệp).
– Ngôn ngữ lập trình bậc cao nói chung không phụ thuộc vào loại máy, cùng một chương trình có thê thực hiện trên nhiều loại máy khác nhau.
– Chương trình viết bằng ngôn ngữ bậc cao dễ hiểu, dễ hiệu chỉnh và dễ nâng cấp hơn.
– Ngôn ngữ lập trình bậc cao cho phép làm việc với nhiều kiểu dữ liệu và cách tổ chức dữ liệu đa dạng, thuận tiện cho mô tả thuật toán.
Kiem tra
TRUE
Baitap5
Đúng
Tongso_lop11A
12_con_giap
Câu trả lời của bạn
Câu trả lời của bạn
Câu trả lời của bạn
Chương trình dịch là chương trình đặc biệt, có chức năng chuyển đổi chương trình được viết trên ngôn ngữ lập trình bậc cao thành chươnng trình thực hiện được trên máy tính cụ thể.
– Chúng ta cần phải có chương trình dịch bởi vì chương trình dịch có chức năng chuyển đổi chương trình được viết bằng ngôn ngữ lập trình bậc cao thành chương trình thực hiện được trên máy cụ thể. Nó nhận đâu vào là chương trình viết bằng ngôn ngữ lập trình bậc cao (chương trình nguồn) là dữ liệu vào (Input), thực hiện chuyẻn đổi samg ngôn ngữ máy (chương trình đích) là kết qua ra (Output).
Ngoài ra, chương trình dịch trải qua hai giai đoạn: phân tích và tổng hợp.
Giai đoạn phâi tích nhầm phân tích chương trình nguồn về từ vựng và cú pháp. Giai đoạn tổng hợp nhằm tạo ra chương trình đích gồm ba bước, đó là:
Sinh mã trung gian (chuyển chương trình nguồn về chương trình trung gian);
Tối ưu mã (chỉnh sửa, tối ưu chương trình trung gian);
Sinh mã (tạo chương trình đích từ chương trinh trung gian đã tối ưu).
Câu trả lời của bạn
Các điểm khác nhau giữa tên dành riêng và tên chuẩn, đó là:
Tên dành riêng không được dùng khác với ý nghĩa xác định, tên chuẩn có thể dùng với ý nghĩa khác.
Câu trả lời của bạn
Biên dịch và thông dịch khác nhau ở những điếm sau:
– Trình biên dịch duyệt, kiểm tra, phát hiện lỗi, xác định chương trình nguồn có dịch được không. Dịch toàn bộ chương trình nguồn thành một chương trình đích có thể thực hiện trên máy và có thể lưu trữ lại để sử dụng về sau khi cần thiết.
Trình thông dịch lần lượt dịch từng câu lệnh ra ngôn ngữ máy rồi thực hiện ngay câu lệnh vừa dịch được hoặc thông báo lỗi nếu không dịch được.
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 *