Newsgroup: it.comp.lang.c++
Titolo: ho bisogno del vostro aiuto







Salve,
sono iscritta all'università di informatica di Bari e a 
febbraio ho la
prova di laboratorio di c++. Sono fiduciosa in vostro aiuto... 
Che diavolo
sono le "liste" le "pile" le  
"code" e gli "alberi"? Cosa sono i membri
privati e i 
membri pubblici?  Sul testo didattico non ho trovato niente a
riguardo, 
vi prego...spiegatemelo. Per finire vi allego la traccia di un
esame passato, 
se mi fate sto programmino mi fate un gran favore, so che per
voi sarà 
una passeggiata, mentre per me non lo e'!!! Se potete postate le risposte 
nel
mio mailbox, non frequento il gruppo. Ciao e grazie a tutti quelli che 
mi
aiuteranno. 


e-mail: 
use...@pangeanet.it
 


PROVA DI LABORATORIO DEL 7-10-97


 


Definire in c++ la seguente costante 


lung_max
 il cui valore è pari a 5. 

Definire in c++ la classe 
Pila
. 


Tale classe dovra' contenere i seguenti membri privati: 


info
 vettore di 
lung_max
 interi 


estremo
 di tipo intero 

ed i seguenti membri 
pubblic
i: 


stampa()
 stampa il contenuto della pila 


inserisci( elemento )
 inserisce nella pila l'intero 
elemento




estrai()
 estrae un elemento dalla pila 

Il costruttore della 
Pila
 dovrà porre il campo 
estremo
 
uguale a 
–1
, e stampare il messaggio:


"Creata pila"


Il distruttore della 
Pila
 dovrà stampare il messaggio:


"Distrutta pila"


La funzione 
inserisci( elemento )
 dovrà:




Verificare che la pila non sia piena (ovvero verificare che 
estremo 
    
sia minore di 
lung_max –1
)


Nel caso in cui la pila sia piena dovrà stampare il 
    messaggio:










"Pila piena"


3. Altrimenti dovrà incrementare il contenuto della 
variabile 
estremo
 e porre l’elemento del vettore 
info
 di 
indice 
estremo
 uguale ad 
elemento




La funzione 
estrai()
 dovrà:






Verificare che ci siano elementi nella pila (ovvero verificare che il 
    contenuto della variabile 
estremo
 sia diverso da 
    
–1
)






Nel caso in cui la pila sia vuota dovrà stampare il 
    messaggio:




"Impossibile estrarre dalla Pila"


3. Altrimenti dovrà ritornare l’elemento del 
vettore 
info
 di indice 
estremo 
e quindi decrementare il contenuto 
della variabile 
estremo 




La funzione 
stampa()
 dovrà stampare su video il 
contenuto del vettore 
info




Scrivere una procedura 
main
 per testare il programma, in 
cui






Si creano tre istanze della 
pila_a
,
pila_b
 e 
pila_c






Gli elementi della 
pila_a
 dovranno essere acquisiti da 
    tastiera






Si stampa il contenuto della 
pila_a






Le pile 
pila_b
 e 
pila_c
 dovranno essere riempite 
    acquisendo gli elementi alternativamente dalla pila 
pila_a






Si stampa il contenuto delle pile 
pila_b 
e 
pila_c






 


ESEMPIO
: se 
pila_a
 contiene i numeri 12,43,22,10,77 
(12 al top della pila) allora 
pila_b
 conterrà 77,22,12 (77 al top 
della pila) e 
pila_c
 conterrà 10 e 43 (10 al top della 
pila).



Ciao sono Mirko, ecco il programma:
#include <iostream.h>
#define lung_max 5
class Pila{
  int info[lung_max];
  int estremo;
public:
  Pila();
  ~Pila();
  void stampa();
  void inserisci(int elemento);
  int estrai();
};
Pila::Pila()
{
  estremo=-1;
  cout << "Creata Pila";
}
Pila::~Pila()
{
  cout << "Distrutta Pila";
}
void Pila::inserisci(int elemento)
{
  if ( estremo < lung_max-1){
   estremo++;
   info[estremo]=elemento;
  }
  else
   cout << "Pila Piena";
}
int Pila::estrai()
{
  if ( estremo != -1 ){
   return info[estremo--];
  }
  else
   cout << "Impossibile estrarre dalla pila";
}
void Pila::stampa()
{
  for( int i=0 ; i<=estremo ; i++ )
   cout << info[i];
}
main()
{
  Pila pila_a, pila_b, pila_c;
  int elemento;
  cout << "Inserire 5 valori da inserire nella pila";
  for( int i=0 ; i<5 ; i++ ){
   cin >> elemento;
   pila_a.inserisci( elemento );
  }
  for( i=0 ; i<5 ; i++ ){
   if (i%2 == 0)
    pila_b.inserisci( pila_a.estrai() );
   else
    pila_c.inserisci( pila_a.estrai() );
  }
  pila_b.stampa();
  pila_c.stampa();
}
L'ho provato e funziona perfettamente. Spero possa esserti di aiuto. Ciao!!
mi...@lert.it

