Вывести в алфавитном порядке слова текста, в которых повторяется первая буква - C#
Формулировка задачи:
program PascalGuru; uses crt; label 1,2; var s,zs,zp,gl,slovo,l:string; i,j,p,n,nn:integer; m:array [1..80] of string; b:boolean; procedure exchange(var a,b:string); var c:string; begin c:=a; a:=b; b:=c; end; {------------------------------------------} begin write('Stroka: '); readln(s); zp:='!?*,.'; {все знаки препинания} zs:='бвгжздйлмнр'; gl:='аоуыэяеёюи'; {начало разбиения предложения на слова} p:=pos(' ',s); i:=0; repeat inc(i); slovo:=copy(s,1,p-1); if pos(slovo[length(slovo)],zp)<>0 then delete(slovo,length(slovo),1); m[i]:=slovo; delete(s,1,p); p:=pos(' ',s); until p=0; n:=i+1; m[n]:=s; {массив со словами} {--конец разбиения предложения на слова} {************сортировка по алфавиту**************************** } nn:=n; repeat b:=false; for j:=1 to nn-1 do BEGIN i:=1; l:=m[j]; s:=m[j+1]; While (I<=5)and(l[i]=s[i]) do inc(i); If i>5 then writeln('the same') else if ord(l[i])>ord(s[i]) then begin exchange(m[j+1],m[j]); b:=true; end; END; dec(nn); until not b; {************************************************************* } writeln; writeln('*Slova teksta, v kotoryh povtoryaetsya pervaya bukva:'); for i:=1 to n do {проход по массиву слов строки} begin s:=m[i]; b:=false; for j:=2 to length(s) do if s[1]=s[j] then b:=true; if b then writeln(s);{выводим} end; {--------------------------------------------------------------------} writeln; writeln('*Ostalinye slova (obnovlennye) teksta:'); for i:=1 to n do {проход по массиву слов строки} begin s:=m[i]; b:=false; for j:=2 to length(s) do if s[1]=s[j] then b:=true; if not b then begin {удаляем} 1: for j:=1 to length(s) do if pos(s[j],zs)<>0 then begin delete(s,j,1); goto 1; end; {дублируем} j:=1; repeat if pos(s[j],gl)<>0 then begin insert(s[j],s,j); inc(j,2); end else inc(j); until j>length(s); writeln(s);{выводим обновлённый} end; end; readln; end.
Решение задачи: «Вывести в алфавитном порядке слова текста, в которых повторяется первая буква»
textual
Листинг программы
Console.Write("Stroka: "); string s = Console.ReadLine(); // разбиения предложения на слова string[] m = s.Split("!?*,. ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); // сортировка по алфавиту Array.Sort(m); Console.WriteLine("\nSlova teksta, v kotoryh povtoryaetsya pervaya bukva:"); for (var i = 0; i < m.Length; i++) { for (var j = 0; j < m.Length; j++) { if (i != j && m[i][0] == m[j][0]) { Console.WriteLine(m[i]); break; } } } Console.WriteLine("\nOstalinye slova (obnovlennye) teksta:"); foreach (char symbol in s) { if ("бвгжздйлмнр".IndexOf(symbol) != -1) { continue; } Console.Write(symbol); if ("аоуыэяеёюи".IndexOf(symbol) != -1) { Console.Write(symbol); } } Console.WriteLine(); Console.ReadKey(true);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д