# [OT] Programmazione C

## Diggs

So disperato   :Crying or Very sad: 

Cosa mi consigliereste per iniziare con la Programmazione C? [Voi direste "perchè C?" io risponderei "da qualche cosa dovrò pur cominciare!"   :Rolling Eyes:  ]. Ho visto e girato parecchi siti [giusto per rendermi conto], tuttavia preferisco rivolgermi ancora al vecchio ma caro supporto cartaceo: che libri mi consigliereste in tal caso?   :Wink: 

[ se mi potesse segnalare degli ebook disponibili online ve ne sarei grato].

----------

## MyZelF

 *leonardo wrote:*   

> 
> 
> [ se mi potesse segnalare degli ebook disponibili online ve ne sarei grato].

 

http://cdrom.gnutemberg.org/italiani/imparareC.pdf

ciao

----------

## augustus

Come non consigliare il buon vecchio manuale di K&R  :Wink:   :

Linguaggio C - ansi C

2° edizione

di Brian W. Kerningan e Dennis Ritchie

----------

## babalinux

1) Secondo me, fai assolutamente bene ad imparare il C: e' altamente formativo e dopo anni di esperienza mi meraviglio sempre del bagaglio tecnico che possa costituire per un programmatore. Inoltre e' un utile fondamento per l'apprendimento e la comprensione di altri linguaggi, nonche' il linguaggio con cui e' stato scritto Linux (ed altri OS);

2) libro: B. W. Kernighan and D. M. Ritchie, The C Programming Language Second Edition, Prentice-Hall - ultima edizione disponibile. 

Vale veramente la pena comprarlo ed avere in casa il cartaceo.

Documentati inoltre sulla standardizzazione ANSI.

cheers,

baba.

----------

## Diggs

Tnx!!!

----------

## silian87

Io ho imparato il c++ con il libro "c++ Fondamenti di programmazione" della deitel and deitel. Se trovi qualcosa del genere per il c credo che vada bene. Ha ottima spiegazione, pratica più teorica con molti esempi. Se c'è troppa teoria finisce che non ci capisci niente e non sai risolvere problrmi pratici.   :Cool: 

----------

## koma

so che sembrerò ridicolo ma io studio ( e studierò fino alla fine della scuola) il visual basic.

Lo studiamo per le strutture dinamiche e non con incroci riguardanti access e asp ... secondo me non è tanto il linguaggio che forma ma la teoria che c'è dietro.. traduco:

Se volessi scrivere un romanzo e conoscessi 6 lingue non importerebbe la lingua ma il saper scrivere il romanzo.

Accetto commenti  :Wink: 

----------

## cerri

Non e' polemica giuro, ma e' solo per farsi 4 risate.

Io ho a che fare con programmatori che vengono da scuola in php e hanno la pretesa di saper fare CMS in ASP...

Ovviamente fa acqua.

Ma sara' forse perche' la prima linea di visualbasic e' sempre questa????

```
On Error Resume Next
```

 :Very Happy:   :Very Happy:   :Very Happy: 

----------

## silian87

ahahaha è vero, anche a me avevano detto di metterla come prima riga hahah.   :Laughing:   :Laughing:   : E poi quanti goto si usavano???  :Laughing: 

----------

## shev

[mode polemico on]Visual basic non è un linguaggio, è una @#!!@#: pazzesca   :Evil or Very Mad:  [/mode polemico on]

Cmq oltre ad essere d'accordo con la scelta del linguaggio (caro vecchio C  :Very Happy: ) e con i testi consigliati (il Kernighan/Ritchie mi piace moltissimo, come mi sentirei di consigliare a chi sta muovendo i primi passi i Deitel&Deitel, molto "didattici" e chiari: ne ho l'intera serie per i vari linguaggi  :Razz: ), se poi proprio si volesse imparare con qualcosa che non sia il C, consiglierei il mio pupillo Python, di cui trovi due ottimi libri più o meno introduttivi gratuitamente sul sito ufficiale (e tradotto ottimamente in italiano sul sito python.it).

----------

## DuDe

se spulci nel kernel, ce no sono uno svariato di goto, e se e' prevista come parola chiave nel c, non credo che fucilare qualcuno per l'uso sia una buona cosa!

----------

## silian87

