- Tạo một repo trên git với tên là
play-ts
- Khởi tạo 1 project angular ( hoặc node ts với TTS node )
- push code lên với nhánh develop
- Thực hiện bảo mật nhánh develop
- tạo ssh-key và clone lại project bằng ssh link
- Thực hành các lệnh:
rebase
,commit --amend
vàcommit --amend --no-edit
- Với mỗi bài tập bên dưới, yêu cầu checkout ra các nhánh riêng biệt và tạo PR mỗi khi xong
- Yêu cầu commit rõ ràng
- tạo ô input nhập mảng các số ( vd: 1,2,4,6,6,2,6 )
- In ra các số tương ứng với số lần nó xuất hiện trong mảng, sắp xếp từ số xuất hiện nhiều nhất đến nhỏ nhất Vd: 1,2,4,6,6,2,6 . In ra 6:3, 2:2, 1:1, 4: 1
- Tạo ô input nhập vào chuỗi bất kỳ
- In lại chuỗi đó theo dạng camelCase
Vd:
Foo Bar
=>fooBar
,--foo-bar--
=>fooBar
,__FOO_BAR__
=>fooBar
Viết chương trình để chuyền dữ liệu vào 1 template
- Tạo 2 ô input, 1 để viết template, 1 để chuyền dữ liệu
- In ra kết quả từ template đó
Ví dụ : Input 1 nhập vào hello
<%= user %>!
, Input 2 nhập vào là{ 'user': 'fred' }
, Kết quả in ra là :hello fred!
Kiểm tra xem chuỗi có kết thúc bằng chuỗi mục tiêu đã cho hay không.
Viết một hàm checkend nhận vào 2 hoặc 3 params in ra true hoặc false tùy điều kiện
VD: checkend('abc', 'c')
in ra true
checkend('abc', 'b')
in ra false
checkend('abc', 'b', 2)
in ra true
6. Viết chương trình in ra tất cả giờ trong 1 ngày cách nhau 10 phút ( vd: 01:00, 01:10, 01:20 ), đổ dữ liệu vào 1 thẻ select;
YÊU CẦU CALCULATOR APP
- Tính toán biểu thức do người dùng nhập vào : biểu thức phải chứa các kí tự cho phép như : 0...9, +, -, * , / , ( , ).
- Biểu thức dưới dạng chuỗi(biểu thức toán hạng cho các số nguyên) : vd : 3*2/4+5.
- Nếu có lỗi xuất hiện do người dùng nhập sai sẽ hiển thị ra lỗi :
- Nhập vào biểu thức các số không phải số nguyên : vd. 3.012*2.2
- Nhập các kí tự không được cho phép : &, # , ! , … 3.Nhập thiếu/thừa toán tử : vd. 3**3 , 3 +* 4 , 4*(4-3)(3+1), ...
- Với bất kì trường hợp nào ta phải cung cấp kết quả chính xác tuân theo các quy tắc toán học:
- Trong ngoặc trước ngoài ngoặc sau , ở đây ta dùng ngoặc tròn ().
- Nhân chia trước cộng trừ sau.
- Nếu cùng loại toán tử thì thực hiện tính toán từ trái qua phải.
- Nếu có lỗi tính toán thì hiển thị thông báo cho người dùng biết
- Ví dụ : lỗi chia cho 0.
- Các hàm tính toán :
- Cộng add(int a,int b)
- Trừ sub(int a,int b)
- Nhân mul(int a, int b)
- Chia divide(double a, double b)
- Test :
- Test định dạng : định dạng như trên đã đề cập phải đúng dạng chuỗi và là biểu thức toán hạng cho các số nguyên
- UnitTest: trong quá trình tính toán cần đánh giá kết quả đầu ra so với đầu vào có đúng với mong đợi : Ví dụ. Khi ta sử dụng hàm chia divide(3,2) kết quả mong đợi là 1.5 và so với thực tế có chính xác không ? nếu sai thì phải xem xét lại hàm divide()...
8. Viết chương trình tìm tất cả các số chia hết cho 7 nhưng không phải bội số của 5, nằm trong đoạn 10 và 200 (tính cả 10 và 200). Các số thu được sẽ được in thành chuỗi trên một dòng, cách nhau bằng dấu phẩy
10. Viết một chương trình tính giai thừa của một số nguyên dương n. Với n được nhập từ bàn phím. Ví dụ, n = 8 thì kết quả đầu ra phải là 1*2*3*4*5*6*7*8 = 40320
.
- Tạo ô input nhập vào text sau đó convert sang dạng json phía code
- Viết chưng trình hoán đổi vị trí key và value trong object đồng thời đảo ngược lại object
- Vd:
{ 'a': 3, 'b': 2, 'c': 1 }
=>{ '1': 'c', '2': 'b', '3': 'a' }
var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
- Output :
[{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]