Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione OPPO Find X9 Ultra: è lui il cameraphone definitivo
Recensione OPPO Find X9 Ultra: è lui il cameraphone definitivo
Find X9 Ultra è lo smartphone che tanti aspettavano, e finalmente è arrivato anche in Italia. Abbiamo provato il flagship di OPPO per diverse settimane, e siamo volati fino in Cina alla sua presentazione ufficiale. Tutto gira intorno al suo incredibile comparto fotografico in collaborazione con Hasselblad e con un totale di sei fotocamere. Il resto è un mix di specifiche di altissimo livello, così come il prezzo. Vi raccontiamo tutto nella nostra recensione completa.
Ecovacs Deebot X12 OmniCyclone: lava grazie a FocusJet
Ecovacs Deebot X12 OmniCyclone: lava grazie a FocusJet
Il nuovo Deebot X12 OmniCyclone abbina un sistema di raccolta dello sporco senza sacchetto, un rullo di lavaggio esteso e la tecnologia FocusJet per intervenire più efficacemente sulle macchie più persistenti. Un robot completo e preciso che aiuta a tenere puliti i pavimenti di casa con il minimo sforzo
Narwal Flow 2: la pulizia di casa con un mocio a nastro
Narwal Flow 2: la pulizia di casa con un mocio a nastro
Narwal Flow 2 implementa un mocio a nastro che esegue una pulizia dettagliata del pavimento di casa, in abbinamento ad un potente motore di aspirazione della polvere: un prodotto ideale per gestire in autonomia e con grande efficacia le necessità di pulizia dei pavimenti di casa
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 25-11-2010, 14:00   #1
Bestseller
Senior Member
 
Iscritto dal: Aug 2007
Messaggi: 476
[C] Cosa per permette di fare il linguaggio C?

Buongiorno.
Attualmente mi ritrovo a studiare il linguaggio di programmazione C all'università e vi scrivo perchè vorrei avere delle delucidazioni in merito alle potenzialità di questo linguaggio. Infatti, per quello che stiamo studiando ora, mi sembra che il linguaggio C permetta di fare poche cose. Voglio dire: le funzioni for, if, while, printf, scanf mi sembra che permettano di fare poche cose. Credo sia soltanto una mia impressione, ma volevo sapere lo stesso il vostro parere.
Bestseller è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2010, 14:33   #2
goldorak
Senior Member
 
Iscritto dal: Apr 2003
Messaggi: 16462
Quote:
Originariamente inviato da Bestseller Guarda i messaggi
Buongiorno.
Attualmente mi ritrovo a studiare il linguaggio di programmazione C all'università e vi scrivo perchè vorrei avere delle delucidazioni in merito alle potenzialità di questo linguaggio. Infatti, per quello che stiamo studiando ora, mi sembra che il linguaggio C permetta di fare poche cose. Voglio dire: le funzioni for, if, while, printf, scanf mi sembra che permettano di fare poche cose. Credo sia soltanto una mia impressione, ma volevo sapere lo stesso il vostro parere.
E soltanto una tua impressione.
Il C come il C++ o Java o Eiffel o PL/I o COBOL o FORTRAN o Ada o Haskell o Lisp etc... sono linguaggi turing completi.
Questo significa che qualsiasi cosa ti possa esprimere in uno di questi linguaggi, lo puoi esprimere altrettanto bene negli altri.
Cambiera' la sintassi, magari il programma sara' piu' lungo, sara' piu' astruso etc... ma a livello computazionale non cambia niente.
Qualsiasi algoritmo ti possa scrivere in C, lo puoi scrivere negli altri linguaggi. E viceversa ovviamente.
Per un caso piu' estremo considera il linguaggio brainfuck : http://en.wikipedia.org/wiki/Brainfuck che ha una sintassi ancora piu' povera di quella del C e nonostante cio' ha lo stesso potere espressivo di qualsiasi altro linguaggio di programmazione turing completo.

Detto questo, i programmatori non partono ogni volta da zero, ci sia aiuta con le librerie. E qui ci sono differenze tra i vari linguaggi nel senso che alcuni dispongono di librerie sterminate (come Java) altri no hanno meno scelta.
Ma questo dal punto di vista computazione non incide sulla "potenza" del linguaggio.
__________________
MICROSOFT : Violating your privacy is our priority

