Risipa de key_press | Programare

Programare .Net | Tehnici de programare | Tutoriale | Lectii si exemple

Risipa de key_press | Programare - Programare .Net | Tehnici de programare | Tutoriale | Lectii si exemple

Structuri de date

Un program trebuie sa prelucreze volume mari de date iar pentru ca aceasta prelucrare sa se realizeze eficient este necesara organizarea datelor in structuri de date. De exemplu, putem ordona angajatii unei companii, alfabetic. Pentru acest lucru, va fi nevoie sa retinem intr-o structura de date numele si prenumele angajatilor si apoi sa ii putem ordona. Sau mai mult, tot cu ajutorul unei structuri de date puteam afisa angajatii companiei prin prisma relatiilor ierarhice.

Continue reading

Tipul triunghiului

Sa se determine tipul triunghiului in functie de valoarea laturilor.

Analiza Programului
Un triunghi echilatateral are toate laturile egale, un triunghi isoscel are doua laturi egale iar un triunghi oarecare nu are nici o latura egala.

using System;

namespace Triangles
{
    class Program
    {
        static void Main(string[] args)
        {
            //citirea valorilor de la tastatura
            int a, b, c;
            Console.Write("Introduceti a = ");
            Int32.TryParse(Console.ReadLine(), out a);
            Console.Write("Introduceti b = ");
            Int32.TryParse(Console.ReadLine(), out b);
            Console.Write("Introduceti c = ");
            Int32.TryParse(Console.ReadLine(), out c);

            if(a <=0 || b<=0 || c<=0)
            {
                Console.WriteLine("Nu se poate determina tipul triunghiului");
                return;
            }

            //verifica daca triunghiul este echilateral
            if(a == b && b == c)
            {
                Console.WriteLine("Triunghiul este echilateral");
            }
            //verifica daca triunghiul este isoscel
            else if(a == b || a == c || b == c)
            {
                Console.WriteLine("Triunghiul este isoscel");
            }
            else
            {
                Console.WriteLine("Triunghiul este oarecare");
            }
        }
    }
}

LINQ to XML

LINQ to XML permite manipularea fisierelor XML cu ajutorul unor clase optimizate pentru interogarile de tip LINQ. Sintaxa este aceeasi folosita pentru interogarea obiectelor (vezi exemplu).

Fisierul xml pe care il vom folosi este:

<?xml version="1.0"?>
<catalog>
  <book id="bk101">
    <author>Gambardella, Matthew</author>
    <title>XML Developer's Guide</title>
    <genre>Computer</genre>
    <price>44.95</price>
    <publish_date>2000-10-01</publish_date>
    <description>
      An in-depth look at creating applications
      with XML.
    </description>
  </book>
  <book id="bk102">
    <author>Ralls, Kim</author>
    <title>Midnight Rain</title>
    <genre>Fantasy</genre>
    <price>5.95</price>
    <publish_date>2000-12-16</publish_date>
    <description>
      A former architect battles corporate zombies,
      an evil sorceress, and her own childhood to become queen
      of the world.
    </description>
  </book>
  <book id="bk103">
    <author>Corets, Eva</author>
    <title>Maeve Ascendant</title>
    <genre>Fantasy</genre>
    <price>5.95</price>
    <publish_date>2000-11-17</publish_date>
    <description>
      After the collapse of a nanotechnology
      society in England, the young survivors lay the
      foundation for a new society.
    </description>
  </book>
  <book id="bk104">
    <author>Corets, Eva</author>
    <title>Oberon's Legacy</title>
    <genre>Fantasy</genre>
    <price>5.95</price>
    <publish_date>2001-03-10</publish_date>
    <description>
      In post-apocalypse England, the mysterious
      agent known only as Oberon helps to create a new life
      for the inhabitants of London. Sequel to Maeve
      Ascendant.
    </description>
  </book>
</catalog>

Pentru afisarea cartilor din categoria Computer se poate scrie:

            XDocument document = XDocument.Load("Books.xml");
            var allBooks = from book in document.Descendants("book")
                           where book.Element("genre").Value == "Computer"
                           select book.Element("title").Value;


            foreach (var item in allBooks)
            {
                Console.WriteLine(item.ToString());   
            }

Combinarea datelor in LINQ

