Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
In occasione del proprio Architecture Deep Dive 2025 Qualcomm ha mostrato in dettaglio l'architettura della propria prossima generazione di SoC destinati ai notebook Windows for ARM di prossima generazione. Snapdragon X2 Elite si candida, con sistemi in commercio nella prima metà del 2026, a portare nuove soluzioni nel mondo dei notebook sottili con grande autonomia
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
DJI Mini 5 Pro porta nella serie Mini il primo sensore CMOS da 1 pollice, unendo qualità d'immagine professionale alla portabilità estrema tipica di tutti i prodotti della famiglia. È un drone C0, quindi in un peso estremamente contenuto e che non richiede patentino, propone un gimbal rotabile a 225 gradi, rilevamento ostacoli anche notturno e autonomia fino a 36 minuti. Caratteristiche che rendono il nuovo drone un riferimento per creator e appassionati
ASUS Expertbook PM3: il notebook robusto per le aziende
ASUS Expertbook PM3: il notebook robusto per le aziende
Pensato per le necessità del pubblico d'azienda, ASUS Expertbook PM3 abbina uno chassis particolrmente robusto ad un pannello da 16 pollici di diagonale che avantaggia la produttività personale. Sotto la scocca troviamo un processore AMD Ryzen AI 7 350, che grazie alla certificazione Copilot+ PC permette di sfruttare al meglio l'accelerazione degli ambiti di intelligenza artificiale
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-03-2006, 00:00   #1
metallic
Member
 
Iscritto dal: Oct 2005
Messaggi: 155
Aiuto!!!

Ciao,

sto seguendo il tutorial di TurboPascal a quest'indirizzo:

http://www.leadergl.e1000.it/index.p...Turbo%20Pascal

e sono alla Lezione 3.

Ho avuto difficoltà negli esercizi finali ai punti 3,6 e 7.

Il punto 3 tutto, il punto 6 tutto ed il punto 7 la seconda metà.

Il punto 3

Credo di non aver capito appieno l'algoritmo per risolvere le equazioni di secondo grado. A me sembra che con quello proposto non sorga nessun problema se "b=0" dato che non c'è nessuna divisione che implica "b".

Il punto 6

Del 6 ho fatto solo la prima (di tre) parti, ma è sbagliata, o meglio non è sbagliata, ma in un punto fa uso della divisione mentre e la consegna dice solo addizione e sottrazione.

Quote:
VARIABILI x,y,nx,cont
LEGGI(x,y)
cont = 1
SE x,y <= 0
QUANDO cont < y
nx = x+x(y/2)
RIPETI
SCRIVI(nx)
ALTRIMENTI
SCRIVI(-errore-)
nx serve perchè se avessi messo "x=x+x" ad ogni riesecuzione del ciclo il valore sarebbe rimasto invariato. Quella invece è una piccola formula che ho ideato