Ultima modifica di goldorak : 25-11-2010 alle 14:35.
goldorak è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2010, 15:20   #3
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Il linguaggio di programmazione C è un sistema turing-completo, come la stragande maggioranza (forse tutti? non saprei, ad esempio SQL... mi pare sia diventato turing-completo da una certa versione in poi) dei linguaggi di programmazione "main stream".

Detto questo, per un linguaggio di programmazione, il fatto di essere turing-completo non ci dice nulla circa la velocità con cui esegue i calcoli, la sua minore o maggiore espressività (rispetto altri linguaggi), il numero e/o la tipologia di costrutti che mette a disposizione del programmatore, l'ortogonalità degli stessi ecc...

Se posso consigliarti una lettura nel forum circa le caratteristiche di diversi linguaggi di programmazione così come percepite da diversi programmatori ti indico questo thread
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2010, 10:25   #4
downloader
Senior Member
 
L'Avatar di downloader
 
Iscritto dal: Nov 2003
Città: Napoli
Messaggi: 6193
Il mio parere

Il C è un linguaggio che di fatto di permette di fare tutto, ma con una certa complessità non essendo orientato agli oggetti.

Cosa differente dal C++, c#, Java ecc

Quindi la domanda è, cosa vuoi fare? Devi sviluppare qualcosa? Devi imparare semplicemente a programmare?
__________________
Diablo3 PF | MyPC(liquidato) - Case Corsair Obsidian 800D / PSU Enermax Galaxy 1000W / MB GA-EX58A-UD7 / CPU Intel I7 920 [email protected] / MEM Corsair Dom. GT@1680mhz / GPU R9 290X / HD 2xWD 150GB raid 0/ SO - Windows 7 Ult.
downloader è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2010, 10:58   #5
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da downloader Guarda i messaggi
Il C è un linguaggio che di fatto di permette di fare tutto, ma con una certa complessità non essendo orientato agli oggetti.

Cosa differente dal C++, c#, Java ecc
Beh, secondo me il C++ è più complesso di C, come linguaggio.
Hai usato una parola problematica: "complessità"
E anche la questione dell'orientamento agli oggetti

Sarei d'accordo con te se la tua frase fosse differente, ad esempio sostituendo "una certa complessità" con "con minore produttività" e sostituendo "non essendo orientato agli oggetti" con "essendo povero di costrutti/feature di alto livello"
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2010, 11:01   #6
goldorak
Senior Member
 
Iscritto dal: Apr 2003
Messaggi: 16462
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
Beh, secondo me il C++ è più complesso di C, come linguaggio.
Hai usato una parola problematica: "complessità"
E anche la questione dell'orientamento agli oggetti


Sarei d'accordo con te se la tua frase fosse differente, ad esempio sostituendo "una certa complessità" con "con minore produttività" e sostituendo "non essendo orientato agli oggetti" con "essendo povero di costrutti/feature di alto livello"
He he mi hai preceduto, stavo rispondendo ma alla fine ho lasciato correre, si rischia di infiammare una guerra di religione su questo tema.
__________________
MICROSOFT : Violating your privacy is our priority
goldorak è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2010, 11:03   #7
downloader
Senior Member
 
L'Avatar di downloader
 
Iscritto dal: Nov 2003
Città: Napoli
Messaggi: 6193
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
Beh, secondo me il C++ è più complesso di C, come linguaggio.
Hai usato una parola problematica: "complessità"
E anche la questione dell'orientamento agli oggetti

Sarei d'accordo con te se la tua frase fosse differente, ad esempio sostituendo "una certa complessità" con "con minore produttività" e sostituendo "non essendo orientato agli oggetti" con "essendo povero di costrutti/feature di alto livello"
nono l'idea era quella

La programmazione orientata agli oggetti da un vantaggio in termini di tempi di sviluppo notevoli rispetto al realizzare la stessa cosa in C.

Quindi la mia complessità è riferita al reale utilizzo del linguaggio (prova a progettare un qualcosa che sia modulare come lo è il C++ in C, ti ritroverai a gestire liste dinamiche di puntatori a funzione con parametri variabili)

