|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Oct 2009
Messaggi: 50
|
[C] conteggio dei caratteri
mi sto avvicinando per la prima volta alla programmazione, ho iniziato con python, ma sono passato al C. Ho comprato il libro "il linguaggio C. principi di programmazione e manuale di riferimento. brian w. kernighan, dennis m. ritchie" e sto studiando da la! sono fermo al paragrafo 1.5.2 capitolo 1.. il programma per il conteggio dei caratteri, non funziona.. non apisco dove sbaglio. ho visto che c'e un'altra discussione sul forum, ma non mi e stata d'aiuto. il codice è:
#include <stdio.h> main() { long nc; nc = 0; while (getchar()!= EOF) ++ nc; printf("%1d\n", nc); } |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
|
Quote:
Mmm, non so se il libro di K&R sia ancora il migliore per imparare il C visto che non credo descriva neanche l'ANSI C ... comunque a parte questo in che cosa non funziona? Non compila ? O il programma non fa quello che ti aspetti? Comunque se stai imparando a programmare adesso e hai già iniziato con python potresti continuare con quello che ti permette di espanderti anche ad altri concetti, come l'OOP o la programmazione con le lambda functions senza imparare nessun nuovo linguaggio e poi se ti serve imparare il C o il C++ . Questo sempre che tu non lo stia imparando per qualche ragione specifica ( Scuola, università , necessità perchè vuoi lavorare su un programma scritto in C). Ciao PS= A me compila e funziona
__________________
GPU Compiler Engineer |
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Oct 2009
Messaggi: 50
|
Io iniziai con python perchè lessi che era uno dei più semplici, poi però ho visto che la maggior parte dei programmi è scritta in C e quindi mi sono spostato su quello.. lo faccio per conto mio, ho 17 anni e vado in 4 superiore alla scuola agraria.. non mi interessa niente di quella scuola, infatti l ho scelta per pigrizia! Cmq.. il linguaggio di programmazione mi affascina, come il pc in generale.. cmq.. questo programma, in poche parole non fa niente.. una volta compilato in .exe (uso dev c++) lo apre con il prompt di windows, ma quando immetto un carattere, e premo invio, non succede proprio niente.. cmq sulla copertina del libro c'e scritto "ANSI C".. IL LIBERO è SECONDA EDIZIONE
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Dec 2006
Messaggi: 3808
|
Quote:
B) il K&R non è la fonte più aggiornata, anche se comunque anche alcuni IDE non hanno il supporto all'ANSI C e imparare anche le prime versioni del linguaggi può aiutare C) EOF significa "fine del file" ed è l'identificativo che si trova appunto alla fine del file, adesso tu cosa stai contando? da dove? Così com'è il programma ha errori logici molto gravi. |
|
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Oct 2009
Messaggi: 50
|
Io che parto da zero, da dove potrei iniziare? Conta che devo imparare tutto da solo..
cmq..il codice, è preso così com'è dal libro! dovrebbe contare i caratteri in ingresso |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Dec 2006
Messaggi: 3808
|
Quote:
http://books.google.it/books?id=Z-Rf...ed=0CCsQ6AEwAA |
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
|
Per far fare al programma il suo lavoro devi passare il carattere speciale end-of-file (EOF) al terminale una volta che hai scritto i caratteri. Per farlo su Linux devi premere la combinazione "Ctrl+D", su Windows "Ctrl+Z".
Non so se già lo sai, ma ti sconsiglio di far partire il programma direttamente da DEV-C++ , perchè sennò appena premi "Ctrl+Z" e il programma termina il terminale si chiude e non riesci a vedere il risultato . Apri un terminale tu , muoviti fino alla directory dove è contenuto l'eseguibile ".exe" generato da Dev-C++ ed esegui il programma manualmente dal terminale, così questo non si chiuderà dopo . Per quanto riguarda il libro ti consiglio di cercartene un'altro ... sinceramente quel libro che hai tu aiuta poco i nuovi arrivati perchè è più un manuale che un libro. E' adatto ai "già programmatori" e poco ai novellini. Ti consiglio di cercarti un libro più per principianti, come quelli ad esempio di Deitel & Deitel o simili. Per quanto riguarda l'imparare a programmare e il C sappi che se parti dal C prima di iniziare a fare qualcosa di pratico passerà un bel po' di tempo, perchè è un linguaggio decisamente complesso per un principiante e anche per fare le cose più semplici potrebbe risultare frustrante col rischio di farti perdere interesse. Partendo da un linguaggio più di alto livello come python o java potresti iniziare ad essere produttivo in meno tempo e iniziare già a fare qualche programmino semi serio con una interfaccia grafica molto prima rispetto al C il che potrebbe stimolarti nell'apprendere di più. In base a questo valuta tu cosa è meglio fare. Ciao
__________________
GPU Compiler Engineer |
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Dec 2006
Messaggi: 3808
|
Quote:
il ragionamento su cosa faccia questo software è molto dipendente dal terminale e dalla shell in cui viene eseguito, lascerei stare per adesso, anche perché i manuali di programmazione tendono sempre ad essere molto rigidi nell'esposizione e a non considerare i dettagli implementativi e le 1000 variabili date dall'ambiente di esecuzione. |
|
|
|
|
|
|
#9 | |
|
Member
Iscritto dal: Oct 2009
Messaggi: 50
|
Quote:
ah ecco, adesso funziona, grazie! cmq.. Allora ricapitoliamo: 1) Che libro potrei prendere su Python? Qualcosa di aggiornato.. ricordandoci sempre che parto da 0, e devo imparare tutto da solo! 2) Che libro prendere su C? ..ricordandoci sempre che parto da 0, e devo imparare tutto da solo! 3) Freaxxx, sii + chiaro! xD spiegami cosa vuoi dire.. Grazie a tutti comunque (: |
|
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Dec 2006
Messaggi: 3808
|
Quote:
|
|
|
|
|
|
|
#11 | |
|
Senior Member
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
|
Quote:
E' un po' vecchio e per python 2 (che comunque è ancora il più diffuso e passare al 3 non è per niente difficile) , ma è molto dettagliato e spiega le basi della programmazione come un principiante dovrebbe impararle. Per il C come ti ho detto (e anche Freaxxx) cerca un libro di Deitel & Deitel. Su Google cerca "Deitel & Deitel C programming" e qualcosa trovi Purtroppo è una vita che non cerco libri sul C perchè ormai lo so a memoria
__________________
GPU Compiler Engineer |
|
|
|
|
|
|
#12 |
|
Member
Iscritto dal: Oct 2009
Messaggi: 50
|
a proposito del software che mi hai linkato, e quello che hai detto dopo.. mi sono perso.
cmq. quel libro su python che consgliano sul forum, ho letto che è abbastanza vecchio e non continene gli aggiornamenti al linguaggio python.. una cosa simile.. dici ke è rilevante? inizio a studiarmelo? |
|
|
|
|
|
#13 | |
|
Senior Member
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
|
Quote:
http://wiki.python.org/moin/Beginner...NonProgrammers Sono le risorse di python ufficiali e non per i non-programmatori. Vedi se trovi qualcosa di buono qua
__________________
GPU Compiler Engineer |
|
|
|
|
|
|
#14 |
|
Member
Iscritto dal: Oct 2009
Messaggi: 50
|
grande problema.. è tutto in inglese
|
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
|
Se non sai bene l'inglese potrebbe essere un problema . Praticamente tutto il materiale di un certo livello è in lingua inglese. Se vuoi avere un futuro in questo campo (ad esempio perchè vuoi continuarne lo studio all'università) ti consiglio di concentrarti sul miglioramento della conoscenza di questa lingua . Potresti cogliere proprio l'occasione di leggere un po' di materiale in inglese per migliorarlo. Con le guide/libri in italiano in genere si arriva solo fino a un certo punto (base) e poi non si trova più niente o poco.
Ciao
__________________
GPU Compiler Engineer |
|
|
|
|
|
#16 |
|
Member
Iscritto dal: Oct 2009
Messaggi: 50
|
eh si lo so.. l'inglese mi piace, e non sono neanche tanto scarso.. ma leggere un testo sulla programmazione in inglese neh.. impossible per adesso :S
cmq.. con python da dove inizio? :S |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:05.




















