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 oferite v-au fost de ajutor. Nu ezitați să ne contactați pentru orice întrebare sau dacă aveți nevoie de asistență suplimentară. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!