Articles by "pascal"

Trong một lần leo núi, Nam đi lạc vào một khu rừng già, nơi có một tòa lâu đài bị lãng quên. Khi bước vào một căn phòng rực rỡ ánh sáng trong tòa lâu đài đó, Nam thấy một nàng công chúa đang nằm ngủ. Nam cố đánh thức nàng dậy mà không được. Nhìn xung quanh, Nam thấy có một quyển sách cùng một cây đũa bạc được để ngay ngắn trên bàn. Tò mò lật ra xem, thì ra đó là cuốn sổ mà bà phù thủy ghi lại câu thần chú bằng tiếng Anh cùng với hướng dẫn cách đánh thức nàng công chúa có thể tỉnh lại.

            Để đánh thức được nàng, Nam phải đọc câu thần chú ấy nhiều lần, sau đó dùng cây đũa bạc gõ nhẹ lên trán công chúa vài cái nữa. Số lần đọc câu thần chú và số lần gõ đũa phải làm đúng như yêu cầu thì mới hiệu nghiệm.

            Để biết được số lần đọc thần chú, Nam cần biết được trong câu thần chú kia có tất cả bao nhiêu loại chữ cái khác nhau (không phân biệt chữ in hoa và chữ in thường)? Số loại chữ cái đó chính là số lần Nam phải đọc.

            Để biết được số lần gõ đũa, Nam cần biết được, chữ cái nào xuất hiện nhiều nhất trong câu thần chú, và số lần xuất hiện của chữ cái đó là bao nhiêu lần? Số lần đó chính là số lần mà Nam phải gõ đũa lên trán công chúa.

            Hãy giúp Nam trả lời hai câu hỏi trên bằng khả năng lập trình của mình nhé.

            Dữ liệu vào: Được cho trong tệp văn bản CUU.INP gồm duy nhất một xâu kí tự là nội dung của câu thần chú, được ghi trên cùng một dòng, có độ dài không vượt quá 106 kí tự.

            Kết quả ra: Ghi ra tệp văn bản CUU.OUT gồm hai số nguyên dương được ghi trên cùng một dòng, theo thứ tự là số lần đọc câu thần chú và số lần gõ đũa, mỗi số cách nhau một dấu cách.

            Ví dụ:

CUU.INP

CUU.OUT

Umbala, ta la tat ca!

7 6

Virus là các đoạn mã được chèn vào chương trình. Không mất tính tổng quát, xem các tệp văn bản là một chương trình. Các đoạn mã Virus có thể chèn vào trong nội dung của chương trình nhiều dạng Virus khác nhau và có thể chèn nhiều lần. Viết chương trình để diệt Virus, với các đoạn mã virus biết trước.

Dữ liệu vào: Trong tệp virus.inp:

- Dòng đầu tiên gồm 2 số: kn;

            + k: là số đoạn mã cac dạng virus biết trước;

            + n: là số dòng văn bản của tệp chương trình;

- k dòng tiếp theo là đoạn mã của các dạng virus;

- n dòng cuối là số dòng của tệp chương trình.

Dữ liệu ra: ghi ra tệp văn bản virus.out

- Dòng đầu là số virus đã diệt được.

- n dòng tiếp theo là số dòng của tệp chương trình sau khi đã diệt virus.

Ví dụ:

Virus.inp

Virus.out

4 3

ab12

cc333

eld

hh21

hab12sg tiabcceabhh2abcc333121121d3ab123312n

binab12h dicab12c333nh

loccabccab1233312hhcc3elhh2ab121d3321333p11

21

hsg tin

binh dinh

lop11


Mẹ đi chợ về mua cho Nga 27 quả táo giống hệt nhau về kích thước và hình dạng. Tuy nhiên người bán hàng nói rằng trong số các quả táo trên có đúng một quả có khối lượng khác so với 26 quả còn lại. Dùng một chiếc cân bàn hai bên và với ba lần cân em hãy giúp Nga tìm ra quả táo đó.

            Viết chương trình mô phỏng việc tổ chức cân 27 quả táo bằng ba lần cân theo yêu cầu nêu trên. Thông báo ra màn hình khối lượng của quả táo cần tìm và chỉ rõ rằng quả táo tìm được có khối lượng khác do người sử dụng chương trình nắm giữ.

            Lưu ý:

            1. Trọng lượng của các quả táo là một số nguyên dương được nhập từ bàn phím.

            2. Cân bàn hai bên là cân có hai bàn cân thăng bằng thì khối lượng hai bên bằng nhau; nếu cân lệch thì bàn cân bên nào thấp hơn sẽ có khối lượng lớn hơn.


