Probleme de informatică
  Clasa a IX-a
1. Elementele de bază ale limbajului C++ (instructiunile limbajului) (46)
2. Subprograme predefinite (1)
3. Tablouri (145)
4. Fişiere text (2)
5. Algoritmi elementari (106)
6. Probleme diverse (13)
  Clasa a X-a
1. Subprograme definite de utilizator (87)
2. Şiruri de caractere (47)
3. Înregistrări (26)
4. Recursivitate (57)
5. Combinatorica (0)
6. Alocarea dinamică a memoriei (2)
7. Liste înlănţuite (25)
8. Algoritmul lui Lee (1)
  Clasa a XI-a

1. Metoda "Divide et impera" (12)
2. Metoda Backtracking (85)
3. Metoda Greedy (6)
4. Programare dinamică (18)
5. Grafuri neorientate (37)
6. Grafuri orientate (38)
7. Arbori (33)

  Clasa a XII-a
1. Elemente de baza C# (32)
2. POO in C# (13)
3. C# - Windows Form Application (24)
4. Admitere UBB (18)

   Home Subprograme Bacalaureat 2016   |   Variante bacalaureat 2009   |   Atestat  |   Olimpiada       
Noutăţi
Subiecte admitere la Facultatea de informatica UBB Cluj-Napoca
Subiecte bacalaureat 2010-2018
Bacalaureat 2018 - competenţe digitale
C# - Windows Form Application - exemple
Modele de proiecte de atestat
Bacalaureat 2018
Subiecte si rezolvări 2010-2018
Rezolvari variante bacalaureat 2009
Competenţe digitale
Examen atestat
Rezumat documentatie
php.doc
css.doc
exemple_php_si_css.rar
Modele de proiecte de atestat
Olimpiada
Clasele V-VI
Clasele VII-VIII
Clasa a IX-a
Clasa a X-a
Clasele XI-XII
Noţiuni teoretice
Metode de sortare
Metoda backtracking


Din fisierul elimcif.in se citeste un numar natural n (n<=100) si apoi un vector A cu n elemente numere naturale cu cel mult 9 cifre fiecare. Modificati fiecare element al vectorului astfel: daca are numar impar de cifre, atunci stergeti cifra din mijloc, iar daca are numar par de cifre, atunci stergeti cele doua cifre din mijloc.
Afisati elementele vectorului in fisierul elimcif.out.
Exemplu:
elimcif.in
8
234 34564 3564 456456 125457345 3325 1 77
elimcif.out
24 3464 34 4556 12547345 35 0 0
Indicatie: se pot scrie si apela functii pentru:
- citirea vectorului
- afisarea vectorului
- determinarea numarului de cifre ale unui numar
- calcularea puterii 10 la n
- calcularea numarului format din primele c cifre alui lui n
- calcularea numarului format din ultimele c cifre ale lui n
- stergerea cifrei din mijlocului unui numar cu numar impar de cifre
- stergerea celor 2 cifre din mijlocului unui numar cu numar par de cifre
- parcurgerea vectorului si efectuarea modificarii elementelor conform cerintei.



#include <fstream>
using namespace std;

ifstream fin("elimcif.in");
ofstream fout("elimcif.out");

void citire(int a[], int &n)
{
    fin>>n;
    for(int i=1;i<=n;i++) fin>>a[i];
}

void afisare(int a[], int n)
{
    for(int i=1;i<=n;i++) fout<<a[i]<<" ";
}

int nrcif(int n)//calculeaza numarul de cifre
{
    int c=0;
    if(n==0) return 1;
    while(n>0)
    {
        c++;
        n=n/10;
    }
    return c;
}

int p10n(int n) //calculeaza 10 la n
{
    int p=1;
    for(int i=1;i<=n;i++)
        p=p*10;
    return p;
}

int primele(int n, int c)//numarul format cu primele c cifre ale lui n
{
    return n/p10n(nrcif(n)-c);
}

int ultimele(int n, int c)//numarul format cu ultimele c cifre ale lui n
{
    return n%p10n(c);
}

int sterg1(int n)//sterge cifra din mijloc din n
{
    int c=nrcif(n)/2;
    return primele(n,c)*p10n(c)+ultimele(n,c);
}


int sterg2(int n)//sterge 2 cifre din mijloc din n
{
    int c=nrcif(n)/2;
    return primele(n,c-1)*p10n(c-1)+ultimele(n,c-1);
}

void inlocuire(int a[],int n) //inlocuieste elementele din vector
{
    for(int i=1;i<=n;i++)
        if(nrcif(a[i])%2==0) a[i]=sterg2(a[i]);
        else a[i]=sterg1(a[i]);
}

int main()
{
    int a[101], n;
    citire(a,n);
    inlocuire(a,n);
    afisare(a,n);
    fin.close();
    fout.close();
    return 0;
}


  Clasa a IX-a
1. Elementele de bază ale limbajului C++ (instructiunile limbajului) (46)
2. Subprograme predefinite (1)
3. Tablouri (145)
4. Fişiere text (2)
5. Algoritmi elementari (106)
6. Probleme diverse (13)
  Clasa a X-a
1. Subprograme definite de utilizator (87)
2. Şiruri de caractere (47)
3. Înregistrări (26)
4. Recursivitate (57)
5. Combinatorica (0)
6. Alocarea dinamică a memoriei (2)
7. Liste înlănţuite (25)
8. Algoritmul lui Lee (1)
  Clasa a XI-a

1. Metoda "Divide et impera" (12)
2. Metoda Backtracking (85)
3. Metoda Greedy (6)
4. Programare dinamică (18)
5. Grafuri neorientate (37)
6. Grafuri orientate (38)
7. Arbori (33)

  Clasa a XII-a
1. Elemente de baza C# (32)
2. POO in C# (13)
3. C# - Windows Form Application (24)
4. Admitere UBB (18)

Calculatoare si accesorii second hand
Copyright 2009-2017 Muresan Vasile Ciprian - mcip.ro