ovviamente invece, lato puramente dottrinale, è il caso di apprendere prima il C che il C++... ma a quel punto... io farei partire chiunque con il basic per i costrutti iniziale per poi passare la persona al c# o al java per apprendere la programmazione oop
__________________
Diablo3 PF | MyPC(liquidato) - Case Corsair Obsidian 800D / PSU Enermax Galaxy 1000W / MB GA-EX58A-UD7 / CPU Intel I7 920 [email protected] / MEM Corsair Dom. GT@1680mhz / GPU R9 290X / HD 2xWD 150GB raid 0/ SO - Windows 7 Ult.
downloader è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2010, 11:13   #8
goldorak
Senior Member
 
Iscritto dal: Apr 2003
Messaggi: 16462
Quote:
Originariamente inviato da downloader Guarda i messaggi
nono l'idea era quella

La programmazione orientata agli oggetti da un vantaggio in termini di tempi di sviluppo notevoli rispetto al realizzare la stessa cosa in C.
Dipende da cio' che devi sviluppare.

Quote:
Quindi la mia complessità è riferita al reale utilizzo del linguaggio (prova a progettare un qualcosa che sia modulare come lo è il C++ in C, ti ritroverai a gestire liste dinamiche di puntatori a funzione con parametri variabili)
E credi che il C++ ti sollevi da questo ?


Quote:
ovviamente invece, lato puramente dottrinale, è il caso di apprendere prima il C che il C++... ma a quel punto... io farei partire chiunque con il basic per i costrutti iniziale per poi passare la persona al c# o al java per apprendere la programmazione oop
Il Basic ? Se proprio ci vuole un linguaggio imperativo come primo tentativo farei usare il Pascal o una delle sue varianti, Oberon o Modula-2/3. Altrimenti ce' Scheme che funziona benissimo pur essendo un linguaggio funzionale.
Infine non ce' proprio bisogno del c# o java per capire i concetti fondamentali della progettazione/programmazione orientata agli oggetti.
Tanto che l'Objective-C sarebbe una scelta migliore per chi volesse fare oo e venisse da C (e se sviluppi su ios non hai scelta....).
__________________
MICROSOFT : Violating your privacy is our priority
goldorak è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2010, 11:19   #9
downloader
Senior Member
 
L'Avatar di downloader
 
Iscritto dal: Nov 2003
Città: Napoli
Messaggi: 6193
Pascal anche al posto del basic, non cambia.

Il c++ è orientato ad oggetti e quindi ovvio che ti solleva dal dover implementare da te l'OOP.

Forse non mi sono spiegato bene nel dire cosa intendevo infatti.

Hai mai in C creato qualcosa che funzioni e sia modulare ESATTAMENTE come lo è già il C++?

Non so se è chiaro, ti sto chiedendo se hai mai simulato l'uso di classi e oggetti in C.
__________________
Diablo3 PF | MyPC(liquidato) - Case Corsair Obsidian 800D / PSU Enermax Galaxy 1000W / MB GA-EX58A-UD7 / CPU Intel I7 920 [email protected] / MEM Corsair Dom. GT@1680mhz / GPU R9 290X / HD 2xWD 150GB raid 0/ SO - Windows 7 Ult.
downloader è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2010, 11:23   #10
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
Quote:
Originariamente inviato da downloader Guarda i messaggi
Hai mai in C creato qualcosa che funzioni e sia modulare ESATTAMENTE come lo è già il C++?

Non so se è chiaro, ti sto chiedendo se hai mai simulato l'uso di classi e oggetti in C.
brrrrr perchè parlate di cose così brutte? ....la vita è già piena di problemi senza l'oop in C

p.s. però il multithreading in C è ancora peggio dell'OOP
pabloski è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2010, 11:24   #11
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da goldorak Guarda i messaggi
...si rischia di infiammare una guerra di religione su questo tema.
Vedo che avete fatto presto a passare "dalle parole ai fatti"
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2010, 11:28   #12
downloader
Senior Member
 
L'Avatar di downloader
 
