Se consideră tabloul unidimensional A[1..n] cu elemente numere întregi. Să se compună un
program care va transcrie la începutul tabloului B[1..n] în ordine crescătoare elementele lui
negative, apoi ,în continuare, pe cele nenegative în ordine descrescătoare.
De exemplu, având A = (4, -8, 7, -6, 0, -7, 5), se va obţine B = (-8, -7, -6, 7, 5, 4, 0).
Răspunsuri la întrebare
Eu am facut in C, daca iti trebuie in pascal pune in loc de printf-writeln
#include <stdio.h>
#include <stdlib.h>
int A[7] = {4, -8, 7, -6, 0, -7, 5};
int B[100];
int i, j, aux;
int main(){
for(i=0; i<7; i++){ //acest ciclu afiseaza sirul A in ordine escrescatoare
for(j=0; j<6; j++){
if(A[j]>A[j+1]){ //verifica conditia daca primul termen este mai mare //ca al doilea, daca da atunci efectueaza urmatorii pasi
aux = A[j+1];
A[j+1] = A[j];
A[j] = aux;
}
}
}
printf("A[7] = "); //Afisam sirul A
for(i=0; i<7; i++){
for(j=0; j<6; j++){
if(A[j]>=0){ //verificam daca numarul este pozitiv, daca da fectuam //urmatorul cod
if(A[j]<A[j+1]){
aux = A[j];
A[j] = A[j+1];
A[j+1] = aux;
}
}
}
}
for(i=0; i<7; i++){ //sirului B, ii atribuim sirul A
B[i]=A[i];
}
printf("\n\nB[7]= "); //afisam sirul B
for(i=0; i<7; i++){
printf("%d ",B[i]);
}
printf("\n\n"); //lasam un pic de spatiu
return 0;
}