Prendiamo come esempio 2*3 che equivale è uguale a 2+2+2, ora prendiamo (nella moltiplicazione) il 3 come y, il "numero di due" (scusate il litigio tra i termini ) presente nella somma deve essere uguale a y, ed è così. Ma siccome questo non si può rappresentare dato che y è un input e il programmatore non può sapere quanto sarà, si può invece usare la formula x*y=(x+x)*(y/2), ovvero (x+x) per (y diviso 2, dato che gli addendi nella formula raddoppiano perchè non esiste un'addizione ad un termine, anche se per rappresentare correttamente la formula ce ne dovrebbe essere uno solo) volte.

Ora, come posso fare a definire quella divisione con un addizione (o sottrazione)? Il fatto che non sia riuscito a risolvere gli altri quesiti del punto 6 è una diretta conseguenza del primo, perchè non riesco a trovare un metodo di rendere la divisione con la somma algebrica, come invece sono riuscito a fare per la moltiplicazione.

Il punto 7

Sono riuscito con tranquillità per quanto riguarda il primo punto (bastava basarsi sull'algoritmo per il calcolo della moltiplicazione con la somma, la differenza è che qua usare moltiplicazione e divisione è lecito). Però mi sono incasinato per quanto riguarda il secondo punto. Mi sono scervellato ma niente, come posso fare a calcolare una potenza solo con addizione e sottrazione?

Dateli uno sguardo, è importante (almeno, per me...). Potrei passare oltre, ma non è questo che voglio, voglio programmare come si deve! Anche se avete la soluzione di uno solo postate, anche se avete solo una mezza idea fatelo lo stesso! Proprio non mi viene in mente niente

P.S. I programmi non sono in TurboPascal, ma in linguaggio "algoritmico".
__________________
cAsE -> Viper Midi Tower aLiMeNtAtOrE -> RaptoxX 350W 1.3V mAiNbOaRd -> GigaByte K8NS (nForce 3 250) pRoCeSsOrE -> AMD Sempron 64 2800+ rAm -> Apacer 512MB PC3200 chipset Samsug (DDR-400MhZ) sChEdA vIdEo -> Asus Radeon A9250 256DDR dIsCo RiGiDo -> IBM Deskstar 40GB 7200rpm mAsTeRiZzAtOrE -> Plextor PXW161040A (16x10x40x) -> Powerd by... Slackware Linux 10.2 ->] registered Linux user number 401837
metallic è offline   Rispondi citando il messaggio o parte di esso
Old 01-03-2006, 01:45   #2
metallic
Member
 
Iscritto dal: Oct 2005
Messaggi: 155
Nessuno?

Non credo che per voi che già programmate sia così difficile...
__________________
cAsE -> Viper Midi Tower aLiMeNtAtOrE -> RaptoxX 350W 1.3V mAiNbOaRd -> GigaByte K8NS (nForce 3 250) pRoCeSsOrE -> AMD Sempron 64 2800+ rAm -> Apacer 512MB PC3200 chipset Samsug (DDR-400MhZ) sChEdA vIdEo -> Asus Radeon A9250 256DDR dIsCo RiGiDo -> IBM Deskstar 40GB 7200rpm mAsTeRiZzAtOrE -> Plextor PXW161040A (16x10x40x) -> Powerd by... Slackware Linux 10.2 ->] registered Linux user number 401837
metallic è offline   Rispondi citando il messaggio o parte di esso
Old 01-03-2006, 02:01   #3
pinok
Senior Member
 
Iscritto dal: Jun 2001
Città: Alessandria (provincia)
Messaggi: 4772
Quote:
Originariamente inviato da metallic
Nessuno?

Non credo che per voi che già programmate sia così difficile...
Bella questa...
Un titolo che non chiarisce di cosa si parli, in un post fatto a mezzanotte e con pretese di risposta dopo 1 ora e un quarto, cioè all'una di notte

PS: non ho voglia di andarmi a leggere gli esercizi, ho già dato ai miei tempi
Se riporti il testo dell'esercizio almeno nella parte che dà problemi, magari un'occhiata ci si può dare
pinok è offline   Rispondi citando il messaggio o parte di esso
Old 01-03-2006, 10:21   #4
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
Algoritmo:
Codice:
leggi a, b, c
discriminante <-- b^2 + 4*a*c
SE discriminante < 0
    ALLORA
         scrivi "nessuna soluzione reale"
    ALTRIMENTI
          SE discriminante = 0
                  ALLORA
                        x <-- (-b) / (2*a)
                        scrivi "Due soluzioni coincidenti"
                  ALTRIMENTI
                        x1 <-- (-b - sqr(discriminante))
                        x1 <-- (-b + sqr(discriminante))
                        scrivi "Due soluzioni: ", x1, x2
          FINE SE
FINE SE
Quote:
3. Si consideri l'algoritmo per il calcolo delle radici di un'equazione di secondo grado. Cosa succede se il coefficiente di a vale zero? Si modifichi l'algoritmo per gestire anche questa situazione
Se a dovesse essere uguale a 0 (zero) avresti una divisione per zero qui:
Codice:
x <-- (-b) / (2*a)
Quote:
6. Supponendo che l'esecutore conosca solo le operazioni di somma e sottrazione, scrivere un algoritmo per il calcolo del prodotto di due numeri interi non negativi x e y ricevuti in ingresso, e un algoritmo per il calcolo del quoziente e del resto della divisione di x per y
Moltiplicare "x * y" altro non significa che sommare ad x se stesso tante volte quanto dice y, quindi è un for ma volendo anche un while (while y>0, con decremento di y):
Codice:
FOR Indice:=2 to Y DO
  Risultato:=x+x;
