2021

Thời xa xưa, ở một bộ tộc cổ đại giữ tập tục đặt tên cho những đứa trẻ mới sinh ra theo tên Thiêng của gia đình với hy vọng chúng được thần linh phù hộ, hạnh phúc, khoẻ mạnh và có thể chống lại các thế lực đen tối, ma quỹ cung quanh. Mỗi gia đình có một tên thiêng riêng do Tộc trưởng đặt cho và từ tên Thiêng đó mà đặt tên cho các thành viên khác trong gia đình theo cách như sau:

            - Tên các thành viên trong gia đình phải là một xâu con gồm một hay nhiều ký tự liên tiếp nhau của tên Thiêng (tên của các thành viên không được trùng nhau và không trùng với tên Thiêng).

            Ví dụ: tên Thiêng là: “alubala” thì các tên có thể đặt là “a”, “alu”, “luba”, “bala”, “ala”,…. (các tên không được phép đặt là “aba”, “ula”, “lula”,…).

            Yêu cầu: Tộc trưởng muốn biết dựa vào số tên có thể đặt, mỗi gia đình có thể đặt được tối đa bao nhiêu tên.

            - Dữ liệu vào: File văn bản tenthieng.inp gồm một dòng chứa tên thiêng, trong đó chỉ chứa chữ cái Latinh thường, có độ dài không quá 255 ký tự.

            - Dữ liệu ra: File văn bản tenthieng.out chứa một số nguyên là số lượng các tên có thể đặt khác nhau.

Ví dụ:

tenthieng.inp

tenthieng.out

alubala

23


CODE THAM KHẢO:
program Ten_thieng;
uses crt;
var st, st1, st2: string;
    i,j,d,dem: byte;
    f: text;
    kt: boolean;
begin
    assign(f,'tenthieng.inp'); reset(f);
    read(f,st);
    close(f);
    assign(f,'tenthieng.out'); rewrite(f);
    for i:=1 to length(st)-1 do
        for j:=1 to length(st)-i+1 do
            begin
                st1:=copy(st,j,i);
                kt:=true;
                for d:=1 to j-1 do
                    begin
                        st2:=copy(st,d,i);
                        if st1=st2 then kt:=false;
                    end;
                if kt then inc(dem);
            end;
    write(f,dem);
    close(f);
end.


Phòng giáo dục quản lý học sinh các cấp học: Mầm non, Tiểu học, THCS. Số học sinh có độ tuổi từ 3 đến 15 tuổi. Để phục vụ cho việc báo cáo, phòng giáo dục cần thống kê số học sinh theo từng độ tuổi.

            Yêu cầu: Hãy viết chương trình giúp phòng giáo dục thống kê số lượng học sinh theo từng độ tuổi.

            Dữ liệu: Cho file từ văn bản có tên INPUT.TXT có cấu trúc sau:

            - Dòng đầu ghi số N (N < 10000) là số lượng học sinh mà phòng giáo dục quản lý.

            - Dòng thứ 2 ghi N số tương ứng là số tuổi của N học sinh, mỗi số cách nhau ít nhất một khoảng trắng.

            Kết quả: Ghi ra file văn bản OUTPUT.TXT gồm nhiều dòng, mỗi dòng ghi 2 số: số thứ nhất là độ tuổi, số thứ hai là số lượng học sinh ở độ tuổi đó.

Ví dụ:

INPUT.TXT

OUTPUT.TXT

13

3 4 12 3 5 13 5 3 12 15 3 8 15

3 4

4 1

5 2

8 1

12 2

13 1

15 2


CODE THAM KHẢO:
var   a:array[1..1000000] of longint;
      n,i,j,k,d,tg: longint;
      kt:boolean;
      f:text;
begin
    assign(f,'input.txt'); reset(f);
    readln(f,n);
    for i:=1 to n do read(f,a[i]);
    close(f);
    assign(f,'ouput.txt'); rewrite(f);
    for i:=1 to n-1 do
    for j:=i+1 to n do
    if a[i] > a[j] then
    begin
        tg:=a[i];
        a[i]:=a[j];
        a[j]:=tg;
    end;
    for  i:=1 to n do
    begin
        kt:=true;
        for j:=1 to i-1 do if a[i]=a[j] then kt:=false;
        if kt then
        begin
            d:=0;
            for k:=1 to n do
            if a[i]=a[k] then d:=d+1;
            writeln(f,a[i],' ',d);
        end;
    end;
    close(f);
