>> [REPRODUCCIÓ DE MÚSICA]
ALTAVEU: D'acord.
Així que anem a parlar d'una altra cosa que és una cosa única a C,
que és tipus de dades i variables.
Quan dic única de C, de veritat significa només en el context de,
si vostè ha estat un programador per un temps molt llarg,
és probable que no hagis treballat amb tipus de dades
si vostè ha utilitzat moderna llenguatges de programació.
Llengües modernes com PHP i JavaScript,
que també veurem una mica més tard en el curs,
que en realitat no ha d'especificar el tipus de dades d'una variable
quan s'utilitza.
>> Vostè acaba de declarar i començar a usar-lo.
Si es tracta d'un sencer, Sé que és un enter.
Si es tracta d'un personatge, és sap que és un personatge.
Si es tracta d'una paraula, sap és una cadena, trucada.
>> Però en C, que és una llengua més antiga, necessitem
per especificar les dades tipus de totes les variables
que vam crear la primera vegada que utilitzem aquesta variable.
Així C ve amb algun incorporada tipus de dades.
I arribarem familiars amb alguns d'ells.
I després després també parlarem una poc sobre alguns dels tipus de dades
que hem escrit per a tu, perquè pugui utilitzar-los en CS50.
>> La primera és int.
El tipus de dades int s'utilitza per a les variables que va a emmagatzemar valors enters.
Així 1, 2, 3, negatiu 1, 2, 3, i així successivament.
Els sencers, que és una cosa que ha de tenir en compte per a la prova,
Sempre prendre fins a quatre bytes de la memòria, que és de 32 bits.
Hi ha vuit bits en un byte.
>> Així que això significa que el rang de valora que un nombre sencer pot emmagatzemar
està limitada pel que es pot encaixar dins 32 bits de valor de la informació.
Ara resulta que, que va ser fa molt de temps va decidir
que ens separen aquest rang de 32 bits
en enters negatius i nombres enters positius,
cada meitat aconseguir de la gamma.
Així que el rang de valors que representem amb un rang sencer de negatiu 2
a la potència 31a a 2 a la potència 31a menys 1,
causa també necessita un lloc per 0.
>> Així que, bàsicament la meitat dels valors possibles Vostè pot cabre en un int són negatius,
i l'altra meitat són positius.
I més o menys aquí, es tracta de negatiu 2000000000 a prop de 2000000000 positiva.
Donar o prendre un parell de centenars de milions de dòlars.
Així que això és el que vostè pot cabre en una variable sencera.
Ara també tenim alguna cosa anomenat un sencer sense signe.
Ara sencers sense signe no són una tipus separat de variable.
Més aviat, és sense signar el que es diu un partit de classificació.
Modifica les dades tipus de nombre enter lleugerament.
>> I en aquest cas, el que sense signar designa totes i que també pots
utilitzar altres tipus de dades no signats, nombre enter no és l'únic.
El que fa efectivament és de dobles el rang positiu dels valors
que un sencer pot prendre en costa de ja no permetent
que prengui en valors negatius.
Així que si vostè té els números que vostè sap obtindrà més gran que 2 mil milions, però menys
de 4 mil milions, per exemple-- que és 2 a la 32 poder-
és possible que vulgueu utilitzar 1 int sense signar si
sap que el seu valor mai serà negatiu.
>> Vostè té de tant en tant utilitzat per a les variables sense signe
en CS50, raó per la qual esmento aquí.
Però, de nou, el rang de valors que es pot representar amb un sencer sense signe
com a t sencer regular, són 0 a 2 a la potència 32a menys 1,
o aproximadament 0-4000000000.
Així que ha duplicat efectivament el rang positiu que pot adaptar-se,
però li has donat tot els valors negatius.
>> Ara com un a part, sense signar no és l'únic qualificador
perquè puguem veure per tipus de dades variables.
També hi ha coses trucades curta i llarga i const.
Const veurem una mica poc més tard en el curs.
Curt i llarg, que probablement no ho farà.
>> Però només sé que hi ha són altres qualificatius.
Sense signe no és l'únic.
Però és l'únic que estem parlarem en aquest moment.
Així tots els drets.
Per a això hem sencers coberts.
Que ve ara?
>> Caràcters.
Així caràcters s'utilitzen per a les variables que emmagatzemarà els caràcters individuals.
Char és l'abreviatura de caràcter.
I de vegades es pot escoltar gent pronuncia com cotxe.
>> Així que els personatges sempre en tenen un byte de memòria, que és a 8 bits.
Així que això significa que només poden encaixar valors en el rang de negatiu 2
a la setena potència, o negatiu 128, a 2 a la setena potència menys 1, o 127.
>> Gràcies a ASCII, que era fa molt de temps va decidir de manera
per assignar aquests números positius des 0 a 127 a diversos personatges
que tots hi ha a la nostra teclat.
Així que com veurem més endavant en el curs, i vostè probablement
arribat a memoritzar en algun punt, el capital A, per exemple--
la capital caràcter A-- mapes amb el número 65.
I la raó d'això és perquè això és el que és
estat assignat per l'estàndard ASCII.
>> Minúscules A és 97.
El caràcter 0 per quan en realitat escriure el caràcter, no
que representa el nombre zero, és a 48.
Vostè aprendrà un parell d'ells sobre la marxa.
I que sens dubte ve a necessitar ells una mica més tard en el CS50.
>> El següent tipus de dades important està números de punt flotant.
Així que els nombres de coma flotant són també conegut com a nombres reals.
Són bàsicament nombres que tenir un punt decimal en ells.
Valors de punt flotant com nombres enters són també
continguda dins de 4 bytes de memòria.
Ara no hi ha carta aquí.
No hi ha línia de números, perquè que descriu el rang d'un flotador
no és del tot clar o intuïtiva.
>> Només cal dir que tenir 32 bits per treballar.
I si vostè té un nombre com pi, que té
una part sencera 3, i una flotació punt de part, o d'una part decimal 0,14159,
i així successivament, vostè necessita estar capaç de representar tots it--
la part entera i la part decimal.
>> Llavors, què pensa vostè que això significa?
Una cosa és que si el decimal part es fa més llarg i més llarg,
si tinc una molt gran part sencera, jo no podria
ser capaç de ser el més precís amb la part decimal.
I això és realment la limitació d'un flotador.
>> Flotadors tenen un problema de precisió.
Només tenim 32 bits a treballar, de manera que només pot
ser tan precís amb la nostra part decimal.
No podem tenir necessàriament un nombre decimal part precisa per a 100 o 200 dígits,
perquè només tenim 32 bits per treballar.
Així que això és una limitació d'un flotador.
>> Ara, afortunadament, hi ha un altre tipus de dades anomenat
doble, que alguna cosa s'ocupa d'aquest problema.
Dobles, com flotadors, també s'utilitzen per emmagatzemar nombres reals, o de punt flotant
els valors.
La diferència és que dobles són de doble precisió.
Ells poden cabre 64 bits de dades, o vuit bytes.
Què vol dir això?
Bé, vol dir que podem ser molt més precisa amb el punt decimal.
En lloc de tenir pi a set llocs potser, amb un flotador,
que potser podem tenir a 30 places.
Si això és important, és possible que vulgueu utilitzar una doble en lloc d'un flotador.
Bàsicament, si vostè és treballant en res on
tenir un decimal molt llarg i un munt de precisió és important,
és probable que vulgui utilitzar un doble overfloat.
Ara la major part del seu treball en CS50, un flotador hauria de ser suficient.
Però no saben que existeixen dobles com manera de tractar una mica amb la precisió
problema que li dóna un extra de 32 bits per treballar pels seus números.
>> Ara bé, això no és un tipus de dades.
Aquest és un tipus.
I es diu buit.
I estic parlant d'això aquí perquè probablement ha
vist un parell de vegades ja en CS50.
I pot ser que es pregunti el que es tracta tot això.
>> Així buit és un tipus.
No existeix.
Però no és un tipus de dades.
>> No podem crear una variable de tipus anul·lar i assignar un valor a la mateixa.
Però les funcions, per exemple, pot tenir un tipus de retorn void.
Bàsicament, si vostè veu una funció que té un tipus de retorn void,
que vol dir que no retorna un valor.
Pots pensar en una comuna funció que hem utilitzat fins ara
en CS50 que no retorna un valor?
>> Printf és un.
Printf no ho fa realitat tornar res.
Imprimeix alguna cosa a la pantalla, i és bàsicament
un efecte secundari del que fa printf.
Però no li dóna un valor de nou.
No capturar el resultat i botiga d'alguna variable per utilitzar més endavant.
Simplement imprimeix una cosa que la pantalla i ja està.
>> Per això diem que printf és una funció void.
Es retorna res.
>> La llista perímetre d'un funció també pot ser nul.
I també s'ha vist que una mica en CS50 també.
Void main Int.
Li sona?
Bàsicament el que això significa és que principal no pren cap paràmetre.
No hi ha argument que van passant a principal.
Ara més endavant veurem que hi ha una manera de passar arguments al principal,
però fins ara el que hem vist és void main int.
Inici simplement no pren cap argument.
I així s'especifica que en dir nul·la.
Estem sent molt explícita sobre el fet
que no pren cap argument.
>> Així que per ara, només cal dir que bàsicament buit
simplement ha de servir com un marcador de posició per a vostè, ia pensar en res.
No és realment fer res.
No hi ha valor de retorn aquí.
No hi ha paràmetres aquí.
És nul·la.
És una mica més complex que això.
Però això hauria de ser suficient per la major part del curs.
I espero que ara vostè té una mica poc més d'un concepte del que és nul·la.
>> Així que aquests són els cinc tipus que vostè trobada que estan incorporats a la C.
Però en CS50 també tenim una biblioteca.
CS50.h, que pot incloure.
I que li proporcionarà amb dos tipus addicionals
que probablement serà capaç per utilitzar en les seves tasques,
o simplement treballant generalment programació.
>> El primer d'ells és bool.
Així que el tipus de dades Boolean, bool, s'utilitza per a les variables
que emmagatzemarà un valor booleà.
Si alguna vegada has escoltat aquest terme abans,
podria saber que un booleà valor és capaç de només
la celebració de dos valors diferents diferents.
Veritable i fals.
Ara bé, això sembla bastant fonamental, no?
És una mica una sorpresa que aquest no existeix en C, ja que està integrat.
I en molts idiomes moderns, per descomptat, booleans
són un tipus de dades estàndard per defecte.
Però en C, que en realitat no ho són.
Però hem creat per a vostè.
Així que si mai necessites per crear una variable el tipus és bool,
només assegureu-vos de #include CS50.h al començament del seu programa,
i vostè serà capaç de crear variables del tipus bool.
>> Si s'oblida de #include CS50.h, i de començar a utilitzar variables de tipus Boolean,
pot trobar-se amb alguns problemes quan s'està compilant el seu programa.
Així que estar atents per això.
I potser vostè pot fixar el problemes de lliures incloent CS50.h.
>> L'altre tipus de dada important que ens preveure que a la biblioteca CS50
és cadena.
Llavors, què és una cadena?
Les cadenes són realment només paraules.
Són col·leccions de caràcters.
Són paraules.
Són frases.
Són paràgrafs.
Podria ser llibres sencers, fins i tot.
>> Molt curt a molt llarg sèrie de caràcters.
Si necessita usar cadenes, per exemple, per emmagatzemar una paraula,
Només heu de incloure CS50.h al començament del seu programa
així que vostè pot utilitzar el tipus de cadena.
I llavors vostè pot crear variables el tipus de dades és string.
Ara més endavant en el curs, també veurem que això és
No tota la història, tampoc.
Ens trobem amb coses anomenats estructures,
que permetrà al grup el que pot ser un enter i una cadena en una unitat.
I podem usar això per un propòsit, que podria
molt útil més endavant en el curs.
>> I nosaltres també aprendrem sobre els tipus definits,
que li permeten crear seus propis tipus de dades.
No necessitem de preocupar en això per ara.
Però només sé que això és alguna cosa a l'horitzó,
que hi ha molt més en aquest conjunt Tipus mica del que t'estic dient simplement
ara.
Així que ara que hem après poc sobre les dades bàsiques
tipus i els tipus de dades CS50, anem a parlar sobre com treballar amb variables
i crear ells l'ús d'aquests tipus de dades en els nostres programes.
Per crear una variable, tot el que ha de fer és dues coses.
>> En primer lloc, cal donar-li un tipus.
La segona cosa que vostè necessita de fer és donar-li un nom.
Una vegada que hagis fet això i va copejar un punt i coma al final de la línia,
que ha creat una variable.
>> Així que aquí hi ha dos exemples.
Nombre Int; carta carbó;.
Què he fet aquí?
He creat dues variables.
>> La primera, la variable de nom és el nombre.
I el número és capaç de mantenir sencer escrigui els valors, ja que el seu tipus és int.
Carta és una altra variable que pot contenir caràcters
causa del seu tipus de dades és CHAR.
>> Bastant senzill, oi?
Si vostè es troba en una situació on
és necessari crear múltiples variables del mateix tipus,
només ha d'especificar el nom del tipus d'una vegada.
A continuació, només enumerar tantes variables d'aquest tipus que vostè necessita.
>> Així que podria, per exemple, aquí en aquesta tercera línia de codi,
dir int altura;, nova línia.
Ample Int;.
I això seria treballar també.
Jo encara em va cridar dues variables alçada i l'amplada, cadascun dels quals
és un nombre sencer.
Però es em permet, les coses a la sintaxi de C, consolidar-la en una sola línia.
Int alçada, ample; És la mateixa cosa.
He creat dues variables, un anomenat alçada d'un anomenat amplada, dos dels quals
són capaços de celebració valors de tipus sencer.
>> De la mateixa manera que aquí, puc crear de tres valors de punt flotant d'una sola vegada.
Potser pugui crear una variable anomenat arrel quadrada de 2--
que presumiblement amb el temps es sostingui el point-- flotant
que la representació de la plaça Arran de l'2-- arrel quadrada de 3, i pi.
Jo podria haver fet això en tres línies separades.
Float, arrel quadrada 2; Flotador arrel quadrada 3; surar pi; i que funcionaria també.
>> Però, de nou, jo només puc consolidar això en una sola línia de codi.
Fa les coses una mica més curt, no com maldestre.
>> Ara, en general, és un bon disseny només declarar una variable quan la necessiti.
I parlarem una mica mica més sobre això
més tard en el curs quan parlem d'abast.
Així que no necessàriament han de crear totes les variables
al començament del programa, el qual algunes persones podrien haver fet el passat,
o certament era un molt comuns Fa molts anys de pràctica de codificació
quan es treballa amb C. És possible que només que vulgueu crear un dret variable quan
que ho necessiti.
Tot bé.
Per això hem creat variables.
Com utilitzem ells?
Després declarem 1 variables, que no necessitem
per especificar el tipus de dades d'aquesta variable més.
De fet, si ho fa, és possible que acabar amb algunes conseqüències estranyes
que anem a classe de passar per alt de moment.
Però n'hi ha prou amb dir, coses rares van
per començar succeint si inadvertidament tornar a declarar variables amb el mateix nom
un cop rere altre.
>> Així que aquí tinc quatre línies de codi.
I tinc un parell de Comentaris No només indiquen
el que passa a cada línia només per ajudar
vostè es troba en el que està passant.
Nombre Així int;.
Vostè va veure que abans.
Aquesta és una declaració de variables.
>> Ara he creat una variable número trucat que és
capaç de mantenir els valors de tipus sencer.
He declarat ell.
>> La següent línia que estic assignant un valor de nombre.
Nombre és igual a 17.
Què està passant allà?
Estic posant el número 17 dins d'aquesta variable.
>> Així que si alguna vegada després imprimeixo el els continguts de nombre són més endavant,
ells em diuen que és 17.
Així que m'he declarat una variable, i després m'he assignat la mateixa.
>> Podem repetir el procés de nou amb la lletra carbó;.
Aquesta és una declaració.
Carta de capital és igual a H. Això és una assignació.
Bastant senzill, també.
>> Ara bé, aquest procés podria sembla una mica ximple.
Per què estem fent això en dues línies de codi?
Hi ha una millor manera de fer-ho?
De fet, no existeix.
A vegades és possible que vegi aquesta flama inicialització.
És quan es declara una variable i assignar un valor a la vegada.
Això és realment una bonica cosa comuna fer.
Quan es crea una variable, generalment, desitja que tingui algun valor bàsic.
Fins i tot si és 0 o alguna cosa així.
Només se li dóna un valor.
>> Pot inicialitzar una variable.
Int nombre és igual a 17 és el mateix que les dues primeres línies de codi dalt.
Carta Char és igual a h és la mateixa que la línies tercera i quarta del codi de seguretat.
La lliçó més important aquí quan estem declarant i assignar
les variables és després que hem declarar que, previ avís
No estic fent servir el tipus de dades de nou.
No estic dient int nombre és igual a 17 en la segona línia de codi, per exemple.
Només dic que nombre és igual 17.
>> Un cop més, torni a declarar una variable després que ja ha declarat que pot conduir
a alguna conseqüència rar.
Així que vés amb compte amb això.
>> Sóc Doug Lloyd.
I això és CS50.