Răspuns :
Răspuns:
Desigur! Iată un program C++ care îndeplinește cerințele tale:
```cpp
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n, k;
cout << "Introduceti doua numere naturale, n si k: ";
cin >> n >> k;
// Verificarea intervalului pentru n si k
if (n < 2 || n > 20 || k < 1 || k > n) {
cout << "Valorile introduse nu sunt in intervalele permise." << endl;
return 1;
}
// Construirea tabloului unidimensional
vector<int> tablou(n);
// Setarea valorii pentru al k-lea element
tablou[k-1] = n;
// Completarea elementelor spre stânga de la k-1
for (int i = k-2; i >= 0; --i) {
tablou[i] = tablou[i+1] - 1;
}
// Completarea elementelor spre dreapta de la k-1
for (int i = k; i < n; ++i) {
tablou[i] = tablou[i-1] - 1;
}
// Afișarea tabloului construit
for (int i = 0; i < n; ++i) {
cout << tablou[i] << " ";
}
cout << endl;
return 0;
}
```
### Explicații:
1. **Citirea numerelor n și k**:
```cpp
cin >> n >> k;
```
2. **Verificarea intervalelor**:
- Programul verifică dacă n și k se încadrează în intervalele specificate, iar dacă nu, afișează un mesaj de eroare și se oprește.
3. **Construirea tabloului**:
- Se creează un vector `tablou` cu n elemente.
- Al k-lea element (indexul k-1) este setat la n.
- Elemente din stânga al k-lea element sunt setate într-un șir strict descrescător.
- Elemente din dreapta al k-lea element sunt setate într-un șir strict descrescător.
4. **Afișarea tabloului**:
- Elemente din tablou sunt afișate cu un spațiu între ele.
Acest program ar trebui să rezolve problema specificată și să genereze tabloul corect pentru valorile date de n și k. De exemplu, pentru n=10 și k=3, outputul va fi `8 9 10 9 8 7 6 5 4 3`.
Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că informațiile disponibile v-au fost utile. Dacă aveți întrebări suplimentare sau aveți nevoie de sprijin, nu ezitați să ne contactați. Vă așteptăm cu drag și data viitoare! Nu uitați să adăugați site-ul nostru la favorite pentru acces rapid.