7. oldal / 11
6. tétel: Megszámolás fájlból
Feladat: Írjon egy programot szöveges környezetben, mely beolvas max. 100 egész számot az ADAT.TXT fájlból. Írja ki, hogy hány számot olvasott be, majd írja ki a számok közül hány volt pozitív, illetve negatív, valamint nulla. Feltételezheti, hogy a fájl létezik, legalább 1 szám van benne és az adatok csak egész számokat tartalmazhatnak, valamint minden egyes szám új sorban van. A működő programot és a kódot mutassa be tanárának!
Egy lehetséges megoldás Visual C# nyelven:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; //Ez kell a fájlműveletekhez namespace 6tetel { class Program { static void Main(string[] args) { //6. tétel: Megszámolás fájlból StreamReader bevisz = new StreamReader("ADAT.TXT"); int darab = 0; //Beolvasott számok darabszáma int pozitiv = 0; //Pozitív számok darabszáma int negativ = 0; //Negatív számok darabszáma int zerus = 0; //Nullák darabszáma int i; //Ideiglenes változó string s; //Beolvasáshoz segédváltozó do { s = bevisz.ReadLine(); i = Convert.ToInt32(s); darab++; if (i>0) { pozitiv++; } else if (i<0) { negativ++; } else { zerus++; } } //A fájl beolvasását érdemes elöltesztelőre tenni, hogy ne szálljon el hibával. while (!bevisz.EndOfStream); bevisz.Close(); //Fájl bezárása Console.WriteLine("Beolvasott számok: {0} db", darab); Console.WriteLine("Beolvasott pozitív számok: {0} db", pozitiv); Console.WriteLine("Beolvasott negatív számok: {0} db", negativ); Console.WriteLine("Beolvasott zérusok száma: {0} db", zerus); Console.WriteLine("A program futása véget ért!"); } } }
Az ADAT.TXT fájl egy lehetséges tartalma:
Lásd az 5. tételnél!