iDigit https://idigit.ro/site Resursa ta de informații despre informatică Wed, 25 Mar 2020 16:19:15 +0000 ro-RO hourly 1 https://wordpress.org/?v=5.2.7 https://idigit.ro/site/wp-content/uploads/2018/06/cropped-NEW_ico-01-32x32.png iDigit https://idigit.ro/site 32 32 Descompunerea in factori primi https://idigit.ro/site/2019/10/descompunerea-in-factori-primi/ https://idigit.ro/site/2019/10/descompunerea-in-factori-primi/#respond Thu, 24 Oct 2019 10:21:30 +0000 https://idigit.ro/site/?p=2018 Bac descompunere factori primi

The post Descompunerea in factori primi first appeared on iDigit.

]]>
Bac descompunere factori primi

The post Descompunerea in factori primi first appeared on iDigit.

]]>
https://idigit.ro/site/2019/10/descompunerea-in-factori-primi/feed/ 0
Algoritmul lui Euclid https://idigit.ro/site/2019/10/algoritmul-lui-euclid/ https://idigit.ro/site/2019/10/algoritmul-lui-euclid/#respond Thu, 24 Oct 2019 10:20:13 +0000 https://idigit.ro/site/?p=2015 Bac cmmdc

The post Algoritmul lui Euclid first appeared on iDigit.

]]>
Bac cmmdc

The post Algoritmul lui Euclid first appeared on iDigit.

]]>
https://idigit.ro/site/2019/10/algoritmul-lui-euclid/feed/ 0
Divizibilitate https://idigit.ro/site/2019/10/divizibilitate/ https://idigit.ro/site/2019/10/divizibilitate/#respond Thu, 24 Oct 2019 10:18:53 +0000 https://idigit.ro/site/?p=2009 Bac divizibilitate Bac divizibilitate algoritmi Bac probleme divizibilitate

The post Divizibilitate first appeared on iDigit.

]]>
Bac divizibilitate

Bac divizibilitate algoritmi

Bac probleme divizibilitate

The post Divizibilitate first appeared on iDigit.

]]>
https://idigit.ro/site/2019/10/divizibilitate/feed/ 0
Prelucrarea cifrelor unui numar https://idigit.ro/site/2019/10/prelucrarea-cifrelor-unui-numar/ https://idigit.ro/site/2019/10/prelucrarea-cifrelor-unui-numar/#respond Sat, 12 Oct 2019 19:40:53 +0000 https://idigit.ro/site/?p=1958 Algoritmul de prelucrare a cifrelor unui numar, obtine intotdeauna ultima cifra a numarului curent ca fiind restul impartirii la 10 (cifra = n % 10), iar apoi elimina aceasta cifra din numar (n = n / 10). Algoritmul continua cat timp n > 0.  Forma

The post Prelucrarea cifrelor unui numar first appeared on iDigit.

]]>
Algoritmul de prelucrare a cifrelor unui numar, obtine intotdeauna ultima cifra a numarului curent ca fiind restul impartirii la 10 (cifra = n % 10), iar apoi elimina aceasta cifra din numar (n = n / 10). Algoritmul continua cat timp n > 0.  Forma generala  este:

while (n)                 
{ 
	cifra = n % 10; 
	Prelucrare cifra 
	n = n / 10; 
}

Problemele ce privesc generarea unui numar plecand de la un numar dat, se clasifica in general in doua categorii:

  • Determinarea unui nou numar (m), pornind de la cifrele numarului initial (n), avand cifrele in ordine inversa fata de cel initial. Ex: construirea oglinditului unui numar.

n = 123 => m = 321
321 = 3 * 102 + 2 * 101 + 1 * 100 = ((0  * 10 + 3) * 10 + 2) * 10 + 1 <=> m = m * 10 + n % 10

int m = 0;                 //se initializeaza noul numar cu 0
while (n) 
{ 
    m = m * 10 + n % 10; 
    n = n / 10; 
}
  • Determinarea unui nou numar (m), pornind de la cifrele numarului initial (n),  avand cifrele in aceeasi ordine cu cel initial. Ex: construirea unui numar format prin eliminarea primei cifre.

n = 1234 => m = 234

234=2 * 102 + 3 * 101 + 4 * 100 = 4 * 1 + 3 * 10 + 2 * 100 <=> m = m + n % 10 * p; p = p * 10;

int m = 0, p = 1;         //se initializeaza noul numar cu 0; variabila p va retine puterile lui 10
while (n > 9) 
{ 
     m = m + n % 10 * p; 
     p = p * 10; 
     n = n / 10; 
}

