2016. szeptember 28., szerda

2016.09.29. Szekvencia gyakorlás

           Megoldás:
namespace szovegertes
{
    class Program
    {
        static void Main(string[] args)
        {
            //Írjunk együtt programot, amellyel a szövegértési képességet mérjük.
            //Feladat:
            //- Tagoltan írjuk ki a képernyőre a megadott tudományos szöveget.
            //- Tegyünk fel kérdéseket a szöveg tartalmára vonatkozóan.
            //A válaszok rögzítéséhez használjuk az egész szám, tört szám,
            //karakter, szöveges, logikai típusokat.
            //- Írjuk ki a képernyőre, mit tudtunk meg.

            //A szöveget ilyen formában írjuk ki:
            //Komoly áttörést ért el a DNS-alapú adattárolásban
            //a Harvard Egyetem biomérnöki intézete, ahol George Church         
            //és csapata egy 53 400 szavas könyvet, 11 képet                  
            //és egy JavaScript programot – összesen 5,27 millió bit adatot
            //– kódoltak bele egy DNS-be.
            //A DNS az egyik legstabilabb és legnagyobb adatsűrűségű
            //információtároló, ami elméletben két bit adatot tud tárolni
            //nukleotidonként (ez a DNS szerkezeti egysége).
            //Egyetlen gramm DNS-ben 455 exabájt adat tárolható,
            //ami hozzávetőlegesen 100 milliárd dvd kapacitásának felel meg
            //és 4-5-ször nagyobb adatsűrűséget tesz lehetővé,
            //mint például a flash memória. Emellett a DNS-be írt
            //információknak nagy előnye, hogy több száz évvel később is
            //olvashatóak maradnak, miközben egy dvd élettartama
            //legfeljebb néhány évtized.

            Console.WriteLine("Komoly áttörést ért el a DNS-alapú adattárolásban" + "\n" 
            "a Harvard Egyetem biomérnöki intézete, ahol George Church" + "\n" +           
            "és csapata egy 53 400 szavas könyvet, 11 képet" + "\n" +                     
            "és egy JavaScript programot – összesen 5,27 millió bit adatot" + "\n" +
            "– kódoltak bele egy DNS-be." + "\n" +
            "A DNS az egyik legstabilabb és legnagyobb adatsűrűségű" + "\n" +
            "információtároló, ami elméletben két bit adatot tud tárolni" + "\n" +
            "nukleotidonként (ez a DNS szerkezeti egysége)." + "\n" +
            "Egyetlen gramm DNS-ben 455 exabájt adat tárolható," + "\n" +
            "ami hozzávetőlegesen 100 milliárd dvd kapacitásának felel meg" + "\n" +
            "és 4-5-ször nagyobb adatsűrűséget tesz lehetővé," + "\n" +
            "mint például a flash memória. Emellett a DNS-be írt" + "\n" +
            "információknak nagy előnye, hogy több száz évvel később is" + "\n" +
            "olvashatóak maradnak, miközben egy dvd élettartama" + "\n" +
            "legfeljebb néhány évtized.");

            Console.WriteLine();
            //A következő kérdéseket tegyük fel:

            //Kinek a nevéhez fűződik a felfedezés?
            //Mibe kódolták az adatokat a Harvardon?  //Ezt a választ karakterenként kérjük be, egy sorban.
            //Hány könyvet kódoltak a DNS-be?
            //Hány képet kódoltak a DNS-be?
            //Hány programot kódoltak a DNS-be?
            //Összesen hány millió bit adatot kódoltak a DNS-be?
            //A DNS nukleotidja elméletben két bit adatot tud tárolni? (true/false)

            //A bekért adatokat a következőképpen írd ki:

            //Első verzió:
            //A következőket válaszoltad:
            //A tudós, akinek a nevéhez fűződik a felfedezés:
            //A Harvardon ebbe az anyagba kódolták az adatokat:
            //Összesen ennyi könyvet, képet és programot kódoltak a DNS-be:
            //Összesen ennyi millió bit adatot kódoltak a DNS-be:
            //A DNS nukleotidja elméletben két bit adatot tud tárolni?:
           
            //Második verzió:
            //A következőket válaszoltad:
            //{0} a tudós neve, akinek a nevéhez fűződik a felfedezés.
            //A Harvardon a {0} nevű anyagba kódolták az adatokat.
            //Összesen {0} könyvet, képet és programot kódoltak a DNS-be.
            //Összesen {0} millió bit adatot kódoltak a DNS-be.
            //{0}, hogy a DNS nukleotidja elméletben két bit adatot tud tárolni.

            Console.Write("Kinek a nevéhez fűződik a felfedezés?: ");
            string tudos = Console.ReadLine();

            Console.Write("Mibe kódolták az adatokat a Harvardon? (3 betű egymás után, utána Enter): ");
            char dns1 = Convert.ToChar(Console.Read()); //nincs soremelés
            char dns2 = Convert.ToChar(Console.Read());
            char dns3 = Convert.ToChar(Console.ReadLine());
            string dns = "";
            dns = dns + dns1 + dns2 + dns3;

            Console.Write("Hány könyvet kódoltak a DNS-be?: ");
            int konyv = Convert.ToInt32(Console.ReadLine());
            Console.Write("Hány képet kódoltak a DNS-be?: ");
            int kep = Convert.ToInt32(Console.ReadLine());
            Console.Write("Hány programot kódoltak a DNS-be?: ");
            int program = Convert.ToInt32(Console.ReadLine());
            Console.Write("Összesen hány millió bit adatot kódoltak a DNS-be?: ");
            double bit = Convert.ToDouble(Console.ReadLine());
            Console.Write("A DNS nukleotidja elméletben két bit adatot tud tárolni? (true/false): ");
            bool kapacitas = Convert.ToBoolean(Console.ReadLine());


            Console.WriteLine("A következőket válaszoltad: ");
            Console.WriteLine("A tudós, akinek a nevéhez fűződik a felfedezés: {0}", tudos);
            Console.WriteLine("A Harvardon ebbe az anyagba kódolták az adatokat: {0}", dns);
            Console.WriteLine("Összesen ennyi könyvet, képet és programot kódoltak a DNS-be: {0}", konyv + kep + program);
            Console.WriteLine("Összesen ennyi millió bit adatot kódoltak a DNS-be: {0}", bit);
            Console.WriteLine("A DNS nukleotidja elméletben két bit adatot tud tárolni?: {0}", kapacitas);

            Console.WriteLine();

            Console.WriteLine("A következőket válaszoltad: ");
            Console.WriteLine("{0} a tudós neve, akinek a nevéhez fűződik a felfedezés.", tudos);
            Console.WriteLine("A Harvardon a {0} nevű anyagba kódolták az adatokat.", dns);
            Console.WriteLine("Összesen {0} könyvet, képet és programot kódoltak a DNS-be.", konyv + kep + program);
            Console.WriteLine("Összesen {0} millió bit adatot kódoltak a DNS-be.", bit);
            Console.WriteLine("\"{0}\", hogy a DNS nukleotidja elméletben két bit adatot tud tárolni.", kapacitas);

            Console.ReadLine();
        }
    }
}