end.


Một khu vườn có dạng hình chữ nhật có chiều dài là D và chiều rộng là R (mét). Giả sử khu vườn được chia ra làm D*R ô vuông cạnh độ dài 1 mét. Trong một số ô vuông có trồng cây. Một xe cắt cỏ có dạng một hình vuông kích thước 3*3 (mét) đặt tại một vị trí nào đó trong khu vườn. Xe cắt cỏ có thể di chuyển sang trái, sang phải, lên trên, xuống dưới 1 mét. Xe không thể di chuyển lên các ô có cây. Xe cắt cỏ sẽ dọn dẹp được những ô mà nó đi qua. Hãy xác định các ô mà xe cắt cỏ có thể dọn dẹp được.

            Dữ liệu vào file Catco.inp dòng đầu khi hai số nguyên dương D, R (5<=D, R<=100). Dòng thứ i trong số D dòng tiếp theo ghi R ký hiệu mô tả trạng thái của lưới ô vuông: ‘+’ cho biết vị trí cây, ‘.’ Cho biết ô vuông rỗng. ‘M’ cho biết tâ, của vị trí xe cắt cỏ. Các ký hiệu được ghi cách nhau một dấu cách.

            Kết quả ra file Catco.out: Ghi ra số ô có được cắt.


CODE THAM KHẢO:
var f:text;
    a,b:array[0..101,0..101] of char;
    x,y,i,j,n,m:byte;
    ans:integer;
    c:char;
procedure Enter;
begin
    assign(f,'catco.inp');
    reset(f);
    readln(f,n,m);
    for i:=1 to n do
    begin
    for j:=1 to m do
    begin
        if j<m then read(f,a[i,j],c)  //c để đọc khoảng trắng
        else read(f,a[i,j]);
        if a[i,j]='M' then   //Đánh dấu ô M
        begin
            x:=i;
            y:=j;
        end;
    end;
    readln(f);
    end;
    close(f);
end;
procedure Init;
begin
    for i:=1 to m do    //Tạo viền giới hạn Trên - Dưới
    begin
        a[0,i]:='+';
        a[n+1,i]:='+';
    end;
    for i:=1 to n do   //Tạo viền giới hạn Trái - Phải
    begin
        a[i,0]:='+';
        a[i,m+1]:='+';
    end;

    b:=a;
    for i:=x-1 to x+1 do
    for j:=y-1 to y+1 do a[i,j]:='O';    //Khởi tạo ô cỏ 3x3 vị trí ban đầu
end;
procedure Mark1(u,v:byte);
begin
    a[u,v]:='O';
    a[u,v-1]:='O';
    a[u,v+1]:='O';
end;
procedure Mark2(u,v:byte);
begin
    a[u,v]:='O';
    a[u-1,v]:='O';
    a[u+1,v]:='O';
end;
procedure Solve(u,v:byte);
begin
    //Đi lên
    if (u+2<=n+1) then
    if (a[u+2,v]<>'+') and (a[u+2,v-1]<>'+') and (a[u+2,v+1]<>'+') and (((a[u+2,v]='.') or (a[u+2,v-1]='.') or (a[u+2,v+1]='.'))) then
    begin
        Mark1(u+2,v);    //Đánh dấu
        Solve(u+1,v);
    end;

    //Đi xuống
   if (u-2>=0) then
    if (a[u-2,v]<>'+') and (a[u-2,v-1]<>'+') and (a[u-2,v+1]<>'+') and ((a[u-2,v]='.') or (a[u-2,v-1]='.') or (a[u-2,v+1]='.')) then
    begin
        Mark1(u-2,v);    //Đánh dấu
        Solve(u-1,v);
    end;

    //Qua phải
    if (v+2<=m+1)then
    if (a[u,v+2]<>'+') and (a[u-1,v+2]<>'+') and (a[u+1,v+2]<>'+') and ((a[u,v+2]='.') or (a[u-1,v+2]='.') or (a[u+1,v+2]='.')) then
    begin
        Mark2(u,v+2);    //Đánh dấu
        Solve(u,v+1);
    end;

    //Qua trái
        if (v-2>=0) then
        if (a[u,v-2]<>'+') and (a[u-1,v-2]<>'+') and (a[u+1,v-2]<>'+') and ((a[u,v-2]='.') or (a[u-1,v-2]='.') or (a[u+1,v-2]='.')) then
    begin
        Mark2(u,v-2);    //Đánh dấu
        Solve(u,v-1);
    end;