Iscritto dal: Nov 2003
Città: Napoli
Messaggi: 6193
Quote:
Originariamente inviato da goldorak Guarda i messaggi
Tanto che l'Objective-C sarebbe una scelta migliore per chi volesse fare oo e venisse da C (e se sviluppi su ios non hai scelta....).
Se uno viene dal C la scelta per me è il puro C++, però è questione di esperienze e opinioni, io la vedo così. Dico c#, java... perché per la mia esperienza sono ottimi per far apprendere l'OOP, senza distrazioni su puntatori e altro (che comunque esistono in questi linguaggi, ma tutto è o dovrebbe essere controllato, compreso l'uso della memoria)
__________________
Diablo3 PF | MyPC(liquidato) - Case Corsair Obsidian 800D / PSU Enermax Galaxy 1000W / MB GA-EX58A-UD7 / CPU Intel I7 920 [email protected] / MEM Corsair Dom. GT@1680mhz / GPU R9 290X / HD 2xWD 150GB raid 0/ SO - Windows 7 Ult.
downloader è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2010, 12:11   #13
goldorak
Senior Member
 
Iscritto dal: Apr 2003
Messaggi: 16462
Quote:
Originariamente inviato da downloader Guarda i messaggi
Pascal anche al posto del basic, non cambia.

Il c++ è orientato ad oggetti e quindi ovvio che ti solleva dal dover implementare da te l'OOP.

Forse non mi sono spiegato bene nel dire cosa intendevo infatti.

Hai mai in C creato qualcosa che funzioni e sia modulare ESATTAMENTE come lo è già il C++?

Non so se è chiaro, ti sto chiedendo se hai mai simulato l'uso di classi e oggetti in C.
No non ho mai avuto il dispiacere di dover simulare l'uso di classi e oggetti in c, ma questo e' del tutto ortogonale al problema della modularita' dei programmi. Classi ed oggetti non sono necessari per rendere modulare un programma.
__________________
MICROSOFT : Violating your privacy is our priority
goldorak è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2010, 12:20   #14
WarDuck
Senior Member
 
L'Avatar di WarDuck
 
Iscritto dal: May 2001
Messaggi: 12966
Quote:
Originariamente inviato da pabloski Guarda i messaggi
brrrrr perchè parlate di cose così brutte? ....la vita è già piena di problemi senza l'oop in C

p.s. però il multithreading in C è ancora peggio dell'OOP
E' chiaro che la programmazione object oriented risulti molto più "intuitiva" (se mi passate il termine) di quella procedurale, nel qual caso si tratta di faticare di più.

Per il multi-threading c'è l'ottima libreria pthread (sotto linux, ma so che esiste un porting anche su Win) che non sfigura di certo.

Comunque tutto il computabile può essere fatto con il costrutto while ed il costrutto if, per cui con C puoi fare semplicemente tutto.

Il punto è COME.

Ultima modifica di WarDuck : 26-11-2010 alle 12:26.
WarDuck è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2010, 12:56   #15
!fazz
Moderatore
 
L'Avatar di !fazz
 
Iscritto dal: Nov 2006
Messaggi: 22074
Quote:
Originariamente inviato da Bestseller Guarda i messaggi
Buongiorno.
Attualmente mi ritrovo a studiare il linguaggio di programmazione C all'università e vi scrivo perchè vorrei avere delle delucidazioni in merito alle potenzialità di questo linguaggio. Infatti, per quello che stiamo studiando ora, mi sembra che il linguaggio C permetta di fare poche cose. Voglio dire: le funzioni for, if, while, printf, scanf mi sembra che permettano di fare poche cose. Credo sia soltanto una mia impressione, ma volevo sapere lo stesso il vostro parere.
ti permette di fare tutto quello che fai con gli altri programmi anzi anche qualcosina in più di parecchi altri linguaggi visto la facilità con cui puoi interagire a basso livello.

ovviamente programmare in C risulta spesso più problematico e lungo rispetto ad esempio un c# perchè per parecchie cose non hai già la pappa pronta ma questo non pregiudica affatto la qualità del risultato finale.

giusto per farti un esempio, la stragrande maggioranza di tutti i dispositivi elettronici vengono programmati in ansi c e in nessun altro linguaggio

Quote:
Originariamente inviato da WarDuck Guarda i messaggi
E' chiaro che la programmazione object oriented risulti molto più "intuitiva" (se mi passate il termine) di quella procedurale, nel qual caso si tratta di faticare di più.

Per il multi-threading c'è l'ottima libreria pthread (sotto linux, ma so che esiste un porting anche su Win) che non sfigura di certo.