Probleme rezolvate

  1. Sa se scrie o functie care returneaza suma cifrelor unui numar trimis ca parametru.
  2. Sa se scrie o functie care returneaza numarul cifrelor unui numar trimis ca parametru.
  3. Sa se scrie o functie care returneaza inversul unui numar trimis ca parametru.
  4. Sa se scrie o functie care verifica daca un numar este palindrom. Un numar este palindrom daca este egal cu oglinditul sau. (Ex.: 12321)
  5. Să se scrie o funcție C++ care să returneze suma factorialelor cifrelor unui număr natural transmis ca parametru.
    #898 SumFactCif https://www.pbinfo.ro/?pagina=probleme&id=898
  6. Să se scrie o funcție C++ care să determine cea mai mare și cea mai mică cifră a unui număr natural transmis ca parametru. Funcția va întoarce rezultatele prin intermediul unor parametri de ieşire.#894 CifMinMax https://www.pbinfo.ro/?pagina=probleme&id=894
  7. Sa se scrie o functie care primeste ca parametru un numar si apoi returneaza tot prin intermediul aceluiasi parametru numarul obtinut prin eliminarea primei si ultimei cifre a numarului initial. Ex: n = 12345; Nr(n); => nr = 234
  8. Să se scrie un subprogram C++ prin care se dublează prima cifră a unui număr natural n transmis ca parametru. Funcția întoarce rezultatul prin intermediul aceluiași parametru n.
    #1633 Dublare1 https://www.pbinfo.ro/?pagina=probleme&id=1633
  9. Sa se scrie o functie numita Par, care sa verifice daca un numar n trimis ca parametru are cel putin o cifra para. Sa se numere cate numere din cele n citite au ultima cifra para si restul impare folosind apeluri succesive al functiei par.
  10. Subprogramul Impare are un singur parametru, n, prin care primește un număr natural. Subprogramul înlocuiește fiecare cifră impară a lui n cu cea mai mare cifră pară strict mai mică decât ea (astfel cifra 1 se înlocuieşte cu cifra 0, cifra 3 cu cifra 2 etc.) și furnizează numărul obținut tot prin parametrul n.
    #3119 Impare_Bac https://www.pbinfo.ro/?pagina=probleme&id=3119
    Bacalaureat 2019, sesiunea iunie-iulie
  11. Se citește un număr natural n și o cifră c. Determinați numărul obținut prin eliminarea tuturor aparițiilor cifrei c din numărul n.
    #360 cifra https://www.pbinfo.ro/?pagina=probleme&id=360
  12. Se citesc perechi de numere naturale până la citirea a două valori nule. Să se determine câte dintre perechile X Y au proprietatea că prin concatenarea lui X cu Y sau a lui Y cu X să se obțină un palindrom.
    #1410 Numere12 https://www.pbinfo.ro/?pagina=probleme&id=1410
  13. Subprogramul Egal are un parametru, n, prin care primește un număr natural cu cel puțin o cifră impară. Subprogramul returnează valoarea 1 dacă toate cifrele impare ale lui n sunt egale între ele sau valoarea 0 în caz contrar.
    #3104 B_Egal https://www.pbinfo.ro/?pagina=probleme&id=3104
    Subiect bacalaureat 2019, sesiunea specială
  14. Fiind date două numere a şi b, îl numim pe a sufix al lui b dacă a este egal cu b sau dacă b se poate obţine din a prin alipirea la stânga a unor noi cifre. Exemplu: 12 este sufix al lui 12, iar 15 este sufix al lui 31415. Sa se scrie o functie care verifica daca a este sufix pentru b.

    sau
  15. Fiind date două numere a şi b, îl numim pe a sufix al lui b dacă a este egal cu b sau dacă b se poate obţine din a prin alipirea la stânga a unor noi cifre. Exemplu: 12 este sufix al lui 12, iar 15 este sufix al lui 31415. Sa se scrie o functie care verifica daca a este sufix pentru b. Se dă un număr natural x și un șir de numere naturale. Să se determine ultimul număr din șir care îl care ca sufix pe x.
    #803 NrSufix https://www.pbinfo.ro/?pagina=probleme&id=803
    Variante Bacalaureat 2013


  16. Un număr natural este numit echilibrat dacă suma cifrelor sale de pe poziții pare este un număr par, iar suma cifrelor sale de pe poziții impare este un număr impar. Pozițiile cifrelor sunt numerotate de la dreapta la stânga, astfel: cifra unităților este pe poziția 0, cifra zecilor este pe poziția 1 ș.a.m.d. Subprogramul echilibrat are un singur parametru, n, prin care primește un număr natural (n∈[10,109]). Subprogramul returnează valoarea 1 dacă n este echilibrat sau valoarea 0 în caz contrar.
    #2798
    Echilibrat https://www.pbinfo.ro/?pagina=probleme&id=2798
    Subiect Bacalaureat 2018, sesiunea specială

  17. Se dă un număr natural n despre care știm că are număr impar de cifre. Să se afișeze valoarea obținută prin eliminarea cifrei din mijloc.
    #2661 eliminareciframijloc https://www.pbinfo.ro/?pagina=probleme&id=2661

    Download Cifrele unui numar

The post Prelucrarea cifrelor unui numar first appeared on iDigit.

]]>
https://idigit.ro/site/2019/10/prelucrarea-cifrelor-unui-numar/feed/ 0
Reprezentare grafica „Traseul Calului” („Knight’s Tour”) https://idigit.ro/site/2019/10/reprezentare-grafica-traseul-calului-knights-tour/ https://idigit.ro/site/2019/10/reprezentare-grafica-traseul-calului-knights-tour/#respond Sat, 12 Oct 2019 12:29:41 +0000 https://idigit.ro/site/?p=1951 Programul de mai jos va crea o reprezentare grafică a problemei „Traseul Calului” care cere să se găsească traseele pe care un cal poate parcurge toate căsuțele unei table de șah n x m fără a trece de 2 ori prin aceeași căsuță. Pentru a

The post Reprezentare grafica "Traseul Calului" ("Knight's Tour") first appeared on iDigit.

]]>
Programul de mai jos va crea o reprezentare grafică a problemei „Traseul Calului” care cere să se găsească traseele pe care un cal poate parcurge toate căsuțele unei table de șah n x m fără a trece de 2 ori prin aceeași căsuță. Pentru a modifica programul urmează instrucțiunile de la începutul codului.

Un  exemplu de soluție pentru o tablă 5x5 este prezentat mai jos.

Vei avea nevoie de llibrăria graphics.h pentru a rula acest program. Poți găsi instrucțiuni de instalare aici.

