Vai al contenuto Link Cerca Menu (external link)
Coding e fondamenti di AI

Promemoria di rinnovo

Una catena di palestre manda ogni mese un messaggio ai soci con l’abbonamento in scadenza, per ricordare di rinnovarlo. Il messaggio però non va mandato a tutti: chi ha già rinnovato in anticipo si irrita a ricevere il sollecito, e chi ha negato il consenso ai messaggi commerciali non può essere contattato, per legge.

Dal gestionale escono tre elenchi di codici tessera: i soci in scadenza questo mese, i soci che hanno già rinnovato (anche in anticipo di mesi, quindi non tutti sono in scadenza) e i soci che non vogliono essere contattati. Il responsabile marketing vuole sapere quanti messaggi partiranno, per comprare il pacchetto di SMS giusto.

Scrivi la funzione promemoria(in_scadenza, rinnovati, non_contattare) che restituisce quanti soci vanno avvisati, usando %in% per sapere se un codice è in un elenco e ! per tenere quelli che non ci sono. La verifica chiama la tua funzione con gli elenchi di ogni caso.

Input
  • in_scadenza vettore di testi — codici tessera dei soci con l'abbonamento in scadenza questo mese
  • rinnovati vettore di testi — codici tessera di chi ha già rinnovato
  • non_contattare vettore di testi — codici tessera di chi ha negato il consenso ai messaggi
Output
messaggi numero — quanti promemoria mandare
da scrivere come funzione promemoria
Regole
  • Un socio riceve il promemoria se è in in_scadenza, non è in rinnovati e non è in non_contattare. Basta essere in uno dei due elenchi per essere escluso.
  • in_scadenza %in% rinnovati dà un TRUE per ogni socio che ha già rinnovato; ! rovescia i TRUE in FALSE e viceversa.
  • Gli elenchi rinnovati e non_contattare possono contenere anche codici che non sono in scadenza: non contano.
  • Puoi selezionare i soci da avvisare con le parentesi quadre e contarli con length(), oppure scorrere in_scadenza con un ciclo for e un contatore.
  • La funzione restituisce il numero con return().
Esempi
in_scadenzarinnovatinon_contattaremessaggi
T01T02T03T04T02T042
T10T11T12T10T11T12T990
R runtime non caricato