CODE THAM KHẢO:


Uses Crt;

Var M : Array[1..13] Of Integer;

i, A, B, C, D : Integer;

Begin

ClrScr;

Write('Nhap khoi luong 13 qua tao: ');

For i := 1 To 13 Do Read(M[i]);

ReadLn;

A := M[1] + M[2] + M[3] + M[4];

B := M[5] + M[6] + M[7] + M[8];

C := M[9] + M[10] + M[11] + M[1];

D := M[3] + M[4] + M[5] + M[6];

{ Lan 1 }

If A = B Then Begin

{ Lan 2 }

If C = D Then Begin

{ Lan 3 }

If M[12] = M[1] Then WriteLn('Qua 13 khac nhat! ', M[13]);

If M[12] > M[1] Then WriteLn('Qua 12 nang! ', M[12]);

If M[12] < M[1] Then WriteLn('Qua 12 nhe! ', M[12]);

End;

If C > D Then Begin

If M[9] = M[10] Then WriteLn('Qua 11 nang! ', M[11]);

If M[9] > M[10] Then WriteLn('Qua 9 nang! ', M[9]);

If M[9] < M[10] Then WriteLn('Qua 10 nang! ', M[10]);

End;

If C < D Then Begin

If M[9] = M[10] Then WriteLn('Qua 11 nhe! ', M[11]);

If M[9] > M[10] Then WriteLn('Qua 10 nhe! ', M[10]);

If M[9] < M[10] Then WriteLn('Qua 9 nhe! ', M[9]);

End;

End;

If A > B Then Begin

If C = D Then Begin

If M[7] = M[8] Then WriteLn('Qua 2 nang! ', M[2]);

If M[7] > M[8] Then WriteLn('Qua 8 nhe! ', M[8]);

If M[7] < M[8] Then WriteLn('Qua 7 nhe! ', M[7]);

End;

If C > D Then Begin

If M[5] = M[6] Then WriteLn('Qua 1 nang! ', M[1]);

If M[5] > M[6] Then WriteLn('Qua 6 nhe! ', M[6]);

If M[5] < M[6] Then WriteLn('Qua 5 nhe! ', M[5]);

End;

If C < D Then Begin

If M[3] = M[1] Then WriteLn('Qua 4 nang! ', M[4]);

If M[3] > M[1] Then WriteLn('Qua 3 nang! ', M[3]);

End;

End;

If A < B Then Begin

If C = D Then Begin

If M[7] = M[8] Then WriteLn('Qua 2 nhe! ', M[2]);

If M[7] > M[8] Then WriteLn('Qua 7 nang! ', M[7]);

If M[7] < M[8] Then WriteLn('Qua 8 nang! ', M[8]);

End;

If C > D Then Begin

If M[3] = M[1] Then WriteLn('Qua 4 nhe! ', M[4]);

If M[3] < M[1] Then WriteLn('Qua 3 nhe! ', M[3]);

End;

If C < D Then Begin

If M[5] = M[6] Then WriteLn('Qua 1 nhe! ', M[1]);

If M[5] > M[6] Then WriteLn('Qua 5 nang! ', M[5]);

If M[5] < M[6] Then WriteLn('Qua 6 nang! ', M[6]);

End;

End;

Readln;

End.



Những năm gần đây, đèn LED được ứng dụng trong trang trí quảng cáo, làm bảng hiệu quảng cáo để quảng bá thương hiệu cũng như các loại sản phẩm, dịch vụ, … Bảng quảng cáo bằng đèn LED thường được sử dụng là bảng chữ có nội dung rõ ràng được chạy liên tục từ phải sang trái.

            Hãy viết chương trình mô phỏng bảng quảng cáo bằng đèn LED như ý tưởng đã nêu theo các yêu cầu sau:

            1. Xâu ký tự được nhập vào từ bàn phím (không quá 60 ký tự). Ví dụ: An Giang han hoan chao don cac ban!

            2. Xâu ký tự được di chuyển liên tục trên cùng một dòng của màn hình máy tính, khi cần kết thúc người sử dụng phải nhấn phím “k” hoặc “K”.

CODE THAM KHẢO:

Uses Crt;
Var i, x : LongInt;
str : AnsiString;
Begin
Repeat
ClrScr;
Write('Moi ban nhap chuoi ky tu: ');
Readln(str);
Until (Length(str) > 0) And (Length(str) <= 60);

x := 0;
Repeat
ClrScr;
Write(Copy(str, Length(str)-x+1, Length(str)));
Write(Copy(str, 1, Length(str)-x));
Delay(500);
Inc(x);
If x > Length(str)-1 Then x := 0;
Until KeyPressed And (Upcase(Readkey) = 'K');
End.


Viết chương trình tính ra ngày tháng năm của ngày hôm sau trên ngày tháng năm của ngày hôm trước.

Dữ liệu: Cần đọc từ file văn bản ngaythangnam.inp gồm 1 dòng:

            Dòng 1: Số đầu tiên là ngày, số thứ 2 là tháng, số thứ 3 là năm. Mỗi số cách nhau một khoảng trắng.

            Kết quả: Ghi trên file văn bản ngaythangnam.out gồm 1 dòng:

                        Dòng 1: Số đầu tiên là ngày, số thứ 2 là tháng, số thứ 3 là năm của hôm sau.

Ví dụ:

ngaythangnam.inp

ngaythangnam.out

28 2 2019

1 3 2019


CODE THAM KHẢO:
Var f:text;
    ngaysau, thangsau, ngay, thang: byte;
    nam, namsau: word;
function tinhngaysau(x,y:byte): byte;
begin
        If x < y Then x := x+1
        else if x = y Then
        begin
                thangsau := thang+1;
                x := 1;
        end;
        tinhngaysau := x;
end;
begin
        assign(f,'ngaythangnam.inp'); reset(f);
        read(f,ngay,thang,nam);
        close(f);
        assign(f,'ngaythangnam.out'); rewrite(f);
        namsau := nam;
        thangsau := thang;
        Case thang Of
                1,3,5,7,8,10: ngaysau := tinhngaysau(ngay,31);
                4,6,9,11: ngaysau := tinhngaysau(ngay,30);
                2: if ((nam mod 400 = 0) or (nam mod 4 = 0) and (nam mod 100 <>0)) Then
                        ngaysau := tinhngaysau(ngay,29)
                   else ngaysau := tinhngaysau(ngay,28);
                12: If ngay<31 Then ngaysau := ngay+1
                        else if ngay=31 Then
                        begin
                                ngaysau := 1;
                                thangsau := 1;
                                namsau := nam+1;
                        end;
        End;
        write(f,ngaysau,' ',thangsau,' ',namsau);
        close(f);
end.



        Viết chương trình nhập vào dãy N (5 <= N <= 10) số nguyên, nhập thêm một số và chèn vào trước phần tử thứ k trong dãy N số vừa nhập, sau đó in ra dãy số đã cập nhật, xoá số thứ k trong dãy N số vừa nhập sau đó in ra dãy số đã cập nhật.
Ví dụ:
        Moi ban nhap vao so N: 5         Moi ban nhap lan luot cac so: 2 4 6 8 10         Moi ban nhap vi tri cua phan tu can chen vao: 3         Moi ban nhap gia tri: 9         Day so moi la: 2 4 9 6 8 10         Moi ban nhap vi tri cua phan tu can xoa: 3         Day so moi la: 2 4 6 8 10

    CODE THAM KHẢO:








Hãy tạo mảng hai chiều có kích thước N x N chứa các số tự nhiên từ 1 đến N2 (2≤N≤20) theo quy luật như ví dụ dưới đây.

Với N = 3

Với N = 4

1  2  3

7  8  9

6  5  4

  1    2    3    4

  9  10  11  12

16  15  14  13

  8    7    6    5

            Dữ liệu vào: từ tệp văn bản BANGSO.INP gồm số nguyên dương N.

            Dữ liệu ra: ghi vào tệp văn bản BANGSO.OUT gồm: bảng số tìm được dựa theo quy luật trên.

            Các số trên cùng một dòng được ghi cách nhau bởi 1 dấu cách.

 Ví dụ:

BANGSO.INP

BANGSO.OUT

 

BANGSO.INP

BANGSO.OUT

3

1  2  3

7  8  9

6  5  4

4

1    2    3    4

  9  10  11  12

