Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Lenovo IdeaPad Slim 3: un notebook Snapdragon X economico
Lenovo IdeaPad Slim 3: un notebook Snapdragon X economico
Forte della piattaforma Qualcomm Snapdragon X, il notebook Lenovo IdeaPad Slim 3 riesce a coniugare caratteristiche tecniche interessanti ad uno chassis robusto, con autonomia di funzionamento a batteria che va ben oltre la tipica giornata di lavoro. Un notebook dal costo accessibile pensato per l'utilizzo domestico o in ufficio, soprattutto con applicazioni native per architettura ARM
Recensione OnePlus Watch 3 43mm: lo smartwatch che mancava per i polsi più piccoli
Recensione OnePlus Watch 3 43mm: lo smartwatch che mancava per i polsi più piccoli
OnePlus risponde alle esigenze di chi cerca un dispositivo indossabile dalle dimensioni contenute con OnePlus Watch 3 43mm. La versione ridotta del flagship mantiene gran parte delle caratteristiche del modello maggiore, offrendo un'esperienza completa in un formato compatto. Il suo limite più grande è abbastanza ovvio: l'autonomia non è il punto di forza di questo modello, ma si raggiungono comodamente le due giornate piene con un uso normale.
BOOX Note Air4 C è uno spettacolo: il tablet E Ink con Android per lettura e scrittura
BOOX Note Air4 C è uno spettacolo: il tablet E Ink con Android per lettura e scrittura
BOOX Note Air4 C rappresenta l'ultima incarnazione della categoria dei tablet E Ink a colori di Onyx, e combina le prestazioni di un dispositivo Android con l'ottima tecnologia Kaleido 3 per il display. Con schermo da 10,3 pollici, un processore Qualcomm Snapdragon 750G e 6 GB di RAM, promette un'esperienza completa per lettura, scrittura e produttività. Il prezzo lo posiziona nel segmento premium, ma questo dispositivo è un vero spettacolo!
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 30-09-2009, 17:18   #1
emanuele.g
Junior Member
 
Iscritto dal: Sep 2009
Messaggi: 4
[C] un neofita cerca aiuto, si chiude il prompt dei comandi

Salve a tutti, spero di non aver sbagliato sezione, ma sono nuovo
Vado al dunque subito, frequento ing. civile, e stiamo facendo il corso di programmazione, per il momento non ci sono state spiegate molte cose, ma nonostante tutto volevo provare a fare qualcosa a casa...
Mi è venuto in mente un programma che visualizzasse semplicemente la somma di due numeri, vi posto il codice:

#include<stdio.h>
main()
{
printf("Inserire il primo numero");
scanf("x");
printf("Inserire il secondo numero");
scanf("y");
printf("x+y");

}


peccato che c'è un problema, non appena inserisco il primo numero e premo invio, non faccio quasi neanche in tempo a leggere inserire il secondo numero che il prompt dei comandi si chiude, come mai? come lo risolvo?

Ultima modifica di emanuele.g : 30-09-2009 alle 17:23.
emanuele.g è offline   Rispondi citando il messaggio o parte di esso
Old 30-09-2009, 17:39   #2
Energy++
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 1059
a parte il fatto che quello non è assolutamente un codice funzionante

sintassi di scanf, variabili e cose del genere, mai sentite eh?

Ultima modifica di Energy++ : 30-09-2009 alle 18:29.
Energy++ è offline   Rispondi citando il messaggio o parte di esso
Old 30-09-2009, 17:45   #3
emanuele.g
Junior Member
 
Iscritto dal: Sep 2009
Messaggi: 4
usandolo con dev C++ sembra funzionare...
almeno l'inizio
emanuele.g è offline   Rispondi citando il messaggio o parte di esso
Old 30-09-2009, 17:50   #4
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Energy++, in effetti se ci pensi é vero
prima legge degli input dallo standard input (sconquassando lo stack ), poi stampa "x+y" e alla fine si chiude

bah, sono senza parole

la mia versione:
Codice:
#include <stdlib.h>
#include <stdio.h>

int main()
{
    int x, y;
    printf("inserire il primo numero: ");
    scanf("%d", &x);
    printf("inserire il secondo numero: ");
    scanf("%d", &y);
    printf("la somma é %d\n", x + y);
    return 0;
}
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 30-09-2009, 17:53   #5
emanuele.g
Junior Member
 
Iscritto dal: Sep 2009
Messaggi: 4
della serie perculiamo uno se non è capace, bel comportamento, complimenti
per il momento me l'han spiegata così,non credevo mancassero dei pezzi, del resto l'avevo detto che ero all'inizio...

cazzo sfottete poi...:-|
emanuele.g è offline   Rispondi citando il messaggio o parte di esso
Old 30-09-2009, 18:10   #6
Energy++
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 1059
Quote:
Originariamente inviato da emanuele.g Guarda i messaggi
della serie perculiamo uno se non è capace, bel comportamento, complimenti
per il momento me l'han spiegata così,non credevo mancassero dei pezzi, del resto l'avevo detto che ero all'inizio...

