2019. november 27., szerda

2019.11.28-29. WEB ismétlés

A tavaly tanultak alapján készíts egy weboldalt Bracketsben csütörtök-pénteken. A témáját megválaszthatod. Pl. teljesen szabadon lehet a globális felmelegedés :)... Ha nincs más ötleted, nézz körül a PCWorld oldalán.

2019. november 21., csütörtök

2019.11.22./2. -26. Elmélet ismétlés

1. Vedd át a puskát. Ha valamire nem emlékszel már rendesen, keresd vissza az adott programot, nézd át, tanuld meg.

2. Kezdd el átismételni a tavalyi elmélet anyagból a feltételes elágazásokat. Kezdd ennél a leckénél.

3. Ha ezzel megvagy, folytasd a ciklusokkal innen.



2019.11.22./1. Ismétlés

Fejezd be az előző órai feladatsort.

2019.11.21. Ismétlés

Önálló feladatmegoldás:


//A kiírásoknál mindig legyen magyarázó szöveg.
//(Felhasználóbarát programnál mindig tudja a user,
//hogy mi van a képernyőn, és mit kell tennie.)
//Minden feladathoz tartozó kiírás új sorban kezdődjön.

//Adj a programablaknak egy címet.

//- Változtasd meg a betűszínt egy új színre.
//- Változtasd meg a háttérszínt egy új színre,
//majd oldd meg, hogy azonnal megváltozzon
//az egész ablak háttérszíne.

//Írd ki egyetlen utasítással a következő
//szöveget ugyanígy két sorba:
//Az igazi siker nem pénz és nem hírnév...
//Az igazi siker a bennünk rejlõ képességek kibontakoztatásának öröme (Csermely Péter)

//- Kérj be egy szöveget, és
//tárold egy változóban. Pl: hahó

//- Kérj be egy karaktert, és
//tárold egy változóban.
//Pl.: ó

//- A karaktert fűzd a szöveg végére háromszor.
//- Írd ki az új szöveget egyetlen utasítással.
//Pl.: Az új szöveg ez lehet: hahóóóó


//Add értékül programból egy megfelelő típusú
//változónak a következő szót: mindenki
//Add értékül programból egy megfelelő típusú
//változónak a következő szót: akár

//Írd ki egyetlen utasítással a következő szöveget     
//a képernyőre úgy, hogy a két változó tartalmát
//a megfelelő helyekre beilleszted:
//Hálózatot mindenki épít, akár akar, akár nem. (Csermely Péter)

//Kérj be két egész számot.
//A számokat tárold változókban.


//A számokat add össze úgy, hogy az első számot
//tartalmazó változóban tárolódjon az eredmény.

//Írd ki az összeget két kiíró utasítással.    
//A kiírás végül így nézzen ki:
//Összeg: 10


//Az összegből a második számot vond ki úgy,             
//hogy egy új változóban tárolódjon az eredmény.

//Írd ki a különbséget egyetlen kiíró utasítással.    
//A kiírás végül így nézzen ki:
//Az összegből kivonva a második számot: 10

//Írd ki a bekért egész számok szorzatát úgy,
//hogy ne tárold az eredményt. (Vigyázz, cseles!)
//Egyetlen kiíró utasítást használj.
//A kiírás végül így nézzen ki: 5 * 6 = 30

//- Kérj be egy 0-255 közötti számot, és
//tárold egy változóban.

//Írd ki a számot úgy, hogy egy 20 karakteres
//helyen jobbra legyen rendezve.

//Írd ki a következő műveletsor eredményét
//a képernyőre két kiíró utasítással.
//(Az eredményt nem kell tárolni.)
//A bekért kis számot  oszd el 6-tal,
//majd szorozd meg a bekért első egész számmal.
//Ebből vond ki a második egész szám négyzetét.
//A kiírás végül így nézzen ki:
//A műveletsor végeredménye: 15