END FOR
Dividere un numero per un altro è invece la sottrazione, ottenendo così il resto:
Codice:
quoziente:=0;
WHILE (x>=y) DO
   x:=x-y;    // ci da il resto della divisione
   quoziente:=quoziente+1;  //il quoziente
END WHILE
Mentre per il punto 7 l'elevamento a potenza (x^y) significa moltiplicare x per se stesso tante volte quanto dice y e questo l'abbiamo fatto precedentemente nell'altro thread se non sbaglio...

Codice:
FOR indice:=2 to Y DO
   risultato:=x*x;
END FOR
per farlo con le sole addizioni devi sostituire "x*x" un numero calcolato dall'algoritmo di prima:
Codice:
FOR Indice:=2 to Y DO
  Risultato:=x+x;
END FOR
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC
leadergl è offline   Rispondi citando il messaggio o parte di esso
Old 01-03-2006, 13:10   #5
metallic
Member
 
Iscritto dal: Oct 2005
Messaggi: 155
Grazie leadergl

Quote:
Bella questa...
Un titolo che non chiarisce di cosa si parli, in un post fatto a mezzanotte e con pretese di risposta dopo 1 ora e un quarto, cioè all'una di notte
Si è vero...
__________________
cAsE -> Viper Midi Tower aLiMeNtAtOrE -> RaptoxX 350W 1.3V mAiNbOaRd -> GigaByte K8NS (nForce 3 250) pRoCeSsOrE -> AMD Sempron 64 2800+ rAm -> Apacer 512MB PC3200 chipset Samsug (DDR-400MhZ) sChEdA vIdEo -> Asus Radeon A9250 256DDR dIsCo RiGiDo -> IBM Deskstar 40GB 7200rpm mAsTeRiZzAtOrE -> Plextor PXW161040A (16x10x40x) -> Powerd by... Slackware Linux 10.2 ->] registered Linux user number 401837

Ultima modifica di metallic : 01-03-2006 alle 13:39.
metallic è offline   Rispondi citando il messaggio o parte di esso
Old 01-03-2006, 13:58   #6
metallic
Member
 
Iscritto dal: Oct 2005
Messaggi: 155
Non ho ancora capito alcune cose...

Quote:
FOR Indice:=2 to Y DO
Risultato:=x+x;
END FOR
Non riesco a capire come possa funzionare, cioè il valore di "x" non varia, perciò nemmeno quello di "Risultato", perchè "x+x" farà ad ogni riesecuzione del ciclo, per esempio nel caso di 2, 4 e perciò "Risultato" sarà sempre uguale a 4.

Non dovrebbe essere:

risultato:=x
FOR Indice:=2 TO y DO
Risultato:=Risultato+x
END FOR


Di modo che ad ogni riesecuzione del ciclo "risultato" venga incrementato di un "x" e di modo che anche se "y" vale 1 (x*1) alla richiesta di stampa di "x" venga stampato la "x" di input originale (x*1) (dato che il ciclo while non è stato eseguito).

Quote:
quoziente:=0;
WHILE (x>=y) DO
x:=x-y; // ci da il resto della divisione
quoziente:=quoziente+1; //il quoziente
END WHILE
Facendo un paio di prove ho visto che funziona perfettamente, ma non ho capito come hai fatto a crearlo... Da cosa l'hai dedotto?

Quote:
FOR indice:=2 to Y DO
risultato:=x*x;
END FOR
risultato:=x
FOR Indice:=2 TO Y DO
risultato:=risultato*x
END FOR


Idem come la moltiplicazione con la somma?

Qua

Quote:
FOR Indice:=2 to Y DO
Risultato:=x+x;
END FOR
invece non riesco a capire come potrebbe funzionare (anche una volta sostituito "Risultato" con "x"). Perchè questo funziona solo in caso venga elevata a potenza una base con esponente 2, ma già nel caso di 3 sarebbe "x:=x+x+x" e nel caso di 4 "x:=x+x+x+x". Deve per forza entrare in gioco la moltiplicazione no?

