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

Exercitiu

Se citeste de la tastatura o succesiune de litere mic terminata cu caracterul punct.Sa se afiseze pe ecran literele care se repeta.

Analiza Programului
O prima solutie ar fi memorarea caracterelor intr-un vector, parcurgerea lui pentru fiecare element si verificarea daca mai apare sau nu pe o alta pozitie. Daca da, il afisam. Aceasta varianta nu este foarte potrivita, deoarece caracterul va fi afisat ori de cate ori va fi gasit pe o alta pozitie. Asta inseamna ca va trebui sa stim daca un caracter a mai fost sau nu afisat. Pentru asta, vom declara un vector cu 26 de componente (numarul de litere mici din alfabet). Chiar de la citirea caracterelor, vom numara in acest vector ori de cate ori va aparea fiecare litera din alfabet in sir. Vom parcurge vectorul si vom afisa doar literele pentru care numarul de aparitii va fi mai mare decat 1.

using System;

namespace Exercitiu
{
    class Program
    {
        static void Main(string[] args)
        {
            int [] array = new int[26];

            Console.WriteLine("Introduceti caracterele:");
            char c;

            //se executa pana gaseste caracterul .
            do
            {
                c = (char) Console.Read();
                //daca nu este punct, numara aparitia literei la pozitia corespunzatoare in vector
                if(c != '.')
                    array[c - 'a']++;
            } 
            while (c != '.');

            for (int i = 0; i < array.Length; i++)
            {
                if(array[i] > 1)
                    Console.WriteLine((char)(i+'a'));
            }

            Console.Read();
        }
    }
}
Category: Uncategorized

Your email address will not be published. Required fields are marked *

*