Я программист, и мне поручено написать программу, которая, в числе прочего, выделяет мягкие и твердые согласные. Как ни удивительно, но мне уже несколько дней не удается это сделать, поскольку я не могу отыскать четких правил русского языка, однозначно определяющие, в каких случаях согласные твердые и в каких мягкие. Супруга пыталась мне помочь, но тоже безуспешно, хотя мы провели целый день в читальном зале. Есть много заумных статей, но конкретики, пригодной для программирования, мы так и не нашли. Пока что я точно понял только вот что.
Буквы ж, ш, ц всегда твердые.
Буквы ч, щ, й всегда мягкие.
А еще есть буквы б, в, г, д, з, к, л, м, н, п, р, с, т, ф, х, которые могут быть в одних случаях твердыми, а в других мягкими.
В этой связи у меня большая просьба: не отсылая меня к сайтам и книгам, напишите прямо здесь, если возможно, в каких случаях эти согласные твердые, и в каких они мягкие. Простым и понятным языком, что бы я из вашего объяснения мог составить алгоритм своей программы.