Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [17:54, 20.01.2020] Beni: #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <stdlib.h>
- int cerintaC(int** a, int n);
- int cerintaD(int** a, int n);
- int cerintaE(int** a, int n);
- void cerintaF(int** a, int n);
- int main()
- {
- char in_fis[] = "fis.in";
- FILE* in = fopen(in_fis, "r"); ///deschide fisierul pentru citire(r)
- int** a, n;
- fscanf(in, "%d", &n); ///citeste n
- if (a = (int**)malloc(n * sizeof(int))) ///aloca memorie dinamic pentru matrice ( doar coloana 0 )
- {
- for (int i = 0; i < n; i++)
- {
- a[i] = (int*)malloc(n * sizeof(int)); ///aloca memorie dinamic pentru fiecare pozitie din coloana 0 (n elemente pentru fiecare
- if (a[i] == 0)
- {
- printf("eroare de alocare", in_fis);
- return 0;
- }
- }
- for (int i = 0; i < n; i++) ///merge pe linie
- {
- for (int j = 0; j < n; j++) /// merge pe coloana
- {
- fscanf(in, "%d", &a[i][j]); ///citeste din fisier matricea
- }
- }
- }
- else
- {
- printf("eroare de alocare", in_fis);
- return 0;
- }
- if (in == NULL)
- {
- printf("eroare la dechiderea fisierului", in_fis);
- return 0;
- }
- if (cerintaC(a, n) == 1)///afiseaza rezultatul de la functie (depinde ce returneaza fct
- {
- printf("elementele sunt pozitive si cuprinse in unul dintre intervale\n", in_fis);
- }
- else
- {
- printf("elementele nu sunt pozitive si cuprinse in unul dintre intervale\n", in_fis);
- }
- printf("suma elem. impare este: %d \n", cerintaD(a, n));
- if (cerintaE(a, n) == 1)
- {
- printf("exista linii sau coloane egale cu 32\n", in_fis);
- }
- else
- {
- printf("nu exista linii sau coloane egale cu 32\n", in_fis);
- }
- cerintaF(a, n);///asta scrie in fiser in interiorul ei
- fclose(in);
- }
- int cerintaC(int** a, int n)
- {
- int ok1 = 0, ok2 = 0, ok = 0;
- for (int i = 0; i < n; i++) ///pentru linii
- {
- for (int j = 0; j < n; j++) ///pt coloane
- {
- if ((a[i][j] >= 65 && a[i][j] <= 90) && (a[i][j] > 0)) ///in astea 2 if -uri verifica daca s in intervalale cerute
- {
- ok1 = 1;
- }
- if ((a[i][j] >= 32 && a[i][j] <= 65) && (a[i][j] > 0))
- {
- ok2 = 1;
- }
- }
- }
- if (ok1 == 1 || ok2 == 0)
- ok = 1;
- return ok;
- }
- int cerintaD(int** a, int n)
- {
- int s = 0;
- for (int i = 0; i < n; i++)
- {
- for (int j = 0; j < n; j++)
- {
- if ((i + j) % 2 == 1)
- {
- s = s + a[i][j]; /// face suma elementelor din pozitii impare
- }
- }
- }
- return s;
- }
- int cerintaE(int** a, int n)
- {
- int okl = 0, okc = 0, okcerinta = 0;
- for (int i = 0; i < n; i++) ///verica pentru fiecare linie daca are 32
- {
- int ok = 1;
- for (int j = 0; j < n; j++)
- {
- if (a[i][j] != 32)
- {
- ok = 0;
- }
- }
- if (ok == 1)
- {
- return ok;
- break;
- }
- }
- for (int i = 0; i < n; i++)///verica pentru fiecare coloana daca are 32
- {
- int ok = 1;
- for (int j = 0; j < n; j++)
- {
- if (a[j][i] != 32)
- {
- ok = 0;
- }
- }
- if (ok == 1)
- {
- return ok;
- break;
- }
- }
- }
- void cerintaF(int** a, int n)
- {
- char out_fis[] = "fis.out";
- FILE* out = fopen(out_fis, "w"); /// deschide fisierul pentru scriere ( W)
- for (int i = 0; i < n; i++)
- {
- for (int j = 0; j < n; j++)
- {
- if (i + j == n - 1) /// merge pe diagonala secundara
- {
- fprintf(out, "%c ", a[i][j]); ///o transforma in carecter
- }
- else
- fprintf(out, "%d ", a[i][j]);
- }
- fprintf(out, "\n");
- }
- fclose(out);
- }
- [17:54, 20.01.2020] Beni: cateva comentarii
- [17:54, 20.01.2020] Beni: la prob ce mi ai trimis o
- [17:54, 20.01.2020] Beni: mai fac dupa ce vin de la romana
- [18:06, 20.01.2020] Dragoș Briscan: bun
- [20:21, 20.01.2020] Beni: Ceau
- [20:21, 20.01.2020] Beni: Acum am ajuns acasă
- [20:21, 20.01.2020] Beni: Ma pun sa fac
- [20:21, 20.01.2020] Beni: Si ma mai poti întreba ce nu stii
- [20:22, 20.01.2020] Beni: Si sper sa ti pot raspunde
- [20:24, 20.01.2020] Dragoș Briscan: Okk
- [22:28, 20.01.2020] Beni: #include <iostream>
- #include <fstream>
- using namespace std;
- struct student{
- char nume[30];
- char prenume[30];
- int nr_matricol;
- short grupa;
- float note[21];
- };
- void cerintaB(struct student *p, int n);
- void cerintaC(struct student *p , int n);
- int main()
- {
- struct student *p;
- int n;
- FILE *f;
- char fileName[255]={"fisier.in"};
- if((f = fopen(fileName,"r"))==NULL)
- {
- cout<<"Eroare la deschiderea fisierului";
- return 0;
- }
- fscanf(f, "%d", &n); ///citesc n din fisier
- if(!(p = new struct student[n])) ///alocare memorie dinamica pentru un sir in care se pot memora n elevi cu toate datele de la struct student
- {
- cout<<"Eroare la alocarea d…
- [23:38, 20.01.2020] Beni: #include <iostream>
- #include <fstream>
- #include <string.h>
- using namespace std;
- struct puncte{
- float x;
- float y;
- char denumire[255];
- };
- void cerintaC(struct puncte *p, int n);
- void cerintaD(struct puncte *p , int n);
- void cerintaE(struct puncte *p , int n);
- int main()
- {
- struct puncte *p;
- int n;
- FILE *f;
- char fileName[255]={"fisier.in"};
- if((f = fopen(fileName,"r"))==NULL)
- {
- cout<<"Eroare la deschiderea fisierului";
- return 0;
- }
- fscanf(f, "%d", &n); ///citesc n din fisier
- if(!(p = new struct puncte[n])) ///alocare memorie dinamica pentru un sir in care se pot memora n elevi cu toate datele de la struct student
- {
- cout<<"Eroare la alocarea dinamica!";
- return 0;
- }
- for(int i=0; i<n; ++i)
- {
- fscanf(f,"%f", &(p+i) -> x );
- fscanf(f,"%f", &(p+i) -> y );
- fgets((p+i)->denumire,sizeof (p+i)->denumire,f)!= NULL; /// citesc cuvintele de dupa puncte(denumirea)
- }
- cerintaC(p,n);
- cerintaD(p,n);
- cerintaE(p,n);
- return 0;
- }
- void cerintaC(struct puncte *p, int n)
- {
- for(int i=0; i<n; ++i)
- {
- if((p+i)->x <-1 || (p+i)->x >1 || (p+i)->y <-1 || (p+i)->y >1) /// verific sa fie cuprinse intre -1 si 1
- {
- cout<<"Datele pentru punctul " <<i+1 << " nu respecta valorile corecte\n" ;
- }
- }
- }
- void cerintaD(struct puncte *p,int n)
- {
- for(int i=0 ; i<n; ++i)
- {
- if(strstr((p+i)->denumire ,"restaurant") != 0)
- cout<<(p+i)->denumire;
- }
- }
- void cerintaE(struct puncte *p, int n)
- {
- char fileout[255]="fisier.out";
- FILE *out = fopen(fileout,"w");
- for(int i=0 ; i<n; ++i)
- {
- if((p+i)->x == 0 || (p+i)->y == 0)
- fprintf(out,"%s ",(p+i)->denumire);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement