Напечатать все буквы, входящие в текст не менее двух раз - C# (205443)

Узнай цену своей работы

Формулировка задачи:

1)Дан текст из строчных латинских букв, за которыми следует точка. Напечатать все буквы, входящие в текст не менее двух раз. Код Delphi
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.
2) В таблице хранятся следующие данные об учениках: фамилия, имя, отчество, рост, масса. Вычислить средний рост учеников, рост самого высокого и самого низкого ученика. Сколько учеников могут заниматься в баскетбольной секции, если рост баскетболиста должен быть больше 170 см? Код Delphi
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.
3) Дано натуральное число N(N > 9). Определить сумму цифр в первой половине числа (старшие разряды). Пример. N =12 345 678. Сумма составляет 1+2+3+4=10. Код Delphi
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.
4) Составить программу удаления из десятичной записи числа N единиц, сохранив порядок следования оставшихся цифр. Сформировать и напечатать полученное число. Код Delphi
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.
Помогите кто может с переводом этих программ на C#

Решение задачи: «Напечатать все буквы, входящие в текст не менее двух раз»

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();
            }
        }
    }
}

Оцени полезность:

11   голосов , оценка 4.182 из 5
Похожие ответы