end;
procedure Result;
begin
    for i:=1 to n do
    for j:=1 to m do
    if a[i,j]<>b[i,j] then inc(ans);   //Đếm những ô đã cắt cỏ
    write(f,ans-1);   //Không tính ô M
end;
begin
    Enter;
    assign(f,'catco.out'); rewrite(f);
    Init;
    Solve(x,y);
    Result;
    close(f)
end.


Một xâu kí tự co thể “nén” theo cách sau: Một xâu con gồm n>1 kí tự giống nhau, chẳng hạn gồm n kí tự “a” sẽ được ghi thành na. Ví dụ xâu ‘aaaabbcd’ sẽ được nén thành 4a2bcd. Hãy viết chương trình nén và giải nén. (Chú ý trong các xâu được nén phải không có chữ số).

            Dữ liệu vào: Cho trong tệp String,inp

            Kết quả: Ghi vào tệp String.out

String.inp

String.out

aaaabbcd

3a2b

4a2bcd

aaabb


CODE THAM KHẢO
program Nen_GiaiNen_xau;
const fi ='string.inp';
      fo ='string.out';
var f,g:text;
    s1, s2: string;
procedure doc;
begin
        assign(f,fi); reset(f);
        readln(f,s1);
        readln(f,s2);
        close(f);
end;
procedure Nen;
var s,kq:string; i,d:integer; ch:char;
begin
        d:=1; s1:=s1+#32; ch:=s1[1]; kq:='';
        for i:=2 to length(s1) do
        if s1[i] = s1[i-1] then inc(d)
        else
        begin
                str(d,s);
                if d<>1 then kq:=kq+s+ch else kq:=kq+ch;
                d:=1;
                ch:=s1[i];
        end;
        writeln(g,kq);
end;
procedure Giainen;
var kq,so:string; i,j,code,n: integer;
begin
        i:=1; kq:='';
        repeat
                so:='0';
                while s2[i] in ['1'..'9'] do
                begin
                        so:=so+s2[i];
                        inc(i);
                end;
                val(so,n,code);
                if n > 1 then
                        for j:=1 to n do kq:=kq+s2[i]
                else kq:=kq+s2[i];
                inc(i);
        until i > length(s2);
        writeln(g,kq);
end;
begin
        assign(g,fo); rewrite(g);
        doc;
        Nen;
        Giainen;
        close(g);
end.


        Lớp 9A có N học sinh (n<=50), mỗi bạn được gắn với một mã số bất kì. Trong buổi đồng diễn thể dục N bạn được xếp thành một hàng dọc theo thứ tự từ nhỏ đến lớn của mã số. Để đội hình toàn trường cân đối thầy giáo chuyển một bạn lớp khác vào vị trí trong hàng có mã số là K vào đội hình lớp 9A. Em hãy giúp thầy giáo xếp bạn có mã số K vào vị trí trong hàng sao cho không làm xáo trộn đội hình đã được sắp xếp mà vẫn đảm bảo nguyên tắc xếp hàng đã nói trên. Hãy viết chương trình thực hiện công việc đó.

            Dữ liệu vào: cho file text XEPHANG.INP có 2 dòng, trong đó:

            - Dòng đầu: ghi 2 số NK.

            - Dòng thứ hai ghi các mã số của mỗi học sinh viết cách nhau ít nhất một dấu cách.

            Kết quả ra: ghi ra file text XEPHANG.OUT gồm 2 dòng:

            - Dòng một: ghi vị trí xếp bạn mã số K vào hàng.

            - Dòng hai: hàng được xếp.

XEPHANG.INP

XEPHANG.OUT

7 3

2 4 5 7 8 9 12

2

2 3 4 5 7 8 9 12


CODE THAM KHẢO:
program xep_hang;
var a:array[1..50] of integer;
    f:text;
    i,n,k,l: integer;
begin
        assign(f,'xephang.inp'); reset(f);
        read(f,n,k);
        for i:=1 to n do read(f,a[i]);
        close(f);
        assign(f,'xephang.out'); rewrite(f);
        i:=1;
        while (k>a[i]) and (i<=n) do i:=i+1;
        for l:=n+1 downto i do
        a[l]:=a[l-1];
        a[i]:=k;
        writeln(f,i);
        for i:=1 to n+1 do write(f,a[i],' ');
        close(f);
