Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI aggiorna la sua linea di droni ultraleggeri con Neo 2, un quadricottero da 160 grammi che mantiene la compattezza del predecessore ma introduce una stabilizzazione meccanica a due assi, sensori omnidirezionali e un sistema LiDAR
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone
Ad Appian Europe 2025, l'azienda parla molto della sua visione di cos'è e come dovrebbe essere usata l'intelligenza artificiale: è uno strumento che va sempre adoperato dalle persone, che devono rimanere responsabili dei processi all'interno dell'azienda. Non è un giocattolo con cui sperimentare, ma un aiuto per superare le sfide di business più importanti
Polestar 3 Performance, test drive: comodità e potenza possono convivere
Polestar 3 Performance, test drive: comodità e potenza possono convivere
Abbiamo passato diversi giorni alla guida di Polestar 3, usata in tutti i contesti. Come auto di tutti i giorni è comodissima, ma se si libera tutta la potenza è stupefacente
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 27-11-2002, 19:06   #1
marcus81
Senior Member
 
L'Avatar di marcus81
 
Iscritto dal: Dec 2001
Città: Partinico(PA)-Torino
Messaggi: 2885
Pascal e ricorsione...

Come creare una funzione ricorsiva in pascal per testare se una parola è palindroma?
__________________
Main: Barton 2500@3200+ Asus A7N8X-dlx 2*512 DDRPowercolor 9800Pro Maxtor 80GB sATA + Seagate 160GB pATA LCD Acer AL1721 Epson C62 Antec T.P. 430w Tin.it ADSL Muletto: Pentium4 1800 Notebook: Idea Progress P4 Auto e moto d'epoca
marcus81 è offline   Rispondi citando il messaggio o parte di esso
Old 28-11-2002, 00:41   #2
Jayant
Senior Member
 
L'Avatar di Jayant
 
Iscritto dal: Oct 2001
Città: Milano
Messaggi: 2072
Re: Pascal e ricorsione...

Quote:
Originariamente inviato da marcus81
[b]Come creare una funzione ricorsiva in pascal per testare se una parola è palindroma?
Almeno questo cerca di impararlo da solo
__________________
...:::Le Mie Trattative:::...
Jayant è offline   Rispondi citando il messaggio o parte di esso
Old 28-11-2002, 09:01   #3
marcus81
Senior Member
 
L'Avatar di marcus81
 
Iscritto dal: Dec 2001
Città: Partinico(PA)-Torino
Messaggi: 2885
Grazie moolto gentile!
__________________
Main: Barton 2500@3200+ Asus A7N8X-dlx 2*512 DDRPowercolor 9800Pro Maxtor 80GB sATA + Seagate 160GB pATA LCD Acer AL1721 Epson C62 Antec T.P. 430w Tin.it ADSL Muletto: Pentium4 1800 Notebook: Idea Progress P4 Auto e moto d'epoca
marcus81 è offline   Rispondi citando il messaggio o parte di esso
Old 29-11-2002, 18:22   #4
recoil
Senior Member
 
L'Avatar di recoil
 
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 19148
per vedere se una parola è palindroma io non userei una ricorsione...

cmq, potresti tentare qualcosa di simile:

calcola(i,n)

dove i è l'indice che va da 1 in avanti e n è la lunghezza della parola... ad ogni passo della ricorsione tu controlli se i+1 è palindroma, fino a che la i non è arrivata a n/2.
recoil è offline   Rispondi citando il messaggio o parte di esso
Old 29-11-2002, 19:34   #5
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Se per definizione una parola di una sola lettera e la stringa vuota sono palindrome...basta fare una cosa del genere :

(non mi ricordo la sintassi del Pascal...lo scrivo in uno pseudo-codice)
Codice:
palindroma (parola)
begin
   se (lunghezza(parola) < 2)
      ritorno vero;
   se (parola[0] è diversa da parola [indice ultima lettera])
      ritorno falso;
   da parola tolgo la prima e l'ultima lettera
   ritorno palindroma(parola);
