En aquest tema, aprendrem a utilitzar les estructures de control de flux en MATLAB, que ens permeten prendre decisions dins dels nostres programes. Les estructures de control de flux més comunes són if, else, elseif i switch.

  1. Estructura if

L'estructura if s'utilitza per executar un bloc de codi només si una condició específica és certa.

Sintaxi

if condició
    % Bloc de codi a executar si la condició és certa
end

Exemple

x = 5;
if x > 0
    disp('x és positiu');
end

En aquest exemple, el missatge "x és positiu" es mostrarà perquè la condició x > 0 és certa.

  1. Estructura if-else

L'estructura if-else permet executar un bloc de codi si la condició és certa i un altre bloc si la condició és falsa.

Sintaxi

if condició
    % Bloc de codi a executar si la condició és certa
else
    % Bloc de codi a executar si la condició és falsa
end

Exemple

x = -3;
if x > 0
    disp('x és positiu');
else
    disp('x és negatiu o zero');
end

En aquest exemple, el missatge "x és negatiu o zero" es mostrarà perquè la condició x > 0 és falsa.

  1. Estructura if-elseif-else

L'estructura if-elseif-else permet comprovar múltiples condicions de manera seqüencial.

Sintaxi

if condició1
    % Bloc de codi a executar si condició1 és certa
elseif condició2
    % Bloc de codi a executar si condició2 és certa
else
    % Bloc de codi a executar si cap de les condicions anteriors és certa
end

Exemple

x = 0;
if x > 0
    disp('x és positiu');
elseif x < 0
    disp('x és negatiu');
else
    disp('x és zero');
end

En aquest exemple, el missatge "x és zero" es mostrarà perquè cap de les condicions anteriors és certa.

  1. Estructura switch

L'estructura switch s'utilitza per seleccionar un bloc de codi a executar entre múltiples opcions basades en el valor d'una variable.

Sintaxi

switch variable
    case valor1
        % Bloc de codi a executar si variable és igual a valor1
    case valor2
        % Bloc de codi a executar si variable és igual a valor2
    otherwise
        % Bloc de codi a executar si variable no coincideix amb cap valor anterior
end

Exemple

dia = 'dilluns';
switch dia
    case 'dilluns'
        disp('Avui és dilluns');
    case 'dimarts'
        disp('Avui és dimarts');
    case 'dimecres'
        disp('Avui és dimecres');
    otherwise
        disp('No és dilluns, dimarts ni dimecres');
end

En aquest exemple, el missatge "Avui és dilluns" es mostrarà perquè la variable dia és igual a 'dilluns'.

Exercicis Pràctics

Exercici 1

Escriu un programa que comprovi si un nombre és positiu, negatiu o zero i mostri un missatge adequat.

Solució

nombre = input('Introdueix un nombre: ');

if nombre > 0
    disp('El nombre és positiu');
elseif nombre < 0
    disp('El nombre és negatiu');
else
    disp('El nombre és zero');
end

Exercici 2

Escriu un programa que prengui una nota (0-10) i mostri la qualificació corresponent (Suspès, Aprovat, Notable, Excel·lent).

Solució

nota = input('Introdueix la nota (0-10): ');

if nota < 5
    disp('Suspès');
elseif nota >= 5 && nota < 7
    disp('Aprovat');
elseif nota >= 7 && nota < 9
    disp('Notable');
elseif nota >= 9 && nota <= 10
    disp('Excel·lent');
else
    disp('Nota no vàlida');
end

Exercici 3

Escriu un programa que prengui el nom d'un mes i mostri el nombre de dies que té.

Solució

mes = input('Introdueix el nom del mes: ', 's');

switch lower(mes)
    case {'gener', 'març', 'maig', 'juliol', 'agost', 'octubre', 'desembre'}
        disp('Aquest mes té 31 dies');
    case {'abril', 'juny', 'setembre', 'novembre'}
        disp('Aquest mes té 30 dies');
    case 'febrer'
        disp('Aquest mes té 28 o 29 dies');
    otherwise
        disp('Nom del mes no vàlid');
end

Conclusió

En aquesta secció, hem après a utilitzar les estructures de control de flux if, else, elseif i switch en MATLAB. Aquestes estructures són fonamentals per prendre decisions dins dels nostres programes i permeten que el codi sigui més flexible i dinàmic. A continuació, passarem a estudiar els bucles for i while en el següent tema.

© Copyright 2024. Tots els drets reservats