Torna indietro   Hardware Upgrade Forum > Software > Programmazione

NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine
NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine
Dopo anni di attesa e una lunga fase di sviluppo, Noctua entra nel mercato dei dissipatori a liquido AIO con la nuova serie NL-LC1. Forte dell'esperienza maturata nel raffreddamento ad aria, l'azienda austriaca promette di portare la propria filosofia fatta di qualità costruttiva, attenzione ai dettagli e silenziosità anche in questo segmento. Abbiamo provato il nuovo sistema per scoprire se riesce a distinguersi in un mercato ormai molto competitivo.
Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con Android 15 e penna, dal prezzo super
Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con Android 15 e penna, dal prezzo super
Arrivato sul mercato italiano a fine marzo, la serie Boox Go 10.3 (Gen II) offre Android 15, penna da 4096 livelli e retroilluminazione opzionale (nel modello da noi provato, Lumi, presente). La serie si compone di due tablet ePaper che fanno da e-reader, blocco note digitale e persino browser, tutto a un prezzo che fa dimenticare i prodotti di brand più blasonati
Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming
Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming
Pannello QD-OLED da 32 pollici con risoluzione 4K, frequenza di aggiornamento a 240Hz e tempi di risposta rapidissimi: il Gigabyte MO32U24 evolve il progetto del suo predecessore MO32U e alza ulteriormente l'asticella delle prestazioni. È ancora una volta un monitor indirizzato ai giocatori più esigenti
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-12-2011, 12:14   #1
diegolbj6
Member
 
L'Avatar di diegolbj6
 
Iscritto dal: Jan 2011
Città: lecce
Messaggi: 198
Algoritmi

Salve ragazzi mi sto cimentando nella risoluzione di alcuni algoritmi elementari, ma vista la mia incompetenza in materia, non riesco a capirne il funzionamento.
Per iniziare a capire qualcosa volevo provare con la formulazione di un algoritmo che mi dia il fattoriale di un numero n, ed anche con la formulazione dell'algoritmo di un numero x elevato ad n (x^n).
Conoscendo il procedimento matematico, non riesco a trovare il nesso logico con il ciclo di ripetizione finchè, e nemmeno con quello PER, e non avendo le basi necessarie mi blocco ripetutamente ad una non soluzione.
__________________
Hwuprage better than facebook, just enjoy the fun
2k shit you suck
Ho concluso positivamente con spl
diegolbj6 è offline   Rispondi citando il messaggio o parte di esso
Old 03-12-2011, 13:55   #2
gagginaspinnata
Member
 
Iscritto dal: Dec 2005
Messaggi: 37
Quote:
la formulazione dell'algoritmo di un numero x elevato ad n
Questo è molto semplice.

x^2 = x * X
x^3 = x * x * x
ecc.

Per X^n devi fare un ciclo di n-1 volte dove moltiplichi X * X

Ad esempio

Codice:
<?php

function esponente($x , $n){

$ris = 1;

	for($i=1;$i<=$n ; $i++){

		$ris = $ris * $x;

	}

	return $ris;

}

echo esponente(3,3);

?>
Dovrebbe andare
gagginaspinnata è offline   Rispondi citando il messaggio o parte di esso
Old 03-12-2011, 14:07   #3
Gimli[2BV!2B]
Senior Member
 
L'Avatar di Gimli[2BV!2B]
 
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
Invece di darti un esempio proverò a scriverti quello che è il mio usuale approccio ad un problema.
  1. Qual'è la formula o il più generale obiettivo da perseguire?
  2. Qual'è l'esatta sequenza di operazioni che faresti per calcolare/eseguire un caso specifico? (naturalmente limitando i dati in modo da poter scrivere od immaginare l'intera sequenza)
  3. Esiste una porzione della sequenza di operazioni che si ripete più volte con le stesse operazioni e condizioni ma con dati diversi?
  4. Riesci a dare un nome rappresentativo a tutti i dati utilizzati?
  5. Quali operazioni, dati e/o calcoli sono necessari per essere pronti ad iniziare il calcolo?
  6. Quali condizioni permettono di capire che il calcolo è terminato?
  7. Mettiamo che il problema sia il numero x^n, se voglio calcolare 1^1 o 1^0 il tuo algoritmo da il risultato atteso in questi casi?
Generalizzando:
  1. Devi aver chiaro il problema, oppure spezzarlo in problemi più piccoli ben definiti.
  2. Determina una soluzione esatta del problema.
  3. Determina le eventuali porzioni ripetitive e sostituiscile con una ripetizione della sequenza minima.
  4. Parametrizza i dati.
  5. Determina condizioni e stato iniziale.
  6. Determina condizioni e stato finale.
  7. Analizza il comportamento nei casi limite.
Personalmente ho riscontrato che il controllo dei casi limite può portare ad apportare discrete variazioni alla soluzione, quindi il sesto punto è l'ultimo solo perché è possibile controllarlo solo quando si ha un algoritmo abbozzato, ma può costringere a tornare indietro di qualche passo.
Il punto uno è un piccolo mondo a se in caso di grandi problemi, praticamente si dovrebbe cercare di suddividere l'algoritmo richiesto in un insieme di problemi più piccoli, chiari e più semplici da risolvere, che si risolveranno separatamente e verranno poi combinati per dare una soluzione completa.

Uno strumento che permette di rappresentare efficacemente un algoritmo è il diagramma di flusso, ti consiglierei di provare a disegnarli perché credo permettano di assimilare meglio il metodo.
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...)
Gimli[2BV!2B] è offline   Rispondi citando il messaggio o parte di esso
Old 03-12-2011, 20:00   #4
IngMetallo
Senior Member
 
