En aquest tema, aprendrem sobre les sentències switch case en ALGOL, una estructura de control que permet seleccionar una de moltes branques de codi per executar. Aquesta estructura és útil quan es volen comparar una variable amb múltiples valors possibles i executar diferents blocs de codi segons el valor de la variable.
Continguts
Què és una Sentència Switch Case?
Una sentència switch case és una estructura de control que permet executar diferents blocs de codi basant-se en el valor d'una expressió. És una alternativa més clara i organitzada a l'ús de múltiples sentències if-else.
Sintaxi de Switch Case en ALGOL
La sintaxi general d'una sentència switch case en ALGOL és la següent:
switch (expressió) begin
case valor1:
// Bloc de codi per a valor1
break;
case valor2:
// Bloc de codi per a valor2
break;
...
default:
// Bloc de codi per defecte
end switch;Explicació de la Sintaxi
switch (expressió): L'expressió que es vol avaluar.case valor: Cada cas representa un valor possible de l'expressió. Si l'expressió coincideix amb aquest valor, s'executa el bloc de codi associat.break;: Aquesta instrucció finalitza l'execució del bloc de codi del cas actual i surt de la sentènciaswitch.default: Opcional. Aquest bloc de codi s'executa si cap dels casos coincideix amb el valor de l'expressió.
Exemple Pràctic
Vegem un exemple pràctic d'una sentència switch case en ALGOL. Suposem que volem imprimir el nom del dia de la setmana basant-nos en un número (1 per dilluns, 2 per dimarts, etc.).
begin
integer dia;
dia := 3;
switch (dia) begin
case 1:
print("Dilluns");
break;
case 2:
print("Dimarts");
break;
case 3:
print("Dimecres");
break;
case 4:
print("Dijous");
break;
case 5:
print("Divendres");
break;
case 6:
print("Dissabte");
break;
case 7:
print("Diumenge");
break;
default:
print("Número de dia invàlid");
end switch;
endExplicació de l'Exemple
- La variable
dias'inicialitza amb el valor 3. - La sentència
switchavalua el valor dedia. - Com que
diaés 3, s'executa el bloc de codi associat alcase 3, que imprimeix "Dimecres". - La instrucció
breakfinalitza l'execució del bloc de codi delcase 3i surt de la sentènciaswitch.
Exercicis Pràctics
Exercici 1
Escriu un programa en ALGOL que, donat un número de mes (1 per gener, 2 per febrer, etc.), imprimeixi el nom del mes corresponent. Si el número no està entre 1 i 12, imprimeix "Número de mes invàlid".
Solució
begin
integer mes;
mes := 5;
switch (mes) begin
case 1:
print("Gener");
break;
case 2:
print("Febrer");
break;
case 3:
print("Març");
break;
case 4:
print("Abril");
break;
case 5:
print("Maig");
break;
case 6:
print("Juny");
break;
case 7:
print("Juliol");
break;
case 8:
print("Agost");
break;
case 9:
print("Setembre");
break;
case 10:
print("Octubre");
break;
case 11:
print("Novembre");
break;
case 12:
print("Desembre");
break;
default:
print("Número de mes invàlid");
end switch;
endErrors Comuns i Consells
- Oblidar el
break: Si oblides la instruccióbreak, el programa continuarà executant els blocs de codi dels casos següents fins que trobi unbreako arribi al final de la sentènciaswitch. - No incloure un
default: Tot i que és opcional, és una bona pràctica incloure un casdefaultper gestionar valors inesperats. - Comparació de tipus incorrectes: Assegura't que els valors dels casos siguin del mateix tipus que l'expressió avaluada.
Conclusió
Les sentències switch case són una eina poderosa per simplificar la lògica de selecció múltiple en els teus programes. Ara que coneixes la sintaxi i el funcionament bàsic, pots començar a utilitzar-les per fer el teu codi més clar i organitzat. En el proper mòdul, explorarem les funcions i procediments en ALGOL, que et permetran modularitzar i reutilitzar el teu codi de manera eficient.
Curs de Programació en ALGOL
Mòdul 1: Introducció a ALGOL
Mòdul 2: Sintaxi i Estructura Bàsica
- Estructura del Programa ALGOL
- Variables i Tipus de Dades
- Entrada i Sortida Bàsica
- Operadors i Expressions
Mòdul 3: Estructures de Control
Mòdul 4: Funcions i Procediments
- Definició de Funcions
- Paràmetres de Funció i Valors de Retorn
- Funcions Recursives
- Procediments en ALGOL
Mòdul 5: Estructures de Dades
Mòdul 6: Temes Avançats
Mòdul 7: Aplicacions Pràctiques
- Mètodes Numèrics
- Implementació d'Algorismes
- Construcció d'un Compilador Simple
- Estudis de Cas i Projectes
