/*
Se considera un tablou de dimentsiune L, avand elemente intregi, care se
prelucreaza astfel:
- se initializeaza elementele astfel incat fiecare element reprezinta suma
intregilor de la 0 la valoarea indicelui corespunzator
- se construieste tabloul care contine cele doua jumatati inversate ale
tabloului initial.
Fiecare functie se implementeaza ca o functie void fara parametri.
*/
#include <stdio.h>
#define L 10
// variabile globale
int tablou_initial[L], tablou_derivat[L];
// prototipuri functii
void construieste_initial(void);
void construieste_derivat(void);
// definire main
int main(void) {
construieste_initial();
construieste_derivat();
return 0;
}
// definire functii
void construieste_initial(void){
/* se observa ca primul element e 0, iar celalalte se obtin prin adunarea
indicelui la elementul anterior */
int i;
for(tablou_initial[0] = 0, i = 1; i < L; i++)
tablou_initial[i] = tablou_initial[i - 1] + i;
// optional - afisare
puts("Tabloul initial este:"); for(i = 0; i < L; i++)
printf("%d ", tablou_initial
[i
]);
} // construieste_initial
void construieste_derivat(void){
/* se observa ca primul element e 0, iar celalalte se obtin prin adunarea
indicelui la elementul anterior */
int i;
for(i = 0; i < L / 2; i++){
tablou_derivat[i] = tablou_initial[i + L / 2];
tablou_derivat[i + L / 2] = tablou_initial[i];
}
// optional - afisare
puts("Tabloul derivat este:"); for(i = 0; i < L; i++)
printf("%d ", tablou_derivat
[i
]);
} // construieste_initial
Ci8qClNlIGNvbnNpZGVyYSB1biB0YWJsb3UgZGUgZGltZW50c2l1bmUgTCwgYXZhbmQgZWxlbWVudGUgaW50cmVnaSwgY2FyZSBzZSAKcHJlbHVjcmVhemEgYXN0ZmVsOgotIHNlIGluaXRpYWxpemVhemEgZWxlbWVudGVsZSBhc3RmZWwgaW5jYXQgZmllY2FyZSBlbGVtZW50IHJlcHJlemludGEgc3VtYSAKaW50cmVnaWxvciBkZSBsYSAwIGxhIHZhbG9hcmVhIGluZGljZWx1aSBjb3Jlc3B1bnphdG9yCi0gc2UgY29uc3RydWllc3RlIHRhYmxvdWwgY2FyZSBjb250aW5lIGNlbGUgZG91YSBqdW1hdGF0aSBpbnZlcnNhdGUgYWxlCnRhYmxvdWx1aSBpbml0aWFsLgpGaWVjYXJlIGZ1bmN0aWUgc2UgaW1wbGVtZW50ZWF6YSBjYSBvIGZ1bmN0aWUgdm9pZCBmYXJhIHBhcmFtZXRyaS4KKi8KCiNpbmNsdWRlIDxzdGRpby5oPgojZGVmaW5lIEwgMTAKCi8vIHZhcmlhYmlsZSBnbG9iYWxlCmludCB0YWJsb3VfaW5pdGlhbFtMXSwgdGFibG91X2Rlcml2YXRbTF07CgovLyBwcm90b3RpcHVyaSBmdW5jdGlpCnZvaWQgY29uc3RydWllc3RlX2luaXRpYWwodm9pZCk7CnZvaWQgY29uc3RydWllc3RlX2Rlcml2YXQodm9pZCk7CgovLyBkZWZpbmlyZSBtYWluCmludCBtYWluKHZvaWQpIHsKCQoJY29uc3RydWllc3RlX2luaXRpYWwoKTsKCWNvbnN0cnVpZXN0ZV9kZXJpdmF0KCk7CgoJcmV0dXJuIDA7Cn0KCi8vIGRlZmluaXJlIGZ1bmN0aWkKdm9pZCBjb25zdHJ1aWVzdGVfaW5pdGlhbCh2b2lkKXsKCQoJLyogc2Ugb2JzZXJ2YSBjYSBwcmltdWwgZWxlbWVudCBlIDAsIGlhciBjZWxhbGFsdGUgc2Ugb2J0aW4gcHJpbiBhZHVuYXJlYSAKCWluZGljZWx1aSBsYSBlbGVtZW50dWwgYW50ZXJpb3IgKi8KCWludCBpOyAKCWZvcih0YWJsb3VfaW5pdGlhbFswXSA9IDAsIGkgPSAxOyBpIDwgTDsgaSsrKQoJCXRhYmxvdV9pbml0aWFsW2ldID0gdGFibG91X2luaXRpYWxbaSAtIDFdICsgaTsKCQkKCS8vIG9wdGlvbmFsIC0gYWZpc2FyZQoJcHV0cygiVGFibG91bCBpbml0aWFsIGVzdGU6Iik7Cglmb3IoaSA9IDA7IGkgPCBMOyBpKyspCgkJcHJpbnRmKCIlZCAiLCB0YWJsb3VfaW5pdGlhbFtpXSk7CglwdXRjaGFyKCdcbicpOwoJCn0gLy8gY29uc3RydWllc3RlX2luaXRpYWwKCnZvaWQgY29uc3RydWllc3RlX2Rlcml2YXQodm9pZCl7CgkKCS8qIHNlIG9ic2VydmEgY2EgcHJpbXVsIGVsZW1lbnQgZSAwLCBpYXIgY2VsYWxhbHRlIHNlIG9idGluIHByaW4gYWR1bmFyZWEgCglpbmRpY2VsdWkgbGEgZWxlbWVudHVsIGFudGVyaW9yICovCglpbnQgaTsgCglmb3IoaSA9IDA7IGkgPCBMIC8gMjsgaSsrKXsKCQl0YWJsb3VfZGVyaXZhdFtpXSA9IHRhYmxvdV9pbml0aWFsW2kgKyBMIC8gMl07CgkJdGFibG91X2Rlcml2YXRbaSArIEwgLyAyXSA9IHRhYmxvdV9pbml0aWFsW2ldOwoJfQoJCQoJLy8gb3B0aW9uYWwgLSBhZmlzYXJlCglwdXRzKCJUYWJsb3VsIGRlcml2YXQgZXN0ZToiKTsKCWZvcihpID0gMDsgaSA8IEw7IGkrKykKCQlwcmludGYoIiVkICIsIHRhYmxvdV9kZXJpdmF0W2ldKTsKCXB1dGNoYXIoJ1xuJyk7CgkKfSAvLyBjb25zdHJ1aWVzdGVfaW5pdGlhbAo=