Oppure

Loading
Questo topic e' stato chiuso dal moderatore.
03/06/10 16:43
petercriss
salve sono nuovo di questo forum ho appena creato questo programma nel quale le istruzioni sono giuste poiche compilato in pascal e funziona solo che poi l'ho codificato in c++ ma non sapendolo bene ho fatto qualche errore di sintassi potreste corrergerli grazie....in anticipo


#include<iostream>
using namespace std; //titolo programma
struct nodo{ //dichiarazione tipo
//dichiarazione record
char nf; //dichiarazione campi
int privilegio;
nodo*next;
};
nodo*p;
nodo*q;
nodo*coda;
nodo*testa; //dichiarazione variabili

void creazione_coda(nodo*&testa1 ,nodo*&coda1);

char risp; //dichiarazione variabile locale
//inizio procedura creazione
cout<<"--------------------------------------------------------------------------------------------------"<<endl;
cout<<"TESTO:desrcivere dettagliatagliatamente le strutture dati necessarie per la gestione delle code di priorita "<<endl;
cout<<("progettare l algoritmo per l inserimento di un processo di priorita p all interno della lista ";)<<endl;
cout<<("-priorita piu bassa 6'";);<<endl
cout<<("-priorita piu alta 0'";);<<endl
cout<<("-------------------------------------------------------------------------------------------------";)<<endl;
testa1=null; //imposto testa1 a nil
coda1=null; //imposto coda1 a nil
nodo*nuovo;
nuovo=new nodo; //creazione nuovo elemento
cout<<("inserisci nome processo che andra ad essere eseguito";)<<endl;
cin>>nuovo->inf; //lettura nome programma
cout<<("inserisci valore privilegio(il valore del priviliegio impostera in quale momento il processo verra eseguito)";)<<endl;
cin>>(p->privilegio); //lettura privilegio
if (p->privilegio=0) or (p->privilegio=1) or (p->privilegio=2) or (p->privilegio=3) or (p->privilegio=4) or (p->privilegio=6)or (p->privilegio=5) { //condizione se il privilegio è 1 o 0

testa1=p; //aggiornamento puntatori
coda1=testa1;
}
else //altrimenti
cout<<("...oops!...valore privilegio ERRATO!(va inserito un privileggio da 0 a 6)";)<<endl; //stampa valore del privilegio errato
do{ //inizio ciclo postcondizionato
cout<<("vuoi inserire altri processi nella coda?immettere (s)per inserire(n)per bloccare gli inserimenti";)<<endl;
cin>>risp; //lettura variabile locale risp
if risp='s' then { //condizione se la risposta è s

nuovo=new nodo; //creazione nuovo elemento
cout<<("inserisci nome processo che andra ad essere eseguito";)<<endl;
cin>>(p->nf); //lettura nome programma
cout<<("inserisci valore privilegio (il valore del priviliegio impostera in quale momento il processo verra eseguito)";)<<endl;
cin>>(p->privilegio); //lettura privilegio
if (p->privilegio=0) or (p->privilegio=1) or (p->privilegio=2) or (p->privilegio=3) or (p->privilegio=4) or (p->privilegio=6)or (p->privilegio=5){ //condizione se il privilegio è 1 o 0

coda1->next=p; //aggiornamento puntatori
coda1=p;
}
else //altrimenti
cou<<("vuoi inserire altri processi nella coda?immettere (s)per inserire(n)per bloccare gli inserimenti";)<<endl; //stampa valore del privilegio errato
}while (risp=='n'); //fino a che la risposta non è negativa
}
procedure stampa(nodo*&testa1);
{ //inizio procedura stampa1
q=testa1;
while(q!=nulll)do //condizione ciclo precondizionato
{ //inizio ciclo precondizionato
if q->privilegio=0 { //condizione se privilegio uguale a 1
cout>>(q->nf); //stampa nome programma
q=q->next; //scorrimento lista
}
}
} //fine procedura stampa
procedure stampa1(nodo*&testa1);
{ //inizio procedura stampa1
q=testa1;
while(q!=nulll)do //condizione ciclo precondizionato
{ //inizio ciclo precondizionato
if q->privilegio=1 { //condizione se privilegio uguale a 1
cout>>(q->nf); //stampa nome programma
q=q->next; //scorrimento lista
}
}
}
procedure stampa2(nodo*&testa1);
{ //inizio procedura stampa1
q=testa1;
while(q!=nulll)do //condizione ciclo precondizionato
{ //inizio ciclo precondizionato
if q->privilegio=2 { //condizione se privilegio uguale a 1
cout>>(q->nf); //stampa nome programma
q=q->next; //scorrimento lista
}
}
}
procedure stampa3(nodo*&testa1);
{ //inizio procedura stampa1
q=testa1;
while(q!=nulll)do //condizione ciclo precondizionato
{ //inizio ciclo precondizionato
if q->privilegio=3 { //condizione se privilegio uguale a 1
cout>>(q->nf); //stampa nome programma
q=q->next; //scorrimento lista
}
}
}
procedure stampa4(nodo*&testa1);
{ //inizio procedura stampa1
q=testa1;
while(q!=nulll)do //condizione ciclo precondizionato
{ //inizio ciclo precondizionato
if q->privilegio=4 { //condizione se privilegio uguale a 1
cout>>(q->nf); //stampa nome programma
q=q->next; //scorrimento lista
}
}
}
procedure stampa5(nodo*&testa1);
{ //inizio procedura stampa1
q=testa1;
while(q!=nulll)do //condizione ciclo precondizionato
{ //inizio ciclo precondizionato
if q->privilegio=5 { //condizione se privilegio uguale a 1
cout>>(q->nf); //stampa nome programma
q=q->next; //scorrimento lista
}
}
}
procedure stampa6(nodo*&testa1);
{ //inizio procedura stampa1
q=testa1;
while(q!=nulll)do //condizione ciclo precondizionato
{ //inizio ciclo precondizionato
if q->privilegio=6 { //condizione se privilegio uguale a 1
cout>>(q->nf); //stampa nome programma
q=q->next; //scorrimento lista
}
}
}
//fine procedura stampa1
int main()
{ //inizio programma principale
creazione_coda(testa,coda); //chiamata procedura creazione_lista
cout>>("Stampa privilegio con 0";)<<endl;
stampa(testa); //chiamata procedura stampa1
cout>>("Stampa privilegio con 1";)<<endl;
stampa1(testa);
cout>>("Stampa privilegio con 2";)<<endl;
stampa2(testa);
cout>>("Stampa privilegio con 3";)<<endl;
stampa3(testa);
cout>>("Stampa privilegio con 4";)<<endl;
stampa4(testa);
cout>>("Stampa privilegio con 5";)<<endl;
stampa5(testa);
cout>>("Stampa privilegio con 6";)<<endl;
stampa6(testa);
system("pause";);
return 0;
}
//chiamata procedura stampa
aaa
03/06/10 16:45
nessuno
Scusa ... ma neanche ti prendi la briga di elencarli questi errori?
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
03/06/10 16:58
petercriss
giusto scusa uno degli errori è sulla linea 17 nell cout