Grazie della pazienza
__________________
cAsE -> Viper Midi Tower aLiMeNtAtOrE -> RaptoxX 350W 1.3V mAiNbOaRd -> GigaByte K8NS (nForce 3 250) pRoCeSsOrE -> AMD Sempron 64 2800+ rAm -> Apacer 512MB PC3200 chipset Samsug (DDR-400MhZ) sChEdA vIdEo -> Asus Radeon A9250 256DDR dIsCo RiGiDo -> IBM Deskstar 40GB 7200rpm mAsTeRiZzAtOrE -> Plextor PXW161040A (16x10x40x) -> Powerd by... Slackware Linux 10.2 ->] registered Linux user number 401837

Ultima modifica di metallic : 01-03-2006 alle 15:40.
metallic è offline   Rispondi citando il messaggio o parte di esso
Old 01-03-2006, 20:16   #7
metallic
Member
 
Iscritto dal: Oct 2005
Messaggi: 155
leadergl?
__________________
cAsE -> Viper Midi Tower aLiMeNtAtOrE -> RaptoxX 350W 1.3V mAiNbOaRd -> GigaByte K8NS (nForce 3 250) pRoCeSsOrE -> AMD Sempron 64 2800+ rAm -> Apacer 512MB PC3200 chipset Samsug (DDR-400MhZ) sChEdA vIdEo -> Asus Radeon A9250 256DDR dIsCo RiGiDo -> IBM Deskstar 40GB 7200rpm mAsTeRiZzAtOrE -> Plextor PXW161040A (16x10x40x) -> Powerd by... Slackware Linux 10.2 ->] registered Linux user number 401837
metallic è offline   Rispondi citando il messaggio o parte di esso
Old 01-03-2006, 20:47   #8
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
:P si scusa hai ragione
Codice:
Risultato:=X
FOR Indice:=2 to Y
   Risultato:=Risultato+X;   {Risultato:=Risultato*X}
END FOR
Quote:
invece non riesco a capire come potrebbe funzionare (anche una volta sostituito "Risultato" con "x"). Perchè questo funziona solo in caso venga elevata a potenza una base con esponente 2, ma già nel caso di 3 sarebbe "x:=x+x+x" e nel caso di 4 "x:=x+x+x+x". Deve per forza entrare in gioco la moltiplicazione no?
è il ciclo FOR che ti permette di ripetere l'addizione o la moltiplicazione più volte...così:

Risultato:=Risultato+X (nel FOR) equivale a fare Risultato:=X+X+...+X
Risultato:=Risultato*X (nel FOR) equivale a fare Risultato:=X*X*...*X
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC
leadergl è offline   Rispondi citando il messaggio o parte di esso
Old 01-03-2006, 21:04   #9
metallic
Member
 
Iscritto dal: Oct 2005
Messaggi: 155
Quote:
è il ciclo FOR che ti permette di ripetere l'addizione o la moltiplicazione più volte...così:

Risultato:=Risultato+X (nel FOR) equivale a fare Risultato:=X+X+...+X
Risultato:=Risultato*X (nel FOR) equivale a fare Risultato:=X*X*...*X
Appunto, con FOR+Moltiplicazione è possibile realizzare la potenza, e con FOR+Addizione la moltiplicazione. Ma proprio non riesco a fare la potenza con FOR+Addizione. Non è che chi ha scritto il tutorial si è sbagliato?

Si potrebbe definire l'elevamento a potenza con l'addizione per una determinata base ed una determinata potenza, ad esempio con 3 elevato 2:

FOR 2 TO y (che è 2) DO
Risultato:=Risultato+x+x
END FOR

Ma gia' nel caso di 3 elevato 3 diventerebbe:

FOR 2 TO y (che è 3) DO
Risultato:=Risultato+x+x+x+x
END FOR

E nel caso di 3 elevato 4 non c'è una formula con l'addizione ed il FOR!

Come si potrebbe fare?

Grazie!

