Newsgroup: it.comp.lang.javascript
Titolo: algoritmi...

mi son finalmente decisa a imparare javascript per davvero...
prima domanda...
mi pare (e ditemi se sbaglio...) che dovrei saper costruire un algoritmo...
in tal caso....
dove trovo un buon tutorial
per una digiuna completamente di questo argomento?
ciao
Morningstar

 mi pare (e ditemi se sbaglio...) che dovrei saper costruire un
algoritmo...
X algoritmo si intende una sequenza di istruzioni da eseguire passo passo
(passatemi la definizione incompleta) anche la ricetta della torta di mele
e' un algoritmo a ben guardare... In informatica si dice algoritmo una roba
del genere:
Dati in entrata------->Elaborazione---------->dati in uscita
Un algoritmo e' composto dalle istruzioni che risolvono una determinata
classe di problemi (ad esempio ordinamento di numeri) qualsiasi sia l'input
in entrata (sempre che sia riconducibile al problema risolto
dall'algoritmo).
Se sei completamente digiuna di programmazione non penso sia la cosa
migliore cominciare da javascript, suggerisco il pascal (non ha nessuna
utilita' pratica, ma da molte soddisfazioni ad un principiante!): e' ben
strutturato, presenta strutture dati (array, matrici....) e passare da esso
a c/java/javascript e' molto facile (e' necessario solamente "apprendere" la
programmazione ad oggetti, poi la sintassi e' simile)
Un buon libro su Pascal??
"Pascal guida alla programmazione"    della McGraw Hill
Se invece sai gia' programmare in C, JAVA, PASCAL.......... scorda quello
che ho detto e compra questo libro:
"Javascript for dummies" non e' il massimo ma aiuta a cominciare....
Spero di esserti stato d'aiuto.
Napolux
http://napolux.supereva.it

 mi son finalmente decisa a imparare javascript per davvero...

-- 
Posted from  [212.141.82.97] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 dovresti usare cicli while.
...hey hey hey!! fermi tutti: un ALGORITMO, per quello che so, è quello che
diceva Napolux, quindi un insieme di istruzioni che da un input tirano fuori
un output.
punto.
Il disegnino che rappresenta un algoritmo si chiama GRAFO.
Quello che dici tu... 'ndo l'hai rimediato?? è un algoritmo, si, ma non per
quelle caratteristiche!!!
LAMASE

Grazie ragazzi...
mi avete chiarito le idee...
allora, il mio primo passo sarà andare a cercare un buon manuale
"Pascal guida alla programmazione"    della McGraw Hill
/grazie per il consiglio....
nel mentre mi stò comunque dando una occhiatina al javascript che mi serve
per i siti che faccio....
e php...
Ragazzi ho una necessità assurda di imparare a programmare nel minor tempo
possibile....
calcolando che l'anno scorso ho scoperto cosa sia in realtà internet e ora
mi accingo a mettere su una piccola società di web publishing...
mi serve assolutamente saperne di + anche sulla programmazione ad oggetti...
Per quanto riguarda gli algoritmi...
beh...
True Lies....
/grazie anche a te per il link ma come avrai capito...
è too much for me....
ciao e grazie
Morningstar

Ah..
ecco...
il grafo di flusso....
alle medie mi avevano fatto fare qualcosa del genere...
grafo di flusso e algoritmo di qualcosa di molto basilare...
non ricordo che linguaggio fosse...
comunque mi intrippava una cifra!
;-)
Già che avete cominciato questa bella disquisizione su cosa siano
precisamente propongo di mettervi d'accordo e tirare fuori qualcosa di
definitivo...
così io capisco!!!!
;-)))))
ciao
Morningstar

 LAMASE
-- 
Posted from  [212.141.82.13] 


Morning il problema è che gli algoritmi sono un casino: ripeto non pensare agli
algoritmi ora: sono il punto conclusivo, non la partenza.
Mi credi?
ciao
TrueLies
http://www.unitedscripters.com/
-- 
Posted from  [212.141.82.13] 


 }