L'Avatar di IngMetallo
 
Iscritto dal: Feb 2011
Messaggi: 2013
Quote:
Originariamente inviato da Gimli[2BV!2B] Guarda i messaggi

[CUT]

Uno strumento che permette di rappresentare efficacemente un algoritmo è il diagramma di flusso, ti consiglierei di provare a disegnarli perché credo permettano di assimilare meglio il metodo.
Verissimo !!! Io ho cominciato da poco e all'università al corso di fondamenti il professore ci faceva addirittura eseguire i diagrammi di flusso a mano per verificare che il programma funzionasse.. a volte perdevamo più tempo per controllare il diagramma che non ad elaborare l'algoritmo.. Alla fine però ne è valsa la pena perché fai l'abitudine a padroneggiare cicli e condizioni
__________________
CPU: Intel i5 2500k; GPU: Asus GTX 970 ; Scheda audio: Asus Xonar U7; RAM: 16GB DDR3; Storage: HD 750GB+SSD Samsung 840 (128GB); OS: Arch Linux | Linux Mint 18 | Win 7 (gaming)
Thread ufficiali : Linux Mint 18 | Ubuntu 16.04
| Desktop Environments & Window Manager per Linux
IngMetallo è offline   Rispondi citando il messaggio o parte di esso
Old 04-12-2011, 09:57   #5
diegolbj6
Member
 
L'Avatar di diegolbj6
 
Iscritto dal: Jan 2011
Città: lecce
Messaggi: 198
Visto che lo devo fare a mano, se scrivo in questo modo è coretto?
inizio
leggi n
Se (n=0)
allora
msg: "il fattoriale di 0 è 1";
fine allora
altrimenti
fatt(n)=1
finchè (n>0)
fatt(n)=n*fatt (n-1)
fine finchè
stampa: fatt(n)
fine allora
fine se
fine
__________________
Hwuprage better than facebook, just enjoy the fun
2k shit you suck
Ho concluso positivamente con spl
diegolbj6 è offline   Rispondi citando il messaggio o parte di esso
Old 04-12-2011, 14:29   #6
Gimli[2BV!2B]
Senior Member
 
L'Avatar di Gimli[2BV!2B]
 
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
L'elaborazione del fattoriale è l'esempio principe per la programmazione ricorsiva (in soldoni una funzione che richiama se stessa passandosi le variabili aggiornate e ritornando il risultato parzialmente calcolato).

Il metodo ricorsivo non è però l'unico approccio, è possibile risolvere il problema comodamente anche in modo iterativo (cioè con un semplice ciclo).

La tua soluzione, così com'è scritta, è una via di mezzo tra soluzione ricorsiva ed iterativa.
Non avendo definito una funzione, fatt(n) sembra un improprio nome di variabile (l'hai anche inizializzato).
È presente il test per il termine dell'elaborazione ricorsiva (serve per la soluzione iterativa?).

Mettiamo un paio di paletti:
  1. diciamo che vogliamo risolvere in modo iterativo
  2. diamo un nome migliore alla variabile che contiene il risultato: fatt(n) -> fatt_n
Codice indentato e con il nuovo nome di variabile (ho cercato anche di capire come combinare le parole Altrimenti, ecc... non so bene quale sia la convenzione che adotti ma mi sembrava mancasse qualcosa...):
Codice:
Inizio
  leggi n ;
  Se (n = 0)
    Allora
      msg: "il fattoriale di 0 è 1" ;
    fine Allora
    Altrimenti
      fatt_n = 1 ;

      Finchè (n > 0)
        fatt_n = n * fatt_n ;
        ***devi fare qualcos'altro***
      fine Finchè
      Stampa: fatt_n ;
    fine Altrimenti
  fine Se
fine
La soluzione iterativa può esser ridotta ulteriormente.
Se hai già affrontato l'argomento funzioni potresti modificare il codice in modo da renderlo correttamente ricorsivo (anche in questo caso la tua proposta di soluzione non era molto distante dall'essere corretta).
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...)
Gimli[2BV!2B] è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine NL-LC1 è il primo dissipatore a liquido A...
Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con Android 15 e penna, dal prezzo super Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con ...
Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming Gigabyte MO32U24 OLED: il 4K a 240Hz su un panne...
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh Recensione realme 16 5G: lo smartphone con Selfi...
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni Come rispettare tutte le nuove regole per i mono...
Google rilascia Wear OS 7: basato su And...
Microsoft chiude la porta ai Surface da ...
Sedie gaming e da ufficio in offerta: a ...
Viltrox porta il suo 28mm f/4.5 pancake ...
Jensen Huang è andato a zappare l...
Prime Day in anticipo - giorno 3: ci son...
AMD EPYC e Instinct: accordo per fornire...
Amazon spinge Fire TV Stick 4K Select, R...
Ryzen 10000 Olympic Ridge desktop: addio...
Android 17 debutta sui Pixel: ecco cosa ...
Samsung annuncia il Galaxy Book6 Edge co...
Nuove regole per gli acquisti online: da...
I nuovi OPPO Reno 16 sono pronti al debu...
Prime Day anticipato, tutti i robot aspi...
Bug FIFA ai Mondiali 2026: chiunque avre...
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: 10:30.


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