#include<stdio.h>
#include<string.h>
/* Prog C qui fournit les reponses à l'exercice tab2d.oef .
L'executable doit s'appeler tab2d.o et être place dans
~/wims/other/bin/bioinfo
Ce prog doit etre lancé par le script /wims/public_html/bin/sh_bioinfo
*/
/* Entrées :
argv[1]= nom du programme ()
argv[2]= \niveau
argv[3]= \TAILLE
argv[4]= \var_boucle1
argv[5]= \val_ligne
argv[6]= \diago
argv[7]= \val_diago
argv[8]= \boucle4_1
argv[9]= \boucle4_2
argv[10]= \max
argv[11]= \l1
argv[12]= \c1
argv[13]=\ligne
argv[14]=\sens_boucle1_1
argv[15]=\sens_boucle1_2
*/
int main(argc,argv)
int argc;
char *argv[];
{
int tab[16][16];
int i,j,k;
int niveau,TAILLE,var_boucle1,val_ligne,diago,val_diago,max,ligne;
int l1,c1;
char boucle4_1[8];
char boucle4_2[8];
char sens_boucle1_1[12];
char sens_boucle1_2[12];
sscanf(argv
[4],"%d",&var_boucle1
);
sscanf(argv
[5],"%d",&val_ligne
);
sscanf(argv
[7],"%d",&val_diago
);
strcpy(sens_boucle1_1
,argv
[14]);
strcpy(sens_boucle1_2
,argv
[15]);
/* BOUCLE 1 */
if ((strcmp(sens_boucle1_1
,"croissant")==0) && (strcmp(sens_boucle1_2
,"croissant")==0) )
{
if (var_boucle1<3) {
for(i=0; i<TAILLE; i++){
for(j=0; j<TAILLE; j++) {
if (var_boucle1==1)
tab[i][j]=i;
else
tab[i][j]=j;
}
}
}
else {
k=0;
for(i=0; i<TAILLE; i++) {
for(j=0; j<TAILLE; j++) {
tab[i][j]=k;
k++;
}
}
}
}
else if ((strcmp(sens_boucle1_1
,"croissant")==0) && ( strcmp(sens_boucle1_2
,"decroissant"))==0)
{
if (var_boucle1<3) {
for(i=0; i<TAILLE; i++){
for(j=TAILLE-1; j>=0; j--) {
if (var_boucle1==1)
tab[i][j]=i;
else
tab[i][j]=j;
}
}
}
else {
k=0;
for(i=0; i<TAILLE; i++) {
for(j=TAILLE-1; j>=0; j--) {
tab[i][j]=k;
k++;
}
}
}
}
else if ((strcmp(sens_boucle1_1
,"decroissant")==0 && strcmp(sens_boucle1_2
,"croissant"))==0)
{
if (var_boucle1<3) {
for(i=TAILLE-1; i>=0; i--){
for(j=0; j<TAILLE; j++) {
if (var_boucle1==1)
tab[i][j]=i;
else
tab[i][j]=j;
}
}
}
else {
k=0;
for(i=TAILLE-1; i>=0; i--){
for(j=0; j<TAILLE; j++) {
tab[i][j]=k;
k++;
}
}
}
}
else
{
if (var_boucle1<3) {
for(i=TAILLE-1; i>=0; i--){
for(j=TAILLE-1; j>=0; j--) {
if (var_boucle1==1)
tab[i][j]=i;
else
tab[i][j]=j;
}
}
}
else {
k=0;
for(i=TAILLE-1; i>=0; i--){
for(j=TAILLE-1; j>=0; j--) {
tab[i][j]=k;
k++;
}
}
}
}
/* BOUCLE 2 */
if (niveau>1)
{
for(i=0; i<TAILLE; i++) {
tab[ligne][i]=val_ligne;
tab[i][ligne+1]=val_ligne+1;
}
}
/* BOUCLE 3*/
if (niveau>2)
{
if (diago==1)
{
for(i=0; i<TAILLE; i++) {
tab[i][i]=val_diago;
}
}
else
{
for(i=0; i<TAILLE; i++) {
tab[i][TAILLE-1-i]=val_diago;
}
}
}
/* BOUCLE 4*/
if (niveau>3)
{
if(strcmp(boucle4_1
,"pair")==0 && strcmp(boucle4_2
,"pair")==0)
{
for(i=0; 2*i<TAILLE; i++) {
for(j=0; 2*j<TAILLE ; j++) {
tab[2*i][2*j]=0;
}
}
}
else if(strcmp(boucle4_1
,"impair")==0 && strcmp(boucle4_2
,"pair")==0)
{
for(i=0; 2*i+1<TAILLE; i++) {
for(j=0; 2*j<TAILLE ; j++) {
tab[2*i+1][2*j]=0;
}
}
}
else if(strcmp(boucle4_1
,"impair")==0 && strcmp(boucle4_2
,"impair")==0)
{
for(i=0; 2*i+1<TAILLE; i++) {
for(j=0; 2*j<TAILLE ; j++) {
tab[2*i+1][2*j+1]=0;
}
}
}
else if(strcmp(boucle4_1
,"pair")==0 && strcmp(boucle4_2
,"impair")==0)
{
for(i=0; 2*i<TAILLE; i++) {
for(j=0; 2*j<TAILLE ; j++) {
tab[2*i][2*j+1]=0;
}
}
}
}
/* BOUCLE 5*/
if (niveau>4)
{
for(i=0;i<TAILLE;i++)
{
for(j=0;j<TAILLE;j++) {
if(i+j>max)
tab[i][j]=tab[i][j]-1;
}
}
}
printf("%d,%d,%d,%d\n",tab
[l1
][c1
],tab
[l1
+1][c1
+1],tab
[l1
+1][c1
+2],tab
[l1
+2][c1
]);
return 0;
}