Comunque tutto il computabile può essere fatto con il costrutto while ed il costrutto if, per cui con C puoi fare semplicemente tutto.

Il punto è COME.
anche con un JNZ
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX)
Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000

Ultima modifica di !fazz : 26-11-2010 alle 13:01.
!fazz è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2010, 13:02   #16
ingframin
Senior Member
 
L'Avatar di ingframin
 
Iscritto dal: Apr 2010
Città: Leuven
Messaggi: 667
mhmhm...
secondo me il più grosso limite di un linguaggio di programmazione sta nel programmatore.
Con ogni linguaggio si può in teoria fare tutto ma alcune cose sono più semplici con alcuni linguaggi che con altri. Dipende dallo scopo finale.
Poi sicuramente ci sarà qualche pazzo che prova a fare la programmazione web in assembly ma questo è un altro paio di maniche.
Il discorso sulle potenzialità di un linguaggio in ambito di produzione/lavorativo si apprezza solo in azienda, all'università o a livello amatoriale cambia molto poco da un linguaggio all'altro. E comunque per rispondere al thread originale:
C è una buona scelta come linguaggio, è molto richiesto in giro e domin ala grande il mondo embedded.
Uno dei parametri che prendo di solito per valutare l'"utilià" di studiare o meno un linguaggio e l'indice TIOBE: http://www.tiobe.com/index.php/conte...pci/index.html
Come vedi C è secondo in classifica come utilizzo, ha davanti solo il Java.
A conclusione di tutto:
1) C è un linguaggio che ti permette di fare di tutto, soprattutto in certi ambiti specifici.
2) Quanto vale il "di tutto" dipende praticamente solo da te
Saluti :-)
ingframin è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2010, 13:04   #17
downloader
Senior Member
 
L'Avatar di downloader
 
Iscritto dal: Nov 2003
Città: Napoli
Messaggi: 6193
Quote:
Originariamente inviato da goldorak Guarda i messaggi
No non ho mai avuto il dispiacere di dover simulare l'uso di classi e oggetti in c, ma questo e' del tutto ortogonale al problema della modularita' dei programmi. Classi ed oggetti non sono necessari per rendere modulare un programma.
infatti ho detto che aiuta non che è necessario. A suo tempo vedi come era divertente scrivere applicazioni abbastanza complesse (gestionali ecc) di natura grafica in puro C e con le poche librerie grafiche a disposizione poi... na pacchia
__________________
Diablo3 PF | MyPC(liquidato) - Case Corsair Obsidian 800D / PSU Enermax Galaxy 1000W / MB GA-EX58A-UD7 / CPU Intel I7 920 [email protected] / MEM Corsair Dom. GT@1680mhz / GPU R9 290X / HD 2xWD 150GB raid 0/ SO - Windows 7 Ult.
downloader è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione OPPO Find X9 Ultra: è lui il cameraphone definitivo Recensione OPPO Find X9 Ultra: è lui il c...
Ecovacs Deebot X12 OmniCyclone: lava grazie a FocusJet Ecovacs Deebot X12 OmniCyclone: lava grazie a Fo...
Narwal Flow 2: la pulizia di casa con un mocio a nastro Narwal Flow 2: la pulizia di casa con un mocio a...
Tastiera gaming MSI GK600 TKL: switch hot-swap, display LCD e tre modalità wireless Tastiera gaming MSI GK600 TKL: switch hot-swap, ...
DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici DJI Osmo Pocket 4: la gimbal camera tascabile cr...
Il rover NASA Curiosity ha scoperto oltr...
Il satellite AST SpaceMobile BlueBird 7 ...
SpaceX: la droneship Just Read the Instr...
Project Helix sarà prodotta anche...
La NASA pubblica alcuni aggiornamenti su...
Tute spaziali AxEMU per Artemis: Axiom S...
Nutanix Government Cloud Clusters arriva...
Troy Baker lavora a un progetto tutto su...
Motorola Edge 60 Neo è il compatt...
Stretto di Hormuz, finti funzionari iran...
Dragon Ball Xenoverse 3 annunciato uffic...
WINDTRE BUSINESS potenzia i servizi IoT ...
OPPO rinnova l'ecosistema: arrivano Watc...
OPPO Find X9 Ultra ufficiale: debutta il...
Renault Twingo: esposta a Milano per far...
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: 04:08.


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