Forum by laureateci.it
[ Home | REGOLE FORUM | Tutti i blog | Profilo | Registrati | CHAT | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Sondaggi Attivi | Utenti | Download Informatica | Download ICD | Download TPS | Download Magistrale | Download Specialistica | Giochi | Cerca nel web | cerca | faq | RSS ]
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 INFORMATICA - Primo Anno
 Programmazione
 Esercizio in pascal
 Nuova Discussione  Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
I seguenti utenti stanno leggendo questo Forum Qui c'è:
Autore Discussione Precedente Discussione Discussione Successiva  

silent
Utente assiduo

tartaruga


Regione: Puglia
Prov.: Bari
Città: Andria


Inserito il - 25/06/2004 : 17:48:53  Mostra Profilo  Visita l'Homepage di silent Invia a silent un Messaggio Privato  Rispondi Quotando
Qualcuno potrebbe dare un'occhiata a questo programma:

program rubrica;
uses wincrt;
const dim = 100;
type persona = record
cognome : string[20];
nome : string[20];
telefono : string[12];
end;
var a:file of persona;
p:array [1..dim] of persona;
i:integer;
procedure inizializza_rubrica;
var n:integer;
begin
clrscr;
repeat
write ('Quanti nominativi desideri inserire ? ');
readln(n);
until n >= 1;

rewrite(a);
i:=1;
repeat
write('Inserisci cognome : ');
readln(p[i].cognome);
write('Inserisci nome : ');
readln(p[i].nome);
write('Inserisci numero di telefono : ');
readln(p[i].telefono);

write(a,p[i]);

i:=i+1;
until i > n;
close(a);
end;

procedure ordina_rubrica;
var aux:string;
n:integer;
scambio:boolean;
begin
clrscr;
reset(a);
repeat
scambio:=false;
for i:=1 to n-1 do
if p[i].cognome < p[i+1].cognome then
begin
aux:=p[i].cognome;
p[i].cognome:=p[i+1].cognome;
p[i+1].cognome:=aux;
scambio:=true;
end;
until scambio = false;
close(a);
end;

procedure visualizza_rubrica;
begin
clrscr;
reset(a);
writeln;
writeln('RUBRICA');
while not (eof(a)) do
begin
read(a,p[i]);
write(p[i].cognome,' ',p[i].nome,' ',p[i].telefono);
end;
close(a);
writeln;
write('premere Invio per continuare...');
readln;
end;

begin
assign(a,'Rubrica.doc');
inizializza_rubrica;
ordina_rubrica;
visualizza_rubrica;
end.

è un file per la gestione di una rubrica,ma ci deve essere un errore nella procedure ordina_rubrica.Mi potreste dire qual è??

Rivoluzione? Rivoluzione? Per favore, non parlarmi tu di rivoluzione! Io so benissimo cosa sono e come cominciano: c'e qualcuno che sa leggere i libri che va da quelli che non sanno leggere i libri, che poi sono i poveracci, e gli dice: << Oh, oh, e' venuto il momento di cambiare tutto >> [...] Io so quello che dico, ci son cresciuto in mezzo, alle rivoluzioni. Quelli che leggono i libri vanno da quelli che non leggono i libri, i poveracci, e gli dicono: << Qui ci vuole un cambiamento! >> e la povera gente fa il cambiamento. E poi i piu' furbi di quelli che leggono i libri si siedono intorno a un tavolo, e parlano, parlano, e mangiano. Parlano e mangiano! E intanto che fine ha fatto la povera gente? Tutti morti! Ecco la tua rivoluzione! Quindi per favore, non parlarmi piu' di rivoluzione...E porca troia, lo sai che succede dopo? Niente...tutto torna come prima". Juan Miranda - Giù la testa -

badpenguin
Nuovo Utente



Regione: Puglia
Prov.: Bari


Inserito il - 25/06/2004 : 18:21:25  Mostra Profilo  Visita l'Homepage di badpenguin Invia a badpenguin un Messaggio Privato  Rispondi Quotando
procedure ordina_rubrica;
var aux:string;
n:integer;
scambio:boolean;
begin
clrscr;
reset(a);
repeat
scambio:=false;
for i:=1 to n-1 do
if p[i].cognome < p[i+1].cognome then
begin
aux:=p[i].cognome;
p[i].cognome:=p[i+1].cognome;
p[i+1].cognome:=aux;
scambio:=true;
end;
until scambio = false;
close(a);
end;