cazzo sfottete poi...:-|
il fatto è che, da quello che hai scritto, si capisce che:

1. o non hai letto nemmeno 1 pagina di teoria
2. o quelli che che ti hanno detto che si fa in quel modo sono degli incompetenti
3. o tu hai capito male e quindi ti consiglio di cominciare a prendere il bel libro di C e iniziare a studiare
Energy++ è offline   Rispondi citando il messaggio o parte di esso
Old 30-09-2009, 18:16   #7
yorkeiser
Senior Member
 
L'Avatar di yorkeiser
 
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 517
Quote:
Originariamente inviato da Energy++ Guarda i messaggi
il fatto è che, da quello che hai scritto, si capisce che:

1. o non hai letto nemmeno 1 pagina di teoria
2. o quelli che che ti hanno detto che si fa in quel modo sono degli incompetenti
3. o tu hai capito male e quindi ti consiglio di cominciare a prendere il bel libro di C e iniziare a studiare
Quote:
Originariamente inviato da emanuele.g
Vado al dunque subito, frequento ing. civile, e stiamo facendo il corso di programmazione, per il momento non ci sono state spiegate molte cose, ma nonostante tutto volevo provare a fare qualcosa a casa...
L'utente ha specificato che è alle prime basi (anzi, che non ha neanche quelle) ma nonostante ciò sta provando a fare qualcosa: mi pare un tentativo lodevole, perchè piuttosto non gli spiegate gli errori che ha commesso, così li capisce anche lui ?
__________________
Il sole è giallo
yorkeiser è offline   Rispondi citando il messaggio o parte di esso
Old 30-09-2009, 18:17   #8
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
Quote:
Originariamente inviato da Energy++ Guarda i messaggi
apparte il fatto che quello non è assolutamente un codice funzionante

sintassi di scanf, variabili e cose del genere, mai sentite eh?
e a parte che non si scrive "apparte" ma "a parte".

Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 30-09-2009, 18:29   #9
Energy++
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 1059
Quote:
Originariamente inviato da Vincenzo1968 Guarda i messaggi
e a parte che non si scrive "apparte" ma "a parte".

chiedo scusa per la svista

Ultima modifica di Energy++ : 30-09-2009 alle 18:36.
Energy++ è offline   Rispondi citando il messaggio o parte di esso
Old 30-09-2009, 20:19   #10
Y3PP4
Member
 
Iscritto dal: Jul 2009
Messaggi: 210
Ciao,

