# Tra cứu code python, c++, pascal
## Cấu trúc chương trình
### Python
```python=
print("Hello world!")
```
### C++
```cpp=
#include <iostream>
using namespace std;
int main() {
cout << "Hello world!" << endl;
}
```
### Pascal
```pascal=
begin
writeln('Hello world!');
readln;
end.
```
## Biến
### python
```python=
a=3
b=5
print(a)
print(b)
```
### C++
```cpp=
#include <iostream>
using namespace std;
int main() {
int a=3;
int b=5;
cout << a << b << endl;
}
```
### pascal
```pascal=
var a, b: integer;
begin
a := 3;
b := 5;
writeln(a, b);
readln;
end.
```
## Các pháp toán đại số
### python
```python=
print(5+7)
print(9-3)
print(12*5)
print(9/7)
print(9//7) # lấy thương
print(9&7) # lấy phần dư
print(2**2) # mũ
import math #sử dụng hàm toán học
#đang thử nghiệm
```
### C++
```cpp=
#include <iostream>
using namespace std;
int main() {
cout << 2+3 << endl;
cout << 9-3 << endl;
cout << 9*3 << endl;
cout << 9/3 << endl;
cout << 9.0/3 << endl;
// chú ý: kiểu dữ liệu ảnh hưởng đến phép chia.
cout << 11%3 << endl;
int a = 13;
cout << a++ << endl; // 13 do phép làm luôn
cout << a << endl; // 14 (trả ra kết quả phép tính sau cộng 1)
}
```
### pascal
```pascal=
var a, b: integer;
begin
a := 3;
b := 5;
writeln(a+b);
writeln(b-a);
writeln(b*17);
writeln(b/2);
writeln(b div 2);
writeln(b mod 2); //a lưu ý không có phép lũy thừa
end.
```
## Input, output
### Cơ bản
#### python
```python=
s = input() # mặc định input = string
n = int(input())
print(s, n)
```
#### C++
```cpp=
#include <iostream>
using namespace std;
int main() {
int a;
int b;
cin >> a;
cin >> b;
cout << a << b << endl;
}
```
#### pascal
##### Nhập trên bàn phím
```pascal=
var a: string;
b: integer;
begin
readln(a);
readln(b);
writeln(a, b);
readln;
end.
```
##### Nhập bằng tệp
Lưu ý: Khi nhập dữ liệu bằng tệp cần chú ý đến vị trí tệp để tránh bị lỗi.
Thường dùng trong các kỳ thi học sinh giỏi.
```pascal=
var fi, fo: text;
a, b, c: int64;
begin
assign(fi, 'input.txt');
assign(fo, 'output.txt');
reset(fi);
rewrite(fo);
readln(fi, a, b);
writeln(fo, 'Ket qua: ', a, ' + ', b, ' = ', a+b);
close(fi);
close(fo);
end.
```
### Format số thực
### Nhập xâu
#### python
Tương tự như nhập xâu bình thường.
#### C++
Tương tự (khai báo = string/char)
#### pascal
Khai báo biến ```s: string``` và nhập như bình thường (xem bên trên)
### Nhập mảng (hoặc list)
#### python
```python=
l = [int(v) for v in input().split()] # v có thể dùng cho các loại dữ liệu khác nhau
print(*l) # output list l
```
## Chuyển đổi các loại
## Câu điều kiện
### Python
```python=
n = 20
if n % 2 == 0:
print("even")
else:
print("odd") #in this case it return even.
```
### C++
```cpp=
#include <iostream>
using namespace std;
int main() {
int n=20;
if (n%2==0) {
cout << "even" << endl;
}
else {
cout << "odd" << endl;
}
}
```
### Pascal
```pascal=
var n: integer;
begin
n := 20;
if n mod 2 = 0 then begin
writeln('even');
end
else begin
writeln('odd');
readln;
end.
```
## Các vòng lặp
### for
#### Python
```python=
n = int(input())
for i in range(n):
print(i, end=" ")
```
#### C++
```cpp=
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
for (int i=0, i<n, i++):
cout << i << " ";
cout << endl;
}
```
#### Pascal
```pascal=
var i, n: integer;
begin
readln(n);
for i:= 0 to (n-1) do begin
writeln(i);
end;
end.
```
### while và repeat
## Xâu
### Input, output
### Các phép tính xâu