P.S. Mi spieghi da dove hai ricavato l'algoritmo per la divisione? Probabilmente era una regola matematica che non conoscevo... Risulta meno intuitivo di quello della moltiplicazione...
__________________
cAsE -> Viper Midi Tower aLiMeNtAtOrE -> RaptoxX 350W 1.3V mAiNbOaRd -> GigaByte K8NS (nForce 3 250) pRoCeSsOrE -> AMD Sempron 64 2800+ rAm -> Apacer 512MB PC3200 chipset Samsug (DDR-400MhZ) sChEdA vIdEo -> Asus Radeon A9250 256DDR dIsCo RiGiDo -> IBM Deskstar 40GB 7200rpm mAsTeRiZzAtOrE -> Plextor PXW161040A (16x10x40x) -> Powerd by... Slackware Linux 10.2 ->] registered Linux user number 401837

Ultima modifica di metallic : 01-03-2006 alle 21:20.
metallic è offline   Rispondi citando il messaggio o parte di esso
Old 01-03-2006, 21:22   #10
metallic
Member
 
Iscritto dal: Oct 2005
Messaggi: 155
Probabilmente non sara' importantissimo, pero' se c'è come esercizio...
__________________
cAsE -> Viper Midi Tower aLiMeNtAtOrE -> RaptoxX 350W 1.3V mAiNbOaRd -> GigaByte K8NS (nForce 3 250) pRoCeSsOrE -> AMD Sempron 64 2800+ rAm -> Apacer 512MB PC3200 chipset Samsug (DDR-400MhZ) sChEdA vIdEo -> Asus Radeon A9250 256DDR dIsCo RiGiDo -> IBM Deskstar 40GB 7200rpm mAsTeRiZzAtOrE -> Plextor PXW161040A (16x10x40x) -> Powerd by... Slackware Linux 10.2 ->] registered Linux user number 401837
metallic è offline   Rispondi citando il messaggio o parte di esso
Old 01-03-2006, 23:09   #11
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
Riguardo l'elevamento a potenza siccome l'abbiamo definito come la moltiplicazione di X per se stesso tante volte quante Y ed abbiamo inoltre definito la moltiplicazione come la somma di X tante volte (quante necessarie) a se stesso e presto detto:

X*Y = x+x+..+x (tante volte volte quante y-1)
X^Z = x*x*..*x (tante volte quanto Z-2)

basta fare le opportune sostituzioni oppure creare una procedura per la moltiplicazione di due numeri che usa le addizioni ed una che eleva a potenza usando la procedura che abbiamo creato per le moltiplicazioni

se serve altro non hai che da chiedere
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC
leadergl è offline   Rispondi citando il messaggio o parte di esso
Old 02-03-2006, 19:06   #12
metallic
Member
 
Iscritto dal: Oct 2005
Messaggi: 155
Quote:
se serve altro non hai che da chiedere
Ti ringrazio, mi sa che ti devo chiedere ancora qualcos'altro...

Quote:
creare una procedura per la moltiplicazione di due numeri che usa le addizioni ed una che eleva a potenza usando la procedura che abbiamo creato per le moltiplicazioni
Se creo una procedura per la moltiplicazione di due numeri ciò funziona solo per 2^2, perchè già 3^2 ne richiede 3 e 4^2 4, per non parlare di 2^3, 3^3, ecc... Non lo so ma sembra impossibile creare un algoritmo per il calcolo di potenze di numeri qualsiasi SOLO con l'addizione e la sottrazione... Se ti viene in mente mi puoi dare un'idea? Io non so più cosa provare... Ho provato tutti quelli che mi venivano in mente...

Sennò passo oltre

Tanto non credo sia una cosa cruciale per imparare il Turbo Pascal... Sembra più opportuna per verificare le conoscenze matematiche...
__________________
cAsE -> Viper Midi Tower aLiMeNtAtOrE -> RaptoxX 350W 1.3V mAiNbOaRd -> GigaByte K8NS (nForce 3 250) pRoCeSsOrE -> AMD Sempron 64 2800+ rAm -> Apacer 512MB PC3200 chipset Samsug (DDR-400MhZ) sChEdA vIdEo -> Asus Radeon A9250 256DDR dIsCo RiGiDo -> IBM Deskstar 40GB 7200rpm mAsTeRiZzAtOrE -> Plextor PXW161040A (16x10x40x) -> Powerd by... Slackware Linux 10.2 ->] registered Linux user number 401837
metallic è offline   Rispondi citando il messaggio o parte di esso
Old 02-03-2006, 20:06   #13
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
...scusa è come "simulare" la moltiplicazione tramite una procedura aggiuntiva creata da te che andrebbe a sostituire il *:

Codice:
Function Moltiplicazione(X,Y: Integer): Integer;
VAR Risultato: Integer;
      iIndice: Integer;
Begin
   Risultato:=X;
   FOR iIndice:=2 to Y DO
        Risultato:=Risultato+X;
   Moltiplicazione:=Risultato;
End;

Function ElevazionePotenza(Base, Esponente: Integer):Integer;
VAR Risultato, iIndice: Integer;
Begin
   IF Esponente=0 THEN
        Risultato:=1
   ELSE IF (Esponente=1) THEN
        Risultato:=Base
   ELSE BEGIN
        Risultato:=Base;
        FOR iIndice:=2 to Esponente DO
             Risultato:=Moltiplicazione(Risultato, Base);
   END;
   ElevazionePotenza:=Risultato;
End;
L'ho scritto di getto e senza verificarne il funzionamento, cmq il ragionamento è questo se ci sono errori prova a capire dove, come e perchè..poi prova a correggere e se non riesci torna a chiedere

in ogni caso sono sempre qui
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC

Ultima modifica di leadergl : 02-03-2006 alle 20:53.
leadergl è offline   Rispondi citando il messaggio o parte di esso
Old 02-03-2006, 23:59   #14
metallic
Member
 
Iscritto dal: Oct 2005
Messaggi: 155
Quote:
L'ho scritto di getto e senza verificarne il funzionamento, cmq il ragionamento è questo se ci sono errori prova a capire dove, come e perchè..poi prova a correggere e se non riesci torna a chiedere

in ogni caso sono sempre qui
Ti ringrazio, ci devo studiare un pò dietro ma poi arrivo a capirlo

Ora ho un problemino (credo che ti pentirai di avermi linkato il tutorial, a furia di farti domande... con la lezione 4, gli ho fatti tutti tranne il 5:

Scrivere un algoritmo, basato sulle tre strutture di controllo fondamentali, che riceva in ingresso una sequenza di numeri interi e riporti in uscita il più grande e il più piccolo tra i numeri letti. Si supponga che l'inserimento del numero zero indichi la fine della sequenza.

Mi sono immedesimato un pò di più della logica degli algoritmi (infatti tutti gli altri gli ho fatti) ma questo proprio non l'ho capito. A differenza degli altri, dove tutti i numeri inseriti andavano a convergere in un'unica variabile (per somma o per moltiplicazione) qui sembra quasi ci voglia una variabile apposta per ogni numero inserito, ma non si sa quanti saranno (la sequenza termina con l'inserimento del numero zero)... Infatti bisogna avere i numeri com'erano all'inizio per fare i confronti, e bisogna anche trovare un modo per fare i confronti tra tutti i numeri (non solo due). E non vedo come si possa fare solo con le tre strutture di controllo fondamentali... Idea?

Grazie!
__________________
cAsE -> Viper Midi Tower aLiMeNtAtOrE -> RaptoxX 350W 1.3V mAiNbOaRd -> GigaByte K8NS (nForce 3 250) pRoCeSsOrE -> AMD Sempron 64 2800+ rAm -> Apacer 512MB PC3200 chipset Samsug (DDR-400MhZ) sChEdA vIdEo -> Asus Radeon A9250 256DDR dIsCo RiGiDo -> IBM Deskstar 40GB 7200rpm mAsTeRiZzAtOrE -> Plextor PXW161040A (16x10x40x) -> Powerd by... Slackware Linux 10.2 ->] registered Linux user number 401837
metallic è offline   Rispondi citando il messaggio o parte di esso
Old 03-03-2006, 17:57   #15
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
ti faccio alcune domande che magari ti aprono la mente per il solo fatto di farti pensare:

1) quali sono le tre strutture fondamentali?
2) dove sta scritto che devi leggere prima tutti i numeri e poi trovare il min. e max.?
3) dove dovrebbe essere, in ogni caso, la difficoltà a fare dei confronti "incrociati" tra più valori?