//Kérj be egy logikai értéket.
//Írd ki a felhasználónak, hogy milyen
//értékeket írhat be.
//Az értéket tárold egy változóban.

//Írd ki az értéket egyetlen utasítással.        

//Egy sportközpontban van egy röpipálya a földszinten,
// az emeleten pedig egy konditerem, és egy aerobik terem.
//Kérd be a konditerem és az aerobik terem méreteit,
//és számold ki az összesített alapterületüket.
//Írd ki ezt az értéket a mértékegységével együtt.
//(Részszámításokat kiírhatsz.)
//(A mértékegységet írd szövegesen.)
//A röpipálya alapterülete 25%-kal nagyobb, mint
//a fenti két terem alapterülete összesen.
//Mekkora a röpipálya alapterülete?
//Számold ki, és írd ki a képernyőre.
//A mértékegységet írd szövegesen.)

Megoldás:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace evvegiGyakorlas
{
    class Program
    {
        static void Main(string[] args)
        {
            //A kiírásoknál mindig legyen magyarázó szöveg.
            //(Felhasználóbarát programnál mindig tudja a user,
            //hogy mi van a képernyőn, és mit kell tennie.)
            //Minden feladathoz tartozó kiírás új sorban kezdődjön.

            //Adj a programablaknak egy címet.
            Console.Title = "Gyakorlás";

            //- Változtasd meg a betűszínt egy új színre.
            //- Változtasd meg a háttérszínt egy új színre,
            //majd oldd meg, hogy azonnal megváltozzon
            //az egész ablak háttérszíne.
            Console.BackgroundColor = ConsoleColor.Blue;
            Console.ForegroundColor = ConsoleColor.Cyan;
            Console.Clear();

            //Írd ki egyetlen utasítással a következő
            //szöveget ugyanígy két sorba:
            //Az igazi siker nem pénz és nem hírnév...
            //Az igazi siker a bennünk rejlõ képességek kibontakoztatásának öröme (Csermely Péter)

            Console.WriteLine("Az igazi siker nem pénz és nem hírnév...\nAz igazi siker a bennünk rejlő képességek kibontakoztatásának öröme (Csermely Péter)");

                                 
            //- Kérj be egy szöveget, és
            //tárold egy változóban. Pl: hahó
            Console.Write("Kérek egy szöveget: ");
            string szoveg = Console.ReadLine();

            //- Kérj be egy karaktert, és
            //tárold egy változóban.
            //Pl.: ó
            Console.Write("Kérek egy karaktert: ");
            char karakter = Convert.ToChar(Console.ReadLine());

            //- A karaktert fűzd a szöveg végére háromszor.
            //- Írd ki az új szöveget egyetlen utasítással.
            //Pl.: Az új szöveg ez lehet: hahóóóó
            szoveg = szoveg + karakter + karakter + karakter;
            Console.WriteLine("Az új szöveg: {0}", szoveg);

            //Add értékül programból egy megfelelő típusú
            //változónak a következő szót: mindenki
            //Add értékül programból egy megfelelő típusú
            //változónak a következő szót: akár
            string elsoSzo = "mindenki";
            string masodikSzo = "akár";

            //Írd ki egyetlen utasítással a következő szöveget     
            //a képernyőre úgy, hogy a két változó tartalmát
            //a megfelelő helyekre beilleszted:
            //Hálózatot mindenki épít, akár akar, akár nem. (Csermely Péter)
            Console.WriteLine("Hálózatot {0} épít, {1} akar, {1} nem. (Csermely Péter)", elsoSzo, masodikSzo);

            //Kérj be két egész számot.
            //A számokat tárold változókban.

            Console.Write("Kérek egy egész számot: ");
            int egesz1 = Convert.ToInt32(Console.ReadLine());
            Console.Write("Kérek még egy egész számot: ");
            int egesz2 = Convert.ToInt32(Console.ReadLine());

            //A számokat add össze úgy, hogy az első számot
            //tartalmazó változóban tárolódjon az eredmény.
            int egeszElso = egesz1; //biztonsági másolat, később szükség lesz rá, hogy tudjuk az eredeti értéket
            egesz1 = egesz1 + egesz2;

            //Írd ki az összeget két kiíró utasítással.    
            //A kiírás végül így nézzen ki:
            //Összeg: 10

            Console.Write("Összeg: ");
            Console.WriteLine(egesz1);

            //Az összegből a második számot vond ki úgy,              
            //hogy egy új változóban tárolódjon az eredmény.
            int kulonbseg = egesz1 - egesz2;

            //Írd ki a különbséget egyetlen kiíró utasítással.    
            //A kiírás végül így nézzen ki:
            //Az összegből kivonva a második számot: 10
            Console.WriteLine("Az összegből kivonva a második számot: {0}",kulonbseg );

            //Írd ki a bekért egész számok szorzatát úgy,
            //hogy ne tárold az eredményt. (Vigyázz, cseles!)
            //Egyetlen kiíró utasítást használj.
            //A kiírás végül így nézzen ki: 5 * 6 = 30
            Console.WriteLine("{0} * {1} = {2}", egeszElso, egesz2, egeszElso* egesz2);

            //- Kérj be egy 0-255 közötti számot, és
            //tárold egy változóban.
            Console.Write("Kérek egy 0-255 közötti számot: ");
            byte kisSzam = Convert.ToByte(Console.ReadLine());

            //Írd ki a számot úgy, hogy egy 20 karakteres
            //helyen jobbra legyen rendezve.
            Console.WriteLine("A bekért szám: {0,20}", kisSzam);

            //Írd ki a következő műveletsor eredményét
            //a képernyőre két kiíró utasítással.
            //(Az eredményt nem kell tárolni.)
            //A bekért kis számot  oszd el 6-tal,
            //majd szorozd meg a bekért első egész számmal.
            //Ebből vond ki a második egész szám négyzetét.
            //A kiírás végül így nézzen ki:
            //A műveletsor végeredménye: 15 

            Console.Write("A műveletsor végeredménye: {0}", kisSzam / 6 * egeszElso - egesz2 * egesz2);

            //Kérj be egy logikai értéket.
            //Írd ki a felhasználónak, hogy milyen
            //értékeket írhat be.
            //Az értéket tárold egy változóban.
            Console.Write("Írj be egy logikai értéket (true/false): ");
            bool log = Convert.ToBoolean(Console.ReadLine());

            //Írd ki az értéket egyetlen utasítással.        
            Console.WriteLine("A bekért logikai érték: {0}", log);

            //Egy sportközpontban van egy röpipálya a földszinten,
            //az emeleten pedig egy konditerem, és egy aerobik terem.
            //Kérd be a konditerem és az aerobik terem méreteit,
            //és számold ki az összesített alapterületüket.
            //Írd ki ezt az értéket a mértékegységével együtt.
            //(Részszámításokat kiírhatsz.)
            //(A mértékegységet írd szövegesen.)
            //A röpipálya alapterülete 25%-kal nagyobb, mint
            //a fenti két terem alapterülete összesen.
            //Mekkor a röpipálya alapterülete?
            //Számold ki, és írd ki a képernyőre.
            //A mértékegységet írd szövegesen.)
            Console.Write("Kérem a konditerem szélességét méterben: ");
            double kondiSzelesseg = Convert.ToDouble(Console.ReadLine());
            Console.Write("Kérem a konditerem hosszúságát méterben: ");
            double kondiHosszusag = Convert.ToDouble(Console.ReadLine());
            double konditerulet = kondiSzelesseg * kondiHosszusag;        
            Console.WriteLine();

            Console.Write("Kérem az aerobikterem szélességét méterben: ");
            double aerobikSzelesseg = Convert.ToDouble(Console.ReadLine());
            Console.Write("Kérem az aerobikterem hosszúságát méterben: ");
            double aerobikHosszusag = Convert.ToDouble(Console.ReadLine());
            double aerobikTerulet = aerobikSzelesseg * aerobikHosszusag;       
            Console.WriteLine();

            double osszTerulet = konditerulet + aerobikTerulet;
            Console.WriteLine("A konditerem és az aerobikterem összesített alapterülete: {0} négyzetméter", osszTerulet);

            double ropiTerulet = osszTerulet * 1.25;
            Console.WriteLine("A röpipálya alapterülete: {0} négyzetméter", ropiTerulet);

            //Adj 3 hangjelzést különböző hosszal és hangmagassággal.
            Console.Beep(500, 800);          
            Console.Beep(700, 1000);
            Console.Beep(200, 400);
           
            Console.ReadLine();

        }
    }
}