#include <iostream>
#include <graphics.h>
#include <windows.h>

///-----------------------------NU EDITA CODUL DE DEASUPRA---------------------------------///

///Trebuie sa instalezi graphics.h ca sa functioneze

#define ScreenWidth 1280    ///Latimea ecranului tau
#define ScreenHeight 720    ///Inaltimea ecranului tau
#define n 8                 ///Latimea tablei de sah, trebuie sa fie intre 5 si 10
#define m 8                 ///Inaltimea tablei de sah, trebuie sa fie intre 5 si 10
#define xS 1                ///Coordonata X de inceput
#define yS 1                ///Coordonata Y de inceput
#define sleep true          ///true=>programul se va executa automat, false=>va trebui sa apesi o tasta pentru fiecare mutare
#define timpSleep 25        ///Cate milisecunde asteapta programul dupa fiecare mutare daca setarea de mai sus este true

///Facut de Maruntis Andrei of idigit.ro
///------------------------------NU EDITA CODUL DE DEDESUBT---------------------------------///

using namespace std;

int xs,ys;
const int l=50;

int deplx[8]={1,2,2,1,-1,-2,-2,-1},deply[8]={2,1,-1,-2,-2,-1,1,2};
int a[15][15],p;

void Tabla()
{
    for (int i=0;i<=n;i++)
        line(xs+l/2+i*l,ys+l/2,xs+l/2+i*l,ys+l/2+m*l);
    for (int j=0;j<=m;j++)
        line(xs+l/2,ys+l/2+j*l,xs+l/2+n*l,ys+l/2+j*l);
}

void cal(int x, int y, bool desen)
{
    if (desen)
        setcolor(WHITE);
    else
        setcolor(BLACK);
    x=x*l+xs;
    y=y*l+ys;
    putpixel(x+4,y-15,getcolor());
    putpixel(x+1,y-14,getcolor());  line(x+3,y-14,x+4,y-14);
    putpixel(x-1,y-13,getcolor());  line(x+1,y-13,x+5,y-13);
    putpixel(x-3,y-12,getcolor());  line(x-1,y-12,x+8,y-12);
    putpixel(x-5,y-11,getcolor());  line(x-3,y-11,x+8,y-11);
    line(x-6,y-10,x+7,y-10);
    putpixel(x-7,y-9,getcolor());   line(x-5,y-9,x+7,y-9);
    line(x-8,y-8,x-5,y-8);          line(x-3,y-8,x+8,y-8);
    line(x-9,y-7,x-6,y-7);          line(x-4,y-7,x+5,y-7);      line(x+8,y-7,x+9,y-7);
    line(x-9,y-6,x-7,y-6);          line(x-5,y-6,x-2,y-6);      line(x,y-6,x+6,y-6);            line(x+8,y-6,x+9,y-7);
    putpixel(x-10,y-5,getcolor());  line(x-8,y-5,x-7,y-5);      line(x-5,y-5,x-3,y-5);          line(x-1,y-5,x+1,y-5);  line(x+3,y-5,x+9,y-5);
    line(x-10,y-4,x-7,y-4);         line(x-5,y-4,x-3,y-4);      line(x-1,y-4,x+1,y-4);          line(x+4,y-4,x+9,y-4);
    line(x-10,y-3,x-8,y-3);         line(x-6,y-3,x-3,y-3);      line(x-1,y-3,x+1,y-3);          line(x+4,y-3,x+10,y-3);
    putpixel(x-11,y-2,getcolor());  line(x-9,y-2,x-8,y-2);      line(x-6,y-2,x-2,y-2);          line(x,y-2,x+11,y-2);
    line(x-11,y-1,x-8,y-1);         line(x-6,y-1,x-1,y-1);      line(x+1,y-1,x+11,y-1);
    line(x-11,y,x-8,y);             line(x-6,y,x,y);            line(x+6,y,x+7,y);              line(x+10,y,x+12,y);
    line(x-10,y+1,x+4,y+1);         line(x+7,y+1,x+9,y+1);      putpixel(x+11,y+1,getcolor());
    line(x-11,y+2,x-7,y+2);         line(x-6,y+2,x+5,y+2);      line(x+9,y+2,x+10,y+2);
    line(x-11,y+3,x-8,y+3);         line(x-6,y+3,x+7,y+3);
    putpixel(x-11,y+4,getcolor());  line(x-9,y+4,x-7,y+4);      line(x-5,y+4,x-2,y+4);          line(x,y+4,x+8,y+4);
    line(x-10,y+5,x-6,y+5);         line(x-4,y+5,x-1,y+5);      line(x+1,y+5,x+8,y+5);
    putpixel(x-10,y+6,getcolor());  line(x-8,y+6,x-6,y+6);      line(x-4,y+6,x-1,y+6);          line(x+1,y+6,x+9,y+6);
    line(x-9,y+7,x-5,y+7);          line(x-3,y+7,x,y+7);        line(x+2,y+7,x+9,y+7);
    putpixel(x-8,y+8,getcolor());   line(x-6,y+8,x-4,y+8);      line(x-2,y+8,x+1,y+8);          line(x+4,y+8,x+9,y+8);
    line(x-7,y+9,x+3,y+9);          line(x+5,y+9,x+9,y+9);
    line(x-6,y+10,x+8,y+10);
    line(x-6,y+11,x+8,y+11);
    line(x-3,y+12,x+5,y+12);
    line(x-6,y+13,x+8,y+13);
    line(x-7,y+14,x+9,y+14);
    line(x-8,y+15,x+10,y+15);
    line(x-9,y+16,x+11,y+16);
}