voi sar=E0 una passeggiata, mentre per me non lo e'!!! Se potete postate =
Un saluto a tutti i managers di domani, quelli che porteranno
avanti il paese.

 aiuteranno.
Uhm. Vuoi dire che nella biblioteca del *dipartimento di Informatica* non esiste
un testo sulle strutture dati?!? Sinceramente, mi sembra pochissimo probabile.
Inoltre, non mi pare propriamente un'ideona farsi fare un programma da qualcun altro -
che accidenti fai informatica a fare, se no ? Vabbe' che in Italia chiunque fa l'informatico
e dopo HelloWorld si considera pure esperto, ma cosi' mi pare che si esageri.
Saluti,
    CS
--
Cristiano Sadun - Software Engineering and Consulting
***********Remove NOSPAM from address to reply***********
*********************************************************
"God is Real - unless declared Integer"


    Saluti
Andrea Perazzolo
han...@bandit.sci.univr.it

privati e i membri pubblici?  
.....................................
Siamo messi male !!!
O l'Università di Informatica di Bari ha sbagliato denominazione o la
tua frequenza alle lezioni è stata praticamente nulla.
Posso darti un consiglio spassionato ?
Cambia Università (o cambia corso di laurea).
Ciao e auguri (molti !!!)
Dario

Salve,
        sono di nuovo io e scrivo per rispondere un po' a questi commenti
inadeguati che sono arrivati sul ng. Sicuramente e' stata colpa mia in
quanto non ho precisato diverse cose, ma non volevo essere OT e quindi sono
stata sintetica. Ma ora e' giunto il momento dei chiarimenti. Sono iscritta
all'universita' di Bari ma NON sto a Bari e quindi non frequento. NON c'e'
l'obbligo di frequenza. L'esame si chiama "linguaggi di programmazione" e
tratta almeno una decina di linguaggi, poi c'è la prova di laboratorio di
C++. Il libro di testo non spiega come si programma nei vari linguaggi e
tanto meno le varie strutture dati dei linguaggi, parla più in generale
delle varie differenze, del progresso che si e' avuto col passare da un
linguaggio ad un altro, parla del perche' sono nati certi linguaggi ecc. Per
quanto riguarda la prova di laboratorio ho solo delle dispense dove c'è il
minimo necessario per iniziare a programmare in  C e C++, ci sono i vari
comandi e qualche esempio di applicazione. Logicamente per chi frequenta
basta andare in facolta' e ricercare tutto cio' che serve in biblioteca e
quindi trovare una risposta alle domande "ma cosa e' una pila o un
albero!?!". Poi sempre nella facolta' sono REPERIBILI le tracce gia' SVOLTE
degli appelli passati,non solo di "linguaggi di programmazione" per quasi
tutti gli esami. Quindi io ho semplicemente richiesto al ng qualcosa che non
e' assolutamente controproducente nei miei confronti. Forse non siete
universitari e per questo vi e' sembrata una richiesta tanto strana. Credo
sia piu' logico (e chi programma deve avere molta logica :-) )postare una
richiesta simile sul ng che farsi circa cento chilometri.
        Saluti a tutti e un ringraziamento a Mirko Mignini e Andrea
Perazzolo

richiesta simile sul ng che farsi circa cento chilometri.
Il problema non è nella liceità della richiesta quanto nella sua
forma.
La richiesta di spiegazioni è corretta, purtroppo non è possibile
spiegare concetti così complessi in un NG.
Richiedere la soluzione di un problema potrebbe forse servirti a
passare l'esame ma non certo ad imparare il linguaggio (o la
programmazione in generale).
Ti dico questo perchè, come responsabile di un centro sviluppo
software, ho quotidiani contatti con aspiranti programmatori, o
comunque "softwaristi", e debbo riscontrare che tutti hanno una
infarinatura di diversi linguaggi ma praticamente nessuno conosce un
linguaggio con sufficiente profondità da poter essere messo "al
lavoro" in breve tempo.
Sono costretto a deludere praticamente tutti questi aspiranti e ad
assumere solo quelli che, con molta buona volontà, si sono adoperati
per imparare "in proprio" un linguaggio che abbia oggi una qualche
utilità (C++, Java, HTML, Visual Basic [in ordine di importanza -
almeno per me]).
Purtroppo oggi c'è sovrabbondanza di Laureati in Informatica e la
concorrenza è quindi tremenda.
Per non annoiarti più a lungo ti propongo di consultare le pagine che
troverai all'URL:
http://www.bo.cnr.it/italiano/CorsoC/CorsoC.htm
contengono un corso C++ che spiega ovviamente cosa sono i membri
pubblici e privati ed anche le "liste, pile, code ecc."
Spero ti possa essere utile.
Ciao,
Dario

...
