|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jul 2006
Messaggi: 74
|
[Pascal] Non capisco procedure/function e array
Allora, ritorno con un altro noioso topic, ma se non m'illumina chi ne sa già qualcosa di stè cose, rimango piantato.
Non riesco a capire l'utilità/come vanno utilizzati le "scritte" messe nel titolo. Al momento uso questa (e questa) guida. Ho guardato anche in quella su www.pierotofy.it, al momento è "sparita", comunque sia non mi era servita a molto, troppo ermetica e "taccagna" di esempi. Quindi qualcuno mi può chiarificare QUANDO (e non come!) vanno utilizzate queste funzioni (o come si chiamano)? Meglio se con esempi. Lo so che la mia richiesta è un pò generica, ma oltre a non sapere come esporre il mio problema in maniera migliore, è inutile che continui ad andare avanti se tanto queste cose non le ho capite. Spero qualcuno mi possa aiutare Grazie ciao
__________________
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
A quanto pare sei proprio agli inizi.
Se utilizzi Delphi o Turbo Pascal ti consiglio di leggere la guida al linguaggio che è estremamente chiara e che affronta passo passo i concetti della programmazione con questi linguaggi (Delphi è il successore di TP). Comunque, in estrema sintesi: - gli array si usano quando hai l'esigenza di memorizzare una sequenza di dati dello stesso tipo (es: 10 numeri interi, 100 numeri reali, ecc.); - le procedure si usano quando hai l'esigenza di "raggruppare" una serie di istruzioni che eseguono un certo lavoro, e che vengono ripetutamente utilizzate all'interno del programma (es: se hai l'esigenza di visualizzare più volte una scritta centrata nello schermo); - le funzioni sono molto simili alla procedure, ma oltre a eseguire una serie di istruzioni, restituiscono anche un valore (es: in un gestionale potrei avere l'esigenza di calcolare più volte l'iva di un prodotto; in tal caso racchiudo tutto il calcolo dentro una funzione). Questo a grandissime linee, giusto per darti un'idea. Non ho voluto aggiungere altro per non complicarti la vita.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Jul 2006
Messaggi: 74
|
Grazie mille, sei stato molto chiaro, adesso penso di aver capito.
Una cosa riguardante gli array, ho fatto questa prova: Codice:
program prvarr;
uses crt;
var nome:array[1..10] of string[10];
i:byte;
sc,sc1:char;
begin
repeat
clrscr;
writeln('Inserisci nome');
readln(nome[i]);
writeln('Vuoi inserirne un altro? s/n');
readln(sc);
until sc='n';
repeat
clrscr;
writeln('Inserisci un numero per visualizzare il nome corrispettivo');
readln(i);
writeln('Il numer ',i,' corrisponde al nome ',nome[i]);
writeln('Vuoi visualizzare un altro nome? s/n');
readln(sc1);
until sc1='n';
end.
![]() EDIT: risolto. Non avevo messo i:=1 e poi i:=i+1.
__________________
Ultima modifica di Il Razziatore : 13-10-2007 alle 18:30. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jun 2003
Città: Napoli prov
Messaggi: 3089
|
Ma perchè i è dichiarato come byte e non come integer?
__________________
Thermaltake Armor VA8000SWA**Corsair CMPSU-620HX**Intel Core 2 Quad Q9450 **Asus P5Q Deluxe**Corsair Dominator 2x2GB PC8500 1066Mhz-555 XMS2**Sapphire Vapor-X HD7970 GHz Edition 3GB GDDR5**Samsung SSD 830 256GB**WD Caviar 1TB SATA**Creative X-Fi Elite Pro **Pioneer DVR-215D**Altec Lansing FX6021**Crossover 2720MDP**Logitech diNovo Cordless Desktop**Cooler Master Storm Sentinel Advance on Razer eXactMat |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Jul 2006
Messaggi: 74
|
Bho, gli va bene comunque ![]() Adesso c'ho un altro problema: Codice:
program ass;
uses windows;
var file1,file2:file;
var nome1,nome2,stringa:string;
begin
writeln('Inserire il nome di un file: ');
readln(nome1);
writeln('Inserire il nome del file copia: ');
readln(nome2);
Assign(file1,nome1);
Assign(file2,nome2);
Reset(file1);
Rewrite(file2);
repeat
readln(file1,stringa);
writeln(file2,stringa);
until eof(file1);
Close(file1);
Close(file2);
writeln('Copia completata!');
readln;
end.
untitled1.pas(15,26) Error: Can't use readln or writeln on typed file untitled1.pas(16,27) Error: Can't use readln or writeln on typed file
__________________
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Stai usando Delphi presumo: metti AssignFile e CloseFile al posto di Assign e Close.
P.S. Byte va bene perché può rappresentare numeri da 0 a 255, e il tuo vettore al più ne conterrebbe 10.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Jul 2006
Messaggi: 74
|
Sinceramente non so cosa uso... se intendi come programma allora Dev-Pascal.
__________________
|
|
|
|
|
|
#8 |
|
Junior Member
Iscritto dal: Oct 2007
Messaggi: 1
|
Ciao a tutti!^^
Anche io uso il dev-pascal e a scuola stiamo facendo proprio le procedure e gli array... Se potete, vorrei sapere quando devo usare la var all'interno dei paramentri formali. Poi, se ad esempio ho un programma che prende da tastiera un array e lo visualizza, devo usare una function o una procedure per avere il massimo valore? e per calcolare la media? Vi ringrazio |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:06.






















