function TP0
format long
close all

% Ce Tp a pour objectif de vous familiariser (si vous ne l etes pas deja) avec Matlab,
% ainsi qu avec le format des sujets de Tps que nous allons utiliser dans ce cours.
% Il consiste en une serie de questions, sans necessairement de lien les unes avec les autres,
% mais vous permettant de voir l essentiel des fonctions Matlab dont nous aurons besoin ce semestre.


%---------------
% Question 1
%---------------
% Que font les lignes suivantes :
% Reponse
a = 5; 
b = 2;
c = a + b;
a = 3;
c
a+b

Pause('Question 1')
%------------
% Question 2
%-------------
% En matlab, tout (ou presque) est une matrice.
% Par exemple, la commande A = [1,2,3;4,5,6] definit une matrice A de 2 lignes et 3 colonnes
% dont la premiere ligne est 1 2 3 et la seconde 4 5 6.
% Definissez (et affichez) une matrice M de taille 2 x 2 telle que la premiere ligne soit 3,3 et la seconde 2,1;
% Definissez, et affichez, le vecteur colonne V de taille 4, de composantes 1 2 3 et 4, et le vecteur
% Vt, vecteur transpose de V.


Pause('Question 2')
%--------------
% Question 3
%-------------
% Comment cree-t-on rapidement une matrice de taille 10 x 6
%  - remplie de zeros ?
%  - remplie de 1 ?
%  - remplie aleatoirement ?
% Comment cree-t-on rapidement un vecteur contenant :
%   - tous les entiers de 1 à 20 en ordre croissant
%   - tous les entiers pairs de 1 à 20 en ordre croissant
%   - tous les entiers de 1 à 10 en ordre décroissant
% Reponse


Pause('Question 3')
%----------------
% Question 4
%----------------
% Completez la fonction Plusgrandquezero qui se trouve en fin de fichier.
% Testez la sur la matrice M donnée ci-après
% Reponse

M = [[2,1,-1];[0,1,-1];[-2,-1,-1]];

Pause('Question 4')
%--------------
% Question 5
%-----------------
% En fait, on peut faire beaucoup plus rapide que la fonction Plusgrandquezero, pour le
% meme resultat. Pour commencer, enlevez les ";" des commandes suivantes, et essayez
% de comprendre ce qu elles font
% Reponse
A = [1,2;1,-3];
B = [1,2;0,1];
A*B;
B*A;
A+B;
A-B;
A.*B;
B./A;
A > 0;
A == B;
B.*(A>0);

Pause('Question 5')
%------------------
% Question 6
%-----------------
% En deduire comment obtenir le meme resultat que la fonction Plusgrandquezero en 
% une seule commande
% Reponse

M = [[2,1,-1];[0,1,-1];[-2,-1,-1]];


Pause('Question 6')
%----------------
% Question 7
%------------------
% Completez la fonction Fonction, en fin de fichier. Testez la avec le vecteur
% a = -2:2;
% Vous devez obtenir
%  0.512681174086530   0.289634379594613   0.000000000000000   0.000000000000000   9.330481220648306
% Reponse


Pause('Question 7')
%------------------
% Question 8
%-----------------
% A l aide de la fonction plot, representez en vert le triangle de sommets (0,0), (2,2), (-1,3)
% 
% Reponse


Pause('Question 8')
%----------------
% Question 9
%------------------
% Rajoutez au graphique précédent le rectangle de sommets (-1,-1), (1,-1), (1,1), (-1,1),
% dessinez en bleu
% Reponse


Pause('Question 9')
%---------
%Question 10
%--------------
% A l aide des fonctions linspace et plot, representez sur une nouvelle figure le graphique de la fonction Fonction
% sur l intervalle [-1,1] en rouge, et l axe des abscisses en noir


Pause('Question 10')

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% LA PARTIE FONCTIONS A COMPLETER COMMENCE ICI %%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function A = Plusgrandquezero(B)
% Cette fonction prend en argument une matrice B, et renvoie
% une matrice A telle que A(i,j) = B(i,j) si B(i,j) > 0
%                         A(i,j) = 0 sinon


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function y = Fonction(x)
% Cette fonction prend comme argument un vecteur x de taille quelconque
% et renvoit y un vecteur tel que y(i) = exp(x(i)) * (x(i)^2 - x(i)) / (cos(x(i))+2)
% pour tout i de 1 jusqu a taille de x.


%%%%%% /!\ NE RIEN MODIFIER A PARTIR D ICI /!\ %%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function Pause(c)
disp(strcat(c,'. Appuyer sur une touche pour continuer'));
pause
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
