Để mô tả các thao tác trong thuật toán, mỗi ngôn ngữ lập trình đều sử dụng một số khái niệm cơ bản: phép toán, biểu thức, gán giá trị. Dưới đây sẽ xét các khái niệm đó trong Pascal. Mời các em cùng theo dõi nội dung chi tiết của bài học.
Phép toán | Trong Toán học | Trong Pascal |
Các phép toán số học với số nguyên | + (cộng), - (trừ), . (nhân), div (chia nguyên), mod (lấy phần div) | +, -,*, div, mod |
Các phép toán số học với số thực | + (cộng). - (trừ), . (nhân),: (chia) | +,-, *,/ |
Các phép toán quan hệ | < (nhỏ hơn), < (nhỏ hơn hoặc bằng), > (lớn hơn hoặc bằng). = (bằng), * (khác) | <, <=, >=, =, < > |
Các phép toán logic | -1 (phủ định), \(\vee\) (hoặc), \(\wedge\) (và) | not, or, and |
Bảng 1. Kí hiệu các phép toán trong Toán học và trong Pascal
Chú ý 1:
Trong lập trình, biểu thức số học là một biến kiểu số hoặc một hằng số hoặc các biến kiểu số và các hằng số liên kết với nhau bởi một số hữu hạn phép toán số học, các dấu ngoặc tròn (và) tạo thành một biểu thức có dạng tương tự như cách viết trong toán học với những quy tắc sau:
Chú ý 2:
Hàm | Biểu diễn Toán học | Biểu diễn trong Pascal | Kiểu đối số | Kết quả |
Bình phương | x2 | sqr(x) | Thực hoặc nguyên | Theo kiểu của đối số |
Căn bậc hai | \(\sqrt x\) | Sqrt(x) | Thực hoặc nguyên | Thực |
Giá trị tuyệt đối | |x| | Abs(x) | Thực | Theo kiểu của đối số |
Lôgarit tự nhiên | lnx | ln(x) | Thực | Thực |
Lũy thừa của số e | ex | Exp(x) | Thực | Thực |
Sin | Sinx | Sin(x) | Thực | Thực |
Cos | Cosx | Cos(x) | Thực | Thực |
Bảng 2. Một số hàm chuẩn thường dùng
A | 0 | 1 | ||
Not A | 1 | 0 | ||
A | 0 | 0 | 1 | 1 |
B | 0 | 1 | 0 | 1 |
A and B | 0 | 0 | 0 | 1 |
A not B | 1 | 1 | 1 | 0 |
Bảng 3. Bảng giá trị phép toán logic
Ví dụ 1:
Một số điểm chú ý khi sử dụng lệnh gán:
Biểu diễn biểu thức sau sang ngôn ngữ lập trình Pascal:
a. 2a + 3b +c;
b. \(\frac{x+y}{1-\frac{2}{z}}+\frac{x^2}{2z}\)
c. \(\frac{-b+\sqrt{b^2-4ac}}{2a}\)
Gợi ý làm bài:
a. 2*a + 3*b + c;
b. ((x+y)/(1-(2/z)))+(x*x/(2*z));
c. (-b+sqrt(b*b-4*a*c))/(2*a).
Ví dụ biểu thức quan hệ và biểu thức logic.
Gợi ý làm bài:
Biểu thức quan hệ:
Biểu thức logic:
Ví dụ câu lệnh gán.
Gợi ý làm bài:
Sau khi học xong Bài 6: Phép toán, biểu thức, câu lệnh gán, các em cần nắm vững 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 6 cực hay có đáp án và lời giải chi tiết.
Chọn cách biểu diễn đúng của biểu thức toán học sau sang Pascal?
\((1+z)\frac{x+\frac{y}{z}}{a-\frac{1}{1+x^3}}\)
Chọn cách biểu diễn đúng của biểu thức trong Pascal sau về biểu thức trong toán học?
ABS(x – y)/(x*x + SQR(y) +1)
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é!
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
Chọn cách biểu diễn đúng của biểu thức toán học sau sang Pascal?
\((1+z)\frac{x+\frac{y}{z}}{a-\frac{1}{1+x^3}}\)
Chọn cách biểu diễn đúng của biểu thức trong Pascal sau về biểu thức trong toán học?
ABS(x – y)/(x*x + SQR(y) +1)
Biểu thức nào sau kiểm tra "n là một số nguyên dương chẵn"?
Cho biểu thức sau:
(a mod 3 = 0) and (a mod 4 = 0)
Số a nhận giá trị nào sau đây để biểu thức cho kết quả là TRUE?
Biểu thức Toán học \(\frac{x+y}{x-z}\) khi chuyển sang ngôn ngữ lập trình Pascal sẽ có dạng:
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
Biểu thức quan hệ
Biểu thức logic
Câu trả lời của bạn
Nên dùng tuple để lưu trữ những thông tin bạn không muốn thay đổi trong quá trình thực thi, chẳng hạn như danh sách chọn lựa giới tính của một người, chúng ta có thể định nghĩa dưới dạng một tuple như sau: gender_chocies = ((1, 'Nam'), (2, 'Nữ'), (3, 'Không tiết lộ')). Khi lưu vào database, chúng ta chỉ cần lưu các giá trị 1, 2, hoặc 3 để tiện xử lý. Khi hiện thị, chúng ta có thể dễ dàng hiện thị Nam thay cho giá trị 1, Nữ thay cho giá trị 2, và Không tiết lộ thay cho giá trị 3.
Vì lists có thể thay đổi được sau khi khởi tạo, chúng ta nên dùng nó để chứa các thông tin cần thay đổi trong quá trình thực thi chương trình. Ví dụ: danh sách các mã chứng khoán đáp ứng một tiêu chí lọc. Chúng ta lưu trong list để có thể thay đổi thứ tự của các mã chứng khoán trong danh sách đó theo tên, hoặc theo giá.
Câu trả lời của bạn
List | Tuple |
---|---|
List là các đối tượng có thể thay đổi được. (Các đối tượng có thể thay đổi sau khi khởi tạo.) | Tuple bao gồm các đối tượng không thay đổi được. (Các đối tượng không thể thay đổi được sau khi khởi tạo.) |
List sử dụng bộ nhớ lớn. | Tuple sử dụng bộ nhớ nhỏ. |
List được lưu trong 2 khối bộ nhớ (một cái có kích thước cố định, cái còn lại có kích thước biến đổi để lưu trữ dữ liệu.) | Tuple được lưu trong một khối nhớ duy nhất. |
Tạo list chậm hơn vì cần truy cập 2 khối bộ nhớ. | Tạo tuple nhanh hơn tạo list. |
Có thể xoá hoặc thay thế các thành phần trong list. | Không thể xoá hoặc thay thế các thành phần trong tuple. |
Một list có dữ liệu lưu trong cặp ngoặc vuông []. Ví dụ: [1,2,3] | Một tuple có dữ liệu lưu trong cặp ngoặc đơn (). Ví dụ: (1,2,3) |
Câu trả lời của bạn
Khi lập trình, sẽ có lúc chúng ta cần chuyển list thành array để thực hiện các phép toán trên đó một cách hiệu quả hơn. Để thực hiện việc này, chúng ta sử dụng hàm numpy.array(). Hàm này nhận 1 list làm tham số và trả về một array chứa các thành phần của list. Ví dụ:
import numpy as np
a = [1, 2, 3]
a_array = np.array(a)
Câu trả lời của bạn
List | Array |
---|---|
Python list linh hoạt và có thể lưu nhiều kiểu dữ liệu khác nhau. | Python array là một bọc mỏng quanh C array. |
List là một phần trong cú pháp của Python, nên không cần khai báo trước. | Array cần được import, hoặc khai báo từ các thư viện khác (như numpy) |
List có thể thay đổi kích thước một cách nhanh chóng vì Python khởi tạo thêm một số thành phần khác trong list ngay khi khởi tạo. | Array không thay đổi kích thước được. Thay vào đó, các giá trị của một array sẽ được sao chép qua một array khác có kích thước lớn hơn. |
List có thể chứa các dữ liệu không đồng nhất về kiểu. | Array chỉ có thể chứa các dữ liệu đồng nhất về kiểu. |
Không thể áp dụng các hàm toán học trực tiếp lên list. Thay vào đó, chúng phải được áp dụng lần lượt trên từng thành phần của list. | Array được tối ưu hoá cho các phép tính số học. |
List tiêu thụ nhiều bộ nhớ hơn vì chúng phân bổ thêm bộ nhớ cho một số thành phần bổ sung để dễ dàng đưa thêm thành phần vào list. | Vì array không thay đổi kích thước sau khi khởi tạo, chúng tiêu thụ ít bộ nhớ hơn. |
Câu trả lời của bạn
Câu trả lời của bạn
Có thể tóm tắt các bước như sau:
Khai báo lớp template
Khai báo và định nghĩa hàm để trao đổi giá trị giữa hai số
Khai báo và định nghĩa hàm để lấy các giá trị
Đọc các giá trị và gọi hàm tương ứng
Hiển thị kết quả
#include<iostream> #include<conio.h> template<class t> void swap(t &x,t &y) { t temp=x; x=y; y=temp; } void fun(int a,int b,float c,float d) { cout<<"\nGia tri a va b truoc khi trao doi la :"<<a<<"\t"<<b; swap(a,b); cout<<"\nGia tri a va b sau khi trao doi la :"<<a<<"\t"<<b; cout<<"\n\nGia tri c va d truoc khi trao doi la :"<<c<<"\t"<<d; swap(c,d); cout<<"\nGia tri c va d sau khi trao doi la :"<<c<<"\t"<<d; } int main() { int a,b; float c,d; cout<<"Nhap gia tri A, B (so nguyen): "; cin>>a>>b; cout<<"Nhap gia tri C, D (so thuc): "; cin>>c>>d; fun(a,b,c,d); return 0; }
Câu trả lời của bạn
Có thể tóm tắt các bước như sau:
Khai báo lớp
Khai báo và định nghĩa hàm inline cho các hàm để tính tích và lập phương
Khai báo đối tượng và các biến.
Đọc hai giá trị
Gọi hàm tính tích và lập phương bởi sử dụng các đối tượng của lớp.
Trả về giá trị và hiển thị
#include<iostream> #include<conio.h> using namespace std; class line { public: inline float phepnhan(float x,float y) { return(x*y); } inline float lapphuong(float x) { return(x*x*x); } }; int main() { line obj; float giatri1,giatri2; cout<<"Nhap hai gia tri:"; cin>>giatri1>>giatri2; cout<<"\nGia tri cua phep tinh tich la: "<<obj.phepnhan(giatri1,giatri2); cout<<"\n\nGia tri cua phep tinh lap phuong la: "<<obj.lapphuong(giatri1)<<"\t"<<obj.lapphuong(giatri2); return 0; }
Câu trả lời của bạn
Đầu tiên chúng ta khai báo một lớp Base với các thành viên dữ liệu và các hàm thành viên của nó. Sử dụng hàm get() để đọc dữ liệu nhập từ người dùng.
Sau đó, khai báo hàm friend có tên là trungbinh(base ob) bên trong lớp này. Ở bên ngoài lớp, bạn định nghĩa hàm friend này và thực hiện tính trung bình của hai số.
#include<iostream>
#include<conio.h>
using namespace std;
class base
{
int giatri1,giatri2;
public:
void get()
{
cout<<"Nhap hai gia tri:";
cin>>giatri1>>giatri2;
}
friend float trungbinh(base ob);
};
float trungbinh(base ob)
{
return float(ob.giatri1+ob.giatri2)/2;
}
int main()
{
base obj;
obj.get();
cout<<"\n Gia tri trung binh la : "<<trungbinh(obj);
return 0;
}
Câu trả lời của bạn
Có thể tóm tắt các bước như sau:
Khai báo lớp fn với các thành viên dữ liệu và hàm thành viên của nó.
Đọc các lựa chọn từ người dùng.
Lựa chọn = 1, thì hàm dientich() sẽ tính diện tích của hình tròn với một tham số nguyên.
Lựa chọn = 2, thì hàm này sẽ tính diện tích của hình chữ nhật với hai tham số nguyên.
Lựa chọn = 3, thì hàm này sẽ tính diện tích của hình tam giác với ba tham số (hai tham số nguyên, một tham số thực).
Lựa chọn = 4, thì kết thúc chương trình.
#include<iostream> #include<stdlib.h> #include<conio.h> #define pi 3.14 using namespace std; class fn { public: void dientich(int); //hinh tron void dientich(int,int); //hinh chu nhat void dientich(float ,int,int); //hinh tam giac }; void fn::dientich(int a) { cout<<"Dien tich hinh tron la: "<<pi*a*a; } void fn::dientich(int a,int b) { cout<<"Dien tich hinh chu nhat la: "<<a*b; } void fn::dientich(float t,int a,int b) { cout<<"Dien tich hinh tam giac la: "<<t*a*b; } int main() { int ch; int a,b,r; fn obj; cout<<"\n\t\tNap chong ham"; cout<<"\n1. Dien tich hinh tron" "\n2. Dien tich hinh chu nhat" "\n3. Dien tich hinh tam giac" "\n4. Thoat"; cout<<"\nNhap lua chon cua ban: "; cin>>ch; switch(ch) { case 1: cout<<"Nhap ban kinh duong tron: "; cin>>r; obj.dientich(r); break; case 2: cout<<"Nhap hai canh cua hinh chu nhat: "; cin>>a>>b; obj.dientich(a,b); break; case 3: cout<<"Nhap cac canh cua hinh tam giac: "; cin>>a>>b; obj.dientich(0.5,a,b); break; case 4: exit(0); } return 0; }
Câu trả lời của bạn
#include <cstdlib>
#include <iostream>
#include<iomanip>
#include<cmath>
using namespace std;
void hamsapxep(int danhsach[]){
int i,j;
int temp;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
if(danhsach[j]>danhsach[j+1]){
temp=danhsach[j];
danhsach[j]=danhsach[j+1];
danhsach[j+1]=temp;
}
for(i=0;i<10;i++)cout<<danhsach[i]<<"\n";
}
void hamsapxep(float danhsach[]){
int i,j;
float temp;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
if(danhsach[j]>danhsach[j+1]){
temp=danhsach[j];
danhsach[j]=danhsach[j+1];
danhsach[j+1]=temp;
}
for(i=0;i<10;i++)cout<<danhsach[i]<<"\n";
}
void hamsapxep(double danhsach[]){
int i,j;
double temp;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
if(danhsach[j]>danhsach[j+1]){
temp=danhsach[j];
danhsach[j]=danhsach[j+1];
danhsach[j+1]=temp;
}
for(i=0;i<10;i++)cout<<danhsach[i]<<"\n";
}
int main(int argc, char *argv[])
{
int danhsach[]={11,2,15,14,6,22,26,32,9,20};
hamsapxep(danhsach);
return 0;
}
Câu trả lời của bạn
#include <cstdlib> #include <iostream> using namespace std; double avg(int arr[],int size){ //khong xac dinh kich co mang giua hai dau [ va ] int sum=0; double r; for(int i=0;i<size;i++) sum+=arr[i]; r=(double)sum/size; return(r); } int main(){ int n; cout<<"Nhap so cac so nguyen:"; cin>>n; int arr[n]; for(int i=0;i<n;i++){ cout<<"Gia tri "<<i+1<<": "; cin>>arr[i]; } cout<<"Gia tri trung binh="<<avg(arr,n)<<endl; //chi dat ten cho mang khi ham duoc goi return 0; }
Sn= 11 * 22 * 33 * 44 *...* nn
Câu trả lời của bạn
#include <cstdlib> #include <iostream> #include <cmath> using namespace std; double bieuthuc(int); int main(int argc, char *argv[]) { int n; cout<<"Nhap n bang: "; cin>>n; cout<<"Ket qua: "<<bieuthuc(n)<<endl; return 0; } double bieuthuc(int n){ if(n==1) return 1; //co so co so else return(pow((float)n,n)* bieuthuc(n-1)); //co so chung }
Câu trả lời của bạn
#include <cstdlib> #include <iostream> #include<iomanip> #include<cmath> using namespace std; int giatrimax(int a,int b,int c){ if(a>b){ if(a>c) return(a); else return(c);} else if(b>c) return(b); else return(c); } int giatrimin(int a,int b,int c){ if(a<b){ if(a<c) return(a); else return(c);} else if(b<c) return(b); else return(c); } int main(int argc, char *argv[]) { int a,b,c; cout<<"Nhap ba so nguyen:"; cin>>a>>b>>c; cout<<"Gia tri lon nhat="<<giatrimax(a,b,c);cout<<"\n"; cout<<"Gia tri nho nhat="<<giatrimin(a,b,c); cout<<"\n"; return 0; }
Câu trả lời của bạn
#include<iostream>
#include<conio.h>
using namespace std;
//ham
long giaithua(int);
int main()
{
// Khai bao bien
int counter, n;
// Nhap gia tri
cout<<"Nhap so :";
cin>>n;
// Goi ham giaithua
cout<<"Gia tri giai thua cua " <<n<< " la "<<giaithua(n);
return 0;
}
// Ham giaithua
long giaithua(int n)
{
int counter;
long fact = 1;
//vong lap for
for (int counter = 1; counter <= n; counter++)
{
fact = fact * counter;
}
return fact;
}
===================================================
MENU
===================================================
1. Cong
2. Tru
3. Nhan
4. Chia
5. Chia lay phan du
Nhap lua chon cua ban: 1
Nhap hai so: 23 2
Ket qua: 25
Tiep tuc? y
Tiếp đó, bạn hỏi người dùng xem họ có muốn tiếp tục chương trình với các tùy chọn khác không. Nếu họ chọn y hoặc Y, thì chương trình sẽ tiếp tục nhắc người dùng lựa chọn một lần nữa, nếu không, chương trình sẽ kết thúc.
Câu trả lời của bạn
#include <cstdlib> #include <iostream> #include<iomanip> using namespace std; void displaymenu(){ cout<<"==================================================="<<"\n"; cout<<" MENU "<<"\n"; cout<<"==================================================="<<"\n"; cout<<" 1. Cong"<<"\n"; cout<<" 2. Tru"<<"\n"; cout<<" 3. Nhan"<<"\n"; cout<<" 4. Chia"<<"\n"; cout<<" 5. Chia lay phan du"<<"\n"; } int Cong(int a,int b){ return(a+b); } int Tru(int a, int b){ return(a-b); } int Nhan(int a, int b){ return(a*b); } float Chia(int a,int b){ return(a/b); } int Phandu(int a, int b){ return(a%b); } int main(int argc, char *argv[]) { //hien thi menu displaymenu(); int luachon; int a; int b; char confirm; do { cout<<"Nhap lua chon cua ban (1-5):"; cin>>luachon; cout<<"Nhap hai so nguyen:"; cin>>a>>b; cout<<"\n"; switch(luachon){ case 1:cout<<"Ket qua:"<<Cong(a,b);break; case 2:cout<<"Ket qua:"<<Tru(a,b);break; case 3:cout<<"Ket qua:"<<Nhan(a,b);break; case 4:cout<<"Ket qua:"<<Chia(a,b);break; case 5:cout<<"Ket qua:"<<Phandu(a,b);break; default:cout<<"Khong hop le"; } cout<<"\nNhan y hoac Y de tiep tuc:"; cin>>confirm; }while(confirm=='y'||confirm=='Y'); return 0; }
1*1=1 2*1=2 3*1=3 …… 9*1=1
1+2=2 2*2=4 3*2=6 …… 9*2=18
……. ……. ……. …… …….
1*9=9 2*8=18 3*9=27 …… 9*9=81
Câu trả lời của bạn
#include <cstdlib> #include <iostream> #include<iomanip> #include<cmath> using namespace std; void bangnhan(){ int i,j; for(i=1;i<10;i++){ for(j=1;j<10;j++) cout<<j<<"*"<<i<<"="<<j*i<<"\t"; cout<<"\n";} } int main(int argc, char *argv[]) { bangnhan(); return 0; }
Câu trả lời của bạn
#include <iostream> #include <conio.h> using namespace std; int lapphuong(int x); //la prototype. int main() { int a; cout << "Nhap mot so nguyen : "; cin>>a; cout << "Gia tri lap phuong cua " << a << " la : " << lapphuong(a) << endl; //goi ham lapphuong(a). return 0; } //dinh nghia ham int lapphuong(int x) { int y; y=x*x*x; return(y); }
Câu trả lời của bạn
#include <iostream> #include <conio.h> using namespace std; void value(int); int main() { int x; cout << "Nhap mot so nguyen : "; cin>>x; cout << "So ngay sau cua " << x << " la "; value(x); return 0; } void value(int x) { x++; cout << x << "." << endl; }
Câu trả lời của bạn
#include <iostream> #include <conio.h> #include <string.h> using namespace std; int main() { int slength; char x[81]; //cho phep nguoi dung nhap mot chuoi co do dai toi da la 80 ky tu. cout << "Nhap chuoi : " << endl; cin>>x; slength=strlen(x); cout << "Do dai cua chuoi " << x << " la " << slength << "." << endl; return 0; }
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 *