Tin học Đề thi hsg tin các tỉnh

Hải Ham Học

Học sinh
Thành viên
24 Tháng sáu 2017
133
34
26
21
Bà Rịa - Vũng Tàu
thcs hòa hiệp
[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

:"> Hi... xin chào những bạn đam mê phần tin học cấp 3 (về mảng pascal)
- Chẳng biết có mấy bạn đang đọc bài đăng này đã thi hsg nhỉ... ??
- Hiện mình đang tham gia thi hsg cấp 3 (10,11,12)...
- Mà là 1 nhóm tự ôn nên đề rất hạn chế, ai có biết đề nào hay và thuật toán thú vị có thể comment để mọi người cùng giải.. về pascal nhé :v do ít đả đụng đến C nên cũng không rành lắm
- Mong được sự hưởng ứng ..
Cám ơn sự đón đọc của mọi người ... <3 <3
Mình bắt đầu trước nhé !!
Đề: Nhập vào dãy N số nguyên dương, k. Đổi ví trị từ k số đầu ra sau và n-k số sau ra đầu dãy
ví dụ N=5, k=3 và có dãy: 1 2 3 4 5
=> kết quả in ra màn hình là 4 5 1 2 3
 
Last edited:
  • Like
Reactions: 02-07-2019.

02-07-2019.

Học sinh tiến bộ
HV CLB Lịch sử
Thành viên
4 Tháng năm 2018
1,485
1,656
236
Vĩnh Phúc
Trung học cơ sở Lập Thạch
:"> Không biết làm 1 bài đăng vậy có ăn "gậy" không nhưng ..thử đi xem sao
- Chẳng biết có mấy bạn đang đọc bài đăng này đã thi hsg nhỉ... ??
- Hiện mình đang tham gia thi hsg cấp 3 (10,11,12)...
- Mà là 1 nhóm tự ôn nên đề rất hạn chế, ai có biết đề nào hay và thuật toán thú vị có thể comment để mọi người cùng giải.. về pascal nhé :v do ít đả đụng đến C nên cũng không rành lắm
- Mong được sự hưởng ứng ..
Cám ơn sự đón đọc của mọi người ... <3 <3
Mình bắt đầu trước nhé !!
Đề: Nhập vào dãy N, k. Đổi ví trị từ k số đầu ra sau và n-k số sau ra đầu dãy
ví dụ N=5, k=3 và có dãy: 1 2 3 4 5
=> kết quả in ra màn hình là 4 5 1 2 3
Với đề này mình nghĩ nên dùng xâu :
Thủ tục INSERT(obj, st, pos): Thủ tục cho kết quả bằng cách chèn xâu ký tự có tên là Obj vào xâu st tại vị trí pos, những ký tự đứng sau pos sẽ được dời về phía sau của xâu ký tự obj.
Ví dụ: obj:= ‘Thanh ‘
st:=’Le Lam’;
INSERT(obj,st,4) lúc đó st=’Le Thanh Lam’;
 

Hải Ham Học

Học sinh
Thành viên
24 Tháng sáu 2017
133
34
26
21
Bà Rịa - Vũng Tàu
thcs hòa hiệp
Với đề này mình nghĩ nên dùng xâu :
Thủ tục INSERT(obj, st, pos): Thủ tục cho kết quả bằng cách chèn xâu ký tự có tên là Obj vào xâu st tại vị trí pos, những ký tự đứng sau pos sẽ được dời về phía sau của xâu ký tự obj.
Ví dụ: obj:= ‘Thanh ‘
st:=’Le Lam’;
INSERT(obj,st,4) lúc đó st=’Le Thanh Lam’;
cái này là 1 mảng array mà bạn, mình nghĩ dùng kiểu string không khả thi cho lăms, nếu bạn cho là đúng hãy thử viết code pascal xem sao ??, nhớ dùng file nhé (nếu được)
 
  • Like
Reactions: 02-07-2019.

02-07-2019.

Học sinh tiến bộ
HV CLB Lịch sử
Thành viên
4 Tháng năm 2018
1,485
1,656
236
Vĩnh Phúc
Trung học cơ sở Lập Thạch
cái này là 1 mảng array mà bạn, mình nghĩ dùng kiểu string không khả thi cho lăms, nếu bạn cho là đúng hãy thử viết code pascal xem sao ??, nhớ dùng file nhé (nếu được)
Mã:
Var s,st,shai:string;n,k:int64;
Begin
    Assign(input,'haihamhoc.inp');reset(input);
    Assign(output,'haihamhoc.out');rewrite(output);
    Readln(s);Read(k);
     While s[length(s)]=' ' do delete(s,length(s),1);
     While s[1]=' ' do delete(s,1,1);
     While pos('  ',s)>0 do delete(s,pos('  ',s),1);
        st:=copy(s,1,2*k-1);
        shai:=copy(s,2*k,length(s));
        delete(s,1,length(s));
        INSERT(st,s,2*k-1);
           While shai[length(shai)]=' ' do delete(shai,length(shai),1);
           While shai[1]=' ' do delete(shai,1,1);
           While pos('  ',shai)>0 do delete(shai,pos('  ',shai),1);
           shai:=shai+' ';
          Insert(shai,s,1);
      Write(s);
End.
Mình không giỏi Tin lắm nên code còn yếu!
 
  • Like
Reactions: Hải Ham Học

Hải Ham Học

Học sinh
Thành viên
24 Tháng sáu 2017
133
34
26
21
Bà Rịa - Vũng Tàu
thcs hòa hiệp
Mã:
Var s,st,shai:string;n,k:int64;
Begin
    Assign(input,'haihamhoc.inp');reset(input);
    Assign(output,'haihamhoc.out');rewrite(output);
    Readln(s);Read(k);
     While s[length(s)]=' ' do delete(s,length(s),1);
     While s[1]=' ' do delete(s,1,1);
     While pos('  ',s)>0 do delete(s,pos('  ',s),1);
        st:=copy(s,1,2*k-1);
        shai:=copy(s,2*k,length(s));
        delete(s,1,length(s));
        INSERT(st,s,2*k-1);
           While shai[length(shai)]=' ' do delete(shai,length(shai),1);
           While shai[1]=' ' do delete(shai,1,1);
           While pos('  ',shai)>0 do delete(shai,pos('  ',shai),1);
           shai:=shai+' ';
          Insert(shai,s,1);
      Write(s);
End.
Mình không giỏi Tin lắm nên code còn yếu!
thế này nhé !! cái dãy ở trên không phải là string mà là array nhé!! bạn khi báo vậy là khi mà nhập n vô rồi nhập k nó sẽ rất khó xử lý
Đối với bài này mình sẽ dùng thêm 2 mảng phụ ...
vd mảng b để chưa từ số 1-k
c để chứa từ số k+1 đên n
rồi sẽ có 2 vòng while do nhập 2 mảng vô lại dãy a;
mục đích dùng mảng phụ là gì,...chẳng hạn đi nếu bạn dùng đúng 1 dãy mà di chuyên, có thể 1 vài Trường Hợp bạn chạy TEST đúng, nhưng có Trường hợp sẽ sai, nên dùng mảng phụ để các giá trị nó không bị đè lên nhau...
thử làm theo ý bạn lại đi, nhớ dùng mảng array,, hoặc dùng cách mình cũng được, nếu cần show code mình có luôn
 
Top Bottom