end.



 Có những môn học, tiết học việc ghi chép là điều không thể bỏ qua. Tuy nhiên có nhiều nội dung chúng ta hoàn toàn có thể thay việc ghi chép thông thường bằng các hoạt động hấp dẫn và thú vị hơn. 3 chiến thuật trên có thể giúp học sinh vừa có cách ghi chép mới, vừa giúp học sinh nắm kiến thức tốt hơn.


Học sinh của tôi thường rất ghét phải ghi chép và tôi cho rằng đó không phải là lỗi của chúng. Phải thừa nhận rằng chẳng ai hào hứng với công việc này cho dù đó là một giáo viên nhiệt huyết tràn đầy năng lượng hay một học sinh luôn ngoan ngoãn chăm chỉ. Việc quá tập trung vào ghi chép khiến chúng ta không tập trung trong quá trình lắng nghe, làm gián đoạn bài giảng.

Cùng với việc ghi chép, các bài giảng thông thường cũng rất nhàm chán đối với giáo viên cũng như với học sinh. Tuy nhiên không hiểu sao vẫn có những giáo viên thích được nghe giọng nói của mình trong cả một tiết học.

Ghi chép là một yếu tố cần thiết trong chương trình giảng dạy, nó cũng giống như các bài giảng giúp học sinh lĩnh hội kiến thức một cách hiệu quả, nhanh chóng. Chúng ta có thể thúc đẩy các hoạt động này thông qua một số chiến thuật thú vị và lôi cuốn sự tham gia của cả giáo viên và học sinh.

  1. Di chuyển và ghi chép

Nhiều giáo viên bao gồm cả bản thân tôi bị phụ thuộc vào các slide của power point để trình chiếu các nội dung của bài giảng. Thay vì giáo viên giảng bài, học sinh lắng nghe theo cách làm thông thường, tôi đã in các slide bài giảng và dán xung quanh lớp học hoặc ở hành lang. Sau đó sử dụng các cuốn sách có bìa cứng để học sinh có thể ghi chép trong khi di chuyển và quan sát. Nếu lớp học của bạn quá đông, bạn có thể cân nhắc việc in thành 2 bản để học sinh có thể lựa chọn di chuyển. Nếu có quá nhiều học sinh cùng tập trung ở một slide.

Chiến thuật này là một cách dễ dàng để kết hợp giữa các hoạt động thể chất trong lớp học đặc biệt là trong các khoảng thời gian học sinh không hoạt động và tương tác với nhau. Nó có hiệu quả khi học sinh học những thông tin mà không dựa trên một lịch trình cố định nào. Tôi thường tạo nên các sơ đồ để học sinh có thể hoàn thiện nó dễ dàng hơn.

Một lợi ích khác của chiến thuật này là học sinh có thể làm việc trong không gian riêng của chúng. Sử dụng các công cụ để ôn tập cho học sinh khi chúng ghi chép xong sớm hơn so với những học sinh khác, chúng có thể thực hành và áp dụng những gì đã học.


  1. Học sinh tự dạy lẫn nhau

Cung cấp cho các học sinh một danh sách các câu hỏi mà đã được trả lời, giải thích bởi giáo viên. Cho phép học sinh chọn các câu hỏi mà chúng hứng thú để làm việc cá nhân hay làm việc theo cặp đôi. Phải đảm bảo rằng học sinh sử dụng nó một cách trôi chảy. Giáo viên có thể cung cấp cho học sinh thêm các đoạn văn bản, tài liệu để hỗ trợ. Điều này giúp học sinh có thể sử dụng các tư liệu để tìm ra câu trả lời mà không tốn quá nhiều thời gian. Cuối cùng học sinh dạy nhau cách để trả lời các câu hỏi. Học sinh phải đọc rất kĩ về nội dung bài học và chuẩn bị giáo án qua đó chúng sẽ tìm được những ý tưởng của riêng chúng.