void text(int x, int y, int nr, bool desen)
{
    if (desen)
        setcolor(WHITE);
    else
        setcolor(BLACK);
    char msj[5];
    if (p>9)
        msj[0]=p/10+48;
    else
        msj[0]=' ';
    msj[1]=p%10+48;
    msj[2]='\0';
    outtextxy(x*l+xs,y*l+ys,msj);
}

bool valid(int xn, int yn)
{
    if (xn>0 && yn>0 && xn<=n && yn<=m && a[xn][yn]==0)
        return true;
    return false;
}

void bck(int x, int y)
{
    int xn,yn;
    a[x][y]=++p;
    cal(x,y,true);
    if (sleep)
        Sleep(timpSleep);
    else
        getch();
    if (p==n*m)
        getch();
    else
    {
        for (int i=0;i<8;i++)
        {
            xn=x+deplx[i];
            yn=y+deply[i];
            if (valid(xn,yn))
            {
                cal(x,y,false);
                text(x,y,p,true);
                bck(xn,yn);
                text(x,y,p,false);
                cal(x,y,true);
                if (sleep)
                    Sleep(timpSleep);
                else
                    getch();
            }
        }
    }
    a[x][y]=0;
    cal(x,y,false);
    p--;
}

int main()
{
    initwindow(ScreenWidth-100,ScreenHeight-100);

    xs=getmaxx()/2-l*(float)(n+1)/2;
    ys=getmaxy()/2-l*(float)(m+1)/2;

    Tabla();

    bck(xS,yS);

    getch();
    cleardevice();
    closegraph();

    return 0;
}

 

The post Reprezentare grafica "Traseul Calului" ("Knight's Tour") first appeared on iDigit.

]]>
https://idigit.ro/site/2019/10/reprezentare-grafica-traseul-calului-knights-tour/feed/ 0
gogosi (Pbinfo #2297) https://idigit.ro/site/2019/09/gogosi/ https://idigit.ro/site/2019/09/gogosi/#respond Wed, 18 Sep 2019 12:25:32 +0000 https://idigit.ro/site/?p=1101 Link către problemă: #gogosi. Pentru a parcuge acest articol trebuie să cunoști căutarea binară. Rezumat enunț: Se dă un șir de numere care reprezintă înălțimile unor persoane. Aceste persoane trebuie distribuite în ordinea în care sunt citite la un număr minim de cozi astfel încăt

The post gogosi (Pbinfo #2297) first appeared on iDigit.

]]>
Link către problemă: #gogosi.

Pentru a parcuge acest articol trebuie să cunoști căutarea binară.

Rezumat enunț: Se dă un șir de numere care reprezintă înălțimile unor persoane. Aceste persoane trebuie distribuite în ordinea în care sunt citite la un număr minim de cozi astfel încăt la fiecare să fie ordonate în ordine crescătoare (nu neapărat strict).

Ce date trebuie memorate?

Faptul că descrierea problemei conține o coadă (de magazin) ne face să credem că este necesar să folosim mai multe date de tip coadă (queue). De fapt, acest lucru nu este necesar.

Crearea unei cozi noi

Este necesar să deschidem o coadă nouă dacă următoarea persoană la rând nu se poate duce la niciuna din cozile existente, ceea ce se întâmplă când aceasta este mai scundă decât ultima persoană de la fiecare coadă.

Eficiența metodei

Să considerăm situația prezentată mai jos.

La ce coadă îl așezăm pe Alex pentru a fi eficienți?

Algoritmul

The post gogosi (Pbinfo #2297) first appeared on iDigit.

]]>
https://idigit.ro/site/2019/09/gogosi/feed/ 0
Prezentare Windows 10 May 2019 Update: Schimbări mici, performanțe mari https://idigit.ro/site/2019/06/prezentare-windows-10-may-2019-update-schimbari-mici-performante-mari/ https://idigit.ro/site/2019/06/prezentare-windows-10-may-2019-update-schimbari-mici-performante-mari/#respond Wed, 19 Jun 2019 09:30:36 +0000 https://idigit.ro/site/?p=1672 După haosul versiunii anterioare, Microsoft aduce o versiune care îmbunătățește în mare parte ce a introdus anterior. Vezi aici toate schimbările acestui update!

The post Prezentare Windows 10 May 2019 Update: Schimbări mici, performanțe mari first appeared on iDigit.

]]>
6 luni au trecut de la ultima versiune majoră de Windows 10, cunoscută sub numele de „October 2018 Update”  care a adus o multitudine de îmbunătățiri si funcții noi, însă și o droaie de probleme precum ștergerea fișierelor personale, instabilitate, etc.

Noua versiune denumită „May 2019 Update”, nu aduce schimbări semnificative asupra sistemului de operare, precum celelalte, ci în mare parte îmbunătățește ceea ce a introdus în versiunea anterioară.

Cum obții această versiune?

Din cauza problemelor cu versiunea anterioară, Microsoft folosește o nouă strategie de a lansa versiunea nouă, deci nu e disponibilă pentru toată lumea imediat.

Deschide Windows Update și vei vedea opțiunea „Feature update to Windows 10„.  Dacă nu vedeți opțiunea respectiva, apăsați „Check for updates”. Dacă, totuși, după ce ai verificat pentru noi actualizări nu apare nimic, va trebui să folosești „Update Assistant” pentru a îl instala manual.

Procesul poate dura de la o oră până la 2. Înainte de instalare deconectați orice stick USB pentru a preveni orice problemă pe parcursul instalării.

