DOMANDA Cosa si deve sapere del linguaggio C

Pij87

Nuovo Utente
Salve, sono un appassionato di programmazione, sto studiando il linguaggio C. Fino ad ora ho stiduato:

- Istruzione I/O
-Cicli
-If, else if, else
-Gestione file
-Arrary
-Main e le funzioni esterne al main
- puntatori

Adesso sto studiando le API di windows.
Il mio dubbio è, cosa devo studiare ancora??

grazie in anticipo per le risposte.
 
M

Mursey

Ospite
Il mio scopo è sapere tutto è di più sulla programmazione.
Va bene ma lo scopo pratico finale e' programmare, cosa vuoi programmare ?

Io programmo da 26 anni e non so tutto e di piu', solo quello che mi serve.
Piu' che esplorare un linguaggio a 360 gradi e' importante saper programmare come teoria e risoluzione dei problemi.

Se non lo hai gia' fatto fai un giro in
http://www.tomshw.it/forum/programmazione/552844-iniziare-programmare-da-zero.html
ma nel tuo caso soprattutto in http://www.tomshw.it/forum/programmazione/290243-raccolta-manuali-di-programmazione-tutti-i-linguaggi.html
 

Pij87

Nuovo Utente
Va bene ma lo scopo pratico finale e' programmare, cosa vuoi programmare ?

Io programmo da 26 anni e non so tutto e di piu', solo quello che mi serve.
Piu' che esplorare un linguaggio a 360 gradi e' importante saper programmare come teoria e risoluzione dei problemi.

Se non lo hai gia' fatto fai un giro in
http://www.tomshw.it/forum/programmazione/552844-iniziare-programmare-da-zero.html
ma nel tuo caso soprattutto in http://www.tomshw.it/forum/programmazione/290243-raccolta-manuali-di-programmazione-tutti-i-linguaggi.html
Non credo di avere una risposta alla tua domanda, oggi l' informatica si è ormai affermata da tutte le parti e secondo me programmare è molto importante. Non ho uno scopo ben preciso, ti posso solo dire che voglio sapere sempre di pù. Ne approfitto per fare un' altra domanda.

Per lavorare nell' ambito della programmazione bisogna avere per forza una laurea o basta anche fare dei corsi o roba del genere
 

Hobet

Utente Attivo
609
222
Hardware Utente
CPU
i5 6600k
Dissipatore
AIO H100
Scheda Madre
ASUS z170 Deluxe
Hard Disk
1 WD Blue 1 TB; evo 850 500gb
RAM
Vengeance 4x4
Scheda Video
GTX 1070ti MSI
Scheda Audio
Nope
Monitor
MG278Q
Case
750D Corsair
Internet
Fastweb 200/30
Sistema Operativo
PucyBuntu
Non credo di avere una risposta alla tua domanda, oggi l' informatica si è ormai affermata da tutte le parti e secondo me programmare è molto importante. Non ho uno scopo ben preciso, ti posso solo dire che voglio sapere sempre di pù. Ne approfitto per fare un' altra domanda.

Per lavorare nell' ambito della programmazione bisogna avere per forza una laurea o basta anche fare dei corsi o roba del genere
Avere una laurea e fare dei corsi naturalmente ti avvantaggia ma non sei obbligato, il minimo che serve penso che sia un diploma. Comunque ti consiglio di focalizzarti su un campo, lascia stare la leggenda dell'uomo che sa fare tutto al pc vista nei film. In ogni team di sviluppo ci si ripartisce sempre i compiti. L'esempio che mi è venuto in mente adesso è di popcorn time, il developer iniziale ha sviluppato solo l'app per desktop, ma per le app di android e ios si è appoggiato a terzi dato che non era il suo campo.
 

gronag

Utente Èlite
17,833
5,930
Hardware Utente
Salve, sono un appassionato di programmazione, sto studiando il linguaggio C. Fino ad ora ho stiduato:

- Istruzione I/O
-Cicli
-If, else if, else
-Gestione file
-Arrary
-Main e le funzioni esterne al main
- puntatori

Adesso sto studiando le API di windows.
Il mio dubbio è, cosa devo studiare ancora??

grazie in anticipo per le risposte.
Quindi hai già codificato qualche algoritmo ? :look:
Sapresti, ad esempio, codificare un algoritmo che calcola le soluzioni di un'equazione di secondo grado ? :asd:
 
  • Mi piace
Reactions: Mursey

TheJudge

Utente Attivo
335
84
Hardware Utente
CPU
i5-8600k
Dissipatore
Cooler Master TX3 EVO
Scheda Madre
MSI Z370 SLI PLUS
Hard Disk
SAMSUNG 840 Pro 250GB + SSD Sandisk 250GB
RAM
Hiperx 2x8GB DDR4 @2666Hz
Scheda Video
Asus Strix 1070TI
Monitor
1 Asus 24" fullHD + BENQ 27" fullHD
Alimentatore
EVGA SuperNova 850W 80+ gold
Case
NZXT S340
Sistema Operativo
Windows 10 Pro
Salve, sono un appassionato di programmazione, sto studiando il linguaggio C. Fino ad ora ho stiduato:

- Istruzione I/O
-Cicli
-If, else if, else
-Gestione file
-Arrary
-Main e le funzioni esterne al main
- puntatori

Adesso sto studiando le API di windows.
Il mio dubbio è, cosa devo studiare ancora??

grazie in anticipo per le risposte.
Sono un giovane programmatore, laureato in ingegneria informatica e diplomato in informatica.
Quello che ti posso dire è che è fondamentale CAPIRE gli algoritmi. Non serve saperli solo scrivere, devi capire cosa fanno e come lo fanno.
Studiati qualche codice di sorting e cerca di capire come mai un "Quick Sort" è più veloce di un "Bubble Sort".