La prima cosa che mi salta all'occhio è che durante l'ordinamento scambi soltanto il campo cognome invece dovresti anche scambiare i restanti campi. (nome,telefono)
Secondo, la variabile n non viene inizializzata, la definisci soltanto ma non gli assegni un valore.
Infine ti consiglio di utilizzare le procedure in maniera piu "parametrica" evitando di usare variabili globali in quel modo.
Ciao


Software is like sex: it's better when it's free. (Linus Torvalds)
Torna all'inizio della Pagina

silent
Utente assiduo

tartaruga


Regione: Puglia
Prov.: Bari
Città: Andria


Inserito il - 26/06/2004 : 13:27:58  Mostra Profilo  Visita l'Homepage di silent Invia a silent un Messaggio Privato  Rispondi Quotando
ma io voglio ordinare la rubrica per cognome,cosa devo modificare ??

Rivoluzione? Rivoluzione? Per favore, non parlarmi tu di rivoluzione! Io so benissimo cosa sono e come cominciano: c'e qualcuno che sa leggere i libri che va da quelli che non sanno leggere i libri, che poi sono i poveracci, e gli dice: << Oh, oh, e' venuto il momento di cambiare tutto >> [...] Io so quello che dico, ci son cresciuto in mezzo, alle rivoluzioni. Quelli che leggono i libri vanno da quelli che non leggono i libri, i poveracci, e gli dicono: << Qui ci vuole un cambiamento! >> e la povera gente fa il cambiamento. E poi i piu' furbi di quelli che leggono i libri si siedono intorno a un tavolo, e parlano, parlano, e mangiano. Parlano e mangiano! E intanto che fine ha fatto la povera gente? Tutti morti! Ecco la tua rivoluzione! Quindi per favore, non parlarmi piu' di rivoluzione...E porca troia, lo sai che succede dopo? Niente...tutto torna come prima". Juan Miranda - Giù la testa -
Torna all'inizio della Pagina

badpenguin
Nuovo Utente



Regione: Puglia
Prov.: Bari


Inserito il - 27/06/2004 : 14:08:27  Mostra Profilo  Visita l'Homepage di badpenguin Invia a badpenguin un Messaggio Privato  Rispondi Quotando
Quando effettui lo scambio devi scambiare anche i restanti campi e non solo il campo cognome cioè :

if p[i+1].cognome < p[i].cognome then
begin
aux:=p[i].cognome;
p[i].cognome:=p[i+1].cognome;
p[i+1].cognome:=aux;
aux:=p[i].nome;
p[i].nome:=p[i+1].nome;
p[i+1].nome:=aux;
aux:=p[i].telefono;
p[i].telefono:=p[i+1].telefono;
p[i+1].telefono:=aux;
end;


Software is like sex: it's better when it's free. (Linus Torvalds)

Modificato da - badpenguin in data
Torna all'inizio della Pagina

Nicola
Nuovo Utente


Regione: Puglia
Prov.: Bari
Città: Corato


Inserito il - 28/06/2004 : 11:15:43  Mostra Profilo  Visita l'Homepage di Nicola Invia a Nicola un Messaggio Privato  Rispondi Quotando
Raga vi prego risolvetemi almeno un punto di questi quesiti:
Problema: Implementare uno stack utilizzando un array di 5 elementi interi; in particolare realizzare le seguenti procedure/funzioni:
- Inserimento(push) e estrazione(pop)/visualizzazione di elementi dello stack;
- funzionalità di stack pieno, stack vuoto;
-somma degli elementi dell'array, utilizzando la funzione pop;
-creazione di un array di elementi pari e di un array di elementi dispari, utilizzando push e pop.

Almeno i primi due punti, helpppppppppppp meeeeeeeeeeeee!!!!! non lo so fareeeeeeeeeeee!!!!!!

Di Paola Nicola
Torna all'inizio della Pagina