16  15  14  13

  8    7    6    5

    CODE THAM KHẢO:

    var A:array[1..100,1..100] of longint;

        n,i,j,k,x,top,left,right,bottom: longint;

        f:text;

    begin

        assign(f,'BANGSO.INP'); reset(f);

        readln(f,n);

        close(f);

        assign(f,'BANGSO.OUT'); rewrite(f);

        x:=1; top:=1; right:=n; left:=1;

        while x <= n*n do

        begin

            for k:= left to right do

            begin

                a[k,top]:=x;

                x:=x+1;

            end;

            bottom:=n-top+1;

            if bottom <> top then

            for k:=right downto left do

            begin

                a[k,bottom]:=x;

                x:=x+1;

            end;

            top:=top+1;

        end;

        for i:=1 to n do

        begin

            for j:=1 to n do write(f,A[j,i]:3);

            writeln(f);

        end;

        close(f);

    end.



 Cho xâu S gồm n ký tự, biết rằng xâu S chỉ chứa các ký tự in thường trong bảng chữ cái tiếng Anh (10<n<100);

            Yêu cầu: Hãy tìm xâu ký tự dài nhất có chứa 1 ký tự “a” và 1 ký tự “z” xuất hiện trong xâu S.

            Dữ liệu: Cho trong tập tin xau.inp gồm một dòng chứa các ký tự của xâu S.

            Kết quả: Ghi ra tập tin xau.out gồm một dòng ghi xâu ký tự vừa tìm được. Nếu tìm được nhiều hơn 1 xâu ký tự thoả mãn đề bài thì ghi xâu ký tự đầu tiên tính từ trái sang phải. Nếu không tìm được xâu thoả mãn đề bài thì ghi “Khong tim duoc”.

            Ví dụ:

xau.inp

xau.out

abcdefghijabca

Khong tim duoc

Abczbczdefgh

abczbc


    CODE THAM KHẢO:
    Program Xaucon;
   Var _S,s:string;
    //=======================
    procedure ReadFile;
    Begin
        Assign(input,'xau.inp');reset(input);
        readln(s);
    End;
    //=========================
    procedure Process;//ky thuat 2 con tro
    var N,M,d,l,r: integer;
      st:string;
    Begin
        N:=length(s);d:=0;l:=1;
       For r:=1 to N do
       Begin
          if((s[r]='a') or(s[r]='z')) then inc(d);
          while (d>2) do
          Begin
              if((s[l]='a') or(s[l]='z')) then dec(d);
              inc(l);
          End;
          if(d=2) then
            Begin
                St:=copy(s,l,r-l+1);
               M:=length(st);
                if(length(_S)<M) then
                  Begin
                      if ((pos('a',st)>0)and(pos('z', st)>0))  then _S:=st;
                  End;
              End;
       End;//for r
    End;
    //============================
    Begin
        _S:=''; //_S= save string
        ReadFile;
        assign(output,'xau.out'); rewrite(output);
        Process;
        if (length(_S)>1) then write(_S)
        else write('Khong tim duoc');
        //close(output);
    End.


             Yêu cầu: Cho hai số nguyên dương N, M . Hãy đếm số lượng số nguyên dương có không quá N chữ số và tổng các chữ số bằng M.

            Input:

-     Dòng đầu chứa số nguyên T (T<=10) là số bộ dữ liệu.

-     T dòng sau, mỗi dòng chứa hai số nguyên N, M.

Output: Gồm T dòng, mỗi dòng là số lượng số nguyên dương có không quá N chữ số và tổng các chữ số bằng M tương ứng với bộ dữ liệu vào.

NM.INP

NM.OUT

1

2 1

2


    CODE THAM KHẢO:
    var  n,m,t,i,a,d,j: longint;
    procedure tao(x:byte; var a: longint);
    var j: longint;
    begin
            a:=1;
            for j:=1 to x do a:=a*10;
    end;
    function tongchuso(b:longint): longint;
    var s,k: longint;
    begin
            s:=0;
            while b >0 do
            begin
                    k:= b mod 10;
                    s:=s+k;
                    b:=b div 10;
            end;
            tongchuso:=s;
    end;
    begin
            assign(input,'NM.INP'); reset(input);
            assign(output,'NM.OUT'); rewrite(output);
            while not eof(input) do
            begin
                    readln(T);
                    for j:=1 to T do
                    begin
                            readln(N,M);
                            tao(n,a);
                            for i:=1 to a-1 do
                            if tongchuso(i) = M then inc(d);
                            writeln(d);
                            d:=0;
                    end;
            end;
            close(input); close(output);
    end.


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