2019. november 19., kedd

2019.11.19./2. Gyakorlás - Szövegfeldolgozás


A következő programot tesztelt, értelmezd, majd oldd meg a lenti feladatot egy új programban.       


     //Írjunk együtt programot, amellyel a szövegértési képességet mérjük.
            //Feladat:
            //- Tagoltan írjunk ki a képernyőre egy tudományos szöveget.
            //- Tegyünk fel kérdéseket a szöveg tartalmára vonatkozóan.
            //Ügyeljünk, hogy minden ismert típus szerepeljen benne.
            //- Írjuk ki a képernyőre, mit tudtunk meg. Ehhez használjunk
            //egy paraméteres kiírási lehetőséget.

            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" +             //új sor ("\n")
            "és csapata egy 53 400 szavas könyvet, 11 képet" + "\n" +                        //és szövegek összefűzése (+)
            "é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.");

            //Másik módszerrel:
Console.WriteLine("Komoly áttörést ért el a DNS-alapú adattárolásban \na 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.\nA DNS az egyik legstabilabb és legnagyobb adatsűrűségű\ninformációtároló, ami elméletben két bit adatot tud tárolni\nnukleotidonként (ez a DNS szerkezeti egysége).\nEgyetlen gramm DNS-ben 455 exabájt adat tárolható,\nami 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é,\nmint például a flash memória. Emellett a DNS-be írt\ninformációknak nagy előnye, hogy több száz évvel később is\nolvashatóak maradnak, miközben egy dvd élettartama\nlegfeljebb néhány évtized."); 

            Console.WriteLine();
            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?: ");
            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();

            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.ReadLine();