Antonio
Utente medio



Regione: Puglia
Prov.: Bari


Inserito il - 28/06/2004 : 19:41:31  Mostra Profilo  Visita l'Homepage di Antonio Invia a Antonio un Messaggio Privato  Rispondi Quotando
Citazione:
Messaggio inserito da Nicola

Raga vi prego risolvetemi almeno un punto di questi quesiti:
Problema: Implementare uno stack utilizzando un array di 5 elementi interi; in particolare realizzare le seguenti procedure/funzioni:
- Inserimento(push) e estrazione(pop)/visualizzazione di elementi dello stack;
- funzionalità di stack pieno, stack vuoto;
-somma degli elementi dell'array, utilizzando la funzione pop;
-creazione di un array di elementi pari e di un array di elementi dispari, utilizzando push e pop.

Almeno i primi due punti, helpppppppppppp meeeeeeeeeeeee!!!!! non lo so fareeeeeeeeeeee!!!!!!




Ecco quello che chiedevi... Non ricordo tanto bene il pascal ma dovrebbe andar bene; solo non ho capito l'ultimo punto: gli elementi sono in uno stack e se ne devono creare altri due, oppure davvero usare dei vettori??


Allegato: stack.txt
2,21 KB


Modificato da - Antonio in data
Torna all'inizio della Pagina

silent
Utente assiduo

tartaruga


Regione: Puglia
Prov.: Bari
Città: Andria


Inserito il - 29/06/2004 : 20:26:53  Mostra Profilo  Visita l'Homepage di silent Invia a silent un Messaggio Privato  Rispondi Quotando
grazie badpenguin

Rivoluzione? Rivoluzione? Per favore, non parlarmi tu di rivoluzione! Io so benissimo cosa sono e come cominciano: c'e qualcuno che sa leggere i libri che va da quelli che non sanno leggere i libri, che poi sono i poveracci, e gli dice: << Oh, oh, e' venuto il momento di cambiare tutto >> [...] Io so quello che dico, ci son cresciuto in mezzo, alle rivoluzioni. Quelli che leggono i libri vanno da quelli che non leggono i libri, i poveracci, e gli dicono: << Qui ci vuole un cambiamento! >> e la povera gente fa il cambiamento. E poi i piu' furbi di quelli che leggono i libri si siedono intorno a un tavolo, e parlano, parlano, e mangiano. Parlano e mangiano! E intanto che fine ha fatto la povera gente? Tutti morti! Ecco la tua rivoluzione! Quindi per favore, non parlarmi piu' di rivoluzione...E porca troia, lo sai che succede dopo? Niente...tutto torna come prima". Juan Miranda - Giù la testa -
Torna all'inizio della Pagina

Nicola
Nuovo Utente


Regione: Puglia
Prov.: Bari
Città: Corato


Inserito il - 30/06/2004 : 11:30:14  Mostra Profilo  Visita l'Homepage di Nicola Invia a Nicola un Messaggio Privato  Rispondi Quotando
Ciao raga.........Qualcuno mi sa dire cosa ha messo Covino per il corso A come traccia di laboratorio di programmazione il 29/06/2004?
grazie

Di Paola Nicola
Torna all'inizio della Pagina

Nicola
Nuovo Utente


Regione: Puglia
Prov.: Bari
Città: Corato


Inserito il - 08/07/2004 : 17:14:30  Mostra Profilo  Visita l'Homepage di Nicola Invia a Nicola un Messaggio Privato  Rispondi Quotando
Ciao raga, me ne manca solo uno. La traccia del 28 giugno di programmazione. fa così:
Problema: implementare una coda utilizzando un array di 5 elementi interi; in particolare realizzare le seguenti funzioni/procedure:

1. inserimento in fondo alla coda (INCODA) ed estrazione dal fondo della coda (OUTCODA), con visualizzazione dell’elemento estratto;
2. funzionalità di “coda piena” e “coda vuota”;
3. somma degli elementi della coda, utilizzando la funzione OUTCODA;
4. creazione di un array di elementi pari e di un array di elementi dispari, utilizzando INCODA e OUTCODA.

Qualcuno la sa fare? magari.....help meeeeeee

