Напечатать все буквы, входящие в текст не менее двух раз - C# (205443)
Формулировка задачи:
1)Дан текст из строчных латинских букв, за которыми следует точка.
Напечатать все буквы, входящие в текст не менее двух раз.
Код Delphi
2) В таблице хранятся следующие данные об учениках: фамилия, имя, отчество, рост, масса. Вычислить средний рост учеников, рост самого высокого и самого низкого ученика. Сколько учеников могут заниматься в баскетбольной секции, если рост баскетболиста должен быть больше 170 см?
Код Delphi
3) Дано натуральное число N(N > 9). Определить сумму цифр в первой половине числа (старшие разряды). Пример. N =12 345 678. Сумма составляет 1+2+3+4=10.
Код Delphi
4) Составить программу удаления из десятичной записи числа N единиц, сохранив порядок следования оставшихся цифр. Сформировать и напечатать полученное число.
Код Delphi
Помогите кто может с переводом этих программ на C#
program Project12; {$APPTYPE CONSOLE} uses SysUtils; var s: String; checked: Set of Char; i: Byte; begin write ('vvedite text: '); readln(s); checked := []; for i := 1 to Length(s) do if not(s[i] in checked) then begin include(checked, s[i]); if pos(s[i], copy(s, i + 1)) > 0 then writeln('"' + s[i] + '"' + ' >= 2') else writeln('"' + s[i] + '"' + ' = 1'); end; readln; end.
program Project13; {$APPTYPE CONSOLE} uses SysUtils; type Tstudent=Record fam: string[20]; name: string[20]; rost: Integer; massa: integer; End; Procedure create_stud(var stud:Tstudent); var ch:char; begin write('Familiya: '); readln(stud.fam); write('Name: '); readln(stud.name); write('rost: '); readln(stud.rost); write('massa: '); readln(stud.massa); end; Procedure print_stud(stud:Tstudent); begin writeln('Familiya: ',stud.fam); writeln('Name: ',stud.name); writeln('rost: ',stud.rost); writeln('massa: ',stud.massa); end; var f:file of Tstudent; student:Tstudent; ch:char; filename:string; menu,amount,i:byte; students:array of Tstudent; n,max,min,sr:integer; begin writeln('For create file press 1'); writeln('For analise file press 2'); readln(menu); case menu of 1: begin repeat write('Enter file name for BD:'); readln(filename); assign(f,filename); rewrite(f); if Ioresult<>0 then writeln('File not found') else break; until false; repeat create_stud(student); write(f,student); write('Continue Yes/No?'); readln(ch); until Upcase(ch)='N'; close(f); end; 2: begin repeat write('Enter file name of DB:'); readln(filename); assign(f,filename); reset(f); if Ioresult<>0 then writeln('File not found') else break; until false; amount:=filesize(f); setlength(students,amount); for I := 0 to amount - 1 do read (f,students[i]); for I := 0 to amount - 1 do max:=0; for I := 0 to amount - 1 do if (students[i].rost>max) then max:=students[i].rost; writeln('max rost:' , max); min:=students[1].rost; for I := 0 to amount - 1 do if (students[i].rost<min) then min:=students[i].rost; writeln('min rost:', min); sr:=0; for I := 0 to amount - 1 do sr:=sr+students[i].rost; writeln('sr rost:', sr/amount - 1:3:0); for I := 0 to amount - 1 do if (students[i].rost>=170) then inc(n); writeln('v komande:',n,' uchenikov'); close(f); end; end; readln; end.
program Project16; {$APPTYPE CONSOLE} uses SysUtils; var i,j,sum:longint; s:string; vs:integer; begin write('Vvedite chislo: '); readln(i); str(i,s); sum:=0; for j:=1 to length(s) div 2 do begin val(s[j],i,vs); sum:=sum+i; end; writeln('Sum=',sum); readln; end.
program Project16; {$APPTYPE CONSOLE} uses SysUtils; var n:integer; a:string; i:byte; begin write('Vvedite chislo- '); readln(n); a:=inttostr(n); while pos('1',a)<>0 do for i:=0 to length(a) do begin if a[i]='1' then begin delete(a,i,1); end; end; writeln(a); readln end.
Решение задачи: «Напечатать все буквы, входящие в текст не менее двух раз»
textual
Листинг программы
using System; using System.Collections.Generic; namespace ConsoleApplication1 { class Program { static HashSet<char> ss = new HashSet<char>(); static HashSet<char> resultTest = new HashSet<char>(); static string result = ""; static void Main() { // Создадим два множества Console.WriteLine("Введите текст: "); takeText(); Console.WriteLine("\nБуквы, входящие более 2 раз: "); Console.WriteLine(result); Console.ReadLine(); } static void takeText() { ConsoleKeyInfo pressedBtn = new ConsoleKeyInfo(); if (pressedBtn.Key != ConsoleKey.Enter) { pressedBtn = Console.ReadKey(); if (ss.Add(pressedBtn.KeyChar) == false) if (resultTest.Add(pressedBtn.KeyChar) == true) result = result + " " + pressedBtn.KeyChar; takeText(); } } } }