end
In C farei così:
Codice:
int palindroma(char *parola)
{
   if(strlen(parola) < 2)
      return 0;
   if(parola[0] != parola[strlen(parola) - 1])
      return 0
   parola[strlen(parola) - 1] = '\0';
   return palindroma(parola + 1);
}
//PS: questo codice è distruttivo per la parola
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 29-11-2002, 20:37   #6
gokan
Senior Member
 
L'Avatar di gokan
 
Iscritto dal: Apr 2002
Città: Palermo
Messaggi: 4913
Come al solito Cionci si esprime meglio in C che in linguaggio normale
__________________
Sun Certified Java Programmer - Sun Certified Web Component Developer - Sun Certified Business Component Developer
gokan è offline   Rispondi citando il messaggio o parte di esso
Old 29-11-2002, 20:48   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
La devo prendere come offesa o come complimento ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 29-11-2002, 21:45   #8
marcus81
Senior Member
 
L'Avatar di marcus81
 
Iscritto dal: Dec 2001
Città: Partinico(PA)-Torino
Messaggi: 2885
complimento,complimento...sei il mago del C!

cmq io ho fatto così:

function palindr2(i,j:integer): boolean;
begin
palindr2:=true;
if (i>=1) then begin
palindr2(i-1,j+1);
if (stringa[i]<>stringa[j]) then
palindr2:=false;
end;
end;

function palindr1(n:integer): boolean;
var i,j:integer;

begin
if (n mod 2) <> 0 then begin
i:=n div 2;
j:=(n div 2) + 2;
end

else begin
i:=n div 2;
j:=n div 2 + 1;
end;

if (palindr2(i,j)) then
palindr1:=true
else palindr1:=false;

end;

"n" è la lunghezza della parola, la funzione chiamata dal programma è palindr1...

lo so è un po' incasinato però funziona...cionci nn mi sparare!
__________________
Main: Barton 2500@3200+ Asus A7N8X-dlx 2*512 DDRPowercolor 9800Pro Maxtor 80GB sATA + Seagate 160GB pATA LCD Acer AL1721 Epson C62 Antec T.P. 430w Tin.it ADSL Muletto: Pentium4 1800 Notebook: Idea Progress P4 Auto e moto d'epoca
marcus81 è offline   Rispondi citando il messaggio o parte di esso
Old 30-11-2002, 00:13   #9
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Sai come si ottiene una sottostringa da una stringa in Pascal ? E la lunghezza di una stringa ?

Ma stringa è globale ? In questi casi le variaibli globali sono bruttine
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 30-11-2002, 10:51   #10
gokan
Senior Member
 
L'Avatar di gokan
 
Iscritto dal: Apr 2002
Città: Palermo
Messaggi: 4913
Quote:
Originariamente inviato da cionci
[b]La devo prendere come offesa o come complimento ?
E' un complimento ovviamente
__________________
Sun Certified Java Programmer - Sun Certified Web Component Developer - Sun Certified Business Component Developer
gokan è offline   Rispondi citando il messaggio o parte di esso
Old 30-11-2002, 11:59   #11
marcus81
Senior Member
 
L'Avatar di marcus81
 
Iscritto dal: Dec 2001
Città: Partinico(PA)-Torino
Messaggi: 2885
Si, stringa è un array globale...
La lunghezza della stringa è calcolata nel programma principale attraverso un ciclo while(nn ricordavo la funz. predefinita)...
Nn so se ci sia qualke funzione predefinita per estrarre una sottostringa...
Cmq funziona bene!
__________________
Main: Barton 2500@3200+ Asus A7N8X-dlx 2*512 DDRPowercolor 9800Pro Maxtor 80GB sATA + Seagate 160GB pATA LCD Acer AL1721 Epson C62 Antec T.P. 430w Tin.it ADSL Muletto: Pentium4 1800 Notebook: Idea Progress P4 Auto e moto d'epoca
marcus81 è offline   Rispondi citando il messaggio o parte di esso
Old 30-11-2002, 12:01   #12
marcus81
Senior Member
 