Ieri stavo dando un'occhiatina (  :Laughing:  ) al kernel 2.4.22. Gironzolando qua' e la' ho trovato una sezione mastodontica, di cui non ho trovato ne capo ne fine, piena di valori in esadecimale separati dalla virgola. Qualcuno sa cosa sono  :Shocked:   :Shocked:  ?

----------

## DuDe

Magari ti sei imbattuto nel logo? non e' altro che un'array riempito con i caratteri hex del logo!

----------

## silian87

hahaha è possibile, che pirla  :Embarassed:  . Ma ce ne erano veramente tanti valori!!! Cmq il kernel è tanto grande anche perchè dentro ci sono tanti di quei commenti (utili)!!!

----------

## DuDe

Non solo, e' tanto grande perche' comprende il supporto per diverse architetture e una marea di driver, se un kernel dovesse fare solo il kernel non sarebbe cosi' grande, ma dovendosi interfacciare direttamente con il piu' disparato hardware, e' ovvio che deve avere i driver infatti se noti bene la directory driver e' abbastanza affollata!  se vuoi smanazzare col kernel, divertiti a mettere qualke printk in mezzo al codice del kernel ( stampa solo delle info)  danni non ne fai!   :Laughing: 

----------

## bubble27

 *the-matrix wrote:*   

> Come non consigliare il buon vecchio manuale di K&R   :
> 
> Linguaggio C - ansi C
> 
> 2° edizione
> ...

 

Questo manuale/libro è disponibile anche in rete ?? il prof. di programmazione dice che è diventato di pubblico dominio però sinceramente non riesco a trovarlo .... o forse la release in italiano non c'è (on-line) ... ne sai qualcosa ??

ciao Gentooaglia

----------

## cerri

 *bubble27 wrote:*   

> Questo manuale/libro è disponibile anche in rete ??

 

Per ignoranza

 *contez3ro wrote:*   

> <conte`afk> ovviamente il k&r _non e'_ di pubblico dominio:)
> 
> <conte`afk> (purtroppo)

 

----------

## bubble27

 *cerri wrote:*   

>  *bubble27 wrote:*   Questo manuale/libro è disponibile anche in rete ?? 
> 
> Per ignoranza
> 
>  *contez3ro wrote:*   <conte`afk> ovviamente il k&r _non e'_ di pubblico dominio:)
> ...

 

 :Confused:  mmmhhh .... allora il prof. l'altro giorno s'è fumanto una canna.... alla prox lezione chiederò meglio ....   :Laughing: 

ciao Gentooaglia

----------

## babalinux

Ho programmato per anni e continuo a farlo per lavoro (dipendente, chiuso in una stanza, quindi con dei ritmi che mi lasciano giusto il tempo per scrivervi una mail ogni tanto  :Wink: ).

Rilevo quanto segue dalla mia lunga esperienza con VB e simili (VBscript, VBA etc.): non c'e' crescita. 

Mi spiego, tali linguaggi ti relegano ad un livello di conoscenza tecnica e abilita' veramente basso. Il programmatore che non ha un background nozionistico e di esperienza non impara, da questi linguaggi, nulla di piu' che il loro mero utilizzo.

Non mi dilungo per paura di diventare tedioso ma se volete possiamo scambiarci su questo tutte le opinioni che volete. Chiudo dicendo che, tra l'altro, anche dal punto di vista del paradigma di programmazione con cui e per cui sono stati creati sono barbaramente inadeguati. Cito solo ad esempio il fatto che VB, fino alla versione 6, non e' un linguaggio che consenta OOP (i tre requisiti fondamentali non sono soddisfatti per due punti: ereditarieta' e polimorfismo).

Questo, ovviamente, se la discussione avviene tra addetti del settore. Posso invece capire che per persone che scrivono software per divertimento e/o senza requisiti particolari (e cio' sia detto nel pieno rispetto di tali situazioni che sono state e possono ancora essere anche le mie) VB sia stata una ventata d'aria fresca.

Aggiungo anche che il mio non e' un cieco accanimento contro la casa produttrice o l'OS su cui l'IDE suddetto opera. Infatti cito, a favore di Micr***ft, VisualC++ e, come tool di sviluppo per Finester, Delphi che ha una ottima rappresentazione dell'OOP (anche se non "pura" dira' qualcuno che lavora solo con Java  :Wink:  ), altrettanta intuitivita' di VB, potenzialita' esponenzialmente piu' elevate e prestazioni che cambiano ordine di grandezza.

P.S. per chi parlava di "GoTo": il costrutto e' supportato in molti linguaggi, anche il C. Tuattavia non significa che gli aspetti e risvolti negativi che, quasi sistematicamente, ne contraddistinguono l'utilizzo, cadano solo perche' Torvalds lo ha utilizzato.

cheers,

baba

<edit_per_la_metafora_di_koma>

    se conoscessi solo VB il romanzo che scriveresti sarebbe un libercolo   :Wink: 

</edit_per_la_metafora_di_koma>

----------

## xlyz

 *Shev wrote:*   

> se poi proprio si volesse imparare con qualcosa che non sia il C, consiglierei il mio pupillo Python, di cui trovi due ottimi libri più o meno introduttivi gratuitamente sul sito ufficiale (e tradotto ottimamente in italiano sul sito python.it).

 

se l'obiettivo è imparare a programmare supporto il consiglio di shev

per fati un'idea di cos'è puoi iniziare da qui

----------

## silian87

Per il goto io intendevo di gente che invece di mettere un repeat o un for:

```
repeat

            operazione

         until condizione = non  verificata