Un'altra cosa che ti consiglio di CAPIRE è la matematica. Se hai intenzione di programmare software piuttosto che WebApp "complesse" fai in modo di non rimanere indietro con la matematica. Esempio, prova a capire perchè la derivata di una velocità istantanea è la sua accelerazione.

Ripeto e riporto anche quello che ha già detto Mursey,
Serve sapere solo quello che ti serve.
"Piu' che esplorare un linguaggio a 360 gradi e' importante saper programmare come teoria e risoluzione dei problemi."
 
  • Mi piace
Reactions: BAT00cent e Mursey

Pij87

Nuovo Utente
Sono un giovane programmatore, laureato in ingegneria informatica e diplomato in informatica.
Quello che ti posso dire è che è fondamentale CAPIRE gli algoritmi. Non serve saperli solo scrivere, devi capire cosa fanno e come lo fanno.
Studiati qualche codice di sorting e cerca di capire come mai un "Quick Sort" è più veloce di un "Bubble Sort".

Un'altra cosa che ti consiglio di CAPIRE è la matematica. Se hai intenzione di programmare software piuttosto che WebApp "complesse" fai in modo di non rimanere indietro con la matematica. Esempio, prova a capire perchè la derivata di una velocità istantanea è la sua accelerazione.

Ripeto e riporto anche quello che ha già detto Mursey,
Serve sapere solo quello che ti serve.
"Piu' che esplorare un linguaggio a 360 gradi e' importante saper programmare come teoria e risoluzione dei problemi."
grazie TheJudge io studio anche il "perché" di una cosa
 

signore del tempo

Utente Èlite
3,228
491
Hardware Utente
CPU
Intel Core i5 4670K
Scheda Madre
Asus Z87-Plus
Hard Disk
WD Caviar Green 500GB
RAM
G.Skill Ares 2x4GB 1600MHz
Scheda Video
Sapphire 7850 1GB @ 1050MHz
Scheda Audio
Integrata
Monitor
Acer V193w
Alimentatore
XFX ProSeries 550W Core Edition
Case
CM HAF 912 plus
Sistema Operativo
ArchLinux + KDE - Windows 10
È una cosa conoscere un linguaggio ed una cosa è saperlo utilizzare. Idealmente, questi due livelli dovrebbero eguagliarsi in quanto uno sbilanciamento ti porterebbe a pensare più in termini implementativi che risolutivi, effettivamente trasformando il tuo problema da "come faccio X" a "come faccio X in linguaggio Y". A riguardo leggi quest'altro mio post.

Mursey ha ragione nel dire "so quello che mi serve": parlando del C, difficilmente ti sarà necessario, ad esempio, un puntatore a dati marcati volatile se non lavori con l'hardware (e.g. I/O in RAM aka mapped I/O); oppure il "type-punning" se non lavori in situazioni di strict-aliasing.

Se il tuo scopo è interfacciarti con Windows, guarda qualche sua API su MSDN e vedi se riesci a capire cosa fa e cosa si aspetta da te per realizzare ciò; quello che non conosci, lo studi e cerchi di applicarlo.
 
Ultima modifica:
  • Mi piace
Reactions: Mursey

gronag

Utente Èlite
17,833
5,930
Hardware Utente
Ci provo e ti faccio sapere
Grazie, PiJ87, l'algoritmo funziona :sisilui:





Personalmente avrei optato per un paio di funzioni senza parametri, una per il calcolo del discriminante e l'altra per la scrittura delle radici sullo schermo :sisilui:
Avresti potuto considerare la possibilità a=0 (a è il coefficiente del termine di secondo grado), l'equazione diventerebbe di primo grado con radice x=(-c/b) ma si tratta di un dettaglio :)
Cosa mi dici sulle strutture dinamiche (pile, code, liste, ecc.), le hai studiate ? :look:

P.S. Per quanto riguarda le API di Windows, potresti iniziare da qui:
Introduzione alle API Win32 -- Capitolo 0: preliminari :sisilui:
Considera però che ne vengono illustrate solo poche decine mentre le API di Windows sono migliaia :asd:
 
Ciao, ma l'indentazione è quella? oppure quando hai aperto con l'editor il file che ti ha mandato si è scombinata? perchè se l'indetazione originaria fosse quella, io consiglierei fortemente di scrivere in modo più ordinato.
 

BAT00cent

Utente Attivo
1,000
428
Hardware Utente
Grazie, PiJ87, l'algoritmo funziona

mmmh
c'è da lavorare parecchio sul risolvere problemi e possibilmente farlo con efficienza, ragionare sui tipi ecc. ecc.;
per esempio, in questo caso particolare
- per calcolare un quadrato non si chiama una funzione, si fa una semplice moltiplicazione
- i coefficienti delle eq. normalmente sono numeri "con virgola" (double)
- una conseguenza è che i test di uguaglianza sui double sono pericolosi e portano ad errori (in questo caso il test delta==0)
- per il calcolo della radice r c'è una divisione tra interi, il compilatore potrebbe eseguirla come e troncare il risultato, in barba al fatto che r è un float, producendo un risultato errato
- con delta<0 l'equazione non è impossibile
- quando un calcolo si ripete uguale nel codice, si memorizza il risultato in una variabile e si usa quella, non si chiama inutilmente più volte una funzione per ripetere il calcolo (è il caso della chiamato di pow per calcolare una radice quadrata)

Anche da un esercizio in teoria semplicissimo si imaprano concetti utili in generale
 
Ultima modifica:

Entra

oppure Accedi utilizzando