| Autore |
Discussione  |
|
|
silent
Utente assiduo
  

Regione: Puglia
Prov.: Bari
Città: Andria
|
Inserito il - 25/06/2004 : 17:48:53
|
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
|
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) |
 |
|
|
silent
Utente assiduo
  

Regione: Puglia
Prov.: Bari
Città: Andria
|
Inserito il - 26/06/2004 : 13:27:58
|
| 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 - |
 |
|
|
badpenguin
Nuovo Utente

Regione: Puglia
Prov.: Bari
|
Inserito il - 27/06/2004 : 14:08:27
|
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 |
 |
|
|
Nicola
Nuovo Utente
Regione: Puglia
Prov.: Bari
Città: Corato
|
Inserito il - 28/06/2004 : 11:15:43
|
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 |
 |
|
|
Antonio
Utente medio
 

Regione: Puglia
Prov.: Bari
|
Inserito il - 28/06/2004 : 19:41:31
|
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 |
 |
|
|
silent
Utente assiduo
  

Regione: Puglia
Prov.: Bari
Città: Andria
|
Inserito il - 29/06/2004 : 20:26:53
|
| 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 - |
 |
|
|
Nicola
Nuovo Utente
Regione: Puglia
Prov.: Bari
Città: Corato
|
Inserito il - 30/06/2004 : 11:30:14
|
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 |
 |
|
|
Nicola
Nuovo Utente
Regione: Puglia
Prov.: Bari
Città: Corato
|
Inserito il - 08/07/2004 : 17:14:30
|
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 |
 |
|
|
Antonio
Utente medio
 

Regione: Puglia
Prov.: Bari
|
Inserito il - 08/07/2004 : 20:42:42
|
...molto simile allo stack:
Allegato: queue.txt 2,27 KB |
 |
Modificato da - Antonio in data |
 |
|
|
Nicola
Nuovo Utente
Regione: Puglia
Prov.: Bari
Città: Corato
|
Inserito il - 10/07/2004 : 09:52:41
|
Grazie Antoniooooooo..... Mi hai aiutato davvero tanto!!!! Grazieeeeeeeeeeee     |
Di Paola Nicola |
 |
|
|
Nicola
Nuovo Utente
Regione: Puglia
Prov.: Bari
Città: Corato
|
Inserito il - 13/07/2004 : 12:22:36
|
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 |
 |
|
|
Nicola
Nuovo Utente
Regione: Puglia
Prov.: Bari
Città: Corato
|
Inserito il - 13/07/2004 : 12:28:55
|
| 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 |
 |
|
|
Antonio
Utente medio
 

Regione: Puglia
Prov.: Bari
|
Inserito il - 13/07/2004 : 18:01:28
|
Vuoi che lo vado a fare io l'esame domani?? ..scherzo.. :-)
Allegato: queue_completa.txt 2,92 KB |
 |
Modificato da - Antonio in data |
 |
|
|
Nicola
Nuovo Utente
Regione: Puglia
Prov.: Bari
Città: Corato
|
Inserito il - 13/07/2004 : 18:18:23
|
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 |
 |
|
|
Antonio
Utente medio
 

Regione: Puglia
Prov.: Bari
|
Inserito il - 13/07/2004 : 18:29:29
|
Citazione: Messaggio inserito da Nicola se ti dovesse servire qualcosa non devi fare baltro che chiedere.....
..mi servirebbe una cosuccia: 'na femn!    |
 |
 |
|
|
Antonio
Utente medio
 

Regione: Puglia
Prov.: Bari
|
Inserito il - 13/07/2004 : 18:31:27
|
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 |
 |
|
|
Nicola
Nuovo Utente
Regione: Puglia
Prov.: Bari
Città: Corato
|
Inserito il - 14/07/2004 : 17:45:31
|
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 |
 |
|
|
Frisketta
Utente medio
 

Regione: Puglia
Prov.: Foggia
Città: provincia
|
Inserito il - 24/08/2004 : 11:40:18
|
| Qualcuno ha le tracce dell'appello di programmazione dei corsi B e C in data 15/07/04? AIUTATEMI!!!! |
Frisketta |
 |
|
| |
Discussione  |
|