Esempio:
Quote:
1 4 6 2 3 9 12 5
Qui come fai a trovare il più piccolo ed il più grande?


P.S. Programmare è ben più difficile che riuscire a scrivere delle righe di codice in un qualche linguaggio, un programmatore deve trovare la strada per risolvere un determinato problema ed implementare la sua idea al PC tramite un algoritmo. Tu pensa a COME risolvere senza il PC questo problema e poi lo implementiamo
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC
leadergl è offline   Rispondi citando il messaggio o parte di esso
Old 03-03-2006, 23:06   #16
metallic
Member
 
Iscritto dal: Oct 2005
Messaggi: 155
1.a) Sequenza (permette di eseguire le istruzioni così come sono scritte)
1.b) Selezione (permette di scegliere in base al valore di una condizione l'esecuzione di un blocco di istruzioni tra due possibili
1.c) Iterazione (permette di eseguire un certo numero di volte un blocco di istruzioni)

Vabbé ho dato una sbirciatina al manuale comunque grossomodo me le ricordavo

2) Infatti oggi mentre ci pensavo (pensa un pò durante le lezioni ) mi è proprio passata per la mente questa cosa, e tutto d'un tratto l'algoritmo si è scritto nella mia mente

Dimmi cosa ne pensi:

Quote:
VAR x,xmin,xmax : Interi
ESEGUI
Leggi x
SE x <> 0
SE x < xmin
xmin := x
SE x > xmax
xmax := x
FINO A QUANDO x = 0
Stampa xmin,xmax
Bello eh?

Forse sto entrando sempre più nella logica corretta?
__________________
cAsE -> Viper Midi Tower aLiMeNtAtOrE -> RaptoxX 350W 1.3V mAiNbOaRd -> GigaByte K8NS (nForce 3 250) pRoCeSsOrE -> AMD Sempron 64 2800+ rAm -> Apacer 512MB PC3200 chipset Samsug (DDR-400MhZ) sChEdA vIdEo -> Asus Radeon A9250 256DDR dIsCo RiGiDo -> IBM Deskstar 40GB 7200rpm mAsTeRiZzAtOrE -> Plextor PXW161040A (16x10x40x) -> Powerd by... Slackware Linux 10.2 ->] registered Linux user number 401837
metallic è offline   Rispondi citando il messaggio o parte di esso
Old 04-03-2006, 03:28   #17
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
Quote:
Originariamente inviato da metallic
1.b) Selezione (permette di scegliere in base al valore di una condizione l'esecuzione di un blocco di istruzioni tra due possibili
Perchè limitarsi a solo due?!


Quote:
Originariamente inviato da metallic
2) Infatti oggi mentre ci pensavo (pensa un pò durante le lezioni ) mi è proprio passata per la mente questa cosa, e tutto d'un tratto l'algoritmo si è scritto nella mia mente

Dimmi cosa ne pensi:
Codice:
VAR x,xmin,xmax : Interi 
ESEGUI 
Leggi x 
   SE x <> 0
           SE x < xmin
                    xmin := x
           SE x > xmax
                    xmax := x
FINO A QUANDO x = 0 
Stampa xmin,xmax
Bello eh?

Forse sto entrando sempre più nella logica corretta?
Ecco finalmente ci siamo ma perche mettere:
Codice:
ESEGUI...FINO A QUANDO
e poi dentro ripetere:
Codice:
SE x<>0
?
Fai in modo che semplicemente se X=0 non fa nulla, altrimenti entra dentro
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC
leadergl è offline   Rispondi citando il messaggio o parte di esso
Old 04-03-2006, 15:07   #18
metallic
Member
 