questo codice non può funzionare perchè non usi in modo appropriato le varie funzioni. Non ti compare la seconda stringa "Inserire il secondo numero" perchè il programma và in crash per via dell'utilizzo improprio, appunto, della funzione scanf.
Il mio consiglio, prima di continare è quello di cercare a mano a mano, su Google le varie funzioni e cercare di capire come si usano, quali parametri accettano e quali risultati restituiscono. Ovviamente la base, ovvero, i principi elementari di un programma, il significato di una return perchè si deve usare per forza main() etc, tra cui i tipi di dati esistenti nel C sono d'obbligo.
La prima riga:
Codice:
#include <stdio.h>
è giusta, ed è una direttiva del preprocessore (presente nei maggiori compilatori oggi esistenti, appunto pre-processa il sorgente).
Praticamente gli dice includi nel sorgente da compilare il contenuto del file header di nome "stdio" (standard I/O).
Questo header contiene le dichiarazioni (che si differenzia dalla definizione, per maggiori info su wiki cerca i due termini) delle funzioni primarie per la gestione dello standard input e output (in C referenziati come stdin e stdout)
Codice:
main()
io ti consiglio di cambiarlo con:
Codice:
int main(){
int preposto al nome della funzione, specifica che la funzione restituisce un valore intero (return 0. In vari compilatori la sua mancanza (non dell'int, ma del tipo di dato restituito -nel caso sia assente o indefinito è di tipo void-) genera un errore che impedisce di ottenere l'eseguibile -sinceramente non ricordo se è compito del compilatore o del linker-.
Il programma deve necessariamente contenere una funzione di nome main in quanto è l'entry point, la locazione di memoria da cui comincerà l'esecuzione del programma. In assenza riceverai un errore durante la compilazione dell'eseguibile.
Codice:
printf("Inserire il primo numero");
Questa funzione è usata in modo proprio. Tieni a mente che verrà stampata esattamente com'è -al termine dell'istruzione non verrà effettuato il ritorno a capo-, pertanto potresti voler separare di almeno uno spazio la stringa dal numero che devi immettere
Codice:
printf("Inserire il primo numero: ");
Ecco qui l'utilizzo improprio della funzione scanf.
Innanzitutto, la scanf è dichiarata come:
Codice:
 int scanf(char *format, args ...)
Accetta come primo parametro un identificatore del tipo di formato che verrà immesso dall'utente (nel tuo caso sarà %d -intero-) e come secondo argomento la variabile che conterrà il valore. In verità come vedi i puntini indicano che puoi immettere più variabili, ma tralasciamo le cose, attualmente, inutili.
Ora sapendo che: per forza di cose una variabile deve essere dichiarata PRIMA del suo utilizzo, capirai che prima di usare quella funzione te devi dichiarare una variabile per contenere il valore.
Per ordine le variabili andrebbero poste all'inizio del programma. Adesso con i nuovi standard è possibile mettere le varibili appena prima del loro utilizzo, ma, prendi con le pinze quanto stò per dirti, una volta era obbligatorio definire all'inizio del blocco di codice (un blocco è racchiuso tra {} -semplice terminologia, niente di chè-).
Alla fine ti mostro un esempio funzionante ora, invece, riscrivo solo la funzione in una funzionante:
Codice:
scanf("%d", &x);//supponendo di aver già dichiarato X come int
//la e commerciale dice al compilatore di passare l'indirizzo della variabile anzichè passarne una copia.
Idem per il secondo printf e scanf che quindi tralascio ora.
Codice:
printf("x+y");
E' errato in quanto stai dicendo: stampa la stringa (definita dalle virgolette, o doppi apici) "x+y".
Per ottenere il risultato che ti aspetti devi usare una piccola convenzione C:
Codice:
printf("%d", (x+y))//ecco che ritorna %d che indica ancora una volta che verrà passato un intero
//per maggiori info basta una semplice impolverata sulle basi di I/O
A questo punto il sorgente è quasi pronto.
Quasi perchè manca la funzione return, che restituisce un valore intero. 0 indica terminazione con successo, altri valori indicano uno stato d'errore.

A questo punto il sorgente funzionante è:
Codice:
#include <stdio.h>
int main()
{ //apro il blocco di istruzioni
  int x,y; //la virgola mi permette di istanziare più variabili in una sola istruzione;
  printf("Inserisci il primo numero: ");
  scanf("%d", &x); //salvo il valore immesso nella var x
  printf("Inserisci ora il secondo numero: ");// qui, curiosità ti trovi a capo la stringa
// poichè la pressione di Enter o Invio per la scanf causa un ritorno a capo.
  scanf("%d", &y); //ora salvo in y
  printf("Il risultato della addizione di x(%d) + y(%d) è:%d", x, y, (x+y));
// Come vedi per ogni occorrenza della sequenza di caratteri %d ho immesso 
// dopo un valore del tipo intero (avendo usato %d). In caso contrario si
// solleverebbe una eccezione
  return 0;//restituisco 0, terminazione con successo
}//chiudo il blocco di istruzioni
Questo è quanto. Aggiungo solo che // permette di scrivere commenti che terminano a fine riga.
Buona serata.
__________________
La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.
Isaac Asimov
Y3PP4 è offline   Rispondi citando il messaggio o parte di esso
Old 30-09-2009, 20:23   #11
Y3PP4
Member
 
Iscritto dal: Jul 2009
Messaggi: 210
Chiedo scusa per il doppio post consecutivo. Ma ho sbagliato a cliccare tra modifica e quote.
Un consiglio:
Codice:
ca**o sfottete poi...:-|
Non usare certe espressioni volgari, rischi di rimetterci solo tu sia come immagine che per eventuali interventi della moderazione. Semplicemente ignora ciò che ti infastidisce o segnala alla moderazione le repliche che ritieni fuori luogo o offensive, qualora dovessero mai esserci. Io non mi riferisco a nessuno in particolare, parlo in generale.
__________________
La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.
Isaac Asimov
Y3PP4 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Lenovo IdeaPad Slim 3: un notebook Snapdragon X economico Lenovo IdeaPad Slim 3: un notebook Snapdragon X ...
Recensione OnePlus Watch 3 43mm: lo smartwatch che mancava per i polsi più piccoli Recensione OnePlus Watch 3 43mm: lo smartwatch c...
BOOX Note Air4 C è uno spettacolo: il tablet E Ink con Android per lettura e scrittura BOOX Note Air4 C è uno spettacolo: il tab...
Recensione Sony Xperia 1 VII: lo smartphone per gli appassionati di fotografia Recensione Sony Xperia 1 VII: lo smartphone per ...
Attenti a Poco F7: può essere il best buy del 2025. Recensione Attenti a Poco F7: può essere il best buy...
Formula E, primi test con la Gen4: salto...
WhatsApp Android Beta: in fase di test i...
ChatGPT dimezza le visite ai siti web: c...
L'Italia ama i quadricicli elettrici: Fi...
YouTube introduce il download dei video ...
I nuovi browser AI possono rubarti soldi...
Non solo Autovelox e Sorpassometro, in a...
Tariffe auto UE-USA: l'accordo abbassa i...
ChatGPT diventa low cost con il nuovo ab...
Gemini diventa il tuo personal trainer: ...
Molte novità per TrueNAS 25.10 Go...
Eureka J15 Ultra vs J15 Pro Ultra: il ro...
Microsoft registra milioni di telefonate...
Xiaomi 16 Pro in arrivo anche con una va...
Tenta il furto di un monopattino elettri...
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:39.


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