L'Avatar di marcus81
 
Iscritto dal: Dec 2001
Città: Partinico(PA)-Torino
Messaggi: 2885
X cionci:

Hai qualke suggerimento x compattare il codice?
__________________
Main: Barton 2500@3200+ Asus A7N8X-dlx 2*512 DDRPowercolor 9800Pro Maxtor 80GB sATA + Seagate 160GB pATA LCD Acer AL1721 Epson C62 Antec T.P. 430w Tin.it ADSL Muletto: Pentium4 1800 Notebook: Idea Progress P4 Auto e moto d'epoca
marcus81 è offline   Rispondi citando il messaggio o parte di esso
Old 30-11-2002, 12:16   #13
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Codice:
function palindr(i,j:integer): boolean; 
begin 
   palindr:=false; 
   if (i>=1 and j>=i) then 
   begin
      if (stringa[i]=stringa[j]) then 
      begin
         if (i=j or j=i-1) then
            palindr:=true;
         else
            palindr:=palindr(i+1, j-1);
      end;
   end; 
end;
Dovrebbe bastare questa...
Basta chiamarla con palindr(1,n);

PS: non sono sicuro del codice... Non mi ricordo molto Pascal !!!
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 30-11-2002, 12:41   #14
marcus81
Senior Member
 
L'Avatar di marcus81
 
Iscritto dal: Dec 2001
Città: Partinico(PA)-Torino
Messaggi: 2885
Codice:
 
function palindr(i,j:integer): boolean; 
begin 
   palindr:=false; 
   if ((i>=1) and (j>=i)) then 
   begin
      if (stringa[i]=stringa[j]) then 
      begin
         if ((i=j) or (j=i+1)) then
            palindr:=true
         else
            palindr:=palindr(i+1, j-1);
      end;
   end; 
end;
ho fatto qualke piccolissima modifica al tuo codice...funziona benissimo,grazie ancora!
__________________
Main: Barton 2500@3200+ Asus A7N8X-dlx 2*512 DDRPowercolor 9800Pro Maxtor 80GB sATA + Seagate 160GB pATA LCD Acer AL1721 Epson C62 Antec T.P. 430w Tin.it ADSL Muletto: Pentium4 1800 Notebook: Idea Progress P4 Auto e moto d'epoca
marcus81 è offline   Rispondi citando il messaggio o parte di esso
Old 30-11-2002, 18:19   #15
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
i+1...vero...avevo confuso la i con la j
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone L'IA "seria" di Appian è divers...
Polestar 3 Performance, test drive: comodità e potenza possono convivere Polestar 3 Performance, test drive: comodit&agra...
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026 Qualcomm Snapdragon X2 Elite: l'architettura del...
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice Recensione DJI Mini 5 Pro: il drone C0 ultra-leg...
Guerra dei chip: Intel sfida TSMC e dife...
Black Friday: super cali di prezzo sulla...
Vuoi un'auto che suoni come un teatro? E...
Kirin 9030 è molto più len...
Aggiornamento TOP 10 Amazon Black Friday...
Prime conferme per il Samsung Galaxy A37...
Tutti i giorni c'è roba nuova: sc...
3 TV 4K QLED con prezzo senza senso su A...
Gli iPhone 17 sono un successo: Apple ve...
Beyond Good & Evil 2 è ancora...
Seven, Invicta, Samsonite e OGIO: tutti ...
Huawei ha appena svelato il suo Surface ...
ARC Raiders non si ferma, è un gr...
3 scope elettriche in super sconto, da 6...
Stop acari, polvere e sporco da materass...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:03.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v