Trang chủ Tin Học Lớp 8 khi viết tên người hoặc tên đại lý Việt Nam...

khi viết tên người hoặc tên đại lý Việt Nam được quy định viết hoa chữ cái đầu tất cae các âm tiết, còn lại là viết thường. Mỗi âm tiết cách nhau bởi một kí tự

Câu hỏi :

khi viết tên người hoặc tên đại lý Việt Nam được quy định viết hoa chữ cái đầu tất cae các âm tiết, còn lại là viết thường. Mỗi âm tiết cách nhau bởi một kí tự trắng. Yêu cầu: Hãy viết chương trình kiểm tra 1 xâu kí tự đã cho có đạt chuẩn danh từ hay không. Nếu chuẩn thì ghi kết quả là 1, ngược lại ghi kết quả là 0. Dữ liệu vào: Cho trong file văn bản DANHTU.INP, có cấu trúc: - dòng 1 ghi số tự nhiên n (n

Lời giải 1 :

uses crt;
var s: ansistring;
    i, n, t: longint;
    check: boolean;
begin
    clrscr;
    readln(t);
    while t > 0 do begin
        dec(t); readln(s);
        check:=s[1] in ['A'..'Z']; 
        n:=length(s);
        for i:=2 to n do 
            check:=check and( false
                         or ( (s[i] in ['a'..'z']) and (s[i - 1] <> #32) )
                         or ( (s[i] in ['A'..'Z']) and (s[i - 1]  = #32) )
                         or ( (s[i] = #32) and (s[i - 1] <> #32) )
            );
        if check then writeln(1) else writeln(0);
    end;
end.

Thảo luận

-- https://hoidap247.com/cau-hoi/3797249 helpp
-- https://hoidap247.com/cau-hoi/3801470 helppp
-- https://hoidap247.com/cau-hoi/3837653
-- https://hoidap247.com/cau-hoi/3933508 giúp á

Lời giải 2 :

Đây là bài của mình ko chắc là sẽ tối ưu.

Đầu tiên là mình sẽ kiểm tra các ký tự trong dãy xem có kí tự in hoa hay ko. Nếu có sẽ kiểm tra tiếp xem: 

+ Trước đó có dấu cách hay không + Không quá 1 dấu cách

+ Đằng sau là kí tự viết thường

Nếu  có 1 trong các điều kiện trên ko đúng thì sẽ dừng ngay vòng lặp và xuất ra là '0'; nếu đúng sẽ tiếp tục cho đến khi hết chuỗi và xuất ra là '1'

Chương trình

Program KT;
Var d : array[1..1000] of string;

i, n: integer;

fi, fo: text;

Function ktdt(s:string):boolean;

var i : integer;

a,b,c,d: boolean;

begin

ktdt := False;

If s[1] in ['A'..'Z'] then

For i := 1 to length(s)-1 do begin

a := s[i] in ['A'..'Z'];

b := s[i+1] in ['a'..'z'];

c := s[i-1] = ' ';

d := not(s[i-2]=' ');

if a then if b and c and d then ktdt := true

else begin ktdt := false; break; end;

end;

end;

BEGIN

assign(fi,'DANHTU.INP'); reset(fi);

assign(fo,'DANHTU.OUT'); rewrite(fo);

Readln(fi,n);

For i := 1 to n do readln(fi,d[i]);

For i := 1 to n do if ktdt(d[i]) then Writeln(fo, 1) else writeln(fo, 0);

close(fi); close(fo); 

END.

Bạn có biết?

Tin học, tiếng Anh: informatics, tiếng Pháp: informatique, là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng (ảo). Với cách hiểu hiện nay, tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin.

Nguồn : Wikipedia - Bách khoa toàn thư

Tâm sự 8

Lớp 8 - Năm thứ ba ở cấp trung học cơ sở, học tập bắt đầu nặng dần, sang năm lại là năm cuối cấp áp lực lớn dần nhưng các em vẫn phải chú ý sức khỏe nhé!

Nguồn : ADMIN :))

Liên hệ hợp tác hoặc quảng cáo: gmail

Điều khoản dịch vụ

Copyright © 2021 HOCTAPSGK