Cuvantul cheie join este folosit pentru combinarea datelor din mai multe tabele, ceea ce confera o putere extraordinara pentru LINQ. Sa ne amintim interogarea, ordonarea, si filtrarea unei colectii cu LINQ. In exemplele prezentate foloseam clasele Author si Book. Pentru a evidentia importanta cuvantului cheie JOIN, voi vrea sa returnez titlul din colectia de carti combinat cu numele autorului.

            var data = from book in myBooks
                       join author in authors on book.AuthorId equals author.Id
                       select new { 
                                    Book = book.Title,
                                    Author = author.FirstName + " " + author.LastName
                                  };

            foreach (var bookAuthor in data)
            {
                Console.WriteLine("{0} - {1}", bookAuthor.Book, bookAuthor.Author);
            }

Join-ul a permis intr-un mod eficient si usor combinarea elementelor.

Observati ca data este un tip anonim iar folosirea lui var este obligatorie.

Pana acum am folosit LINQ pentru interogarea colectiilor de obiecte. Intr-un articol viitor, vom vedea cum este posibila interogarea unui Web Service.

Articole programare #3

ILSpy.net – IlSpy este un de-compilator open-source pentru assembly-urile .Net. Cu ajutorul lui se pot decompila assembly-uri din FCL, inapoi in C#.

Popularitatea limbajelor – Conform Tiobe, ierarhia a ramas aceeasi, in comparatie cu anul trecut: 1 – Java, 2 – C, crestere pentru Objective-C, data de numarul aplicatiilor pentru IPhone, IPad, C++ mentine pozita 4, C# cade pe 5. Criteriile conform carora s-a creat clasamentul sunt prezentate aici.

SDL.NET -SDL.NET este o librarie cu ajutorul careia poti dezvolta jocuri in C#.

{P} ITFest 2013 a dat drumul la înscrieri

ITFest 2013 a dat drumul la înscrieri!
De acum ai şansa să te înscrii la Concursul de proiecte, Workshop-uri și LAN Party-ul din cadrul ITFest 2013!
Concursul de proiecte reprezintă o parte importantă din cadrul ITFest. Aici elevi și studenți din întreaga țară au ocazia să se întâlnească într-un mediu care facilitează schimbul de experiență sau idei și, binenînțeles, să își prezinte lucrările, fiind recompensați în funcție de valoarea acestora.
Căutăm proiecte din următoarele domenii:
– Programare (inclusiv web)
– Design (media și web)
– Aplicații mobile
– Jocuri
– Hardware
Te poţi înscrie cu un proiect realizat de tine, sau într-o echipă de maxim 5 persoane.
Termenul limită pentru înscrierea unui proiect este 24 februarie, așa că nu mai aștepta și înscrie-te! Vei avea șansa să câștigi unul din premiile oferite de sponsorii noștri!

Dacă vrei să înveți ceva nou te așteptăm să te înscrii la Workshop-urile noastre. Acestea vor avea următoarea tematică:
Mobile Development : Android, Windows Phone 8, iOS
Game Development
Antreprenoriat în IT
Data limită pentru înscrierea la un proiect este 4 martie, dar locurile sunt limitate așa că grăbește-te și înscrie-te!

Dacă vrei să te distrezi și să demonstrezi că ești cel mai bun jucător de DOTA 2, LOL sau FIFA 11 te așteptăm să te înscrii la LAN Party, unde vei întâlni mulți alți tineri dornici de reușită. Pe lângă faptul că poți demonstra că ești cel mai bun, primele 3 locuri vor câștiga și câte un premiu.

ITFest 2013 va avea loc între 6 şi 10 martie, la Timişoara!

Pentru mai multe detalii și pentru înscriere intră pe http://www.itfest.ro .

Articole programare #2

Project Euler – O platforma care pune la dispozie o multime de probleme (matematica/programare) pentru rezolvare.

O idee despre cum ai putea scrie jocul Hangman in C#.

Resharper – Un articol despre cat de mult ajuta acest tool in activitatea zilnica a unui programator.

Ce mai face Windows Phone? – Alaturi de Huawei, Microsoft continua pe piata smartphone-urilor din Africa. Modelul se va numi Huawei 4Afrika, va rula Windows Phone 8 si va fi disponibil in cateva tari.