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 pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți întrebări suplimentare sau nevoie de ajutor, vă rugăm să ne contactați cu încredere. Așteptăm cu drag să reveniți și nu uitați să ne salvați în lista dumneavoastră de favorite!