From 7de121c4b4ef888a0d1990c27144a7f9dd8c5f94 Mon Sep 17 00:00:00 2001 From: Raphael McSinyx Date: Sun, 6 Nov 2016 11:13:14 +0700 Subject: Thêm đề HSG 12 huyện Vĩnh Tường, Vĩnh Phúc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "9/Q-Hu\341\272\277-2014/README.md" | 53 ++++++++++++++++++++++++++++++++++++ "9/Q-Hu\341\272\277-2014/bai1.pas" | 15 ++++++++++ "9/Q-Hu\341\272\277-2014/bai2.pas" | 35 ++++++++++++++++++++++++ "9/Q-Hu\341\272\277-2014/bai3.pas" | 34 +++++++++++++++++++++++ "9/TP-Hu\341\272\277-2014/README.md" | 53 ------------------------------------ "9/TP-Hu\341\272\277-2014/bai1.pas" | 15 ---------- "9/TP-Hu\341\272\277-2014/bai2.pas" | 35 ------------------------ "9/TP-Hu\341\272\277-2014/bai3.pas" | 34 ----------------------- 8 files changed, 137 insertions(+), 137 deletions(-) create mode 100644 "9/Q-Hu\341\272\277-2014/README.md" create mode 100644 "9/Q-Hu\341\272\277-2014/bai1.pas" create mode 100644 "9/Q-Hu\341\272\277-2014/bai2.pas" create mode 100644 "9/Q-Hu\341\272\277-2014/bai3.pas" delete mode 100644 "9/TP-Hu\341\272\277-2014/README.md" delete mode 100644 "9/TP-Hu\341\272\277-2014/bai1.pas" delete mode 100644 "9/TP-Hu\341\272\277-2014/bai2.pas" delete mode 100644 "9/TP-Hu\341\272\277-2014/bai3.pas" (limited to '9') diff --git "a/9/Q-Hu\341\272\277-2014/README.md" "b/9/Q-Hu\341\272\277-2014/README.md" new file mode 100644 index 0000000..9a79443 --- /dev/null +++ "b/9/Q-Hu\341\272\277-2014/README.md" @@ -0,0 +1,53 @@ +# THI CHỌN HỌC SINH GIỎI CẤP THÀNH PHỐ + +UBND THÀNH PHỐ HUẾ + +PHÒNG GIÁO DỤC VÀ ĐÀO TẠO + +MÔN TIN HỌC - NĂM HỌC: 2013-2014 + +Thời gian: 120 phút (Không kể thời gian giao đề) + +## Bài 1 (3 điểm) + +Hai số tự nhiên `n`, `m` được gọi là nguyên tố tương đương nếu chúng có chung +các ước số nguyên tố. + +Hãy viết chương trình nhập vào hai số `n`, `m` và kiểm +tra chúng có là nguyên tố tương đương với nhau hay không. + +**Ví dụ:** Số 75 và số 15 là nguyên tố tương đương vì chúng có cùng các ước số +nguyên tố là 3 và 5. + +## Bài 2 (3 điểm) + +Cho hệ phương trình bậc nhất hai ẩn: + + ax + by = c + a'x + b'y = c' + +Hãy viết chương trình giải hệ phương trình trên, đồng thời xác định vị trí +tương đối của hai đường thẳng `d: ax + by = c` và `d': a'x + b'y =c'` đã tạo +nên hệ phương trình. + +## Bài 3 (4 điểm) + +Cho hai xâu `X`, `Y` chứa các kí tự số từ 0 đến 9 và không dài quá 250 kí tự. + +Hãy viết chương trình tạo ra xâu `ST` thoả mãn các điều kiện sau: + +* Gồm các kí tự số vừa có mặt ở xâu `X`, vừa có mặt ở xâu `Y` +* Các kí tự số trong xâu `ST` chỉ xuất hiện duy nhất một lần +* Giá trị xâu `ST` nhận được là một số đạt giá trị lớn nhất + +Dữ liệu vào cho bởi file `INPUT.INP` chứa giá trị xâu `X` và xâu `Y`, mỗi xâu +nằm trên một dòng. + +Dữ liệu ra chứa ở file `OUTPUT.OUT` là số lớn nhất nhận được. + +**Ví dụ:** + +INPUT.INP | OUTPUT.OUT +--------- | ---------- +19012304 | 43210 +034012 | diff --git "a/9/Q-Hu\341\272\277-2014/bai1.pas" "b/9/Q-Hu\341\272\277-2014/bai1.pas" new file mode 100644 index 0000000..7bd0d92 --- /dev/null +++ "b/9/Q-Hu\341\272\277-2014/bai1.pas" @@ -0,0 +1,15 @@ +var + n, m, p: qword; + +begin + read(n, m); + + while m <> 0 do + begin + p := n mod m; + n := m; + m := p + end; + + writeln(n <> 1) +end. diff --git "a/9/Q-Hu\341\272\277-2014/bai2.pas" "b/9/Q-Hu\341\272\277-2014/bai2.pas" new file mode 100644 index 0000000..172137d --- /dev/null +++ "b/9/Q-Hu\341\272\277-2014/bai2.pas" @@ -0,0 +1,35 @@ +var + a, b, c, e, p, k, tmp: real; + +function det(a, b, c, d: real): real; + begin + exit(a * d - b * c) + end; + +begin + read(a, b, c, e, p, k); + + tmp := det(a, b, e, p); + + if tmp <> 0 then + begin + writeln('x = ', (det(c, b, k, p) / tmp):0:6); + writeln('y = ', (det(a, c, e, k) / tmp):0:6); + writeln('Hai đường thẳng cắt nhau.') + end + else if c <> k then + begin + writeln('Phương trình vô nghiệm.'); + writeln('Hai đường thẳng song song.') + end + else + begin + if a = 0 then + writeln('y = ', (c / b):0:6) + else if b = 0 then + writeln('x = ', (c / a):0:6) + else + writeln('x = ', (-b / a):0:6, 'y + ', (c / a):0:6); + writeln('Hai đường thẳng trùng nhau.') + end; +end. diff --git "a/9/Q-Hu\341\272\277-2014/bai3.pas" "b/9/Q-Hu\341\272\277-2014/bai3.pas" new file mode 100644 index 0000000..91fc05f --- /dev/null +++ "b/9/Q-Hu\341\272\277-2014/bai3.pas" @@ -0,0 +1,34 @@ +var + x, y: string; + f: text; + a: array[0 .. 9] of shortint; + b: shortint; + c: char; + +begin + assign(f, 'INPUT.INP'); + reset(f); + readln(f, x); + readln(f, y); + close(f); + + fillchar(a, 0, sizeof(a)); + + for c in x do + a[ord(c) - 48] := 1; + + for c in y do + begin + b := ord(c) - 48; + if a[b] = 1 then + a[b] := 2 + end; + + assign(f, 'OUTPUT.OUT'); + rewrite(f); + for b := 9 downto 0 do + if a[b] = 2 then + write(f, b); + writeln(f); + close(f) +end. diff --git "a/9/TP-Hu\341\272\277-2014/README.md" "b/9/TP-Hu\341\272\277-2014/README.md" deleted file mode 100644 index 9a79443..0000000 --- "a/9/TP-Hu\341\272\277-2014/README.md" +++ /dev/null @@ -1,53 +0,0 @@ -# THI CHỌN HỌC SINH GIỎI CẤP THÀNH PHỐ - -UBND THÀNH PHỐ HUẾ - -PHÒNG GIÁO DỤC VÀ ĐÀO TẠO - -MÔN TIN HỌC - NĂM HỌC: 2013-2014 - -Thời gian: 120 phút (Không kể thời gian giao đề) - -## Bài 1 (3 điểm) - -Hai số tự nhiên `n`, `m` được gọi là nguyên tố tương đương nếu chúng có chung -các ước số nguyên tố. - -Hãy viết chương trình nhập vào hai số `n`, `m` và kiểm -tra chúng có là nguyên tố tương đương với nhau hay không. - -**Ví dụ:** Số 75 và số 15 là nguyên tố tương đương vì chúng có cùng các ước số -nguyên tố là 3 và 5. - -## Bài 2 (3 điểm) - -Cho hệ phương trình bậc nhất hai ẩn: - - ax + by = c - a'x + b'y = c' - -Hãy viết chương trình giải hệ phương trình trên, đồng thời xác định vị trí -tương đối của hai đường thẳng `d: ax + by = c` và `d': a'x + b'y =c'` đã tạo -nên hệ phương trình. - -## Bài 3 (4 điểm) - -Cho hai xâu `X`, `Y` chứa các kí tự số từ 0 đến 9 và không dài quá 250 kí tự. - -Hãy viết chương trình tạo ra xâu `ST` thoả mãn các điều kiện sau: - -* Gồm các kí tự số vừa có mặt ở xâu `X`, vừa có mặt ở xâu `Y` -* Các kí tự số trong xâu `ST` chỉ xuất hiện duy nhất một lần -* Giá trị xâu `ST` nhận được là một số đạt giá trị lớn nhất - -Dữ liệu vào cho bởi file `INPUT.INP` chứa giá trị xâu `X` và xâu `Y`, mỗi xâu -nằm trên một dòng. - -Dữ liệu ra chứa ở file `OUTPUT.OUT` là số lớn nhất nhận được. - -**Ví dụ:** - -INPUT.INP | OUTPUT.OUT ---------- | ---------- -19012304 | 43210 -034012 | diff --git "a/9/TP-Hu\341\272\277-2014/bai1.pas" "b/9/TP-Hu\341\272\277-2014/bai1.pas" deleted file mode 100644 index 7bd0d92..0000000 --- "a/9/TP-Hu\341\272\277-2014/bai1.pas" +++ /dev/null @@ -1,15 +0,0 @@ -var - n, m, p: qword; - -begin - read(n, m); - - while m <> 0 do - begin - p := n mod m; - n := m; - m := p - end; - - writeln(n <> 1) -end. diff --git "a/9/TP-Hu\341\272\277-2014/bai2.pas" "b/9/TP-Hu\341\272\277-2014/bai2.pas" deleted file mode 100644 index 172137d..0000000 --- "a/9/TP-Hu\341\272\277-2014/bai2.pas" +++ /dev/null @@ -1,35 +0,0 @@ -var - a, b, c, e, p, k, tmp: real; - -function det(a, b, c, d: real): real; - begin - exit(a * d - b * c) - end; - -begin - read(a, b, c, e, p, k); - - tmp := det(a, b, e, p); - - if tmp <> 0 then - begin - writeln('x = ', (det(c, b, k, p) / tmp):0:6); - writeln('y = ', (det(a, c, e, k) / tmp):0:6); - writeln('Hai đường thẳng cắt nhau.') - end - else if c <> k then - begin - writeln('Phương trình vô nghiệm.'); - writeln('Hai đường thẳng song song.') - end - else - begin - if a = 0 then - writeln('y = ', (c / b):0:6) - else if b = 0 then - writeln('x = ', (c / a):0:6) - else - writeln('x = ', (-b / a):0:6, 'y + ', (c / a):0:6); - writeln('Hai đường thẳng trùng nhau.') - end; -end. diff --git "a/9/TP-Hu\341\272\277-2014/bai3.pas" "b/9/TP-Hu\341\272\277-2014/bai3.pas" deleted file mode 100644 index 91fc05f..0000000 --- "a/9/TP-Hu\341\272\277-2014/bai3.pas" +++ /dev/null @@ -1,34 +0,0 @@ -var - x, y: string; - f: text; - a: array[0 .. 9] of shortint; - b: shortint; - c: char; - -begin - assign(f, 'INPUT.INP'); - reset(f); - readln(f, x); - readln(f, y); - close(f); - - fillchar(a, 0, sizeof(a)); - - for c in x do - a[ord(c) - 48] := 1; - - for c in y do - begin - b := ord(c) - 48; - if a[b] = 1 then - a[b] := 2 - end; - - assign(f, 'OUTPUT.OUT'); - rewrite(f); - for b := 9 downto 0 do - if a[b] = 2 then - write(f, b); - writeln(f); - close(f) -end. -- cgit 1.4.1