C# Program:

using System;

using System.Collections.Generic;

using System.IO;

using System.Text;

 

namespace kektura

{

    struct Szakasz

    {

        public String Kezdet;

        public String Vég;

        public Double Táv;

        public int Emelkedés;

        public int Lejtés;

        public bool Pecsételőhely;

 

        public Szakasz(string[] m)

        {

            Kezdet = m[0];

            Vég = m[1];

            Táv = double.Parse(m[2]);

            Emelkedés = int.Parse(m[3]);

            Lejtés = int.Parse(m[4]);

            Pecsételőhely = m[5] == "i";

        }

        //6.feladat:

        public bool HianyosNev_pm

        {

            get

            {

                if (Pecsételőhely)

                {

                    if (Vég.Contains("pecsetelohely")) return false;

                    else return true;

                }

                return false;

            }

        }

        public override string ToString()

        {

            string NemHiányosNév = Vég;

            if (HianyosNev_pm) NemHiányosNév += "pecsetohely";

            return String.Format("{0};{1};{2};{3};{4};{5}", Kezdet, NemHiányosNév, Táv, Emelkedés, Lejtés, Pecsételőhely ? 'i' : 'n');

        }

    }

    class kektura

    {

        static void Main(string[] args)

        {

            Console.WriteLine("Készítette: Pecsenye Márton ");

            Console.WriteLine();

            List<Szakasz> sz = new List<Szakasz>();

            string[] forras_pm = File.ReadAllLines("kektura.csv");

            int tszfm = int.Parse(forras_pm[0]); //kiindulópont tengerszint feletti magassága

            for (int i = 1; i < forras_pm.Length; i++)

            {

                sz.Add(new Szakasz(forras_pm[i].Split(';')));

            }

 

            Console.WriteLine("3.feladat:Szakaszok száma:{0} db" , sz.Count);

 

            //4.feladat:A túra teljes hossza

            double hossz_pm = 0;

            foreach (var i in sz)

            {

                hossz_pm += i.Táv;

            }

            Console.WriteLine("4.feladat: A túra teljes hossza:{0} km", hossz_pm);

            //5.feladat:A legrövidebb szakasz adatai

            int mini_pm = 0;

            for (int i = 0; i < sz.Count; i++)

            {

                if (sz[i].Táv < sz[mini_pm].Táv) mini_pm = i;

            }

            Console.WriteLine("5.feladat:A legrövidebb szakasz adatai: ");

            Console.WriteLine("\tKezdete: {0}", sz[mini_pm].Kezdet);

            Console.WriteLine("\tVége: {0}", sz[mini_pm].Vég);

            Console.WriteLine("\tTávolság: {0} km", sz[mini_pm].Táv);

 

            //7.feladat: Hiányos állomásnevek

            Console.WriteLine("7.feladat: Hiányos állomásnevek: ");

            bool voltHiányos = false;

            for (int i = 0; i < sz.Count; i++)

            {

                if (sz[i].HianyosNev_pm)

                {

                    Console.WriteLine("\t{0}", sz[i].Vég);

                    voltHiányos = true;

                }

            }

            if (!voltHiányos) Console.WriteLine("Nincs hiányos állomásnév");

 

            //8.feladat:A túra legmagasabban fekvő végpontja

            int aktMagasság_pm = tszfm + sz[0].Emelkedés - sz[0].Lejtés;

            int maxMagasság_pm = aktMagasság_pm;

            int maxi = 0;

            for (int i = 1; i < sz.Count; i++)

            {

                aktMagasság_pm += sz[i].Emelkedés - sz[i].Lejtés;

                if (aktMagasság_pm>maxMagasság_pm)

                {

                    maxMagasság_pm = aktMagasság_pm;

                    maxi = i;

                }

            }

            Console.WriteLine("8.feladat: A túra legmagasabban fekvő végpontja: ");

            Console.WriteLine("\tA végpont neve: {0}", sz[maxi].Vég);

            Console.WriteLine("\tA végpont tengerszint feletti magassága: {0} m",maxMagasság_pm);

 

            //9.feladat: kektura.2csv állomány

            List<string> sorok = new List<string>();

            sorok.Add(tszfm.ToString());

            foreach (var i in sz)

            {

                sorok.Add(i.ToString());

            }

            File.WriteAllLines("kektura2.csv", sorok);

 

            Console.ReadKey();

        }

    }

}