Iscritto dal: Oct 2005
Messaggi: 155
Quote:
VAR x,xmin,xmax : Interi
Leggi x
xmin := x
xmax := x
ESEGUI
Leggi x
SE x <> 0
SE x < xmin
xmin := x
SE x > xmax
xmax := x
FINO A QUANDO x = 0
Stampa xmin,xmax
Ho sistemato alcune cose, mi sono infatti dimenticato di dare un valore alle variabili. Ho deciso di darli il valore del primo numero inserito (non c'era alternativa) di modo che se ce ne saranno di più piccoli/grandi verranno automaticamente sovrascritti, altrimenti rimarranno uguali (dando un risultato corretto al momento della stampa).

Non posso mettere un semplice SE, perchè altrimenti la lettura di x si effettuerebbe una sola volta, devo per forza inserire tutto in un ciclo a ripetizione (e di conseguenza verificare due volte il valore di x). Ho pensato anche di metterlo in un ciclo a verifica iniziale (e non finale come questo), ma non andrebbe bene:

Quote:
VAR x,xmin,xmax : Interi
Leggi x
xmin := x
xmax := x
WHILE x <> 0 DO
Leggi x
SE x < xmin
xmin := x
SE x > xmax
xmax := x
FINO A QUANDO x = 0
Stampa xmin,xmax
Senza un'istruzione SE che riverifica il valore di x, ma non funzionerebbe:

-inserisco 2
-il ciclo viene eseguito e rieseguito rieseguito perchè al punto della verifica x è 2, e non 0
-quando richiesto inserisco 0
-se 0 è minore di xmin/xmax, xmin/xmax verrà sovrascritto
-solo al punto della riverifica il ciclo termina.

L'unico modo è con un ciclo a ripetizione combinato ad un SE.

Era un test?

P.S.
Quote:
Perchè limitarsi a solo due?!
Vero
__________________
cAsE -> Viper Midi Tower aLiMeNtAtOrE -> RaptoxX 350W 1.3V mAiNbOaRd -> GigaByte K8NS (nForce 3 250) pRoCeSsOrE -> AMD Sempron 64 2800+ rAm -> Apacer 512MB PC3200 chipset Samsug (DDR-400MhZ) sChEdA vIdEo -> Asus Radeon A9250 256DDR dIsCo RiGiDo -> IBM Deskstar 40GB 7200rpm mAsTeRiZzAtOrE -> Plextor PXW161040A (16x10x40x) -> Powerd by... Slackware Linux 10.2 ->] registered Linux user number 401837
metallic è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2006, 07:57   #19
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
Codice:
Leggi X;
Min=X;
Max=X;

Leggi X;

While X<>0
     If X<Min
            Min=X
     else If X>Max
            Max=x
     end if

     Leggi X;
do
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC
leadergl è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2006, 12:01   #20
metallic
Member
 
Iscritto dal: Oct 2005
Messaggi: 155
Beh non è una cattiva idea mettere "leggi x" alla fine
__________________
cAsE -> Viper Midi Tower aLiMeNtAtOrE -> RaptoxX 350W 1.3V mAiNbOaRd -> GigaByte K8NS (nForce 3 250) pRoCeSsOrE -> AMD Sempron 64 2800+ rAm -> Apacer 512MB PC3200 chipset Samsug (DDR-400MhZ) sChEdA vIdEo -> Asus Radeon A9250 256DDR dIsCo RiGiDo -> IBM Deskstar 40GB 7200rpm mAsTeRiZzAtOrE -> Plextor PXW161040A (16x10x40x) -> Powerd by... Slackware Linux 10.2 ->] registered Linux user number 401837
metallic è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


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...
ASUS Expertbook PM3: il notebook robusto per le aziende ASUS Expertbook PM3: il notebook robusto per le ...
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo Test ride con Gowow Ori: elettrico e off-road va...
Recensione OnePlus 15: potenza da vendere e batteria enorme dentro un nuovo design   Recensione OnePlus 15: potenza da vendere e batt...
5G: entra in vigore il sistema AGCOM dei...
Bonus Elettrodomestici 2025, grande succ...
NVIDIA mette a tacere i timori della bol...
Col Black Friday partono anche gli scont...
I ribassi più pesanti del vero Bl...
Settimana del Black Friday: pioggia di s...
Speciale Blay Friday Dyson, sconti mai v...
I portatili più scontati del Blac...
WiFi al massimo: gli ASUS più pot...
Domotica in super sconto: tado° e Ne...
Black Friday Amazon: smartphone top a pr...
Black Friday 2025: tutte le migliori off...
Speciale Black Friday TV: 14 modelli sup...
Black Friday Amazon: le migliori offerte...
Tanti droni DJI scontati per il Black Fr...
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: 07:01.


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