Feladat:


Válassz egy informatikával kapcsolatos szövegrészletet egy cikkből. (Javaslom pl. a http://computerworld.hu/ oldalait.) Készítsd ez alapján egy fentihez hasonló programot.
Ha nincs más ötleted, ezt a cikket javaslom:



2019.11.19. Logikai műveletek 2

A logikai műveleteket a programnyelv a lenti igazságtáblák alapján értékeli ki. Ezeket nem kell (egyelőre) megtanulni, csak tudni kell értelmezni a tartalmát és tudni kell használni.

! (tagadás)
A
!A
false
true
true
false
&& (ÉS)
A
B
A && B
true
true
true
true
false
false
false
true
false
false
false
false
|| (VAGY)
A
B
A || B
true
true
true
true
false
true
false
true
true
false
false
false



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace bool10b1
{
    class Program
    {
        static void Main(string[] args)
        {
            bool log1 = true;
            bool log2 = false;
            bool log3 = false;
            bool log4 = true;
            bool eredmeny1 = !log1; // tagadás
            bool eredmeny2 = log1 && log3; //"ÉS" művelet
            bool eredmeny3 = log4 || log1; //"VAGY" művelet
            Console.WriteLine(eredmeny1);
            Console.WriteLine(eredmeny2);
            Console.WriteLine(eredmeny3);
            Console.WriteLine((log1 && log3) || log2);
            Console.WriteLine(!(log4 || log2) && (log2 && log2));
            Console.WriteLine(!(log2 || log3 && log1) || (log4 && log4 || !log1));
            Console.ReadLine();
        }
    }
}