Quale comando devo usare?
Quale comando devo usare?
XboxmanCodice:Numero_di_lettere:=Length(stringa)
Cosa ho sbagliato in questo prog?totem
program parole;
var a:string[20];
begin
writeln('Inserisci una parola');
readln(a);
a:=length(20);
readln
end.
Ho anche un'altra domanda: in che modo è possibile memorizzare un numero o una parola che inseriamo in un programma Pascal, e all'apertura del programma ci visualizza i dati salvati? C'è bisogno dell'intervento di un altro file che memorizza i dati al di fuori del programma??
Grazie mille in anticipo!
(totem se non ti dispiace vorrei aggiungerti sul messenger se ce l'hai)
per la domanda ti rispondo di sì,servono i file però sinceramente il pascal l'ho fatto in 3a e sinceramente l'ho rimossoXboxman
cmq ti serve sapere come leggere/scrivere su un file ( quindi anche aprirlo in lettura/scrittura e chiuderlo) e come trasferirci i dati ( nn mi ricordo se si usano i vari buffer ma dovrebbe essere molto simile )
anche se non so nulla di pascal, posso cmq dirti che stai mettendo dentro alla variabile di tipo stringa il valore di ritorno di Length, che immagino sia un numero (e poi devi chiamare Length sulla stringa, non su un numero)..Xboxman
per quanto riguarda i file dai un occhiatina qui:
http://www.marinsalta.net/pascal/I_F...RBO_PASCAL.htm
per la lunghezza della stringa invece prova:
n=ord(s[0])
dove n è una variabile intera e s è la stringa :P
Ha ragione Iron84, hai messo il valore numero che Length restituisce in una variabile di tipo stringa e hai passato come parametro un numero che non si sa perchè esiste. La dichiarazione corretta è:Ricky`
(Non escludo una conversione a real, ma è un altro discorso) Quindi il tuo programma verrebbe in questo modo:Codice:<integer>:=Length(<string>)
E dò anche ragione a Ricky: per memorizzare variabili che possono essere richiamate dopo la chiusura di un programma serve scrivere su file (ho intenzione di aggiungere un capitolo che parla di questo alla mia guida su pascal, che è già di per sé abbastanza completa).Codice:program parole; var a:string; b:integer; begin clrscr; writeln('Inserisci una parola'); readln(a); b:=length(a); writeln('La lunghezza della parola inserita è di ',b,' caratteri.'); readln end.
Ti mando ora via MP il mio contatto, ma ti avverto che mi troverai ben poco collegato perchè sono sempre su World of Warcraft... Se riesci a beccarmi quando ci sono sei fortunato.
per quanto riguarda le stringhe, tutti sappiamo che sono viste come array di caratteri. in pascal nella posizione 0 vi è il carattere ascii corrispondente alla lunghezza della stringa.
Attraverso la funzione ord si passa appunto da ascii al relativo decimale.
Lo so che la funzione corretta è la lenght ma se nn ho letto male xboxman ha avuto dei problemi con tale funzione percui gli ho proposto un altro modo.
EDIT:
Ah lol nn avevo letto attentamente il codice. quello corretto è:
Codice:program parole; var a:string[20]; begin writeln('Inserisci una parola'); readln(a); n:=length(a); writeln("La stringa è lunga ",n); readln; end.
Ultima modifica di Ricky`; 15-01-2007 alle 19:06:22