#include #include #include using namespace std; /**pour compiler g++ 'app16a.cpp' -std=c++11 -Wall -Wextra -o 'joapp16a' ********************/ // 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+20) 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=1; for(int i=0; i<800;i=i+20) { tab[i] = tab1[0]+j1;if (j1 > 11){j2=2;};if (j1 <2){j2=1;};if (j2 ==2){j1--;j1--;}; if ((j2 ==1)&&(j1<24)){j1++;j1++;j1++;j1++;j1++;j1++;}; if (tab[i] <5){tab[i] = 5;} }// point bas onde 1 j1=1; j2=1; for(int i=2; i<800;i=i+20) { tab[i]= (3*tab1[0])+128+j1;if (j1 > 11){j2=2;};if (j1 <2){j2=1;};if (j2 ==2){j1--;j1--;}; if ((j2 ==1)&&(j1<24)){j1++;j1++;j1++;j1++;j1++;j1++;}; if (tab[i] > 250){tab[i] = 250;} } // 3/4 point haut onde 1 j1=1; j2=1; for(int i=4; i<800;i=i+20) { tab[i]= tab[2] -tab1[1]+j1;if (j1 > 11){j2=2;};if (j1 <2){j2=1;};if (j2 ==2){j1--;j1--;}; if ((j2 ==1)&&(j1<24)){j1++;j1++;j1++;j1++;j1++;j1++;}; if (tab[i] <5){tab[i] = 5;} } //point bas du 3/4 onde 1 j1=1; j2=1; for(int i=6; i<800;i=i+20) { tab[i]= (2*(tab1[2]))+128+j1;if (j1 > 11){j2=2;};if (j1 <2){j2=1;};if (j2 ==2){j1--;j1--;}; if ((j2 ==1)&&(j1<24)){j1++;j1++;j1++;}j1++;j1++;j1++;; if (tab[i] > 250){tab[i] = 250;} } //1/2 point haut onde 2 j1=1; j2=1; for(int i=8; i<800;i=i+20) { tab[i]= tab[(6+i)] -tab1[1]+j1;if (j1 > 11){j2=2;};if (j1 <2){j2=1;};if (j2 ==2){j1--;j1--;}; if ((j2 ==1)&&(j1<24)){j1++;j1++;j1++;j1++;j1++;j1++;}; if (tab[i] <5){tab[i] = 5;} } // point bas j1=1; j2=1; for(int i=10; i<800;i=i+20) { tab[i]= (2*tab1[0])+128+j1;if (j1 > 11){j2=2;};if (j1 <2){j2=1;};if (j2 ==2){j1--;j1--;}; if ((j2 ==1)&&(j1<24)){j1++;j1++;j1++;}j1++;j1++;j1++;; if (tab[i] > 250){tab[i] = 250;} } // 1/2 point haut onde 1 j1=1; j2=1; for(int i=12; i<800;i=i+20) { tab[i]= (tab[10])-tab1[1]+j1;if (j1 > 11){j2=2;};if (j1 <2){j2=1;};if (j2 ==2){j1--;j1--;}; if ((j2 ==1)&&(j1<24)){j1++;j1++;j1++;j1++;j1++;j1++;}; if (tab[i] < 5){tab[i] = 5;} } //point bas 1/2 onde 1 j1=1; j2=1; for(int i=14; i<800;i=i+20) { tab[i]= ((tab1[2]))+128+j1;if (j1 > 11){j2=2;};if (j1 <2){j2=1;};if (j2 ==2){j1--;j1--;}; if ((j2 ==1)&&(j1<24)){j1++;j1++;j1++;j1++;j1++;j1++;}; if (tab[i] > 250){tab[i] = 250;} } //1/3 point haut onde 2 j1=1; j2=1; for(int i=16; i<800;i=i+20) { tab[i]= tab[(14+i)] -tab1[1]+j1;if (j1 > 11){j2=2;};if (j1 <2){j2=1;};if (j2 ==2){j1--;j1--;}; if ((j2 ==1)&&(j1<24)){j1++;j1++;j1++;j1++;j1++;j1++;}; if (tab[i] < 5){tab[i] = (5);}} // point bas j1=1; j2=1; for(int i=18; i<800;i=i+20) { tab[i]= (tab1[0])+128+j1;if (j1 > 11){j2=2;};if (j1 <2){j2=1;};if (j2 ==2){j1--;j1--;}; if ((j2 ==1)&&(j1<24)){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<