```

faceva oscenità di questo tipo:

```
etichetta1:

            operazione

            if condizione = verificata  

               goto etichetta1

            else

               continua programma 

```

Ho visto gente fare questo   :Laughing:  ..... Logico che se si usano bene possono servire, ma io mi dimentico che esistano. Credo che se non strettamente neccessari è meglio evitarli.

A sfavore del basic, secondo me, è anche il fatto che una verifica di una condizione ed una assegnazione si fanno sempre con lo stessso segno (=). In questo modo quando la gente che viene dal basic migra, non capisce una mazza della differenza tra == e = ad esempio.

E poi, quel on error goto .......  :Laughing: 

----------

## max_1975

Io ti consiglio di imparare il C++ ...Perché? Per i seguenti motivi:

-in ambito aziendale/professionale è il linguaggio di riferimento

-il C è contenuto nel C++

-è un linguaggio orientato agli oggetti (il che non fa male)

Ed ora un po di bibliografia:

-Lippman & Lajoye "C++" Addison Wesley

-W.Savitch "Absolute C++" Addison Wesley (ottimo per iniziare, però è in inglese)

-B.Stroustrup "Il linguaggio C++" (il più difficile ma l'autore è quello che ha inventato il C++)

Per il C ti consiglio Kerninghan & Ritchie

Ciao

----------

## akiross

Io consiglio di imparare il BASIC

e' stabile, solido, veloce, sicuro, affidabile, ma soprattutto MOLTO UTILIZZATO

ahahahahhahahah ovviamente scherzo  :Very Happy: 

Io programmo in C/C++, che ti consiglio.

DI manuali ne ho visti elencati parecchi, pertanto non ne aggiungo.

Piu' che altro... prima ti consiglio il C - e non C++ misto a C - e poi passare a C++.

Finito quello - e ce ne vuole - prova PYTHON, JAVA e PHP, giusto per avere un assaggio di tutte le categorie (o quasi: applicazioni in locale, script, applicazioni x internet, gateway). Poi, anche se probabilmente resterai sull'ottimo C  :Smile: , scegli quello che vuoi

Per quanto riguarda i GOTO:

non e' un male utilizzarli, solo che spesso si abusa, il codice diventa poco leggibile e/o inefficiente.

Il fatto che ci sia in C e' perche' esistono alcune - rare - situazioni, in cui e' indispensabile/piu' comodo. E' come il discorso delle ricorsive: si possono sostituire con un ciclo, ma a volte sono piu' comode da usare (o viceversa)

Ciao!

----------

## DuDe

Premessa: non voglio aprire un flames.

Dove lavoro, venni assunto come programmatore COBOL, in quanto la societa' dove lavoro lavora con e per le banche quindi parecchi programmi, vista la natura , sono scritti in cobol, qui mi insegnarono ad usare il cobol ovviamente per il settore specifico, e come molti di voi sanno, e' pieno di goto e perform be' io non avendo mai programmato, non ho trovato difficolta' a leggere listati in cui si rimbalzava, anzi in certe situazioni li trovavo leggibilissimi, ora secondo me si criminalizza un po' troppo l'uso/abuso di tale sistema.

il tutto IMHO

----------