le classiche funzione ricorsive!
Ecco: ho cercato e ho trovato questo (su vari siti/testi universitari):
____________________________________
Algoritmo: significato simile a quello di   ricetta, processo, tecnica,
metodo, procedura, routine, .. , ossia:
un insieme finito di comandi (istruzioni) che producono una sequenza di
operazioni in grado di risolvere uno specifico problema
____________________________________
Algoritmi e strutture dati.
In modo informale, possiamo definire algoritmo  una serie completa e non
ambigua di regole per risolvere un dato problema in modo ben determinato.
Alcune delle proprieta' importanti di cui deve godere un algoritmo sono:
Finitezza: il numero delle istruzioni di cui si compone l' algoritmo deve
essere finito. P. es. un algoritmo la cui soluzione dipenda dall' esistenza
di una determinata sequenza di cifre nella rappresentazione decimale di pi
greco potrebbe richiedere l' esecuzione di un numero infinito di passi se la
sequenza non apparisse.
Definitezza: ogni istruzione deve essere non ambigua. Questa richiesta non
implica solo che le istruzioni devono essere espresse chiaramente ma anche
che il pssaggio da un' istruzione alla successiva deve avvenire in modo
esplicitamente previsto dall' algoritmo.
Effettuabilità: deve esistere un agente di calcolo in grado di eseguire ogni
istruzione in un tempo finito. È chiaro che un algoritmo il cui tempo di
esecuzione sia estremamente lungo su scala umana è di scarso interesse
pratico.
Risolutività: deve produrre un output che consista nella soluzione del
problema o nella diagnostica sulla mancata soluzione. Non sempre un
algoritmo puo' produrre un risultato. Tuttavia richiediamo che fornisca
sempre un output, sia pure sotto forma di comunicazione della mancata
soluzione.
Oltre alle proprietà precedenti, considerate essenziali alla stessa
definizione di algoritmo, altre proprieta' in base alle quali si puo'
valutare un algoritmo sono: robustezza (ovvero debole dipendenza delle
condizioni di successo dai dati in input) ed efficienza. Infine, nella
definizione di un algoritmo è importante conoscere quali sono le
funzionalità primitive su cui si può basare. P. es. se devo descrivere un
algoritmo numerico, questo sara' espresso diversamente a seconda delle
capacita' aritmetiche che posso presupporre nell' agente di calcolo. Se
posso contare sulle 4 operazioni aritmetiche, non saro' costretto a
descrivere nell' algoritmo il dettaglio della moltiplicazione, come invece
dovrei fare se le primitive fossero solo somme e sottrazioni.
_____________________________________
Algoritmo : descrizione delle azioni che un
esecutore deve compiere per risolvere un
problema.
_____________________________________
In realtà la nozione di algoritmo non riguarda solo l'informatica e il
trattamento dell'informazione, ma riguarda qualunque campo in cui si possano
descrivere sequenze di operazioni, finalizzate allo svolgimento di un
compito. Ad esempio, una ricetta di cucina è un algoritmo che può essere
eseguito da un cuoco, mentre uno spartito musicale è un algoritmo che può
essere eseguito da un pianista.
_____________________________________
Per il momento mi  sembra abbastanza.
LAMASE

 Mi credi?
Io no! ma hai studiato al CEPU?
LAMASE

che raffigura qualunque procedura
Caro True Lies, non intervengo nella discussione per dire la
mia ma per farti un appunto:)
Visto che le discussioni sono interessanti, evita per favore
di cambiare il subject de messaggio, altrimenti si perde
ogni volta la struttura del thread (lo hai gia' fatto altre
volte a quanto vedo perciò ti faccio un richiamino...:))
Inoltre, tranne nei rari casi in cui non è indispensabile,
dovresti riportare anche il testo quotato del messaggio a c
cui rispondi...
cmq, credo che tu abbia ragione, anche se la definizione di
Algoritmo che si trova sui libri può creare confusione e
portare in ogni caso a conclusioni soggettive.
Secondo tale definizione, anche un programmino che effettua
la somma di due numeri dati in ingresso può essere visto
come l'implementazione di un certo algoritmo.
Io credo si possa parlare di algoritmo soprattutto quando
l'intero processo presenta dei punti decisionali e quando
tale algoritmo è visto come un modo (migliore o non) fra
altri di risolvere il problema. Ed è qui che si può
classificare un algoritmo in base alla sua complessità
computazionale, o di spazio, o facilità di implementazione.
In pratica, se esiste un unico metodo per fare qualcosa,
quel metodo (IMHO) non è un algoritmo. Viceversa, si può "
questo algoritmo X è migliore dell'algoritmo Y poichè ci
troviamo in queste condizioni quindi X è più veloce...." .
Saluti!
-- 
WEbdOM webmaster di
Metronic.It mobile phone philosophy
www.gadgetpoint.it
 serigrafia on line

