Jump to content

Zamolxis666

Active Members
  • Posts

    277
  • Joined

  • Last visited

  • Days Won

    3

Posts posted by Zamolxis666


  1. int sumaLinie1 = 0;
    int sumaLinie2 = 0;

    int vectorDeSume[n]; //pt ca avem n linii;

    for(int linie = 0; linie < m; linie++) //parcurgem fiecare linie...
    {
    suma = 0;

    for(int coloana = 0; coloana < n; coloana++) //...si ii calculam suma....
    suma += m[linie][coloana];

    vectorDeSume[linie] = suma; //dupa care adaugam suma liniei "i" in vectorDeSume pe pozitia "i"
    }

    //sortare matrice cu bubble sort

    for(int linie1 = 0; linie1 < (n-1); linie1++)
    for(int linie2 = (linie1 + 1); linie2 < n; linie2++)
    if(vectorDeSume[linie1] > vectorDeSume[linie2])
    swi(m, linie1, linie2);

    /*parcurgem fiecare llinie si daca suma liniei "linie1" este mai mare decat suma liniei "linie2" atunci le interchimbam folosind functia pe care ti-a scris-o Gecko */

  2. @Starker: Programul tau nu respecta intru totul cerinta de la punctul a) care zice sa fie optimizat pentru timpul de executie. Tu citesti ambele siruri de numere, il parcurgi pe al doilea, element cu element, si le cauti in primul sir, ceea ce duce la un timp de executie de ordinul O(n^2). Indiciul de care trebuia sa te legi era chiar in enunt si spunea ca primul sir este ordonat crescator

    O medoa eficienta era:

    Citesti primul sir de numere din fisier (pe care-l memorezi sub forma de vector), care este totodata sortat crescator, apoi citesti pe rand cate un numar din al doilea sir si faci o cautare binara in vector (daca numarul cautat este mai mare decat elementul din mijlocul vectorului, cauti recursiv in jumatatea din dreapta, altfel cauti recursiv in jumatatea din stanga, s.a.m.d)

  3. Citeste pe n, initializeaza pe m cu 1 (in binar vine 00000000 00000000 0000000 00000001 - pt ca e declarat ca int). apoi, prin shiftare (instructiunea m=1<<15-i) muta bitul de 1 pe cea mai din dreapta pozitie din m - MSB-ul sau Most Segnificant Bit. Testeaza daca bitul din n care se afla pe aceeasi pozitie cu cel din m este 1 sau 0 si afiseaza mesaj corsepunzator - instructiunea if(n&m). De fapt, daca bitul de pe pozitia cea mai semnificativa din n este 1 atunci n&m va intoare o valoare mai mare ca 0; in cazul asta afiseaza "1" altfel daca n&m == 0 afiseaza "0".

    Dupa asta "i"-ul se modifica, o sa fie 1. "m"-ul se va reinitializa cu 1 la intrarea in bucla si va fi shiftat spre dreapta cu 15-i, adica 14, pozitii, si se reia procesul.

  4. Are dreptate benny, nu prea ai cum sa scoti bani, mai ales la continutul de articolelor care este incomplet (plus ca ai greseli de gramatica), si am sa-ti dau un exemplu:

    Lectia 3 C++ – Input si Output | Programmers World

    Aici spui doar cum se citeste si se afiseaza de la consola, insa nu zici nimic de operatorul "<<" sau ">>" sau ca cin vine de la console in, ce este si cum este....


    Ce este Output ?
    Output este operatia de afisare a datelor, catre ecran, pentru a fii citite de utilizator.

    Outputul poate sa insemne si scrierea datelor in fisier, trimiterea datelor pe seriala, trimiterea datelor prin socket, etc (tot forme de output sunt si astea).

    Lectia 2 C++ – Variabile si Constante | Programmers World


    #include
    using namespace std;

    int main(){
    int a;
    a = 4;
    cout << a;
    cin.get();
    return 0; }

    #include ce? eu, daca sunt incepator si intru la tine pe site vreau sa ma lamuresti ce e cu using namespace std. ce e ala std?, de ce il folosesti? Sau eu trebuie sa iau totul ca pe litera de lege?

    Daca vrei sa scoti bani din asa ceva, atunciscrie articolele in engleza si fa-le mai bune decat cele de pe cplusplus.com - The C++ Resources Network.

    Succes!

  5. Threadul asta l-ai facut fara sa fi constient ca-l faci? Ca daca da, atunci e nasol. Vezi tu, asta e forum de ITC, iar aici intra oameni obisnuiti, nu Iisus sa te vindece pentru ca ai credinta si nici doctori. Mergi la spital daca ai probleme cu capul, vor stii cei de acolo ce-i de facut cu tine, ce medicamente sa iti dea.

  6. Sistemul Linux imparte memoria sa fizica (RAM-ul) in parti (bucati) de memorie numite pagini. Swapping-ul (sau interschibarea) este procesul in care o pagina de memorie este copiata intr-un spatiu preconfigurat de pe hard-disk, numit si spatiu pentru swap, cu scopul de a elibera acea pagina de memorie. Dimensiunea memoriei RAM la care sa adauga dimensiunea spatiului pentru swap (engl. swap space) formeaza totalul memoriei virtuale disponibile (eng. virtual meory).

    Swapping-ul este necesar in doua situatii:

    1. Cand sistemul necesita mai multa memorie decat memoria fizica disponibila, kernelul realizeaza un swap cu pagina de memorie cea mai putin folosita, iar memoria eliberata este data spre folosire aplicatiei curente (sau proces) care necesita urgent memorie.

    2. Un numar semnificativ de pagini de memorie folosite de o aplicatie in faza start-up pot fi utilizate doar pentru initializare, iar apoi mai deloc. Sistemul poate atunci sa faca un swap pe acele pagini si sa elibereze memoria pentru alte aplicatii sau pentru disk cache.

    Totusi, swapping-ul are si un dezavantaj. Comparativ cu RAM-ul, hard-disk-ul este mai incet. Viteza memoriei RAM este de ordinul nanosecundelor pe cand cea a HDD-ului este de milisecunde, prin urmare accesul la disc (scriere sau citire) poate fi si de mii de ori mai incet decat accesul la memoria fizica. Cu cat procesul de swap este mai utilizat, cu atat sistemul va deveni mai incet.

    Linux-ul prezinta doua forme de spatiu pentru swap: partitii pentru swap (swap partition) si fisiere pentru swap (swap files). Partitiile de swap sunt sectiuni independente ale hard-disk-ului folosite numai pentru swap; niciun alt fisier nu poate exista pe aceste partitii. Fisierul de swap este un tip special de fisier care rezida printre celelalte fisier de date sau de sistem. Pentru a vedea spatiul pentru swap se foloseste comanda swapon -s. Rezultatul arata cam asa:


    Filenam Type Size Used Priority
    /dev/sda5 partition 859436 0 -1

    Fiecare linie reprezinta un spatiu de swap separat care este folosit de sistem. In exemplul de mai sus, campul ‘Type’ indica faptul ca spatiul de swap este o partitie si nu un fisier; din campul ‘Filename’ putem vedea ca partitia se numeste sda5. Campul ‘Size’ este exprimat in kilobytes (1kilobyte= 1 kiloOctet = 1024 biti), iar capul ‘Used’ specifica cati kilobytes din totalul spatiului de swap sunt folositi (in cazul de fata, niciunul). ‘Priority’ informeaza sistemul de operare care spatiu de swap sa il foloseasca prima data. Un mare atuu pentru Linux este urmatorul: daca se da mount la doua sau mai multe spatii de swap cu aceeasi prioritate, Linux-ul va intretzese (eng. interleave) activitatea de swap intre ele, ceea ce conduce la o performanta ridicata de swapping.

    Primul pas pentru a adauga mai mult spatiu de swap sistemului este sa te asiguri ca partitia este marcata ca si partitie pentru swap:


    fdisk -l /dev/hdb

    Trebuie inlocuit /dev/hdb cu partitia pentru swap. Rezultatul arata cam asa:


    Device Boot Start End Blocks Id System
    /dev/hdb1 2328 2434 859446 82 Linux swap / Solaris

    Odata ce partitia a fost marcata ca partitie pentru swap, trebuie rulata comanda mkswap ca root:


    mkswap /dev/hdb1

    Daca nu apare nicio eroare, atunci inseamna ca partitia pentru swa este gata de a fi folosita. Pentru a o activa trebuie executata comanda:


    swapon /dev/hdb1

    Articol (partial) tradus si adaptat de pe: https://www.linux.com/news/software/applications/8208-all-about-linux-swap-space

    • Upvote 1
  7. Licitatiile de pe ebay nu se incheie exact cand cronometrul (afisat pe size) a ajuns la 00:00. Exista o mica perioada de timp pentru a procesa ofertele care au fost submise (engl. submitted) inainte de expirarea timpului, dar din cauza intarzierilor pe liniile de comunicatie au ajuns la server dupa terminarea licitatiei. Prin urmare, poti aplica la o licitatie cand timpul a ajuns la 0 avand astfel sanse mari sa castigi produsul.

  8. Ma gandesc ca ar face vreo 10 milioane, insa am o sugestie: reprezinta datele si sub forma de grafic - sunt mult mai usor de urmarit, comparat si retinut ( nr de absente dintr-o saptamana, evolutia notelor la o materie, etc.)

  9. Eu nu inteleg cum pot unii programa in limbaje precum python, in care nici macar nu declari tipul variabilei. Face interpreter-ul toata treaba.

    Personal, prefer sa scriu dublu si sa inteleg cum sunt stocate variabilele in memorie, tipul lor, pointeri etc.

    Depinde de ce au nevoie sa programeze in limbajul respectiv. La fel de bine putem discuta si pe subiectul: "de ce sa folosim PHP si nu Servlet-uri". Probabil ca alegerea unui limbaj sau a altuia tine de: obisnuinta, facilitati oferite, usurinta in programare si depanare, etc. Fiecare limbaj are bube si atuuri daca stam sa ne gandim mai bine.

  10. Am gasit si eu aia, dar presupun ca nu toata lumea e in stare sa inteleaga limba romana

    Vrei sa te invatam noi limba romana? Sau cum sa cauti pe google? Poti sa iti faci TU o lista cu functiile alea, nu sa astepti sa vina cineva sa ti le dea de-a gata. Mor ma, cand va vad cersind.

×
×
  • Create New...