iDigit și nici autorul articolului nu sunt responsabili pentru orice problemă ce poate apărea pe parcursul instalării.  Faceți backup și urmăriți cu atenție instrucțiunile din articol și de la Microsoft.

  1. Intră pe acest link.  Se va deschide o pagină pe site-ul Microsoft unde vei vedea scris mare „Windows 10 May 2019 Update disponibil acum„.

2. Apasă pe „Actualizați acum„.  După ce se descarcă programul respectiv, deschideți-l.

3. Veți fi întâmpinat de mesajul „Update to the latest version of Windows 10„. Urmați instrucțiunile. Se va descărca update-ul și la final va apărea butonul de repornire. Apăsați-l și așteptați până când se termină instalarea.

Acum să trecem la schimbările din această versiune…

Windows Update – de la cicălitor la folositor

Microsoft a ascultat în sfârșit de nemulțumirile utilizatorilor oferind mai mult control asupra actualizărilor. Windows 10 nu va mai instala automat versiuni noi ale sistemului de operare precum May 2019 Update fără acordul tău. În schimb, când o nouă versiune se lansează, vei primi o notificare și e alegerea ta dacă dorești să instalezi actualizarea sau nu.

În partea dreaptă, se observă notificarea pentru actualizare.

Pe lângă cele menționate, Microsoft oferă abilitatea de a opri actualizările și celor ce folosesc ediția Home a sistemului de operare, până la 35 de zile. Va trebui să oprești actualizările în perioade de 7 zile, dar poți face acest lucru de 5 ori. După, Windows va verifica noi actualizări, dar nu le va instala automat, ci atunci când oprești / repornești calculatorul, pentru a nu te întrerupe când îl folosești.

Noul panou de actualizări. Se poate observa opțiunea de a opri actualizările.

Actualizările automate de acum se pot realiza în funcție de activitatea ta pe calculator. Dacă activezi opțiunea „Automatically adjust active hours” din Settings > Windows Update > Change active hours, Windows-ul va analiza când folosești cel mai des calculatorul și va alege o perioadă când nu ești ocupat.

De asemenea, pentru a preveni inabilitatea de a instala actualizări din cauza spațiului redus, Windows va aloca implicit aproximativ 7 GB din memoria internă. Astfel, chiar și dispozitivele cu spațiu puțin pot rămâne la zi fără probleme.

Căutarea în Windows – mai rapidă și mai profundă

Funcția de căutare nu scapă de schimbări. Pentru început, Cortana este separată acum de secțiunea de căutare, deci nu îți va mai intra în cale când cauți ceva. Panoul de căutare a primit și o nouă interfață, afișând cele mai accesate aplicații, dar acum poate găsi un fișier în tot calculatorul, nu doar librăriile setate implicit cu sistemul de operare.

Noul panou de cătuare. Se observă noul buton pentru Cortana în bara de Start

Pentru a activa această funcție, mergeți la Settings > Search > Searching Windows și la secțiunea „Find my files” selectați Enhanced. Va lua la început ceva timp dacă aveți multe fișiere, dar într-un final se merită, în special când ai nevoie urgentă de un anumit lucru. Poți oricând vedea câte fișiere au fost indexate și câte mai trebuiesc la secțiunea „Indexing status” din același panou.

Opțiunile noi pentru setări. Selectați „Enhanced” din „Find my files” pentru a indexa tot calculatorul

Windows Sandbox (pentru edițiile Pro)

Pe departe cea mai folositoare funcție a noii versiuni, dar doar dacă ai ediția Pro sau Enterprise. Dacă folosești ediția Home, Windows Sandbox nu va fi disponbil. În esență, Windows Sandbox îți permite să rulezi programe care nu știi dacă sunt sigure într-un mediu izolat, ce nu îți afectează calculatorul.

Spre exemplu, dacă descarc un program ciudat de pe internet și vreau să îl deschid, decât să îmi risc calculatorul, pot să pornesc Windows Sandbox și să execut de acolo programul. Dacă este sigur, îl pot instala pe calculatorul meu, altfel închid Sandbox-ul și tot conținutul acelui mediu este distrus pentru totdeauna.

Această funcție nu este activată implicit, deci va trebui să te duci în Control Panel > Optional features să o activezi și să repornești calculatorul. După ce a fost activată, o vei găsi în lista de aplicații din Start.

Selectați Windows Sandbox din Optional Features ce se găsește în Programs & Features (Control Panel)

Dacă doriți să copiați un fișier din sistemul de operare principal în Sandbox, selectați fișierul, copiați-l și lipiți-l pe desktop-ul Sandbox-ului.

Panoul Emoji – acum cu kaimojis, simboluri

Panoul de Emoji-uri adăugat acum ceva vreme în Windows, primește câtevă schimbări. De acum, poți adăuga kaimoji-uri din acesta. Kaimoji reprezintă emoji-uri sub formă de text.

De exemplu, (╯°□°)╯︵ ┻━┻  este un kaimoji popular.

Pe lângă acestea, poți adăuga simboluri tot din panoul Emoji. Nu mai trebuie să te chinui cu apasărea tastei ALT și introducerea unor numere aleatorii pentru a obține un simbol.

Pentru a accesa acest panou, apasă tasta Windows și tasta ;

Dezinstalarea mai multor aplicații preinstalate

La instalarea unor noi versiuni de Windows 10, Microsoft a ales să includă multe aplicații care majoritatea le consideră nefolositoare. Cei ce doreau să scape de acestea, trebuiau să folosească linia de comandă pentru a le elimina. Ca parte a acestei versiuni, se pot dezinstala mai multe aplicații precum:

  • 3D Viewer
  • Calculator
  • Calendar
  • Groove Music
  • Mail
  • Movies & TV
  • Paint 3D
  • Snip & Sketch
  • Sticky Notes
  • Voice Recorder

