Pereiti prie turinio

Reikia atlikti užduotį (c#)


Rekomenduojami pranešimai

Sveiki,

reikia atlikti užduotį c# kalba , tad prašau pagalbos užduotis:

 

Raskite ir spausdinkite faile Rodikliai.txt:

 ilgiausių žodžių, kurie yra tik faile Knyga1.txt, bet nėra faile Knyga2.txt, sąrašą (ne daugiau nei

10 žodžių) ir jų pasikartojimo skaičių;

 ilgiausią teksto fragmentą, sudarytą iš žodžių ir juos skiriančių skyriklių, kuris yra abejuose failuose

ir jo eilutės numerius pirmame ir antrame faile;

 

 

Tekstiniai failai(Knyga1.txt ir Knyga2.txt) nėra duoti tai tinka viskas.

Iš anksto dėkoju!

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tai geriau pasakok, kas nesigauna. Del sutampanciu zodziu turiu uzsilikusi toki pavyzdi, kuri labai lengvai galetum pasiredaguot pagal save.

        static void Main(string[] args)
       {
           char[] skyrikliai = { ' ', '.', '!', '?', ':', ';', '(', ')', '\t' };
           Console.WriteLine("Sutampanciu zodziu {0,3:d}", Apdoroti(CFd, skyrikliai));
       }
       //** 
       static int Zodziai(string eilute, char[] skyrikliai)
       {
           string[] parts=eilute.Split(skyrikliai,
                                       StringSplitOptions.RemoveEmptyEntries);
           int sutampa=0;
           foreach (string zodis in parts)
           {
               if (zodis[0] == zodis[zodis.Length - 1])
                   sutampa++;
               if ('a' <= zodis[0] && zodis[zodis.Length-1] <= 'Z')
                   sutampa++;
           }
           return sutampa;
       }
       //------------------------------------------------------
       //** Skaito faila ir analizuoja eilutes
       static int Apdoroti(string fv, char[] skyrikliai)
       {
           string[] lines = File.ReadAllLines(fv, Encoding.GetEncoding(1257));
           int sutampa = 0;
           foreach (string line in lines)
               if (line.Length > 0)
                   sutampa += Zodziai(line, skyrikliai);
           return sutampa;
       }

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kad nežinau kas nesigauna. Aš susirandu iš abiejų text failų bendrus žodžius ir tuomet darau tikrinimą.

 

static void Rastiilg(string fv, string fvr, char[] skyrikliai)

{

string Book1 = File.ReadAllText(fv, Encoding.GetEncoding(1257));

string Book2 = File.ReadAllText(fvr, Encoding.GetEncoding(1257));

 

string[] Words1 = Book1.Split(skyrikliai, StringSplitOptions.RemoveEmptyEntries);

string[] Words2 = Book2.Split(skyrikliai, StringSplitOptions.RemoveEmptyEntries);

int ilgis = 0;

string zod = null;

int pr = 0;

int n = 0;

string[] zodziai = new string[100];

string[] usedwords = new string[100];

 

for (int i = 0; i < Words1.Length; i++)

{

for (int j = 0; j < Words2.Length; j++)

{

if (Words1 == Words2[j])

{

usedwords[n] = Words1;

n++;

}

}

}

//for (int i = 0; i < n; i++)

//Console.WriteLine(usedwords);

for (int i = 0; i < Words1.Length; i++)

{

for (int j = 0; j < n; j++)

{

if ((Words1 != usedwords[j]))

{

if ((ilgis < Words1.Length))

//Console.WriteLine(usedwords[j]);

ilgis = Words1.Length;

zod = Words1;

pr = i;

}

}

}

Console.WriteLine(zod);

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Turiu panašią užduotį. Su žodžiais viskas aišku, man labiau įdomu kaip tą pasikartojantį fragmentą gauti. Nes gi netikrinsi atskirai su visais žodžiais.

O kas trukdo nuread'inti vieną eilutę ir patikrinti ar sutampa su kito failo eilute (ilgiausia)? Pavyzdys, kuris grąžina ilgiausią eilutę:

       static string IlgiausiaEilute(string fv, string fvr)
       {
           string ilgiausiaeil = null;
           int ilgis = 0;
           string[] lines = File.ReadAllLines(fv, Encoding.GetEncoding(1257));
           string[] lines2 = File.ReadAllLines(fvr, Encoding.GetEncoding(1257));
           foreach (string line in lines)
           {
               if (line.Length > ilgis)
               {
                   ilgis = line.Length;
                   ilgiausiaeil = line;
               }
           }
           if (!lines2.Contains(ilgiausiaeil))
           {
               ilgiausiaeil = "Nerasta.";
           }
           return ilgiausiaeil;
       }

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...