using System; using System.Linq; using System.Text; internal class Program { private static void Main(string[] args) { //prasa lai lietotājs ievada teikumu Console.Write("Ievadi teikumu: "); string input = Console.ReadLine() ?? ""; // ?? "" nodrošina ka input nav null //izvada ievadito teikumu bet teikums ir apgriests Console.WriteLine("Samainīti vārdi: " + reverseWords(input)); //izvada ievadīto teikumu bet butri ir aptriesti cita secībā Console.WriteLine("Samainīti burti vārdos: " + ReverseLettersInWords(input)); //veic funkciju kas pakāpeniski atklāj teikumu no centra revealfromcenter(input); //veic funkciju kas pakāpeniski izdzēš teikumu no centra erasefromcenter(input); //veic funkciju kas pakāpeniski izvada teikuma beigu daļas showdromendascending(input); //apgriež teikuma vārdus string reverseWords(string text) { //sadala teikumu vārdos lietojot atstarpes var words = text.Split(' '); //apgriež vārdu secību Array.Reverse(words); //apgrieztos vārdus saliek atpakaļ vienā teikumā return string.Join(" ", words).Trim(); //trim noņem liekās atstarpes } //apgriež katra vārda burtus string ReverseLettersInWords(string text) { //apgriež katra vārda burtus un savieno atpakaļ kopā var words = text.Split(' ').Select(word => new string(word.Reverse().ToArray())); return string.Join(" ", words); } //pakāpeniski atklāj teikumu no centra void revealfromcenter(string text) { //aprēķina teikuma vidējo punktu int mid = text.Length / 2; //izveido StringBuilder kas sākotnēji ir piepildīts ar atstarpēm StringBuilder result = new StringBuilder(new string(' ', text.Length)); //cikls kas iet cauri teikuma centram for (int i = 0; i <= mid; i++) { //izreiķina kreiso un labo indeksu int left = mid - i; int right = mid + i; //ja kreisais indekss ir derīgs ievieto StringBuilder if (left >= 0) result[left] = text[left]; //ja labais indekss ir derīgs ievieto StringBuilder if (right < text.Length) result[right] = text[right]; //izvada StringBuilder saturu Console.WriteLine(result.ToString()); } } //pakāpeniski izdzēš teikumu no centr void erasefromcenter(string text) { //izreiķina teikuma vidējo punktu int mid = text.Length / 2; //pārvērš teikumu par rakstzīmju masīvu char[] arr = text.ToCharArray(); //cikls kas iet cauri teikuma centram for (int i = 0; i <= mid; i++) { //izreiķina kreiso un labo indeksu int left = mid - i; int right = mid + i; //ja kreisais indekss ir derīgs aizvieto burtu ar atstarpi if (left >= 0) arr[left] = ' '; //ja labais indekss ir derīgs aizvieto burtu ar atstarpi if (right < text.Length) arr[right] = ' '; //Izvada rakstzīmju masīvu Console.WriteLine(new string(arr)); } } //pakāpeniski izvada teikuma beigu daļas sakot no pedējā burta void showdromendascending(string text) { for (int i = 1; i <= text.Length; i++) { //izvada teikuma apakšvirkni Console.WriteLine(text.Substring(text.Length - i)); } } } }