Pentru dezinstalare, intrați în Start Menu, dați click-dreapta pe aplicație și alegeți „Uninstall”.  Dacă doriți să reinstalați o aplicație, căutați-o în Microsoft Store.

Diagnoză automată

Windows a avut utiliare de diagnoză de ceva vreme, dar trebuia să știi ce problemă are calculatorul tău și să pornești utilitarul corespunzător. Acum, poți intra în panoul Troubleshoot din Settings unde vei vedea o listă de utilitare recomandate de Windows care ar rezolva problema pe care o ai.

De fapt, Windows va încerca automat să rezolve o parte din probleme în fundal. Pentru a controla dacă și când să se întample acest lucru, mergi la Settings > Privacy > Diagnostics. Sub categoria „Recommended Troubleshooting”, vei vedea opțiuni pentru a controla modul în care Windows va repara problemele. Implicit, te va întreba dacă dorești să rezolve automat o problemă apărută.

Windows 10 mai rapid – patch-uri mai bune Spectre

Începutul anului 2018 a provocat multă panică din cauza vulnerabilității Spectre. Spectre este o greșeală de proiectare în procesoarele AMD, Intel și ARM care permiteau aplicațiilor să scape de restricții și să citească spațiul de memorie a altor programe. Microsoft a reparat vulnerabilitatea aceasta, dar a scăzut performanța unor calculatoare – în special celor fabricate înainte de 2015.

O schimbare în noua versiune este eliminarea acestor probleme de performanță readucând viteza calculatorului tău prin activarea „retpoline” și „import optimization”. Tot ce trebuie să știi este că dispozitivul tău ar trebui să fie mult mai rapid dar dacă dorești să intrii in detalii, apasă aici pentru un document de la Microsoft care explică cum a reușit să facă acest lucru.

Come to the light side…? – noua temă Light

Windows 10 deține acum o nouă temă luminoasă. Meniul Start, bara de notificări și toate celelalte elemente ale interfeței pot fi luminoase în loc de întunecate.  A fost adăugat și un nou wallpaper care să se potrivească cu această schimbare.

În setări, acum există două opțiuni separate pentru culoarea preferată: Windows mode și app mode. Astfel, utilizatorii au mai mult control asupra modului în care arată interfața: pot avea de exemplu o temă luminoasă în aplicațiile descărcate din Microsoft Store, iar File Explorer-ul să fie întunecat.

Snip & Sketch și Sticky Notes

Noua aplicație de realizat capturi de ecran introdusă în versiunea trecută, primește câteva caracteristici noi. Acum, se poate realiza o captura după o anumita perioadă de timp selectată (3 secunde / 10 secunde). Puteți adăuga și contur la capturile de ecran.

 

Sticky Notes primește abilitatea de a sincroniza noțitele cu mai multe dispozitive prin intermediul aplicației OneNote. Pur și simplu instalează pe telefon OneNote și utilizând contul tău Microsoft vei putea vedea noțitele salvate.

Îmbunătățiri la Notepad și consolă

Deși în penultima actualizare, Microsoft a adus numeroase îmbunătățiri editorului de text „Notepad”, se pare că încă mai au idei. Dacă Notepad se închide când Windows-ul repornește pentru actualizări, acesta se va redeschide și va restaura tot conținutul nesalvat.

Notepad are de acum și o steluță în bara de titlu dacă modificările asupra unui fișier nu au fost salvate. De exemplu, dacă lucrez la un fișier numit „Articol.txt” și fac o schimbare, se va afișa „*Articol.txt” până când salvez fișierul.

În partea de sus, se observă steluța la titlu

Avem de asemenea și noi combinații de taste:

  • CTRL + SHIFT + N – deschide o nouă fereastră Notepad
  • CTRL + SHIFT + S – deschide fereastra „Save As…” (Salvează ca…)
  • CTRL + W – Închide fereastra curentă Notepad

De asemenea, în Command Prompt poți mări/micșora textul ținând apăsat CTRL și mișcând rotița de la mouse. Dând click dreapta pe fereastra CMD și selectând Properties > Terminal va afișa noi setări precum culoarea cursorului de text și forma acestuia.

Windows Tamper Protection

Windows Security, protecția inclusă cu Windows 10, include de acum „Tamper Protection„. Această funcție, când este activată, protejează setări importante de securitate de către aplicațiile rău – intenționate. Pentru a o activa, intrați în Windows Security din Start Menu > Virus & Threat Protection > Virus & Threat Protection Settings.

Schimbă luminozitatea mai ușor

În Action Center (panoul de notificări), Microsoft a adăugat opțiunea de a schimba luminozitatea fără a mai intra in Control Panel. Pe lângă aceasta, se pot schimba și ordinea acțiunilor rapide din acest panou apăsând click dreapta și selectând „Edit quick action”.

Noile acțiuni rapide din panoul de notificări. De acum există și un control de ajustarea luminozității ecranului

Descărcări organizate în funcție de dată

Folder-ul pentru descărcări, de acum este organizat în funcție de data când a fost descarcat un fișier.

Descărcări organizate în funcție de când ai fost luate

Concluzii

Microsoft au fost mai atenți cu această versiune să fie sigur că nu are bug-uri sau probleme majore. A stat încă o lună în teste pentru a se asigura că totul e perfect. Acest update trebuia de fapt să se numească „April 2019 Update”, până când Microsoft a decis să îl mai testeze o perioadă, lansându-l tuturor de abia în luna iunie a acestui an.

