Xây dụng chương trình đếm nguyên âm và phụ âm của 1 chuỗi

Viết chương trình C# để đếm số phụ âm, số nguyên âm có trong một chuỗi bất kỳ. Ví dụ:

Nhập chuỗi: hiepsiit Chuỗi trên có 4 nguyên âm, 4 phụ âm

Chương trình C#

Dưới đây là chương trình C# minh họa lời giải cho bài tập đếm số phụ âm, nguyên âm trong C#:

using System; namespace VietJackCsharp { class TestCsharp { static void Main(string[] args) { string str; //khai bao mot chuoi int i, len, nguyen_am, phu_am; Console.Write("\nDem so nguyen am, phu am trong chuoi C#:\n"); Console.Write("----------------------------------------------\n"); Console.Write("Nhap mot chuoi: "); str = Console.ReadLine(); nguyen_am = 0; phu_am = 0; len = str.Length; for (i = 0; i < len; i++) { if (str[i] == 'a' || str[i] == 'e' || str[i] == 'i' || str[i] == 'o' || str[i] == 'u' || str[i] == 'A' || str[i] == 'E' || str[i] == 'I' || str[i] == 'O' || str[i] == 'U') { nguyen_am++; } else if ((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z')) { phu_am++; } } Console.Write("\nSo nguyen am co trong chuoi la: {0}\n", nguyen_am); Console.Write("So phu am co trong chuoi la: {0}\n\n", phu_am); Console.ReadKey(); } } } Xem ví dụ

Biên dịch và chạy chương trình C# trên sẽ cho kết quả:

Dem so nguyen am, phu am trong chuoi C#: ---------------------------------------------- Nhap mot chuoi: hiepsiit So nguyen am co trong chuoi la: 4 So phu am co trong chuoi la: 4

Trong bài tập này chúng ta sẽ thực hiện chương trình đếm số nguyên âm phụ âm sử dụng con trỏ C++. Bài tập này khá đơn giản vì vậy các bạn hãy xem kỹ hướng dẫn của mình dưới đây.

Hướng dẫn:

  • Đầu tiên chúng ta sẽ tạo một mảng str[ ] để chứa các ký tự của chuỗi nhập vào.
  • Sau khi tạo chuỗi chúng ta sẽ yêu cầu người dùng nhập vào chuỗi cần kiểm tra và lưu trữ nó vào mảng trên.
  • Tiếp đến dùng vòng lặp While để thực hiên lặp các phần tử trong mảng, nếu nó trùng với các ký tự nguyên âm thì tăng số đếm vCount, ngược lại nếu trùng với ký tự phụ âm thì tăng cCount lên.

Chương trình đếm số nguyên âm phụ âm sử dụng con trỏ C++.

Chúng ta sẽ đi theo tuần tự các bước mình đã nếu trên

#include using namespace std; int main(){ char str[100]; char *p; int vCount=0,cCount=0; cout<<"Nhập vào một chuỗi: "; fgets(str, 100, stdin); //gán mảng cho con trỏ p p=str; //lặp điều kiện cho mảng while(*p!='\0') { if(*p=='A' ||*p=='E' ||*p=='I' ||*p=='O' ||*p=='U' ||*p=='a' ||*p=='e' ||*p=='i' ||*p=='o' ||*p=='u') vCount++; else cCount++; p++; } cout<<"Số nguyên âm có trong chuỗi là: "<

Kết quả sau khi chạy chương trình:

Xây dụng chương trình đếm nguyên âm và phụ âm của 1 chuỗi

Như vậy là chúng ta đã thực hiện xong chương trình đêm số nguyên âm phụ âm sử dụng con trỏ C++. Chúc các bạn thực hiện thành công!!!

Viết chương trình C# để đếm số phụ âm, số nguyên âm có trong một chuỗi bất kỳ. Ví dụ:

Nhập chuỗi: Zaidap Chuỗi trên có 3 nguyên âm, 5 phụ âm

Chương trình C#

Dưới đây là chương trình C# minh họa lời giải cho bài tập đếm số phụ âm, nguyên âm trong C#:

using System; namespace ZaidapCsharp { class TestCsharp { static void Main(string[] args) { string str; //khai bao mot chuoi int i, len, nguyen_am, phu_am; Console.Write(" Dem so nguyen am, phu am trong chuoi C#: "); Console.Write("---------------------------------------------- "); Console.Write("Nhap mot chuoi: "); str = Console.ReadLine(); nguyen_am = 0; phu_am = 0; len = str.Length; for (i = 0; i < len; i++) { if (str[i] == 'a' || str[i] == 'e' || str[i] == 'i' || str[i] == 'o' || str[i] == 'u' || str[i] == 'A' || str[i] == 'E' || str[i] == 'I' || str[i] == 'O' || str[i] == 'U') { nguyen_am++; } else if ((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z')) { phu_am++; } } Console.Write(" So nguyen am co trong chuoi la: {0} ", nguyen_am); Console.Write("So phu am co trong chuoi la: {0} ", phu_am); Console.ReadKey(); } } }

Nếu bạn không sử dụng lệnh Console.ReadKey(); thì chương trình sẽ chạy và kết thúc luôn (nhanh quá đến nỗi bạn không kịp nhìn kết quả). Lệnh này cho phép chúng ta nhìn kết quả một cách rõ ràng hơn.

Kết quả chương trình C#

Biên dịch và chạy chương trình C# trên sẽ cho kết quả:

Xây dụng chương trình đếm nguyên âm và phụ âm của 1 chuỗi

Mọi người cho thể tham gia khóa học thứ 6 của vietjackteam (đang tuyển sinh) vào đầu tháng 03/2018 do anh Nguyễn Thanh Tuyền, admin vietjack.com trực tiếp giảng dạy tại Hà Nội. Chi tiết nội dung khóa học tham khỏa link : .Các bạn học CNTT, điện tử viễn thông, đa phương tiện, điện-điện tử, toán tin có thể theo học khóa này. Số lượng các công việc Java hoặc .NET luôn gấp ít nhất 3 lần Android hoặc iOS trên thị trường tuyển dụng.

Mọi người có thể xem demo nội dung khóa học tại địa chỉ

Các bạn ở xa học không có điều kiện thời gian có thể tham dự khóa Java online để chủ động cho việc học tập. Trong tháng 4/2018, Zaidap khuyến mại giá SỐC chỉ còn 150k cho khóa học, liên hệ facebook admin fb.com/tuyen.vietjack để thanh toán chuyển khoản hoặc thẻ điện thoại, khóa học bằng Tiếng Việt với gần 100 video, các bạn có thể chủ động bất cứ lúc nào, và xem mãi mãi. Thông tin khóa học tại

Follow fanpage của team hoặc facebook cá nhân Nguyễn Thanh Tuyền để tiếp tục theo dõi các loạt bài mới nhất về Ngữ pháp tiếng Anh, luyện thi TOEIC, Java,C,C++,Javascript,HTML,Python,Database,Mobile ... mới nhất của chúng tôi.

Bài học Bài tập C# phổ biến tại vietjack.com:

Thứ năm, 12/12/2019 | 00:00 GMT+7

Trong những năm qua, JavaScript tiếp tục nhận được nhiều sự chú ý khi các khả năng ngày càng rộng lớn của nó tiếp tục được mở rộng. Nó đã phát triển từ chỗ chỉ là một ngôn ngữ kịch bản phía client để tạo giao diện web tương tác thú vị sang được sử dụng rộng rãi ở phía server , cho các ứng dụng di động, ứng dụng máy tính để bàn, hệ thống nhúng, IOT, v.v. Mặc dù có rất nhiều khuôn khổ có sẵn để nâng cao điểm mạnh của một nhà phát triển JavaScript, nhưng học cách làm việc với JavaScript vani để thực hiện mọi việc theo cách hiệu quả nhất là một kỹ năng cơ bản.

Trong bài viết này, bạn sẽ triển khai hai cách tiếp cận thuật toán khác nhau bằng cách sử dụng vanilla JavaScript. Bạn nên cố gắng tự làm trước và chỉ tham khảo mã để đi đúng hướng, xác nhận các giải pháp của bạn và nghiên cứu các phương pháp tiếp cận khác.

Thử thách của bạn là nhận một chuỗi văn bản có độ dài bất kỳ và trả về số nguyên âm được tìm thấy trong văn bản.

Tư duy thuật toán

Đọc qua câu lệnh thách thức, bạn sẽ nhận thấy câu lệnh nhận được một chuỗi văn bản . Nếu bạn đã khá quen với việc lập trình nói chung, điều này nên lưu ý đến ý tưởng về các hàm. Ta có thể viết một hàm có một tham số gọi là "text". Văn bản sẽ là một chuỗi có độ dài bất kỳ sẽ được chuyển đến hàm dưới dạng đối số khi nó được gọi.

Tiếp theo, trong hàm, ta phải xem qua văn bản và tìm kiếm sự xuất hiện của các nguyên âm tiếng Anh (“a”, “e”, “i”, “o”, “u”). Sau đó, hàm trả về tổng số kết quả phù hợp (nguyên âm) được tìm thấy. Bạn có thể dừng việc thực thi một hàm và trả về một giá trị từ hàm đó bằng các câu lệnh return .

Triển khai mã

Ta sẽ khám phá hai cách để thực hiện điều này. Đầu tiên là cách tiếp cận lặp và sau đó là sử dụng các biểu thức chính quy.

Phương pháp tiếp cận lặp lại

Trong cách tiếp cận lặp lại, ta sẽ lặp qua từng chữ cái của chuỗi được truyền qua và sau đó kiểm tra xem chúng có trùng với bất kỳ nguyên âm nào không. Trước khi chạy qua văn bản, ta sẽ khởi tạo bộ đếm và gán giá trị bằng 0. Trong trường hợp có sự trùng khớp, ta tăng bộ đếm.

Đây là cách triển khai của ta :

/_ An iterative approach to counting the number of vowels in a string of text. _/ const vowels = ["a", "e", "i", "o", "u"] function countVowelsIterative(text) { // Initialize counter let counter = 0; // Loop through text to test if each character is a vowel for (let letter of text.toLowerCase()){ if (vowels.includes(letter)) { counter++ } } // Log formatted response to console console.log(`The text contains ${counter} vowel(s)`) // Return number of vowels return counter } /_ ============== Test Case =================== _/ countVowelsIterative('I am a world-class developer using iterations'); // Logs "The text contains 16 vowel(s)" to the console // returns 16
  • Đầu tiên, ta khai báo một vowels không đổi chứa một mảng trong số năm nguyên âm tiếng Anh.
  • Tiếp theo, ta sử dụng vòng lặp for…of để lặp qua từng chữ cái của văn bản. Nếu bạn không rành về điều này, vòng lặp for…of sẽ tạo ra một vòng lặp lặp qua các đối tượng có thể lặp lại. Các đối tượng có thể lặp lại có thể là chuỗi, mảng, bản đồ, tập hợp, v.v.
  • Lưu ý cách ta chuyển đổi tất cả các chữ cái của văn bản thành chữ thường trong vòng lặp. Điều này là do, ta không muốn bỏ lỡ các trường hợp nguyên âm viết hoa trong văn bản đã chuyển (tin tôi rằng đó không phải là cố ý).
  • Tiếp theo trong vòng lặp, ta sử dụng một if tuyên bố để kiểm tra xem lá thư được chọn sẽ có trong mảng các nguyên âm, ta được định nghĩa đó. Một cách phù hợp, ta gọi phương thức include includes() trên mảng các nguyên âm để xác định xem mảng có bao gồm chữ cái đã chọn, trả về true hay false khi thích hợp.
  • Nếu điều kiện đánh giá là true , ta tăng bộ đếm.
  • Sau khi lặp qua, ta ghi lại một thông báo đã định dạng vào console cho ta biết số nguyên âm và sau đó trả về bộ đếm tương đương với số nguyên âm được tìm thấy.

Bây giờ ta hãy xem xét một cách tiếp cận khác.

Biểu thức chính quy

Biểu thức chính quy giúp ta tìm các mẫu hoặc ký tự / kết hợp ký tự trong chuỗi. Điều này có liên quan đến ta vì các biểu thức chính quy sẽ giúp ta tìm thấy các ký tự mong muốn trong văn bản được truyền. Theo phần mở rộng, biểu thức chính quy có thể giúp ta làm những việc đáng chú ý hơn như triển khai các bộ lọc nội dung. Biểu thức chính quy cũng giữ nguyên trên các ngôn ngữ lập trình. Hãy xem xét các giải pháp.

Đây là cách triển khai của ta :

/_ Using Regular Expressions to count the number of vowels in a string of text. _/ function countVowelsRegex(text) { // Search text with Regex and store all matching instances let matchingInstances = text.match(/[aeiou]/gi); // Check if matching instances exist then calculate length if(matchingInstances) { // Log formatted response to console console.log(`The text contains ${matchingInstances.length} vowel(s)`) // Return number of vowels return matchingInstances.length } else{ return 0 } } /_ ============== Test Case =================== _/ countVowelsRegex('I am a world-class developer using Regex'); // Logs "The text contains 13 vowel(s)" to the console // returns 13
  • Điều đầu tiên ta đã làm trong hàm là gọi phương thức thematch() trên văn bản, phương thức này trả về một mảng các kết quả phù hợp được tìm thấy sau khi so khớp biểu thức chính quy được truyền dưới dạng đối số chống lại văn bản.
  • Biểu thức chính quy chỉ định các chữ cái cần tìm trong dấu ngoặc [] . Đối với các mẫu đơn giản, biểu thức chính quy thường được xác định trong một cặp dấu gạch chéo. Chú ý các ký tự gi sau dấu gạch chéo đóng?
  • g là viết tắt của một tìm kiếm global không trở lại sau trận đấu đầu tiên, bắt đầu lại các tìm kiếm tiếp theo từ khi kết thúc trận đấu trước.
  • i là viết tắt của tìm kiếm không phân biệt chữ hoa chữ thường làm cho toàn bộ biểu thức không phân biệt chữ hoa chữ thường (ví dụ: / xyz / i sẽ trùng với XyZ).
  • Tiếp theo, ta sử dụng một điều kiện để kiểm tra xem có bất kỳ trường hợp phù hợp nào được tìm thấy hay không. Phương thức .match() được sử dụng ở trên trả về một mảng các mục phù hợp nếu tìm thấy các mục phù hợp và null nếu không tìm thấy chúng. Do đó trong điều kiện, nếu matchingInstances đánh giá lại một giá trị truthy ( nghĩa là một loạt các trận đấu được tìm thấy), ta ghi lại một thông điệp được định dạng hiển thị số nguyên âm mà là giống như độ dài của mảng. Sau đó, ta cũng trả lại số. Mặt khác, nếu nó đánh giá là giá trị sai, ta trả về 0 vì điều đó nghĩa là không tìm thấy kết quả phù hợp nào.

Bây giờ ta đã triển khai thành công một thuật toán đếm số nguyên âm trong một chuỗi văn bản trong JavaScript.

Hãy đánh giá cả hai phương pháp được sử dụng. Cách tiếp cận lặp đi lặp lại mặc dù không ngắn gọn bằng cách khác nhưng có thể là một cách tiếp cận hợp lý hơn, đặc biệt là đối với người mới bắt đầu. Tuy nhiên, kết quả cho thấy, phương pháp regex được tối ưu hóa tốt hơn.

Xây dụng chương trình đếm nguyên âm và phụ âm của 1 chuỗi

Bạn có thể sử dụng bộ đếm nguyên âm trường hợp thử nghiệm này để tự chạy các bài kiểm tra.

Tags:

Các tin liên quan

Cách gói một gói JavaScript Vanilla để sử dụng trong React
2019-12-12
Cách phát triển một trình tải lên tệp tương tác với JavaScript và Canvas
2019-12-12
Cách sử dụng map (), filter () và Reduce () trong JavaScript
2019-12-12
Giải thích về lập trình chức năng JavaScript: Ứng dụng một phần và làm xoăn
2019-12-12
Giới thiệu về Closures và Currying trong JavaScript
2019-12-12
Bắt đầu với các hàm mũi tên ES6 trong JavaScript
2019-12-12
Cách sử dụng phép gán cấu trúc hủy trong JavaScript
2019-12-12
Giải thích về lập trình chức năng JavaScript: Kết hợp & truyền tải
2019-12-12
Cách sử dụng .every () và .some () để điều khiển mảng JavaScript
2019-12-12
Chuyển đổi Mảng sang Chuỗi trong JavaScript
2019-12-05


Xây dụng chương trình đếm nguyên âm và phụ âm của 1 chuỗi

Xây dụng chương trình đếm nguyên âm và phụ âm của 1 chuỗi

Xây dụng chương trình đếm nguyên âm và phụ âm của 1 chuỗi