Menu
Coddy logo textTech

Aggiungere e rimuovere elementi dagli insiemi

Fa parte della sezione Logica e flusso del percorso Dart di Coddy. Lezione 19 di 65.

Una volta ottenuto un Set, spesso dovrai modificarne il contenuto aggiungendo nuovi elementi o rimuovendo quelli esistenti. I metodi add() e remove() offrono modi semplici per gestire gli elementi del tuo set.

Il metodo add() tenta di inserire un nuovo elemento nell’insieme. Tuttavia, poiché gli insiemi memorizzano solo valori univoci, se provi ad aggiungere un elemento già presente, il metodo semplicemente non fa nulla: non si verifica alcun errore e l’insieme rimane invariato.

Set<String> usernames = {'alice', 'bob', 'charlie'};

usernames.add('diana');     // Agrega 'diana' correctamente
usernames.add('alice');     // No hace nada: 'alice' ya existe

print(usernames);  // {alice, bob, charlie, diana}

Il metodo remove() funziona prendendo il valore che vuoi eliminare e rimuovendolo dall'insieme. Se l'elemento non esiste nell'insieme, il metodo semplicemente non fa nulla, quindi è sicuro usarlo senza controllare prima.

usernames.remove('bob');        // Rimuove 'bob'
usernames.remove('unknown');    // Non fa nulla - elemento non trovato

print(usernames);  // {alice, charlie, diana}
challenge icon

Sfida

Facile

Crea un programma che gestisca un sistema di collaborazione del team aggiungendo nuovi membri e rimuovendo quelli inattivi dal team di un progetto. Il tuo programma deve:

  1. Leggere una stringa in input che rappresenta il nome del progetto
  2. Leggere più stringhe in input che rappresentano i membri iniziali del team (l'input terminerà quando riceverai "initial_done")
  3. Leggere più stringhe in input che rappresentano i nuovi membri da aggiungere (l'input terminerà quando riceverai "add_done")
  4. Leggere più stringhe in input che rappresentano i membri da rimuovere (l'input terminerà quando riceverai "remove_done")
  5. Creare un Set con i membri iniziali del team
  6. Usare il metodo add() per aggiungere ogni nuovo membro al team
  7. Usare il metodo remove() per rimuovere dal team ogni membro specificato
  8. Stampare i risultati della gestione del team nel formato esatto mostrato di seguito

Ad esempio, se il nome del progetto è "Mobile App Development", i membri iniziali sono "Alice", "Bob", "Charlie", i nuovi membri da aggiungere sono "Diana", "Alice", "Eve" e i membri da rimuovere sono "Bob", "Frank", il tuo programma dovrebbe produrre:

Project: Mobile App Development
Initial team: {Alice, Bob, Charlie}
Adding new members: [Diana, Alice, Eve]
After adding members: {Alice, Bob, Charlie, Diana, Eve}
Removing members: [Bob, Frank]
Final team: {Alice, Charlie, Diana, Eve}
Team size: 4
Status: Team updated successfully

Se il nome del progetto è "Website Redesign", i membri iniziali sono "John", "Sarah", i nuovi membri da aggiungere sono "Mike", "John" e i membri da rimuovere sono "Sarah", "Unknown", il tuo programma dovrebbe produrre:

Project: Website Redesign
Initial team: {John, Sarah}
Adding new members: [Mike, John]
After adding members: {John, Sarah, Mike}
Removing members: [Sarah, Unknown]
Final team: {John, Mike}
Team size: 2
Status: Team updated successfully

Se il nome del progetto è "Data Analysis", il membro iniziale è "Emma", i nuovi membri da aggiungere sono "Tom", "Lisa" e il membro da rimuovere è "Emma", il tuo programma dovrebbe produrre:

Project: Data Analysis
Initial team: {Emma}
Adding new members: [Tom, Lisa]
After adding members: {Emma, Tom, Lisa}
Removing members: [Emma]
Final team: {Tom, Lisa}
Team size: 2
Status: Team updated successfully

Il tuo programma deve dimostrare che il metodo add() non fa nulla quando si tenta di aggiungere un membro già esistente e che il metodo remove() non fa nulla quando si tenta di rimuovere un membro che non esiste. Memorizza gli elenchi di input per mostrare quali operazioni sono state tentate, poi mostra il contenuto del Set dopo ogni operazione per dimostrare la natura degli insiemi, che contengono solo elementi unici.

Provalo tu

import 'dart:io';

void main() {
  // Leggi il nome del progetto
  String? projectName = stdin.readLineSync();
  
  // Leggi i membri iniziali del team
  List<String> initialMembers = [];
  String? member;
  while ((member = stdin.readLineSync()) != "initial_done") {
    initialMembers.add(member!);
  }
  
  // Leggi i nuovi membri da aggiungere
  List<String> membersToAdd = [];
  while ((member = stdin.readLineSync()) != "add_done") {
    membersToAdd.add(member!);
  }
  
  // Leggi i membri da rimuovere
  List<String> membersToRemove = [];
  while ((member = stdin.readLineSync()) != "remove_done") {
    membersToRemove.add(member!);
  }
  
  // TODO: Scrivi il tuo codice qui sotto
  // Crea un Set con i membri iniziali del team
  // Aggiungi i nuovi membri usando il metodo add()
  // Rimuovi i membri usando il metodo remove()
  
  // Stampa i risultati nel formato richiesto
  print("Project: $projectName");
  // Aggiungi qui le restanti istruzioni di stampa
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Dart online