Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere)
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere)
Quattro modi di indossarlo, stessa app del Plaud Note Pro e integrazione con il desktop. Il registratore IA da indossare di Plaud eccelle in mobilità, ma resta vincolato all'abbonamento ed è facile da perdere
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro
Xiaomi ha portato Redmi Watch 6 anche sul mercato italiano, puntando su un display AMOLED da 2,07 pollici con picco di luminosità a 2000 nit, frame in alluminio da 9,9mm e un'autonomia dichiarata di 12 giorni. Lo smartwatch gira su HyperOS 3 e integra GPS, Bluetooth 5.4 e oltre 150 sport mode. Il tutto a meno di 100 euro
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti
Con 22 tasti, il pulsante 5D, lo Shift Mode e il sensore PixArt 3395 da 26.000 DPI, il nuovo mouse wireless di Mad Catz si rivolge in modo preciso ai giocatori di MMO e RPG. Ma chi conosce già il R.A.T. 8+ ADV si accorgerà subito di quanto i due prodotti condividano, e di dove invece divergono
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 27-11-2002, 18: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 27-11-2002, 23: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, 08: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, 17:22   #4
recoil
Senior Member
 
L'Avatar di recoil
 
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 19149
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, 18: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, 19: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, 19: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, 20: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 29-11-2002, 23: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, 09: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, 10: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, 11: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, 11: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, 11: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, 17: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


Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere) Plaud NotePin S, il registratore IA si fa indoss...
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro Redmi Watch 6 in prova: lo smartwatch con ampio ...
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ...
Radeon RX 9070 GRE, AMD la porta in tutto il mondo | Recensione Gigabyte Gaming OC Radeon RX 9070 GRE, AMD la porta in tutto il mon...
Reolink OMVI 3i WiFi: videosorveglianza più intelligente e facile da usare Reolink OMVI 3i WiFi: videosorveglianza pi&ugrav...
Adidas Trionda: come funziona la tecnolo...
Withings BodyFit, la bilancia che va ben...
QNAP annuncia QuTS hero h6.0: il sistema...
ColorOS 17 con Android 17: la lista dei ...
DDR4, il ritorno che nessuno si aspettav...
Corsair vuole un singolo cavo per colleg...
Linux 7.2 si avvierà sui Mac M3, ...
Xiaomi 17T e 17T Pro a prezzi mai visti:...
Microsoft annuncia Majorana 2 e prevede ...
Windows 11: addio ai menu contestuali ca...
Maxi raid internazionale contro la pirat...
Top 10 offerte Amazon, 3 tutte nuove: al...
Windows Update, driver installati a sorp...
Finalmente in offerta DEEBOT T50 PRO OMN...
HONOR lancia Pad X8b: batteria infinita ...
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: 15:47.


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