Keresés

Új hozzászólás Aktív témák

  • oO7

    őstag

    válasz hoffman_ #4346 üzenetére

    hát... a logika végülis szerintem még tartható... nagyjából :D
    semmi gáz

  • oO7

    őstag

    válasz hoffman_ #4342 üzenetére

    az első feladatnál egy "manuális for ciklust" kell összeraknod a bekérésre, és addig kell bekérned számokat amíg nem jön össze 10 ami megfelel a kritériumoknak...

    leellenőrzöd, hogy a megadott szöveg az szám e,
    aztán string műveletekkel megnézed, hogy 4 karakterből áll e, azaz 4 jegyű szám e,
    illetve, hogy a 2. (1-es index) és 4. (3-as index) karakter (számjegy) különbözik e...
    ha szám is volt meg négyjegyű is meg különböznek is a helyiértékek, akkor hozzáadod a listához és növeled az indexet, hogy akkor most te az n+1-dik helyre keresel új számot... ezt egészen addig csinálod (while ciklus) amíg össze nem jön a 10 elem...

    // Elso feladat elso resze
    int[] s1 = new int[10];
    int s1Index = 0;
    while (s1Index < 10)
    {
    string s = Console.ReadLine();

    int number = 0;
    bool isNumber = int.TryParse(s, out number);

    if (isNumber && s.Length == 4 && s[1] != s[3])
    {
    s1[s1Index] = number;
    s1Index++;
    }
    }

    A következő résznél a bináris formátumra alakításhoz a Convert.ToString() metódust érdemes használni... ez egy számból elkészíti a bináris megfelelőjét stringként... ezen pedig már tudod vizsgálni az utolsó és utolsó előtti biteket és a feltételnek megfelelően egy új tömbbe pakolni... itt nem tudhatod előre, hogy hány eleme lesz a tömbnek szóval inicializáld 10 hosszúnak, készülj fel a legrosszabbra, aztán majd az indexet úgyis megint manuálisan kell kezelni a feltételek miatt, és azzal fogod tudni nyomonkövetni, hogy hány elem van a listában.

    a végén pedig az utolsó maximum 4 elemnek kiszámolni az átlagát úgy, hogy visszafele járjuk be a tömböt...

    // Elso feladat masodik resz
    int[] s2 = new int[10];
    int s2Index = 0;
    for (int i = 0; i < s1.Length; i++)
    {
    string binary = Convert.ToString(s1[i], 2);
    if (binary[binary.Length - 1] == '0' &&
    binary[binary.Length - 2] == '1')
    {
    s2[s2Index] = s1[i];
    s2Index++;
    }
    }

    int s2Length = Math.Min(s2Index, 4);
    int startIndex = s2Index - 1;
    int endIndex = s2Index - s2Length;

    int osszeg = 0;
    for (int i = startIndex; i >= endIndex; i--)
    {
    osszeg += s2[i];
    }
    double atlag = osszeg / (double)s2Length;

    Bár lehetne ezt sokkal szebben is a rendelkezésre álló technológiákkal, de a feladat jellegéből arra tippelnék, hogy azokat a függvényeket nem használhatjátok :(

    második feladathoz még gyűjtenem kell egy kis türelmet, kínzás ilyen kódot írni :D

Új hozzászólás Aktív témák