Îmbunătățirile aduse la Windows Update, căutării și a altor programe sunt extrem de folositoare. Windows Sandbox aduce ceea ce toți programatorii, pasionații de calculatoare aveau nevoie: un mediu de test a aplicațiilor necunoscute. Îmbunătățirile de viteză chiar se simt, în special la scrierea și citirea fișierelor de pe SSD. Interfața de la Cortana ar trebui un pic îmbunătățită: în special adăugarea abilității de a pune intrebări prin tastare și nu doar prin voce.

Per total, o actualizare bine-venită ce a rezolvat din haosul cauzat de versiunea anterioară.

The post Prezentare Windows 10 May 2019 Update: Schimbări mici, performanțe mari first appeared on iDigit.

]]>
https://idigit.ro/site/2019/06/prezentare-windows-10-may-2019-update-schimbari-mici-performante-mari/feed/ 0
Ghid esențial în realizarea fractalilor https://idigit.ro/site/2019/06/ghid-fractali-cpp/ https://idigit.ro/site/2019/06/ghid-fractali-cpp/#respond Mon, 17 Jun 2019 09:30:45 +0000 https://idigit.ro/site/?p=1545 În acest curs vom studia niște forme geometrice deosebit de interesante, fractalii. Ce sunt fractalii? Colocvial, un fractal este o figură geometrică fragmentată sau frântă care poate fi divizată în părți, astfel încât fiecare dintre acestea să fie (cel puțin aproximativ) o copie miniaturală a întregului”. Termenul a fost

The post Ghid esențial în realizarea fractalilor first appeared on iDigit.

]]>
În acest curs vom studia niște forme geometrice deosebit de interesante, fractalii.

Ce sunt fractalii?

Colocvial, un fractal este o figură geometrică fragmentată sau frântă care poate fi divizată în părți, astfel încât fiecare dintre acestea să fie (cel puțin aproximativ) o copie miniaturală a întregului”. Termenul a fost introdus de Benoît Mandelbrot în 1975 și este derivat din latinescul fractus, însemnând „spart” sau „fracturat”.

Fractalul, ca obiect geometric, are în general următoarele caracteristici:

  • Are o structură fină la scări arbitrar de mici.
  • Este prea neregulat pentru a fi descris în limbaj geometric euclidian tradițional.
  • Este autosimilar (măcar aproximativ sau stochastic).
  • Are dimensiunea Hausdorff mai mare decât dimensiunea topologică (deși această cerință nu este îndeplinită de curbele Hilbert).
  • Are o definiție simplă și recursivă.

Deoarece par identici la orice nivel de magnificare, fractalii sunt de obicei considerați ca fiind infinit complecși (în termeni informali). Printre obiectele naturale care aproximează fractalii până la un anumit nivel se numără norii, lanțurile montane, arcele de fulger, liniile de coastă și fulgii de zăpadă. Totuși, nu toate obiectele autosimilare sunt fractali—de exemplu, linia reală (o linie dreaptă Euclidiană) este autosimilară, dar nu îndeplinește celelalte caracteristici.

Preluat de pe Wikipedia

Să vedem două exemple de fractali:

  • Linia lui Koch

 

  • Triunghiul lui Sierpinski

 

Pentru a desena fractali vom avea nevoie de librăria graphics.h (vezi instrucțiuni de instalare aici).

Preliminarii

 

Pentru ca fractalii să arate cât mai detaliat, este bine să facem fereastra grafică cât de mare se poate și fractalul propriu-zis să ocupe cât mai mult din ea. Majoritatea monitoarelor moderne au una din rezoluțiile 1280×7201366×768, 1600×900, 1920×1080 (eventual 2560×1440 sau 3840×2160 pentru monitoarele UHD). Spre exemplu, pentru un monitor 1920×1080, putem initializa fereastra grafică cu dimensiunile 1800×1000 (dacă o facem mai mare de atât este posibil să nu încapă pe ecran).

De asemenea, vom dori ca majoritatea fractalilor să ocupe întreg spațiul pe care îl au la dispoziție și să fie centrați pe ecran. Prin urmare, înainte de a desena fiecare fractal, vom rezolva o problemă de geometrie pentru a determina cum îl putem centra.

În general, coordonatele centrului ferestrei grafice sunt getmaxx()/2, getmaxy()/2. Din fereastra grafică vom considera un pătrat cu latura lățimea ferestrei minus câțiva pixeli (padding) și cu centrul în centrul ferestrei. Spre exemplu, mai jos este o fereastra 800×600 cu 25px padding pe fiecare latură.

Triunghiul lui Sierpinski

Modul de construcție

Triunghiul lui Sierpinski se construiește astfel:

  1. Se desenează un triunghi echilateral
  2. Se desenează triunghiul median (care unește mijloacele laturilor)
  3. Se repetă pașii 2 și 3 pentru fiecare din cele 3 triunghiuri din margine

Construcția

Putem centra triunghiul în două moduri: fie alegem ca centrul cercului circumscris să fie în mijlocul ecranului, fie alegem așa încât colțul de sus și latura de jos să fie chiar la marginea spațiului de lucru. Cea de-a doua variantă va crea un triunghi mai mare și este mai simplă, deci o vom alege pe aceea.

Algoritmul

Așa cum am menionat mai sus, vom desena triunghiul mare, apoi triunghiul median pentru triunghiul mare si recursiv pentru cele 3 formate la colțuri.

Covorul lui Sierpinski

Modul de construcție