Di Paola Nicola
Torna all'inizio della Pagina

Antonio
Utente medio



Regione: Puglia
Prov.: Bari


Inserito il - 08/07/2004 : 20:42:42  Mostra Profilo  Visita l'Homepage di Antonio Invia a Antonio un Messaggio Privato  Rispondi Quotando
...molto simile allo stack:


Allegato: queue.txt
2,27 KB


Modificato da - Antonio in data
Torna all'inizio della Pagina

Nicola
Nuovo Utente


Regione: Puglia
Prov.: Bari
Città: Corato


Inserito il - 10/07/2004 : 09:52:41  Mostra Profilo  Visita l'Homepage di Nicola Invia a Nicola un Messaggio Privato  Rispondi Quotando
Grazie Antoniooooooo..... Mi hai aiutato davvero tanto!!!!
Grazieeeeeeeeeeee

Di Paola Nicola
Torna all'inizio della Pagina

Nicola
Nuovo Utente


Regione: Puglia
Prov.: Bari
Città: Corato


Inserito il - 13/07/2004 : 12:22:36  Mostra Profilo  Visita l'Homepage di Nicola Invia a Nicola un Messaggio Privato  Rispondi Quotando
const
max = 5; (* massima dimensione *)
empty_el = 9999;


type
(* dichiarazione della struttura CODA *)
queue = RECORD
elements: array[1..max] of integer;
inQueue: 1..max; (* punta al primo elemento della coda *)
END (* end record *)




(*
Funzioni/Procedure di base:

create(queue);
full(queue) --> boolean;
empty(queue) --> boolean;
in(queue, integer);
out(stack) --> integer;

*)



(* CREA CODA *****************************************)
(* procedura di inizializzazione *)
procedure create(Q: queue);
begin
Q.inQueue := 0; (* stato di coda vuota *)
end;




(* CODA PIENA *****************************************)
function full(Q: queue): boolean;
begin
full := (Q.inQueue=max);
end;




(* STACK VUOTO *****************************************)
function empty(Q: queue): boolean;
begin
empty := (Q.inQueue=0);

end;




