Torna indietro   Hardware Upgrade Forum > Software > Programmazione

NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT
NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT
Nelle ultime settimane abbiamo provato tre delle proposte top di gamma di NZXT nelle categorie case, dissipatori e ventole. Rispettivamente, parliamo dell'H9 Flow RGB+, Kraken Elite 420 e F140X. Si tratta, chiaramente, di prodotti di fascia alta che si rivolgono agli utenti DIY che desiderano il massimo per la propria build. Tuttavia, mentre i primi due dispositivi mantengono questa direzione, le ventole purtroppo hanno mostrato qualche tallone d'Achille di troppo
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN è il primo monitor gaming con pannello QD-OLED Gen 5 a layout RGB Stripe Pixel e 360 Hz su 34 pollici: lo abbiamo misurato con sonde colorimetriche e NVIDIA LDAT. Ecco tutti i dati
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Nothing Phone (4a) Pro cambia pelle: l'alluminio unibody sostituisce la trasparenza integrale, portando una solidità inedita. Sotto il cofano troviamo uno Snapdragon 7 Gen 4 che spinge forte, mentre il display è quasi da top dig amma. Con un teleobiettivo 3.5x e la Glyph Matrix evoluta, è la prova di maturità di Carl Pei. C'è qualche compromesso, ma a 499EUR la sostanza hardware e la sua unicità lo rendono un buon "flagship killer" in salsa 2026
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-05-2007, 15:34   #1
Solido
Senior Member
 
L'Avatar di Solido
 
Iscritto dal: Jan 2004
Città: Figline(FI)
Messaggi: 5847
Help C parole palindrome

Ragazzi sono nuovo del c e lo devo imparare. oggi mi sono imbattuto in questo esempio che ho rimodellato ad intuito perchè non funzionava... solo che non mi è molto chiaro... l'esercizio è questo:
#include <stdio.h>
#include <string.h>

void main()
{
char s[100];
int i, flag;

i = 0;
scanf ("%s", s);
flag = 1;

while ((i < (strlen(s)/2)) && (flag == 1)) {
if (s[i] != s[strlen(s)-i-1]) {
flag = 0;
}
i++;
}
if (flag == 1) {
printf ("La parola è palindroma.\n");
return main();
} else {
printf ("La parola non è palindroma.\n");
return main();
}

}



non mi è molto chiara questa parte:


scanf ("%s", s);
flag = 1;
while ((i < (strlen(s)/2)) && (flag == 1)) {
if (s[i] != s[strlen(s)-i-1]) {
flag = 0;
}
i++;
}



e soprattutto queste 2 righe di codice:

while ((i < (strlen(s)/2)) && (flag == 1)) {
if (s[i] != s[strlen(s)-i-1]) {



inizia il while e io capisco questo:
mentre i(inizializzato a zero) è minore di parola/2 e flag è = a 1
se la lettera i-esima=lunghezza parola -i-1
flag =0




grazie in anticipèo a tutti
__________________
Ho concluso felicemente molte trattative su questo forum!
Solido è offline   Rispondi citando il messaggio o parte di esso
Old 24-05-2007, 15:44   #2
yorkeiser
Senior Member
 
L'Avatar di yorkeiser
 
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 517
flag è un valore che vale 1 se la stringa può essere palindroma, 0 se non lo è.

Il ciclo vuol dire: finchè non arrivi a metà stringa (per controllare che una parola sia palindroma basta controllarne la metà, dal momento che la stringa è simmetrica), confronta i caratteri simmetrici rispetto alla metà (ovvero il primo e l'ultimo, il secondo ed il penultimo...). Se sono diversi allora setta flag=0 (stringa non palindroma) altrimenti la stringa finora è palindroma (flag resta = 1) e prosegui con il controllo del prossimo carattere
__________________
Il sole è giallo
yorkeiser è offline   Rispondi citando il messaggio o parte di esso
Old 24-05-2007, 15:50   #3
Solido
Senior Member
 
L'Avatar di Solido
 
Iscritto dal: Jan 2004
Città: Figline(FI)
Messaggi: 5847
quindi "-i-1"
è ilo simmetrico di "i+1" rispetto la metà della parola?
__________________
Ho concluso felicemente molte trattative su questo forum!
Solido è offline   Rispondi citando il messaggio o parte di esso
Old 24-05-2007, 15:56   #4
yorkeiser
Senior Member
 
L'Avatar di yorkeiser
 
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 517
Esatto. Immagina la parola sia: HWUPGRADE (strlen = 9)

Posizione : lettera
i = 0 : lettera H -> strlen-i-1=8 lettera E
-----------------------------------------
i = 1 (W) -> strlen-i-1=7 (D)
-----------------------------------------
i = 2 (U) -> strlen-i-1=6 (A)

e così via
__________________
Il sole è giallo
yorkeiser è offline   Rispondi citando il messaggio o parte di esso
Old 24-05-2007, 16:06   #5
Solido
Senior Member
 
L'Avatar di Solido
 
Iscritto dal: Jan 2004
Città: Figline(FI)
Messaggi: 5847
Grazie mille... ora ti rompo per l'ultima volta( credo )

quel: flag=1; prima del ciclo sarebbe una sorta di if(questo)-> print(questo)
else print(quest'altro)?
se si come mai è scritto così? nn mi pare molto elegante diciamo
__________________
Ho concluso felicemente molte trattative su questo forum!
Solido è offline   Rispondi citando il messaggio o parte di esso
Old 24-05-2007, 16:16   #6
yorkeiser
Senior Member
 
L'Avatar di yorkeiser
 
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 517
Figurati, non rompi tranquillo
Il flag ti serve per uscire dal ciclo appena ti accorgi che la parola non è palindroma: se al primo giro nel while ti accorgi che la prima lettera e l'ultima non sono uguali, sai già che la parola non è palindroma ed è quindi inutile andare a fare il controllo per il resto dei caratteri. Infatti, se vedi, appena due caratteri simmetrici risultano diversi, il flag viene impostato a 0, la condizione del while fallisce ed esci dal while con flag=0 che è la condizione di stringa non palindroma. Più che come un if, puoi vederlo come una variabile di stato. flag viene impostato a 1 prima che entri nel ciclo perchè ragioni secondo la filosofia "parto con la condizione iniziale che la stringa è palindroma, appena mi accorgo che non lo sia setto flag=0". Se invece tutte le lettere simmetriche sono uguali, flag resta sempre ad 1 prima, durante e dopo l'uscita dal while e quindi la stringa risulta palindroma. Ovvio che il tutto poteva essere scritto in maniera diversa e forse più compatta, ma dal mio punto di vista sono sempre favorevole all'uso di variabili di stato, anche se conviene chiamarle con un nome un attimino più significativo (flag da sè non dice granchè)
__________________
Il sole è giallo
yorkeiser è offline   Rispondi citando il messaggio o parte di esso
Old 24-05-2007, 16:42   #7
Solido
Senior Member
 
L'Avatar di Solido
 
Iscritto dal: Jan 2004
Città: Figline(FI)
Messaggi: 5847
Quote:
Originariamente inviato da yorkeiser Guarda i messaggi
Figurati, non rompi tranquillo
Il flag ti serve per uscire dal ciclo appena ti accorgi che la parola non è palindroma: se al primo giro nel while ti accorgi che la prima lettera e l'ultima non sono uguali, sai già che la parola non è palindroma ed è quindi inutile andare a fare il controllo per il resto dei caratteri. Infatti, se vedi, appena due caratteri simmetrici risultano diversi, il flag viene impostato a 0, la condizione del while fallisce ed esci dal while con flag=0 che è la condizione di stringa non palindroma. Più che come un if, puoi vederlo come una variabile di stato. flag viene impostato a 1 prima che entri nel ciclo perchè ragioni secondo la filosofia "parto con la condizione iniziale che la stringa è palindroma, appena mi accorgo che non lo sia setto flag=0". Se invece tutte le lettere simmetriche sono uguali, flag resta sempre ad 1 prima, durante e dopo l'uscita dal while e quindi la stringa risulta palindroma. Ovvio che il tutto poteva essere scritto in maniera diversa e forse più compatta, ma dal mio punto di vista sono sempre favorevole all'uso di variabili di stato, anche se conviene chiamarle con un nome un attimino più significativo (flag da sè non dice granchè)


Grazie mille

beh allora dico:

O MORDO TUA NUORA O ARO UN AUTODROMO
__________________
Ho concluso felicemente molte trattative su questo forum!
Solido è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2007, 10:55   #8
Solido
Senior Member
 
L'Avatar di Solido
 
Iscritto dal: Jan 2004
Città: Figline(FI)
Messaggi: 5847
Raga riscrivo qui per un esercizio diverso ma faccio solo per nn aprire un nuovo thread....
non iresco a capire come mai mi dia errorre... mi deve dire solo se il numero che metto io è uguale o diverso da quello random del computer:



#include <stdio.h>
#include <stdlib.h>

void main()
{
int a, t, r;

r = rand();
printf("Il numero random è:%d\n",r);
a = -1;
while (a != r) {
printf ("Inserisci un numero: ");
scanf("%d",&a); }

if (a < r)
{
printf ("Inserisci un numero maggiore.\n");
}
else if(a > r)
{
printf ("Inserisci un numero minore.\n");
}



else
{

printf("Il numero che hai digitato corrisponde al numero random");
}





grazie mille
__________________
Ho concluso felicemente molte trattative su questo forum!
Solido è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2007, 15:54   #9
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16214
Quote:
Originariamente inviato da Solido Guarda i messaggi
non iresco a capire come mai mi dia errorre... mi deve dire solo se il numero che metto io è uguale o diverso da quello random del computer:



#include <stdio.h>
#include <stdlib.h>

void main()
main deve restituire un int.

E usa il tag CODE, per cortesia.
Quote:
Codice:
{ 
 int a, t, r; 
 
 r = rand(); 
 printf("Il numero random è:%d\n",r);
Il numero random è per caso 1?
Da' un'occhiata a http://www.hwupgrade.it/forum/showthread.php?t=1196677
(sì, lo so, dovrei aggiornarla...)
Quote:
Codice:
 a = -1; 
 while (a != r) { 
  printf ("Inserisci un numero: "); 
  scanf("%d",&a); }
Quando scanf ha finito di leggere il numero, se ne accorge perché legge un carattere newline, che non fa parte della scrittura di un numero.
Questo carattere viene rimesso a posto sullo standard input.
Quindi, la successiva scanf legge solo quel newline, con le conseguenze del caso.

Per ripulire lo standard input dopo la tua scanf,
Codice:
while (getchar() != '\n')
    ;
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Chi scherza col fuoco si brucia.
Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici
REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu
Ziosilvio è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2007, 16:12   #10
yorkeiser
Senior Member
 
L'Avatar di yorkeiser
 
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 517
Hai semplicemente cannato una graffa:

Codice:
while (a != r) { 
  printf ("Inserisci un numero: "); 
  scanf("%d",&a); 
}  // <--- NON DEVI CHIUDERE IL WHILE QUI
Questa ti va in loop e continui a leggere il numero in input indefinitamente.
Devi semplicemente mettere quella graffa dopo l'else: ti posto la soluzione corretta

Codice:
#include <stdio.h>
#include <stdlib.h>

void main()
{
int a, t, r;

r = rand();
printf("Il numero random è:%d\n",r);
a = -1;
while (a != r) {
printf ("Inserisci un numero: ");
scanf("%d",&a);

if (a < r)
{
printf ("Inserisci un numero maggiore.\n");
}
else if(a > r)
{
printf ("Inserisci un numero minore.\n");
}



else
{

printf("Il numero che hai digitato corrisponde al numero random");
}

}
}
P.S. Se sei alle prime armi, ti consiglio di cominciare a prendere la buona abitudine di indentare il codice, così errori di questo tipo li riconosci al volo. Ciao
__________________
Il sole è giallo
yorkeiser è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2007, 18:13   #11
Solido
Senior Member
 
L'Avatar di Solido
 
Iscritto dal: Jan 2004
Città: Figline(FI)
Messaggi: 5847
Grazie ad esntrambi ho risolto...
ehm si sono alle prime armi mi potresti dire che vuol dire identare?
__________________
Ho concluso felicemente molte trattative su questo forum!
Solido è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2007, 21:02   #12
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16214
Quote:
Originariamente inviato da Solido Guarda i messaggi
che vuol dire identare?
Scrivere il codice di un programma, in modo che le righe corrispondenti a uno stesso blocco di istruzioni, comincino dalla stessa colonna di testo.

Per inciso, l'indentazione è esattamente il metodo con cui si suddividono i blocchi di codice in Python.
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Chi scherza col fuoco si brucia.
Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici
REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu
Ziosilvio è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2007, 21:08   #13
Solido
Senior Member
 
L'Avatar di Solido
 
Iscritto dal: Jan 2004
Città: Figline(FI)
Messaggi: 5847
Ma phyton non è un linguaggio di programmazione?
__________________
Ho concluso felicemente molte trattative su questo forum!
Solido è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2007, 21:29   #14
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16214
Quote:
Originariamente inviato da Solido Guarda i messaggi
Ma phyton non è un linguaggio di programmazione?
Phyton, non lo so; Python, sì, e anche molto valido.
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Chi scherza col fuoco si brucia.
Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici
REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu
Ziosilvio è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2007, 21:34   #15
Solido
Senior Member
 
L'Avatar di Solido
 
Iscritto dal: Jan 2004
Città: Figline(FI)
Messaggi: 5847
Si vabbeh...cm si scrive si sacrive, cmq che c'entra col C?
__________________
Ho concluso felicemente molte trattative su questo forum!
Solido è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2007, 15:34   #16
Solido
Senior Member
 
L'Avatar di Solido
 
Iscritto dal: Jan 2004
Città: Figline(FI)
Messaggi: 5847
Ragazzi ho trovato qualche esercizio in pdf e melo son fatto... avete ualche link da consigliarmi?
in cui ci siano tanti esercizi con difficoltà appropriata e crescente?
__________________
Ho concluso felicemente molte trattative su questo forum!
Solido è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abb...
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz ASUS ROG Swift OLED PG34WCDN recensione: il prim...
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico Recensione Nothing Phone (4a) Pro: finalmente in...
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro WoW: Midnight, Blizzard mette il primo, storico ...
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
Unitree H1: il robot umanoide vicino al ...
GPU esterne: PCI-SIG porta le prestazion...
Per Lenovo i giocatori sono ricchi: Legi...
Polaroid lancia la nuova stampante Hi-Pr...
Da Kyndryl un gemello digitale per il di...
La Cina si prepara a una nuova missione ...
Climatizzatore Inverter A++ con Wi-Fi a ...
NZXT Flex, lo 'scandalo' del PC gaming a...
Robot lavavetri in offerta su Amazon: EC...
Attenti a questo update fake di Windows ...
NIO chiede la standardizzazione di batte...
Da 80 mesi-uomo a poche ore: l'AI cambia...
In 2 settimane senza social il cervello ...
Amazon top 7 di oggi: 2 portatili intere...
SteamGPT trapela dal client Steam: ecco ...
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: 19:13.


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