2012 május - programozás feladat
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace futar
{
class Program
{
static int[,] fuvarHossz = new int[7,40]; // nap, fuvarszám --> fuvar hosszú
static int napiFuvarszam(int nap)
{
int fsz = 0;
while (fsz < 40 && fuvarHossz[nap, fsz] > -1) fsz++;
return fsz;
}
static void Beolvasas()
{
// Alaphelyzetbe állítás
for (int nap = 0; nap < 7; nap++)
{
for (int fsz = 0; fsz < 40; fsz++)
{
fuvarHossz[nap, fsz] = -1;
}
}
// Beolvasás
StreamReader be = new StreamReader("tavok.txt");
string sor;
while ((sor = be.ReadLine()) != null)
{
string[] mezo = sor.Split(' ');
fuvarHossz[ Convert.ToInt32(mezo[0])-1, Convert.ToInt32(mezo[1])-1 ] = Convert.ToInt32(mezo[2]);
}
be.Close();
// Kiiratás - ellenőrzésként...
for (int nap = 0; nap < 7; nap++)
{
for (int fsz = 0; fsz < 40; fsz++)
{
Console.Write(fuvarHossz[nap, fsz] + " ");
}
Console.WriteLine();
}
}
static void feladat2()
{
Console.WriteLine("\n2. feladat:");
// Az első fuvar hossza
int nap = 0;
while (nap < 7 && fuvarHossz[nap, 0] == -1) nap++;
if (nap < 7) Console.WriteLine("Az első fuvar hossza {0} km volt.", fuvarHossz[nap, 0]);
else Console.WriteLine("Nem volt egyetlen fuvar sem.");
}
static void feladat3()
{
Console.WriteLine("\n3. feladat:");
// Utolsó fuvar hossza
int nap = 6;
while (nap >= 0 && fuvarHossz[nap, 0] == -1) nap--;
if (nap < 0) Console.WriteLine("Nem volt egyetlen fuvar sem.");
else
{
int fsz = 39;
while (fuvarHossz[nap, fsz] == -1) fsz--;
Console.WriteLine("Az utolsó fuvar hossza {0} km volt.", fuvarHossz[nap, fsz]);
}
}
static void feladat4()
{
Console.WriteLine("\n4. feladat:");
string[] aHetNapjai = {"Hétfő", "Kedd","Szerda", "Csütörtök", "Péntek","Szombat","Vasárnap"};
// A futár szabadnapjai
for (int nap = 0; nap < 7; nap++)
{
if (fuvarHossz[nap, 0] == -1) Console.WriteLine("Szabadnapos a(z) {0}. ({1}) napon", nap+1, aHetNapjai[nap]);
}
}
static void feladat5()
{
Console.WriteLine("\n5. feladat:");
// Legtöbb fuvarú nap sorszáma
int maxNap = 0;
int maxFsz = napiFuvarszam(0);
for (int nap = 1; nap < 7; nap++)
{
if (napiFuvarszam(nap) > maxFsz)
{
maxFsz = napiFuvarszam(nap);
maxNap = nap;
}
}
Console.WriteLine("A legtöbb fuvart a(z) {0}. napon bonyolította le.", maxNap);
}
static void Main(string[] args)
{
Beolvasas();
feladat2();
feladat3();
feladat4();
feladat5();
Console.ReadKey();
}
}
}