davvero, non raggruppando come fa OE ;))))
Uso free Agent, e raggruppa tutti i thread che hanno un
subject del tipo  Re: Subject originale .
Ad esempio, gia' se si usa OE non patchato e che mette nel
subject R: invece che Re: , il post non viene raggruppato
dal mio NewsReader.
Ma come fai raggruppare un post con un subject tutto
diverso!?


 cerchero` un'altra donna dentro ai sogni di Tarzan

 guarda questo: 
http://www.crossbow.it/icljs/3ad.gif
io ho Outlook Express, e non ho mai perso il thread!
Si basa sull'id del messaggio, non sull'oggetto... ed č giusto che sia cosě!
infatti funziona!
LAMASE


Riposto la seconda parte del messaggio che ho scritto e che magari non vi va
di leggere: sono presi da siti universitari.



e così via.
LAMASE

 3ad anche graficamente (vista l'immagine?)
aaah, i "rametti" =)
LAMASE

Eh la netiquette dei newsgroups :o)
Bhe, cambiare un subject non è illegittimo: sul mio newsreader i thread
rimangiono accorpati.
Io per la verità in termini di netiquette mi baso su due criteri:
1) rispondo solo se so di avere una soluzione (magari non ottimale ma
funzionale)
2) non rispondo a eventuali risposte sbagliate che vedo (tipo: scemo la mia
soluzione è piu' intelligente, o tipo: ahhh hai torto hai torto): mi lascio
coinvolgere
solo se tale atteggiamento viene rivolto a me, ma di mia iniziativa non vado
mai (mai) a contestare la riosposta di un altro.
Io di testi sugli algoritmi ne ho letti un po'... due in lingua inglese
(algoritmi in Perl e Programming Pearls) e due in iotaliano (algoritmi e
strutture dati in Java, Algoritmi in C)
per cui non credo di avere opinioni per sentito dire.
Noi potremmo discutere sugli algoritmi tutto il giorno, senza trovare una
soluzione alla loro possibile definizione,
per il semplice motivo che gli algoritmi sono FUNZIONI (o subroutines o come si
preferisca chiamarli).
Pertanto non è possibile, sforzando il paragone) distinguerli da una banalità
tipo:
function ciao(){
alert("ciao")
}
se non nel senso che:
gli algoritmi sono inseparabili dalle strutture DATI: per cui una funzione che
non effettua un parsing su una struttura dati
senz'altro non è un algoritmo.
La struttura dati è complessa: una definizione che non ha connotati
quantitativi: di solito si tratta di matrici, o possono anche essere semplic
array: il punto
è che la funzione, per essere algoritmo, deve poter effettuare una ispezione di
tali strutture idealmente il piu' veloce possibile: per cui un connotato è la
ottimizzazione: dovendo la funzione
sindacare fra una mole idealmente anche amplissima di dati, se può farlo con
due verifiche condizionali, allora non dovrebbe farlo con tre:
un "constraint" che una funzione non deve necessariamente rispettare (se io
devo ispezionare una serei di options in un select, non devo necessariamente
ottimizzare)
Come ricorda Jon Bentley, "do not ask for something if you do not really need
it", non ponetevi problemi di ottimizzazione se non è proprio indispensabile
("squeezing space", capitolo 10, programming Pearls)
Potremmo discutere per mesi, senza trovare uan definizione di algoritmo
Tutte le definizioni quindi sono efficienti.
Se io propongo la mia, e cioè che un algoritmo
1) ricerca
2) su dati complessi
3) di solito è ricorsivo
non dico affatto fesserie: espongo tratti che appartengono tipicamente
all'algoritmo.
Poi uno può sottilnearne altri, ma non saranno mai esaustivi: ecco perchè si
può andare avanti per mesi a dire "hai torto marcio" senza tuttavia
poter proporre una definizione alternativa e/o conclusiva.
L'intero thread si ingenera dal fatto che una persona ha legittimamente chiesto
se deve imparare gli algoritmi,
dicendo che sta cominciando ora a studiare linguaggi per la prima volta.
La mia risposta, di lascciare gli algoritmi per ultimi, mi appare assai
sensata:
sfido infatti chiunque stia imparando un linguaggio a cominciare subito ad
occuparsi di algritmi non conoscendo
i cicli while e for, non sapenod che possono essere vuoti for(;;), non
conoscendo
come fare il flagging con variabili globali, swapping di dati, array binarie,
matrici, non sapendo quando usare uno switch o un if else:
ergo, dico a morningstar: lascia gli algoritmi per ultimi: presuppongono che tu
sappia tutto il resto.
Gli algoritmi sono funzioni che esplorano dati, e debbono farlo nel modo piu'
rapido possibile.
Trovare questa caratteristica come inidonea a definire un algoritmo significa,
semplicemente, avere visto un paio di volte un grafo
o avere adocchiato un paio di paragrafi in merito e pensare che questo sia
sufficiente ad autorizzarci a rimproverare chiunque, avendo letto un po' di
più, ha una idea
un po' più problematizzata in proposito e risponde: definire un algoritmo è,
fondamentalmente, impossibile.
Comunque se non si vuole spendere molto, il libro migliore con tale
caratteristica è proprio
Programming Pearls, Jon Bentley
Edizioni Addison Wesley
circa 25 dollari, più spedizioni postale, disponibile su Amazon
Quantomeno, un copia e incolla da lì farà fare più bella figura che un copia e
incolla da un testo anonimo o reperito
online dopo una navigata più o meno casuale.
ciao
TrueLies
http://www.unitedscripters.com/
-- 
Posted from  [212.141.82.28] 


Ragazzi mi è venuta un'idea....
si può fare un'algoritmo in javascrit che sfrutta la cpu del server su cui
si pubblica la pagina che lo contiene e che è in grado di calcolare il
valore della radice quadrata di 2 o del pigreco per un casino di cifre oltre
la virgola così ci battiamo il record mondiale e quando uno si collega a
quella pag.può vedere il numero che si allunga sotto i suoi occhi?
boh?
è una stronzata vero !!??!!
magari si incazzano da paura....quelli del server... :-)))
però sarebbe simpatico....magari con un contatore che ti dice a quante cifre
dopo la virgola si è arrivati a calcolare....wow che figata!!!!

Rif. Post True Lies del 14/12/01 20:06 5Kb "Re: Gli algoritmi sono funzioni
con steroidi"
Sei un grande "True" gli hai spaccato il culo a tutti.....
O'...quando ce vň ce vň!!!
Scherzo....ovviamente... io dopo la terza riga (non capendo un 'azz. di ciň
che stavate dicendo) ho usato la funz.scroll() perň sembrate convincenti
tutti....OGGI HO IMPARATO UNA COSA NUOVA...se un giorno qualcuno mi chiederŕ
di definire un algoritmo...gli dico che non č possibile se mi chiede il
perchč.... gli dň il tuo indirizzo True.... :-))) Ciao Grandissimi!!!!

conoscendo [...]
[...]
Secondo me, invece, l'occuparsi della risoluzione di un problema in
modo piu' astratto, a prescindere dalla sua implementazione in un
linguaggio, serve molto. I cicli while e for, al di la' della loro
sintassi, sono comunque utilizzati anche nel pensiero logico, anche se
espressi in modo piu' generico: "ripeti fino a quando non si avvera
una certa condizione".
E questo lo posso comunque rappresentare in un algoritmo. Poco importa
che *dopo* io implementi l'algoritmo in cobol, magari ricorrendo ad
una perform, piuttosto che in C language, o in qualsiasi altro
linguaggio.
E a testimoniare che l'algoritmo non e' legato all'informatica, ed e'
slegato dai linguaggi di programmazione e' il fatto che lo iniziano ad
utilizzare anche alle elementari, per rappresentare la soluzione dei
problemi (a livelli molto semplici, ovviamente).
E, ripescando dai fondi della memoria le mie reminiscenze scolastiche,
ricordo pagine e pagine di algoritmi, come base della programmazione.
E solo dopo, sospirate, le righe di codice.
Ciao, Stefania
-- 
L'angolo di Stefania
http://digilander.iol.it/angolostefania
 (aggiornato 12/12/2001)

 Se io propongo la mia, e cioč che un algoritmo
Non sarebbe bene andare a vedere su un vocabolario d'Italiano? Algoritmo:
procedimento di calcolo definito tramite regole ed operazioni.
Maurizio.

 online dopo una navigata più o meno casuale.
Anche se si tratta di testi universitari? (sai che i libri li scrivono i
professori e prima di essere libri sono dispense e le trovi anche sul sito
dell'università)
LAMASE

Ragazzi vi ringrazio tutti, mi inizio a fare una idea sulla questione...
per ora studierò il linguaggio puro e semplice con i suoi cicli e le sue
funzioni...
ma il mio problema è...
ogni tanto mi si propongono dubbi che a voi sembranno demenziali....
anche in casi simili...
posso chiedere a voi?
ringrazio True Lies e Lamase
particolarmente.
Vi segnalo che ho postato un altro messaggio nel ng
ma questo è proprio pratico...
ho uno script che funge male sul netscape...
e con le mie conoscenze non riesco a capire perchè....
ho provato a vederlo ma...
hem....
cmq è interessante...
per qualsiasi problema potrei impostare un algoritmo di risoluzione...
in qualsiasi campo...
e invece un grafo di flusso?
ciao
Morningstar

capito tutto grazie...
non so cosa avevo toppato ma ora ho ricominciato da capo e funge!
Morningstar