Yahoo Hỏi & Đáp sẽ ngừng hoạt động vào ngày 4 tháng 5 năm 2021 (Giờ Miền Đông nước Mỹ) và từ nay, trang web Yahoo Hỏi & Đáp sẽ chỉ ở chế độ đọc. Các thuộc tính hoặc dịch vụ khác của Yahoo hay tài khoản Yahoo của bạn sẽ không có gì thay đổi. Bạn có thể tìm thêm thông tin về việc Yahoo Hỏi & Đáp ngừng hoạt động cũng như cách tải về dữ liệu của bạn trên trang trợ giúp này.

Viết chương trình (pascal) nhập vào một chuỗi các ký tự. Hãy in ra các phụ âm và các nguyên âm có trong chuỗi.?

Các bạn chỉ mình cái thuật giải ở ngay chỗ cái phụ âm là được rồi, cám ơn nhiều nha!

Cập nhật:

Nguyên âm thì mình làm được rồi, chỉ còn phụ âm thôi bạn nào giúp mình nhe!

1 Câu trả lời

Xếp hạng
  • 1 thập kỷ trước
    Câu trả lời yêu thích

    Vì có nhiều case, bạn nên dùng tập hợp để tránh phải dùng nhiều lệnh if/switch.

    Với trường hợp là phụ âm, thì nên kiểm tra điều kiện phủ định của nguyên âm sẽ nhanh hơn - cả khi lập trình lẫn khi chạy.

    const

    vowels: set of char = ['A','E','I','O','U']; {tập nguyên âm}

    var

    str: string;

    existed: array ['A'..'Z'] of boolean; {mảng lưu giữ thông tin xuất hiện hay không}

    ch: char;

    i: byte;

    begin

    write('Nhap chuoi: '); readln(str);

    fillchar(existed, sizeof(existed), false); {khởi tạo: chưa xuất hiện chữ nào}

    for i:=1 to length(str) do

    begin

    ch:=upcase(str[i]);

    if (ch>='A') and (ch<='Z') then existed[ch]:=true; {đánh dấu đã xuất hiện ký tự này }

    end;

    writeln('Ket qua');

    for ch:='A' to 'Z' do

    if existed[ch] and not (ch in vowels) then write(ch); {kiểm tra phụ âm hay nguyên âm}

    readln;

    end.

    Ở lệnh kiểm tra phụ âm hay nguyên âm, nếu muốn kiểm tra phụ âm thì dùng điều kiện: existed[ch] and not (ch in vowels)

    nếu muốn kiểm tra nguyên âm thì dùng điều kiện: existed[ch] and (ch in vowels)

    :-)

Bạn vẫn có câu hỏi? Hãy hỏi ngay để nhận câu trả lời.