Covorul lui Sierpinski se deseneaza după următoarele reguli:

  1. Se desenează un pătrat
  2. Se desnează alt pătrat cu latura l/3 în mijloc
  3. Se împarte pătratul în alte 9 pătrate cu latura l/3 și se execută pașii 2 și 3 pentru fiecare, mai puțin cel din mijloc

Construcția

Centrarea pătratului este banală, vom face pătratul inițial cât spațiul de lucru. Poziția centrelor pătratelor marginale se poate afla ușor și, pentru a profita de asta, recomand determinarea unui mod de a desena un pătrat cunoscând coordonatele mijlocului și dimensiunea laturii.

Algoritmul

Trebuie scrisă funcția care va primi ca parametri coordonatele centrului pătratului și latura sa. Funcția recursivă va desena pătratul de latură l/3 în mijlocul pătratului mare și se va reapela pentru fiecare dintre cele 8 pătrate marginale.

Fractal în rețea pătratică

Modul de construcție

Acest fractal se contruiește astfel:

  1. Se desenează un pătrat
  2. în fiecare colț al acelui pătrat se desenează un alt pătrat cu latura l/2
  3. Se repetă pașii 2 și 3 pentru fiecare din cele 4 pătrate obținute la pasul anterior

Atașez mai jos o altă imagine a fractalului (de grad mai mic), dar mai sugestivă pentru a vedea modul de construcție.

Construcția

Centrea acestui fractal este mai dificilă, fiindcă el crește în exterior cu fiecare pas.

Algoritmul

Linia lui Koch

Linia lui Koch este un fractal mai dificil care necesită utilizarea funcțiilor trigonometrice. Este de asemenea unul dintre foarte puținii fractali care nu pot fi încadrați într-o fereastră pătrată.

Modul de contructie

Linia lui Koch se construiește astfel:

  1. Se desenează un segment orizontal de lungime l
  2. Se desenează în mijloc în sus un triunghi echilateral cu latura l/3 și se șterge baza sa
  3. Se repetă pașii 2 și 3 pentru fiecare segement astfel obținut (inclusiv cele de pe margine!)

Construcția

Fractalul va ocupa un dreptunghi ale cărui laturi se pot determina. Desenarea lui o vom face începănd din stănga jos.

Pentru a construi fractalul avem nevoie de o functie care desenează un segment de o lungime dată, dintr-un punct dat sub un anumit unghi. Funcțiile sinus și cosinus sunt funcții din librăria <math.h> care primesc ca parametru un număr real reprezentănd măsura unghiului în radiani.

Algoritmul

Temă – fulgul lui Koch

Fulgul lui Koch e un fractal foarte simplu care se compune din 3 linii Koch așezate sub formă de triunghi echilateral.

BONUS – Curba Hilbert

Curba Hilbert este un fractal foarte special, cu un algoritm relativ simplu și cu o aplicabilitate largă în practică (spre exemplu, la micșorarea rezoluției imaginilor).  Mai sus este reprezentată curba Hilbert de gradul 5. Dacă ne uităm cu atenție, observăm că ea este formată dintr-o singură linie continuă care începe în colțul din stânga sus și se termină în colțul din dreapta sus.

Se poate face o analogie între desenarea acestui fractal și desenarea unei forme cu creionul fără a îl ridica de pe hârtie. Pentru a ține minte unde se află „creionul” folosim două variabile globale, una pentru fiecare coordonată.

Coroborând toate aceste informații, obținem programul final care desenează o curbă Hilbert.

The post Ghid esențial în realizarea fractalilor first appeared on iDigit.

]]>
https://idigit.ro/site/2019/06/ghid-fractali-cpp/feed/ 0
Technovation 2019 – Viridi Lux Interview https://idigit.ro/site/2019/05/technovation-2019-viridi-lux-interview/ https://idigit.ro/site/2019/05/technovation-2019-viridi-lux-interview/#respond Sun, 26 May 2019 09:27:32 +0000 https://idigit.ro/site/?p=1650 Participante în cadrul celui mai mare program de antreprenoriat și educație IT pentru fete din lume, Technovation Challenge, tinerele sunt susținute de Banca Transilvania pentru a rezolva o problemă din societate cu ajutorul tehnologiei.

The post Technovation 2019 - Viridi Lux Interview first appeared on iDigit.

]]>

Participante în cadrul celui mai mare program de antreprenoriat și educație IT pentru fete din lume, Technovation Challenge,
tinerele sunt susținute de Banca Transilvania pentru a rezolva o problemă din societate cu ajutorul tehnologiei.

The post Technovation 2019 - Viridi Lux Interview first appeared on iDigit.

]]>
https://idigit.ro/site/2019/05/technovation-2019-viridi-lux-interview/feed/ 0
Colecție de fractali în WinBGI https://idigit.ro/site/2019/04/1534/ https://idigit.ro/site/2019/04/1534/#respond Fri, 05 Apr 2019 04:08:26 +0000 https://idigit.ro/site/?p=1534 Un program realizat cu ajutorul librăriei grafice WinBGI ce acoperă 6 fractali cunoscuți: Square Grid Triunghiul lui Sierpinski Covorul lui Sierpinski Linia lui Koch Fulgul lui Koch Curba lui Hilbert  

The post Colecție de fractali în WinBGI first appeared on iDigit.

]]>
Un program realizat cu ajutorul librăriei grafice WinBGI ce acoperă 6 fractali cunoscuți:

  • Square Grid
  • Triunghiul lui Sierpinski
  • Covorul lui Sierpinski
  • Linia lui Koch
  • Fulgul lui Koch
  • Curba lui Hilbert

 

The post Colecție de fractali în WinBGI first appeared on iDigit.

]]>
https://idigit.ro/site/2019/04/1534/feed/ 0