#include #include #include using namespace std; /**pour compiler g++ 'app19.cpp' -std=c++11 -Wall -Wextra -o 'joapp19' ********************/ // version app5a nous changeons la forme de l'inertie que sur le pt haut onde 1 int main() { string const construit("audio.jo"); ofstream ici(construit.c_str()); int tab[830], tab1[4],j1,j2; // tableau plus grand(830 pour 800) a cause ecriture over flow induit par for(int i=0; i<800;i=i+36) qui pousse i au dessus de 800 for(int j=0; j<4; j++) { cout << "Tapez 4 valeurs.(1-pt haut onde 1)(2-hauteur des ondes)(3-pt haut onde 2)(4-k7) " << j << " : "; cin >> tab1[j]; } if (tab1[1] < 30){tab1[1] = 30;} for(int i=0; i<800; i++) {tab[i] = 128;}// je remplis les cases du tableau utile for(int i=1; i<800;i=i+2){ tab[i] = 2;}// tous les plateaux de crete sont mis a 2 j1=1; j2=2; for(int i=0; i<800;i=i+36) { tab[i] = tab1[0]+j1;if (j1 >24){j2=2;};if (j1 <2){j2=1;};if (j2 ==2){j1--;j1--;j1--;j1--;}; if (j2 ==1){j1++;j1++;j1++;j1++;}; if (tab[i] <5){tab[i] = 5;} }// point bas onde 1 1 /*echo*/ for(int i=2; i<800;i=i+36) { tab[i] = (tab[(0+i)] +1); }// point bas onde 1 echo for(int i=4; i<800;i=i+36) { tab[i] = tab[(2+i)]-1; }// point bas onde 1 echo j1=1; j2=2; for(int i=6; i<800;i=i+36) { tab[i]= (3*tab1[0])+128+j1;if (j1 >24){j2=2;}if (j1 <2){j2=1;};if (j2 ==2){j1--;j1--;j1--;j1--;}; if (j2 ==1){j1++;j1++;j1++;j1++;}; if (tab[i] > 250){tab[i] = (250-tab1[1]);} } // 3/4 point haut onde 1 for(int i=8; i<800;i=i+36) { tab[i] = (tab[(6+i)] -1); }// point haut onde 1 echo for(int i=10; i<800;i=i+36) { tab[i] = (tab[(8+i)]+1); }// point haut onde 1 echo j1=1; j2=2; for(int i=12; i<800;i=i+36) { tab[i]= tab1[0]+j1;if (j1 >24){j2=2;}if (j1 <2){j2=1;};if (j2 ==2){j1--;j1--;j1--;j1--;}; if (j2 ==1){j1++;j1++;j1++;j1++;}; if (tab[i] <5){tab[i] = 5;} } //point bas du 3/4 onde 1 for(int i=14; i<800;i=i+36) { tab[i] = (tab[(12+i)] +1); }// point bas onde 1 echo for(int i=16; i<800;i=i+36) { tab[i] = (tab[(14+i)]-1); }// point bas onde 1 echo j1=1; j2=2; for(int i=18; i<800;i=i+36) { tab[i]= (2*(tab1[2]))+128+j1;if (j1 >24){j2=2;}if (j1 <2){j2=1;};if (j2 ==2){j1--;j1--;j1--;j1--;}; if (j2 ==1){j1++;j1++;j1++;j1++;}; if (tab[i] > 250){tab[i] = (250-tab1[1]);} } //1/2 point haut onde 2 for(int i=20; i<800;i=i+36) { tab[i] = (tab[(18+i)] -1); }// point bas onde 1 echo for(int i=22; i<800;i=i+36) { tab[i] = (tab[(20+i)]+1); }// point bas onde 1 echo j1=1; j2=2; for(int i=24; i<800;i=i+36) { tab[i]= tab[(18+i)] -tab1[1]+j1;if (j1 >24){j2=2;}if (j1 <2){j2=1;};if (j2 ==2){j1--;j1--;j1--;j1--;}; if (j2 ==1){j1++;j1++;j1++;j1++;}; if (tab[i] <5){tab[i] = 5;} } // point bas j1=1; j2=1; for(int i=26; i<800;i=i+36) { tab[i]= (2*tab1[0])+128+j1;if (j1 >24){j2=2;}if (j1 <2){j2=1;};if (j2 ==2){j1--;j1--;j1--;j1--;}; if (j2 ==1){j1++;j1++;j1++;j1++;} ; if (tab[i] < (tab[(24+i)]+1)){tab[i] = (tab[(24+i)]+1);}; if (tab[i] > 250){tab[i] = 250;} } // 1/2 point haut onde 1 j1=1; j2=2; for(int i=28; i<800;i=i+36) { tab[i]= (tab[26])-tab1[1]+j1;if (j1 >24){j2=2;}if (j1 <2){j2=1;};if (j2 ==2){j1--;j1--;j1--;j1--;}; if (j2 ==1){j1++;j1++;j1++;j1++;}; if (tab[i] <5){tab[i] = 5;} } //point bas 1/2 onde 1 j1=1; j2=2; for(int i=30; i<800;i=i+36) { tab[i]= ((tab1[2]))+128+j1;if (j1 >24){j2=2;}if (j1 <2){j2=1;};if (j2 ==2){j1--;j1--;j1--;j1--;}; if (j2 ==1){j1++;j1++;j1++;j1++;} ; if (tab[i] < (tab[(28+i)]+1)){tab[i] = (tab[(28+i)]+1);}; if (tab[i] > 250){tab[i] = 250;}} //1/3 point haut onde 2 j1=1; j2=2; for(int i=32; i<800;i=i+36) { tab[i]= tab[(26+i)] -tab1[1]+j1;if (j1 >24){j2=2;}if (j1 <2){j2=1;};if (j2 ==2){j1--;j1--;j1--;j1--;}; if (j2 ==1){j1++;j1++;j1++;j1++;}; if (tab[i] <5){tab[i] = 5;}} // point bas j1=1; j2=2; for(int i=34; i<800;i=i+36) { tab[i]= (tab1[0])+128+j1;if (j1 >24){j2=2;}if (j1 <2){j2=1;};if (j2 ==2){j1--;j1--;j1--;j1--;}; if (j2 ==1){j1++;j1++;j1++;j1++;}; if (tab[i] > 250){tab[i] = 250;} } // 1/4 point haut onde 1 tab[1] = tab1[3]; if(ici) { for(int i = 0; i < 800; i++) { ici<