Jump to content

hitme

Members
  • Posts

    40
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

hitme's Achievements

Newbie

Newbie (1/14)

10

Reputation

  1. Mulțumesc pentru sfaturi și sugestii. Le voi pune în practică. Oricare altele sunt binevenite
  2. Vă mulțumesc pentru ironie. Dacă totuși cineva vrea să ajute, mulțumesc anticipat.
  3. @QuiVadis da, am auzit. E vorba de niște email-uri, nu este nimic ilegal. Îmi poți propune o idee creativă?
  4. Salutare, de curând am început un proiect și anume doresc să ajut firmele mici să-și maximizeze veniturile prin soluții tehnice. (exemplu: crearea de site/magazin online, suport IT si altele) Doresc să-mi fac puțină reclamă și nu dispun de bani. Am început să împart pliante și să anunț cunoscuții de acest proiect. Aș avea nevoie de o listă de email-uri. Ar fi un plus dacă aș avea o listă a unor firme, a fost o postare în 2014 pe această temă (link expirat). Dacă dorește cineva să mă ajute, sunt recunoscător. Altfel, dacă aveți idei de promovare (din păcate gratuită) le ascult cu interes. Numai bine.
  5. hitme

    [Liste] c++

    Se considera o lista dublu inlantuita de studenti cu structura:cod matricol, nume, prenume si media. Sa se scrie programul in C pentru crearea, ordonarea dupa medie si afisarea listei studentilor folosindu-se cate o functie adecvata pentru fiecare operatie (creare, ordonare si listare). cum pot ordona lista, fara sa permut valorile campurilor? eu am incercat asa, ceva ideei? EDIT: am inteles ca se poate ordona cu std::sort, dar nu stiu cum #include <iostream> #include <stdlib.h> using namespace std; struct nod { int cod_matricol; char nume[20]; char prenume[20]; float media; nod *urmator, *anterior; }; nod *prim, *ultim,xx; // int yy=0; void creez() { nod *c; c=new nod; cout<<"Cod matricol : "; cin>>c->cod_matricol; cout<<"Nume : "; cin>>c->nume; cout<<"Prenume : "; cin>>c->prenume; cout<<"Media : "; cin>>c->media; if (!prim) { prim=c; prim->urmator=0; prim->anterior=0; ultim=prim; } else { ultim->urmator=c; c->anterior=ultim; ultim=c; ultim->urmator=0; } } void afisez() { nod *c; int i=1; c=prim; while (c) { cout<<"Inregistrarea "<<i++<<" : "<<endl; cout<<"Cod matricol : "<<c->cod_matricol<<endl; cout<<"Nume : "<<c->nume<<endl; cout<<"Prenume : "<<c->prenume<<endl; cout<<"Media : "<<c->media<<endl; cout<<endl; c=c->urmator; } } void ordonez() { nod *x,*y,*aux; int auxaux; aux=prim->urmator; for(x=prim;x!=0;x=x->urmator) for(y=aux;y!=0;y=y->urmator) if(x->media > y->media) { xx=*x; *x=*y; *y=xx; *prim=xx; } } int main() { int n,i; cout<<"Cate inregistrari? : "; cin>>n; for(i=1;i<=n;i++) creez(); system("cls"); afisez(); system("pause"); system("cls"); ordonez(); afisez(); system("pause"); return 0; }
  6. i-am dat de cap, cu bubble sort mai exact si fara fread,fwrite. aveti idee cum pot folosi qsort aici? #include <stdio.h> #include <stdlib.h> #include <string.h> void verific (FILE *f) { if(f == NULL) { printf("Eroare fisier."); exit(EXIT_FAILURE); } } void afisez (char **a, int n) { int i; for(i=0;i<n;i++) puts(a[i]); } int fqs (const void *a, const void * { return strcmp(a,; } void sortez (char **cuvinte, int n) { char aux[30]; int i,gasit=0; do { gasit=0; for(i=0;i<n-1;i++) { if (strcmp(cuvinte[i],cuvinte[i+1]) > 0) { strcpy(aux,cuvinte[i]); strcpy(cuvinte[i],cuvinte[i+1]); strcpy(cuvinte[i+1],aux); gasit=1; } } } while (gasit); } void scriu (FILE *f, char **cuvinte, int n) { int i; for(i=0;i<n;i++) { fputs(cuvinte[i],f); fprintf(f,"\n"); } } int main() { FILE *f=fopen("inf.txt","rt"); FILE *g=fopen("inf2.txt","wt"); verific(f); verific(g); char c; int i,j=0; char **cuvinte=(char**)malloc(25*sizeof(char*)); for(i=1;i<=10;i++) cuvinte[i]=(char*)malloc(i*sizeof(char)); while (!feof(f)) { fscanf(f,"%c",&c); for(i=0; ; i++) { if(c=='\n') break; cuvinte[j][i] = c; fscanf(f,"%c",&c); } cuvinte[j][i] = '\0'; j++; } afisez(cuvinte,j); sortez(cuvinte,j); afisez(cuvinte,j); scriu(g,cuvinte,j); free(cuvinte); for(i=1;i<=10;i++) free(cuvinte[i]); fclose(g); fclose(f); return 0; } unde inf.txt zahar paine si altele sortare
  7. inca n-am nici o idee cum scot cuvinte din text si apoi le ordonez.. #include <stdio.h> #include <stdlib.h> #include <string.h> void verific (FILE *f) { if(f==NULL) { printf("eraore deschidere fisier"); exit(EXIT_FAILURE); } } int fqs (const void *a, const void * { return strcmp(a,; } int main() { FILE *f=fopen("inf.txt","rt"); char a[100], cuvinte[10][25]; char *p,x[100]; int i=0,aux=0,ch,j=0; fread(&a[0],sizeof(char),1,f); while (a[i] != EOF) { i++; fread(&a[i],sizeof(char),1,f); } a[i]='\0'; fseek(f,0L,0); /* do { ch=fgetc(f); if(ch == '\n') aux++; } while (ch != EOF); if(ch != '\n' && aux !=0) aux++; fseek(f,0L,0); puts(a); printf("\n%d linii \n",aux-1); */ p = strtok(a, " ,.-"); while(p != NULL) { strcpy(cuvinte+i,p); i++; printf("%s\n",p); p = strtok(NULL, " ,.-"); //printf("AICI"); } qsort(cuvinte,aux,sizeof(char),fqs); puts(cuvinte); fclose(f); return 0; }
  8. Salut, cum pot inlocui intr-un sir de caractere, un cuvant cu un altul. Functia strstr, gaseste doar prima apartie a cuvantului si returneaza un pointer. M-am gandit sa formez un alt sir, in care sa pun tot ce am in sir1, pana la cuvantul gasit, apoi sa pun cuvantul de inlocuit si sa continui asa pana la sfarsitul sirului. Am incercat sa scriu asta in cod, doar ca nu-s deloc mandru de ce a iesit Cineva mai ager ca mine si care are timp sa scrie putin cod? Thx
  9. am gasit problema, am deschis fisierul ca "rt" nu ca "rb" ... multumesc oricum
  10. ti-am lasat in comentarii si functia de afisare pe ecran, sa vezi ca a functionat cum trebuie /*Cerinta:Sa se citeasca de la tastatura numele unui fisier binar si un text. Sa se creeze fisirul dupa numele dat si poi sa se intratora textul in el*/ #include <stdio.h> #include <stdlib.h> #include <string.h> void verific (FILE *f) { if(f == NULL) { printf("Eroare fisier."); exit(EXIT_FAILURE); } } int main() { char nume_binar[30]; char sir[100]; printf("Nume fisier binar: [exemplu.dat] "); gets(nume_binar); FILE *f=fopen(nume_binar,"wt"); verific(f); int n,i=0; printf("Citesc sir, sirul de incheie cu enter \n"); gets(sir); fwrite(&sir[i++],sizeof(char),strlen(sir),f); fclose(f); return 0; } /* int main() { char nume_binar[30]; char sir[100]; printf("Nume fisier binar: [exemplu.dat] "); gets(nume_binar); FILE *g=fopen(nume_binar,"rt"); verific(g); int n,i=0; fseek(g,0L,2); //ma pozitionez la sfarsitul fisierului n=ftell(g)/sizeof(char); //ftell returneaza pozitia curenta a cursorului (care este la sfarsit) dar o impart la numarul de octeti necesari unui caracter, sa determin dimensiunea sirului fseek(g,0L,0); //// ma pozitionez la inceputul fisierului fread(&sir[i++],sizeof(char),n,g); puts(sir); fclose(g); return 0; } */
  11. salut, am inteles perfect ce ai exemplificat, dar asta este pentru fisiere text.. ce am eu (binar) intai scriu in el, si apoi am de ordonat pe acolo, doar ca atunci cand iau datele din binar si le pun in structura, le pune aiurea, poti incerca o compilare..
  12. aveti idee de ce nu functioneaza corect? citesc in fisier, si vreau sa afisez (intai) doar ca nu merge si nu inteleg de ce.. am lasat in comentarii programul pentru citire. /* Se considerã un fiºier ce conþine urmãtoarele informaþii referitoare la produsele prezentate în cadrul unui catalog: codul firmei, codul produsului, denumirea produsului ºi cantitatea produsã. Se cere: - sã se ordoneze fiºierul crescãtor dupã codul firmei, stabilindu-se apoi numãrul de produse realizate de cãtre fiecare firmã; - sã se ordoneze fiºierul crescãtor dupã codul produsului, stabilindu-se pentru fiecare produs numãrul de firme care îl realizeazã. */ //Citire in fis: #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct { int cod_f; int cod_p; char nume[30]; int cantitate; } FIRMA; /* int main() { FILE *g=fopen("inf.dat","wb"); if(g == NULL) { printf("Eroare deschidere fisier"); exit(EXIT_FAILURE); } int i,n; FIRMA x; printf("Cate structuri? "); scanf("%d",&n); fflush(stdin); for(i=1;i<=n;i++) { printf("Cod firma [%d] : ",i); scanf("%d",&x.cod_f); printf("Cod produs [%d] : ",i); scanf("%d",&x.cod_p); fflush(stdin); printf("Cantitate [%d] : ",i); scanf("%d",&x.cantitate); printf("Nume [%d] : ",i); scanf("%s",x.nume); fflush(stdin); fwrite(&x,sizeof(FIRMA),1,g); } fclose(g); return 0; } */ int main() { FILE *f=fopen("inf.dat","rt"); if(f==NULL) { printf("Eroare fis"); exit(1); } FIRMA x; int i,n; fseek(f,0L,2); n=ftell(f)/sizeof(FIRMA); fseek(f,0L,0); printf("Cod firma | Cod produs | Denumire produs | Canitate produs \n"); for(i=1;i<=n;i++) { fread(&x,sizeof(FIRMA),1,f); printf("%d %d %d %s \n",x.cod_f,x.cod_p,x.cantitate,x.nume); } fclose(f); return 0; }
  13. ... am inteles in mare ce ai facut aici..doar ca: https://www.dropbox.com/s/gy5cv6qn1gjsn2v/Untitled.png?dl=0 in codeblocks
  14. tot bucla infinita.. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> void verific (FILE *f) { if (f==NULL) { printf("Eroare deschidere fisier\n"); exit(1); } } void afisare (char* a[], int n) { int i; for(i=0;i<n;i++) if(a[i]!=NULL) printf("%s\n",a[i]); } int fqs (const void *a, const void * { return strcmp ( *(char**)a , *(char**)b ); } int citesc (FILE *f, char*** a) { int i=0; int size=100; *a=(char**)malloc(size * sizeof(char)); for(i=0;i<size;i++) *a[i]=(char*)malloc(size * sizeof(char)); i=0; while (fread(*a[i++], sizeof(char), size, f)); return i; } int scriu (FILE *f, char* a[], int n) { fwrite(a,sizeof(char*),n,f); fputs("\n\n",f); } int main() { int n; FILE *f=fopen("in.txt","rt"); FILE *g=fopen("out.txt","wt"); verific(f); verific(g); char* a[100]; n=citesc(f,a); afisare(a,n); scriu(g,a,n); qsort(a,n,sizeof(char*),fqs); scriu(g,a,n); fclose(f); fclose(g); return 0; }
  15. Mersi pentru sfaturi, am facut ce mi-ai spus (desi m-am cam ametit cu pointerii), cand citesc din fisier, ce parametrii trebuie sa-i dau? nu prea inteleg de unde vine acel char*** a din functia de citire
×
×
  • Create New...