2018. május 10., csütörtök

2018.05.10. Programozás feladatok - Algoritmus átkódolása leíró nyelvből programnyelvre


1. Négyzetgyökök keresése

A következő algoritmus számok négyzetgyökét határozza meg. Kódolja az algoritmust a választott programozási nyelven! A ”/*” és ”*/” karakterpárok között megjegyzéseket talál, ezeket helyezze el a megoldásban is! Az elkészült program forráskódját mentse Ngyok néven!

A megoldás során vegye figyelembe a következőket:
      A választott programozási nyelvtől függően eltérő jelölésű operátorokat és függvényeket kell alkalmaznia!
      A ”Térj vissza” utasítás megszakítja a függvény futását és meghatározza annak visszatérési értékét!
      A valós típusú változókhoz használja a legnagyobb pontosságot biztosító adattípust!
      A függvény negatív értékű aktuális paraméter esetén hibakóddal (-1) tér vissza!





namespace Ngyok
{
    class Program
    {
        static double Negyzetgyok(double x)
        {
            double pontossag;
            double also;
            double felso;
            double proba;

            if (x > 0)
            {
                pontossag = 0.00000000000001;

                if (x < 1)
                    {
                        also = x;
                        felso = 1;
                    }
                else
                    {
                        also = 1;
                        felso = x;
                    }
                    while ((felso - also) > pontossag)
                    {
                        proba = (also + felso) / 2;
                        if (proba * proba > x)
                        {
                            felso = proba;
                        }
                        else
                        {
                            also = proba;
                        }
                    }
                    return ((also + felso) / 2);
            }
            else
            {
                if (x == 0)
                {
                    return 0;
                }
                else
                {
                    return -1;
                }
            }

        }
        static void Main(string[] args)
        {
            Console.WriteLine(Negyzetgyok(0));
            Console.WriteLine(Negyzetgyok(3.3));
            Console.WriteLine(Negyzetgyok(2));
            Console.WriteLine(Negyzetgyok(9));
            Console.WriteLine(Negyzetgyok(-9));
            Console.ReadLine();
        }
    }
}



2. feladat



static void KI(string betu)
        {
            Console.Write(betu);
        }

        static bool nem(bool logikai)
        {
            return (!logikai);
        }

        static void Main(string[] args)
        {
            bool v;
            int i;
            int j;

            v = true;
            for (i = 1; i < 8; i++)
            {
                if (i % 2 == 1)
                {
                    v = true;
                }
                else
                    v = false;

                for (j = 1; j < 8; j++)
                {
                    if (v)
                    {
                        KI("A");
                    }
                    else
                    {
                        KI("B");
                    } 
                    v = nem(v); 
                }
                    KI("\n");
                }
            Console.ReadLine();   

3. feladat


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

namespace kod
{
    class Program
    {
        static void KI(string mod)
        {
            Console.WriteLine(mod);
        }
        static void Main(string[] args)
        {
            int[] A = new int[10];
            int I;
            int Min;
            int Max;
            int P;

            Random rnd = new Random();
            I = 0;
            while (I < 10)
            {
                A[I] = rnd.Next(100);
                KI(Convert.ToString(A[I]));
                I++;
            }
            KI("");
            KI("Kérem a számot:");
            P = Convert.ToInt32(Console.ReadLine());
            Min = 100;
            Max = 0;
            I = 0;
            while (I < 10)
            {
                if (A[I] > P)
                {
                    if (A[I] < Min)
                        Min = A[I];
                }
                else
                {
                    if (A[I] > Max)
                        Max = A[I];
                }
                I++;
            }
            KI("P szám:");
            KI(Convert.ToString(P));
            KI("A legkisebb:");
            KI(Convert.ToString(Min));
            KI("A legnagyobb:");
            KI(Convert.ToString(Max));

            Console.ReadLine();
        }
    }
}

2018. május 2., szerda

2018.05.02. Objektum-orientált programozás

Végigvettük a témakört.

OOP, property (tulajdonság) – Háromszögek szerkeszthetősége feladat


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

namespace haromszogek
{
    class DHaromszog
    {
        private double aOldal;
        private double bOldal;
        private double cOldal;

        public double a
        {
            get { return aOldal; }
            set
            {
                if (value > 0)
                {
                    aOldal = value;
                }
                else
                {
                    throw new Exception("Az \'a\' nem lehet nulla vagy negatív!");
                }

            }
        }

        public double b
        {
            get { return bOldal; }
            set
            {
                if (value > 0)
                {
                    bOldal = value;
                }
                else
                {
                    throw new Exception("Az \'b\' nem lehet nulla vagy negatív!");
                }

            }
        }

        public double c
        {
            get { return cOldal; }
            set
            {
                if (value > 0)
                {
                    cOldal = value;
                }
                else
                {
                    throw new Exception("Az \'c\' nem lehet nulla vagy negatív!");
                }

            }
        }


        public DHaromszog(string sor, int sorSz)
        {
            SorSzama = sorSz;
            string[] adat = new string[3];

            adat = sor.Split();
            a = Convert.ToDouble(adat[0]);
            b = Convert.ToDouble(adat[1]);
            c = Convert.ToDouble(adat[2]);
            if (!EllMegszerkesztheto) throw new Exception("A háromszöget nem lehet megszerkeszteni!");
            if (!EllNovekvoSorrend) throw new Exception("Az adatok nincsenek növekvő sorrendben!");
            if (!EllDerekszogu) throw new Exception("A háromszög nem derékszögű!");

        }

        public int SorSzama
        {
            get;
            set;
        }

        public double Kerulet
        {
            get
            {
                return a + b + c;
            }
        }

        public double Terulet
        {
            get
            {
                return a * b / 2;
            }
        }

        public bool EllNovekvoSorrend
        {
            get
            {
                if (a <= b && b <= c)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
        }

        public bool EllDerekszogu
        {
            get
            {
                if (Math.Pow(a, 2) + Math.Pow(b, 2) == Math.Pow(c, 2) ||
                    Math.Pow(a, 2) + Math.Pow(c, 2) == Math.Pow(b, 2) ||
                    Math.Pow(b, 2) + Math.Pow(c, 2) == Math.Pow(a, 2))
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
        }

        public bool EllMegszerkesztheto
        {
            get
            {
                if ((a + b > c) && (a + c > b) && (b + c > a))
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
        }


        public override string ToString()
        {
            return SorSzama + ".sor: a=" + a + " b=" + b + " c=" + c + " K=" + Kerulet + " T=" + Terulet;
        }



    }
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                StreamReader be = new StreamReader("haromszogek.txt");
                int i=0;
                while (!be.EndOfStream)
                {
                    DHaromszog h = new DHaromszog(be.ReadLine(),i+1 );
                    Console.WriteLine(h.ToString());
                    i++;
                }
                be.Close();
            }
            catch (Exception ex)
            {

                Console.WriteLine(ex.Message);
            }

            Console.ReadLine();
        }
    }
}
Szövegfájl:
1,11 1,48 1,85
8,0 15,0 17,0
4,0 3,0 2,0
3,0 4,0 5,0
9,0 40,0 48,0
0,0 2,2 4,56
1,2 3,4 5,6
11,7 15,6 19,5