(* INSERIMENTO NELLA CODA *****************************)
(* restituisce TRUE se l'elemento è stato inserito *)
function in(var Q: queue; x: integer): boolean;
begin
if(not full(Q)) then begin
Q.inQueue := Q.inQueu+1; (* un elemento in più *)
Q.elements[Q.inQueue] := x;
in := true;
end
else in := false;
end;




(* USCITA DALLA CODA ******************************)
function out(var Q: queue): integer;
begin
if(not empty(Q)) then begin
out := Q.elements[1];

(* tutti gli elementi vengono "sciftati" a sinistra di 1 *)
for i=2 to Q.inQueue do
Q.elements[i-1] := Q.elements[i];

Q.inQueue := Q.inQueu-1;
end
else out := empty_el;
end;








(* FUNZIONE: somma degli elementi della coda; *)

function sum(Q: queue): integer;
var tot: integer;

begin
tot := 0;
while(not empty(Q))
tot := tot + out(Q);

sum := tot;
end;

GRAZIE AD ANTONIO ORA HO QUESTO PROGRAMMA CHE MI SERVIVA PER LA PREPARAZIONE ALL'ESAME. L'HO PROVATO E NON CI SONO ERRORI.....IL PROBLEMA è CHE QUANDO FACCIO IL MAIN MI DA DEGLI ERRORI MA NON RIESCO A CAPIRE COSA SBAGLIO.......... VI PREGO SE QUALCUNO PUò AIUTARMI.........COME VIENE IL MAIN? HO L'ESAME DOMANI E HO BISOGNO DI CAPIRE QUESTA COSA ENTRO OGGI........VI PREGO AIUTATEMI, QUANDO LO FACCIO IO SBAGLIO QUALCOSA..........AIUTOOOOOOOOOOOOOOO

Di Paola Nicola
Torna all'inizio della Pagina

Nicola
Nuovo Utente


Regione: Puglia
Prov.: Bari
Città: Corato


Inserito il - 13/07/2004 : 12:28:55  Mostra Profilo  Visita l'Homepage di Nicola Invia a Nicola un Messaggio Privato  Rispondi Quotando
AIUTOOOOOOOOOOOOOOOOOOOOOO, HO BISOGNO DI QUEL MAINNNNNNNNNNNNNNN!!!!!!!!!!! QUANDO NEL MAIN RICHIAMO PROCEDURE E FUNZIONI EVIDENTEMENTE SBAGLIO!!!! COME FACCIO, UFFA!!! COME RICHIAMO NEL MAIN PROCEDURE E FUNZIONI!!!!!!???????

Di Paola Nicola
Torna all'inizio della Pagina

Antonio
Utente medio



Regione: Puglia
Prov.: Bari


Inserito il - 13/07/2004 : 18:01:28  Mostra Profilo  Visita l'Homepage di Antonio Invia a Antonio un Messaggio Privato  Rispondi Quotando
Vuoi che lo vado a fare io l'esame domani?? ..scherzo.. :-)


Allegato: queue_completa.txt
2,92 KB


Modificato da - Antonio in data
Torna all'inizio della Pagina

Nicola
Nuovo Utente


Regione: Puglia
Prov.: Bari
Città: Corato


Inserito il - 13/07/2004 : 18:18:23  Mostra Profilo  Visita l'Homepage di Nicola Invia a Nicola un Messaggio Privato  Rispondi Quotando
Mamma mia Antonio, non so come ringraziarti....se veramente ci sarà una cosa del genere all'esame, e così dovrebbe essere, lo passerò solo grazie a te!!!! non so davvero come ringraziarti..........sei stato davvero grande!!!! tantissime grazie, grazieeeeeeeeeeeeee.
se ti dovesse servire qualcosa non devi fare baltro che chiedere.....
grazieeeeeeeeeee

Di Paola Nicola
Torna all'inizio della Pagina

Antonio
Utente medio



Regione: Puglia
Prov.: Bari


Inserito il - 13/07/2004 : 18:29:29  Mostra Profilo  Visita l'Homepage di Antonio Invia a Antonio un Messaggio Privato  Rispondi Quotando
Citazione:
Messaggio inserito da Nicola
se ti dovesse servire qualcosa non devi fare baltro che chiedere.....



..mi servirebbe una cosuccia: 'na femn!

Torna all'inizio della Pagina

Antonio
Utente medio



Regione: Puglia
Prov.: Bari


Inserito il - 13/07/2004 : 18:31:27  Mostra Profilo  Visita l'Homepage di Antonio Invia a Antonio un Messaggio Privato  Rispondi Quotando
P.S.

Due cose:
1. di che corso sei (mi sembra assurdo chiedere, già a programmazione, di usare strutture di dati astratte)

2. Facci sapere come va!... .


Modificato da - Antonio in data
Torna all'inizio della Pagina

Nicola
Nuovo Utente


Regione: Puglia
Prov.: Bari
Città: Corato


Inserito il - 14/07/2004 : 17:45:31  Mostra Profilo  Visita l'Homepage di Nicola Invia a Nicola un Messaggio Privato  Rispondi Quotando
Passatooooooooooooooo!!!!!E il laboratorio è fatto! Alla fine, dopo tante storie, non ha messo ne stack ne coda ma x fortuna è andato tutto ok!!!
cmq sono del corso A e vorrei naturalmente aggiungere un ringraziamento particolare ad antonio!!!!

Di Paola Nicola
Torna all'inizio della Pagina

Frisketta
Utente medio

lara croft


Regione: Puglia
Prov.: Foggia
Città: provincia


Inserito il - 24/08/2004 : 11:40:18  Mostra Profilo  Visita l'Homepage di Frisketta Invia a Frisketta un Messaggio Privato  Rispondi Quotando
Qualcuno ha le tracce dell'appello di programmazione dei corsi B e C in data 15/07/04? AIUTATEMI!!!!

Frisketta
Torna all'inizio della Pagina
  Discussione Precedente Discussione Discussione Successiva  
 Nuova Discussione  Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
Vai a:
Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,28 secondi.

TargatoNA.it | SuperDeejay.Net | Antidoto.org | Brutto.it | Equiweb.it | Snitz Forum 2000