Trong khi một học sinh đang dạy cho các bạn khác, giáo viên có thể đặt ra các nhiệm vụ và yêu cầu tiếp theo. Học sinh cần có khoảng 5 phút để trình bày, có một khoảng thời gian ngắn để ôn tập lại dưới hình thức các trò chơi và có các câu hỏi nhanh dành cho cả lớp. Khi học sinh nghĩ về những nội dung của bài giảng hơn là việc ghi chép, chúng sẽ nắm được và hiểu rõ kiến thức tốt hơn.

  1. Kiểm tra các thông tin

Trong phương pháp này, giáo viên cung cấp cho học sinh nội dung bài giảng. Sau đó cho học sinh biết rằng có thông tin bị sai. Bây giờ sẽ là lúc học sinh phải làm việc và phát hiện những thông tin bị sai. Giáo viên có thể cân nhắc trao thưởng cho 3 hoặc 5 học sinh đầu tiên có khả năng sửa chữa những lỗi sai đó. Sự cạnh tranh sẽ tạo động lực cho học sinh làm việc hiệu quả hơn.

Kĩ thuật này đòi hỏi phải làm việc theo nhóm, kĩ năng đánh giá và tinh thần tập thể. Học sinh phải cân nhắc xem thông tin nào là đúng, thông tin nào là sai sau đó phải tìm thông tin đúng để sửa chữa.

Cũng giống như việc di chuyển và ghi chép, tiết học này sẽ giúp học sinh ôn tập và áp dụng kiến thức. Những học sinh hoàn thành công việc sớm hơn có thể sẽ có thêm thời gian để ôn tập và chờ các học sinh khác.

Có những môn học, tiết học việc ghi chép là điều không thể bỏ qua. Tuy nhiên có nhiều nội dung chúng ta hoàn toàn có thể thay việc ghi chép thông thường bằng các hoạt động hấp dẫn và thú vị hơn. 3 chiến thuật trên có thể giúp học sinh vừa có cách ghi chép mới, vừa giúp học sinh nắm kiến thức tốt hơn.

Nguồn: taogiaoduc.vn


Cách chuyển font Vni-Times sang Times New Roman cực đơn giản!
        

        Đôi khi bạn gặp cản trở khi đọc và xem tài liệu bởi máy tính của bạn không có font chữ đó hoặc có thể chưa được bật. Hoặc bạn muốn sử dụng font chữ Times New Roman để soạn thảo văn bản. Nếu như bạn vẫn chưa biết cách chuyển font Vni-Times sang Times New Roman thì để DINH CAN'S BLOG hướng dẫn cho bạn nhé. Theo dõi bài viết ngay nào.
        Trước khi hướng dẫn chuyển font chữ bạn cần phải nắm rõ font chữ nào phù hợp với bảng mã nào như sau:
            Unicode: Time New Roman. Arial, Tahoma,…
            TCVN3: Vntime, . VnTimeH, Vni-Arabia
Để chuyển đổi font chữ các bạn thực hiện các bước sau đây:
        Bước 1: Bạn cần chọn một đoạn văn bản mà bạn muốn chuyển đổi font > Sao chép nó.
        Bước 2: Bấm vào mũi tên bên góc phải dưới màn hình > Nhấn chuột phải vào biểu tượng ứng dụng Unikey > Chọn công cụ ( hoặc nhấn tổ hợp phím Ctrl + Shift+ F6).

        Bước 3: Cửa sổ Unikey Toolkit xuất hiện bạn với các mục như sau:

        -Nguồn: Lựa chọn bảng mã phù hợp với font chữ mà bạn đang sử dụng 

        -Đích: Lựa chọn bảng mã mà font chữ của bạn muốn chuyển đến

Sau khi đã chọn được bảng mã phù hợp > Nhấn chuyển mã.


        Bước 4: Cửa sổ thông báo Result xuất hiện thông báo chuyển thành công > Nhấn OK.


        Nếu như xuất hiện thông báo “Cannot read clipboard” tức là bạn vẫn chưa copy đoạn văn bản muốn chuyển mã > Bấm OK và quay lại thực hiện bước 1.

        Sau khi chuyển thành công, bạn vào đoạn văn bạn đã copy lúc đầu, sau đó dán (Ctrl + V) đè lên nội dung đó. Kết quả bạn sẽ nhận được một đoạn văn đã được chuyển đổi file và không lỗi nữa.


Biểu mẫu liên hệ

Tên

Email *

Thông báo *

Được tạo bởi Blogger.
Javascript DisablePlease Enable Javascript To See All Widget