Jump to content

theparasite

Members
  • Posts

    16
  • Joined

  • Last visited

Posts posted by theparasite

  1. Am modificat asa si a mers, sunt uimit:

    int i=0;
    FILE *stream; /*declarare stream (flux de date)*/
    stream = fopen("citire.txt", "r"); /*deschidere fisier*/
    if(stream == NULL)
    {
    printf ("Eroare la impartirea cartilor");
    }

    srand (time(NULL));
    int nr; //nr e nr citit din fisier

    while (!feof(stream))
    { fscanf(stream,"%d", &nr);

    int c;
    iar:
    c=rand() %32; //c este randomul din vector
    if(pachet[c]==0) pachet[c]=nr; //***
    else goto iar;
    }

    fclose(stream);
    for(i=0;i<=31;i++)
    printf("%d ", pachet[i]);

    Va multumesc mult pentru ajutor. Multa sanatate si fericire va doresc!

  2. asta este metoda gandita de mine


    #include <iostream>
    #include<fstream>
    #include<stdlib.h>
    #include<time.h>
    using namespace std;
    int vect[32]; //vect este declarat inafara int main-ului.asa vect[0],[1],[2]...[32] va fi egal cu 0.acesst lucru ma ajuta la ***
    int main()
    {

    srand (time(NULL)); // asta e pentru random
    int nr; //nr e nr citit din fisier

    ifstream f("fisier.txt");
    ofstream g("fisieriesire.txt");
    while (f>>nr)
    {
    iar:
    int c=rand() %32; //c este randomul din vector, atribui lui C o valoarea random cuprinsa intre 0 si 31.
    if(vect[c]==0) vect[c]=nr; //***
    else goto iar;
    }
    f.close();
    cout<<endl;
    ////de aici se afiseaza sirul construti intr-un fisier.
    for(int i=0;i<=31;i++)
    g<<vect[i]<<" ";
    g.close();
    return 0;

    }

    Pe romaneste, ii cer calculatorului sa-mi dea o valoare random cuprinsa intre 0 si 31.Cand mi-a dat una, atribuiesc lui v[valoare random] primul numar din lista data.ca sa verific daca nu cumva este un numar in avel loc in care vreau sa atribui valoarea random, verific prin == 0.La inceput am initializat tot cu 0, si asa pot sti daca e modificat sau nu.

    DEZAVANTAJ: daca prin acele numere se afla un zero...o sa ruleze la nesfarsit.Ca sa eviti asta pur si simplu initializezi tot vectorul cu o alta valoare, gen -23451, si modifici if(vect[c]==0) vect[c]=nr; in if(vect[c]==-23451) vect[c]=nr;

    Multumesc.

    In fisier am asa:

    7 7 7 7 8 8 8 8 9 9 9 9 10 10 10 10 11 11 11 11 12 12 12 12 13 13 13 13 14 14 14 14 14


    FILE *stream; /*declarare stream (flux de date)*/
    stream = fopen("citire.txt", "r"); /*deschidere fisier*/
    if(stream == NULL)
    {
    printf ("Eroare la impartirea cartilor");
    }

    srand (time(NULL));
    int nr; //nr e nr citit din fisier

    while (fscanf(stream, "%d", &nr))
    {
    iar:
    int c=rand() %32; //c este randomul din vector
    if(pachet[c]==0) pachet[c]=nr; //***
    else goto iar;
    }
    fclose(stream);

    In C, si la compilare imi da o eroare :


    error: 'iar' undeclared (first use in this function)|
    error: label 'iar' used but not defined|

  3. Esti la liceu sau la facultate ?

    Eu nu inteleg ce vrei sa zici prin "citirea dintr-un fisier dar random".

    Vrei sa citesti toate numerele din fisier intr-un vector si dupa sa le aranjezi random in vector ?

    Sau doresti sa realizezi citirea propriu-zisa intr-un mod random ?

    Fisierul din care citesti datele este un fisier text sau binar ? Poate ar fi mai bine sa pui cerinta (daca o ai).

    Facultate.

    Eu am 32 de numere intr-un fisier. Eu initial m-am gandit sa le pun intr-un vector si apoi sa le amestesc, generandu-mi un vector diferit mereu. Este ca amestecarea unui pachet de carti.

    Cerinta este a mea, adica am un proiect de facut, si am nevoie de aceasta parte pe care nu stiu sa o fac. Am vectorul citit din fisier si vreau sa-l amestesc, sau sa citesc din fisier 32 de numere in mod aleatoriu. Cum pot face asta?

    Nu ma pricep la diferite functii si imi este dificil sa inteleg solutiile propuse de membrii de mai sus. Am tot cautat solutii, dar nu imi ies.

  4. Multumesc pentru raspuns, dar mi se pare complicat. Adica nu stiu de unde sa incep( iertati-mi lipsa de experienta, sunt incepator).

    Poti sa ma ajuti cu mai multe detalii?

    Adica eu vreau de exemplu sa pun intr-un vector 32 de numere ( citite din fisier) in mod random. Dar nu stiu cum sa fac sa imi citeasca random, iar asta cu ocupat ( sa verific daca e ocupat) este cu vector de pozitie?(daca da, nici asta nu stiu).

    Multumesc.

  5. Salutari,

    Am si eu nevoie de ajutor, daca se poate, pentru un proiect de sintaxa in C pentru citirea dintr-un fisier dar random. Eu am 32 de numere in fisierul numit citire, vreau sa pun intr-un vector in mod random numerele din fisier. Ma puteti ajuta cu sintaxa full? Adica declarare, citire si inchidere?

    Am nevoie in limbaj C, eu in C++ stiu doar citirea, sa folosesc functia RAND nu stiu. Ma puteti ajuta, va rog?

    Multumesc.

  6. Am un proiect pentru atestatul la informatica. Am o problema, in proiect am urmatoarea optiune:

    Deschiderea la alegere a unui proiect ppt. Problema este ca de fiecare data cand ceea ce am eu in proiect pun pe stick sau CD trebuie sa modific in codul sursa:


    system("E:\\Atestat\\modele.pps");

    Asta va porni direct proiectul. Problema este ca vreau daca se poate sa fie deschis indiferent de locatia sa, fie in partitia C,D sau I,F,G,H de la stick sau CD, pentru ca il voi pune in imagine iso pe un CD, nevand posibilitatea de a mai modifica pe CD.

    Cum pot face asta, sa modific astfel incat sa nu tina cont de partitie, ci doar de locul unde este folderul principal?

    Multumesc.

  7. Tu e?ti cel care m-a tratat cu arogan??, nu eu. Eu doar am întrebat, este evident c? mi-am stors capul de idei referitoare la cum a? putea s? o fac, dar nu de?in cuno?tiin?ele necesare.

    Apreciez c? ai postat, dar nu în?eleg nimic. Acestea sunt singurele metode?

    S? m? explic pu?in.

    Am un program care con?ine 10000 numere într-un fi?ier text. Mi se cere afi?area penultimului num?r impar + pozi?ia lui. Am f?cut asta într-un while, dar condi?ia optim? este atunci când citesc s? fac citirea de la cap?t, pentru a nu fi nevoit s? trec prin 10.000 de numere pân? ajung la penultimul impar.

     
    #include <iostream>
    #include <fstream>
    using namespace std;
    int main()
    {
    ifstream f("BAC.TXT");
    int x, ok=0,impar,i=0;
    while(...citire de la coad? && ok<2) if(x%2==1) { ok++; impar=x; i++;}
    cout<<"Numarul este "<<impar<<" "<<"si pozitia lui este: "<<10000-i;
    return 0;
    f.close();
    }

    @S.L.C, îmi po?i da un sfat ?i f?r? s? m? judeci.

  8. Decât s? vi cu un r?spuns a?a banal ca acesta, mai bine nu te b?ga.

    Ce am încercat?

    Am nevoie doar de secven?a de citire a unui fi?ier de la coad? pentru rezolvarea a unui program eficient. Nu am nevoie de teoriile tale pentru teme ?i alte rahaturi.

    Doar de asta am nevoie, nu am idee care este ?i nici pe internet nu g?sesc mare lucru. De asta am apelat aici, în speran?a c? cineva îmi va spune.

    Mul?umesc

    • Downvote 1
  9. +++

    Rezolvare?

    Subprogramul Cifre are un singur parametru, n, prin care prime?te un num?r natural

    (nÎ[0,10^9]). Subprogramul afi?eaz? pe ecran toate cifrele distincte care apar în scrierea

    lui n, separate prin câte un spa?iu.

    Scrie?i defini?ia complet? a subprogramului.

    Exemplu: dac? n=24207, se afi?eaz? cifrele 0 2 4 7, nu neap?rat în aceast? ordine.

    Am incercat eu minunile..dar n-am stiut sa le afisez doar odata...

     void cifre(unsigned long n)
    { unsigned long x,v[10];
    unsigned i=0;
    x=n;
    while(x!=0) { v[i]=x%10;
    x=x/10;
    i++;
    }

    N-am stiut sa le afisez doar odata...

  10. Salutari. Am o intrebare referitoare la un subiect dat la SIMULAREA BAC INFORMATICA 2015


    Subprogramul F este definit al?turat. Scrie?i
    ce valori au F(105,105) respectiv
    F(105,42).
    (6p.)
    int F(int x, int y)
    { if(x==y) return 1;
    else
    { if(x<y)
    { x=x+y;
    y=x-y;
    x=x-y;
    }
    return 1+F(x-y,y);
    }
    }

    Rezultatul meu a fost pentru F(105,105) : 1 si pentru F(105,42) : 4.

    In barem gasesc ca F(105,105): 0

    De ce?

    Poftim codul transpuns in C++(CODEBLOCKS)


    #include <iostream>
    using namespace std;

    int F(int x, int y)
    {
    if(x==y) return 1;
    else {if(x<y) { x=x+y; y=x-y; x=x-y;} return 1+F(x-y,y);}

    }
    int main()
    { int x,y;
    cout<<"dati x"; cin>>x;
    cout<<"dati y"; cin>>y;
    cout<<F(x,y);
    }

    Rulat, imi da rezultatul 1 pentru F(105,105) si 4 pentru F(105,42)...

    Problema este ca in barem gasesc:

    "Se acord? numai 3p. dac? doar o valoare

    este conform cerin?ei.

    F(105,105)=0;

    F(105,42)=4."

×
×
  • Create New...