expected constructor, destructor, or type conversion before '<<' token


elenco il primo poiche il c trovando un errore da tutto il programma sbagliato nelle istruzioni successive
aaa
03/06/10 17:00
nessuno
Quella linea non sta all'interno di nessuna funzione.
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
03/06/10 17:02
petercriss
scs ma non è all'interno del void creazione_coda????
aaa
03/06/10 17:11
nessuno
No. Quella è una dichiarazione di firma di quella funzione. Dovrebbe essere

void creazione_coda(nodo*&testa1 ,nodo*&coda1)
{

e non

void creazione_coda(nodo*&testa1 ,nodo*&coda1);
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
03/06/10 17:18
petercriss
a giusto pero come immaginavo ora si susseguono infinita di errori sulla stessa linea ora da il seguente errore


no match for 'operator<' in 'std::operator<< [with _Traits = std::char_traits<char>](((std::basic_ostream<char, std::char_traits<char> >&;)(&std::cout)), ((const char*)"------------------------------------------------------------------------------------------------";)) < std::endl'



scusa se ti sto facendo perdere tempo ma purtroppo sono disperato per fare questo esercizio
aaa
03/06/10 17:22
HeDo

chiudo per nuova politica del forum: il codice non è racchiuso tra tag code, richiesta generica senza capo ne coda e non ha letto il regolamento in merito a cosa si può e non si più chiedere in un forum.
aaa