Discussione Ufficiale Programmiamo con Inforge | Esercitazione 02 in C | Livello base

Una Discussione Ufficiale punta a raccogliere tutte le informazioni su un argomento o un fatto di attualità, con costanti aggiornamenti da parte del creatore e dei partecipanti.
Visualizza allegato 50643

Programmiamo con Inforge | Presentazione

Ad oggi, sul web, si trovano moltissime guide sui vari linguaggi di programmazione e sulle loro molteplici applicazioni. Tuttavia, chi si approccia a queste risorse, non sempre riesce a mettere in pratica ciò che ha appreso. Al fine di limitare queste mancanze, nasce Programmiamo con Inforge.

In questa rubrica potrai scrivere codice per la risoluzione di alcuni problemi legati alla programmazione, mettendo in pratica quanto stai apprendendo dalla teoria oppure mostrando le tue abilità e competenze nel campo dell’informatica.


Partiamo dalle basi del C

In questa guida puoi trovare i testi per studiare e approfondire il C: I migliori libri per imparare e approfondire il C
In questa discussione puoi trovare le risposte alle domande più frequenti su come scrivere codice in C: Frequently asked questions: da dove si parte?


Esercitazione 02 in C | Livello base | [Strutture dati]

Conoscere le strutture dati e saper lavorare su di esse è un aspetto fondamentale della programmazione; con queste entità è possibile organizzare insiemi di dati e compiere una serie di operazioni su di essi.
L'esercitazione si compone di 2 esercizi nei quali ti sarà richiesto di definire una struttura dati che supporti determinate operazioni basilari (è possibile scegliere la struttura che più ti aggrada, ad esempio una lista) come l'inserimento, la ricerca e la cancellazione.

*** Testo nascosto: non può essere aggiunto alla citazione ***



Soluzioni

Per rendere l'esercitazione più interessante, non verrà pubblicata alcuna soluzione! Spetterà a te scrivere la tua versione del codice e pubblicarla in questo thread così che possa essere valutata dai moderatori e dalla community; il modo migliore per imparare!


Conclusioni

Pubblica la soluzione ottimale per risolvere gli esercizi e ricorda che puoi confrontarti con il resto della community in questo thread, chiedere aiuto o aiutare gli altri ;)
vediamo : )
 
  • Mi piace
Reazioni: Valley
Ultima modifica da un moderatore:
anche io partecipo
Messaggio unito automaticamente:

Io lo faccio in C# spero possa andare bene:
C#:
using System;
using System.IO;
using System.Collections.Generic;

namespace ConsoleApp1
{
    class Data
    {
        public string Name, Surname;
        public int Age;
        public void Insert(string Name, string Surname, int Age)
        {
            this.Name = Name;
            this.Surname = Surname;
            this.Age = Age;
        }
        public void Remove(string p1)
        {
            if (p1 == Convert.ToString(nameof(Name)))
            {
                this.Name = " ";
            }
            else if (p1 == Convert.ToString(nameof(Age)))
            {
                this.Age = 0;
            }
            else if (p1 == Convert.ToString(nameof(Surname)))
            {
                this.Surname = " ";
            }
        }
        public void Search(object p1)
        {
            if (p1 is string)
            {
                if (Convert.ToString(p1) == this.Name)
                {
                    Console.WriteLine($"Elemento {p1} trovato in Name");
                }
                else if (Convert.ToString(p1) == this.Surname)
                {
                    Console.WriteLine($"Elemento {p1} trovato in Surname");
                }
            }
            else if (p1 is int)
            {
                if (Convert.ToInt32(p1) == this.Age)
                {
                    Console.WriteLine($"Elemento {p1} trovato in Age");
                }
            }
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Data esempio=new Data();
            esempio.Insert("Nome", "Cognome", 30);
            Console.WriteLine($"Nome: {esempio.Name}\nCognome: {esempio.Surname}\nEtà: {esempio.Age}");
            esempio.Remove("Name");
            Console.WriteLine($"Nome: {esempio.Name}\nCognome: {esempio.Surname}\nEtà: {esempio.Age}");
            esempio.Search("Cognome");

        }
    }
}
 
  • Love
Reazioni: Valley
anche io partecipo
Messaggio unito automaticamente:

Io lo faccio in C# spero possa andare bene:
C#:
using System;
using System.IO;
using System.Collections.Generic;

namespace ConsoleApp1
{
    class Data
    {
        public string Name, Surname;
        public int Age;
        public void Insert(string Name, string Surname, int Age)
        {
            this.Name = Name;
            this.Surname = Surname;
            this.Age = Age;
        }
        public void Remove(string p1)
        {
            if (p1 == Convert.ToString(nameof(Name)))
            {
                this.Name = " ";
            }
            else if (p1 == Convert.ToString(nameof(Age)))
            {
                this.Age = 0;
            }
            else if (p1 == Convert.ToString(nameof(Surname)))
            {
                this.Surname = " ";
            }
        }
        public void Search(object p1)
        {
            if (p1 is string)
            {
                if (Convert.ToString(p1) == this.Name)
                {
                    Console.WriteLine($"Elemento {p1} trovato in Name");
                }
                else if (Convert.ToString(p1) == this.Surname)
                {
                    Console.WriteLine($"Elemento {p1} trovato in Surname");
                }
            }
            else if (p1 is int)
            {
                if (Convert.ToInt32(p1) == this.Age)
                {
                    Console.WriteLine($"Elemento {p1} trovato in Age");
                }
            }
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Data esempio=new Data();
            esempio.Insert("Nome", "Cognome", 30);
            Console.WriteLine($"Nome: {esempio.Name}\nCognome: {esempio.Surname}\nEtà: {esempio.Age}");
            esempio.Remove("Name");
            Console.WriteLine($"Nome: {esempio.Name}\nCognome: {esempio.Surname}\nEtà: {esempio.Age}");
            esempio.Search("Cognome");

        }
    }
}

Dovresti creare una struttura dati per contenere un insieme di "Data"; quindi puoi utilizzare ad esempio un array o un'altra struttura dati che ritieni più opportuna.
Le funzioni di inserimento e ricerca andranno fatte su quell'insieme di dati.

La tua classe Data dovresti modificarla un pò: le variabili di classe vanno bene ma dovresti implementare i metodi getter/setter che agiscono sulle variabili. Per non definire i singoli metodi puoi fare:

Codice:
    public string Name { get; set; }

questo in automatico andrà a generare un metodo string getName() e un metodo void setName(string name);. Altrimenti dovrai crearli tu.
Puoi approfondire qui https://docs.microsoft.com/en-us/do...asses-and-structs/auto-implemented-properties
Poi ti consiglio anche di dare un altro nome alla classe Data; ad esempio Person.

Inizia ad apportare questi cambiamenti se vuoi, poi pubblica quando ci sei e vediamo il resto. ;)
 
ok ho fatto cosi:
C#:
using System;
using System.IO;
using System.Collections.Generic;

namespace ConsoleApp1
{
    class Person
    {
        public string Name {get; set;}
        public string Surname {get; set;}
        public int Age {get; set;}
        public void Remove(string p1)
        {
            if (p1 == Convert.ToString(nameof(Name)))
            {
                this.Name = " ";
            }
            else if (p1 == Convert.ToString(nameof(Age)))
            {
                this.Age = 0;
            }
            else if (p1 == Convert.ToString(nameof(Surname)))
            {
                this.Surname = " ";
            }
        }
        public void Search(object p1)
        {
            if (p1 is string)
            {
                if (Convert.ToString(p1) == this.Name)
                {
                    Console.WriteLine($"Elemento {p1} trovato in Name");
                }
                else if (Convert.ToString(p1) == this.Surname)
                {
                    Console.WriteLine($"Elemento {p1} trovato in Surname");
                }
            }
            else if (p1 is int)
            {
                if (Convert.ToInt32(p1) == this.Age)
                {
                    Console.WriteLine($"Elemento {p1} trovato in Age");
                }
            }
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Person esempio=new Person();
            esempio.Age=17;
            esempio.Name="Nome";
            esempio.Surname="Cognome";
            Console.WriteLine($"Nome: {esempio.Name}\nCognome: {esempio.Surname}\nEtà: {esempio.Age}");
            esempio.Remove("Name");
            Console.WriteLine($"Nome: {esempio.Name}\nCognome: {esempio.Surname}\nEtà: {esempio.Age}");
            esempio.Search("Cognome");

        }
    }
}