![]() |
Mòdul
1
![]() |
Fonaments de programació. Llenguatge C/C++![]() |
Pràctica
![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
![]() |
Una conversa en C
L'objectiu d'aquesta pràctica és fer servir les funcions d'entrada i sortida de C: printf() i scanf(). També es començarà amb l'ús de variables.
|
||||||||
![]() |
Desenvolupament
de la pràctica
Per afegir un nou projecte a l'espai de treball m1, podeu seleccionar File->New o bé, amb el botó dret del ratolí, fer clic damunt el nom de l'espai de treball a la finestra d'espai de treball. D'aquesta manera, apareix un menú contextual, la primera opció del qual és Add New Project to Workspace. Creeu-ne un de nou amb el nom m1p02 i afegiu-hi un arxiu de codi C/C++ anomenat m1p02.cpp (recordeu que l'extensió .cpp la posa automàticament VC++). Escriviu a la finestra d'edició el codi següent:
Per crear l'arxiu m1p02.exe seleccioneu Build -> Build m1p02.exe (o bé la tecla F7). D'aquesta manera, i si no hi ha hagut errades de sintaxi, es crearà un arxiu anomenat m1p02.exe a la carpeta \...\m1p02\debug\. Executeu el programa seleccionant Build->Execute m1p02.exe (o bé les tecles Ctrl + F5). És aconsellable executar sempre els programes la primera vegada en l'entorn Visual C++ per poder depurar millor els possibles errors. Si tot ha anat bé, ja podeu crear la versió executable optimitzada seguint els mateixos passos de la pràctica anterior. Podeu esborrar tots els arxius del directori \...\m1p02\Release\ excepte l'arxiu m1p02.exe. Proveu d'executar-lo dintre i fora de l'entorn Visual C++.
Explicació del programa En primer lloc, es pot observar que en aquesta pràctica s'ha fet servir l'altre tipus de comentaris:
Quan es posen els símbols //, tot el que hi ha a continuació i fins al final de la línia és ignorat pel compilador. La segona línia:
informa al compilador que afegeixi les definicions de les funcions que hi ha a l'arxiu capçalera stdio.h. En aquest cas, aquesta línia és necessària, ja que fareu servir les funcions printf() i scanf(). El comentari explica aquesta circumstància. Amb la línia:
comença la funció principal, que en aquest cas, com a la pràctica anterior, no retorna cap valor. Es declaren dues variables:
una variable preparada per guardar una cadena de caràcters de fins a 30 caràcters, anomenada nom, i una variable entera anomenada edat. En C és obligatori declarar totes les variables abans d'usar-les. Aquesta declaració serveix perquè es reservi la memòria necessària per al seu emmagatzematge. En la següent part del codi:
la primera línia fa que s'imprimeixi a la pantalla el text de l'argument de printf(), i fa que el cursor vagi a la línia següent. En aquest moment, l'execució del programa s'atura esperant que l'usuari/ària introdueixi una cadena de caràcters. La funció scanf() s'encarrega de llegir el contingut de la cadena introduïda per teclat i és emmagatzemada en la variable nom. %s és el codi de tipus corresponent a les cadenes de caràcters. Pel fet que el nombre no és exactament una variable sinó una cadena de caràcters (un vector o array de caràcters), no s'ha de posar & davant del nom en la funció scanf(). Veureu més endavant que, normalment, el segon argument i següents d'aquesta funció és el nom d'una variable precedida pel caràcter &. L'explicació d'això es tracta en profunditat més endavant. Després d'imprimir el text de l'argument de printf() de la tercera línia, l'execució es torna a aturar i scanf() espera que s'introdueixi un enter amb el teclat. Aquest enter s'emmagatzema en la variable entera edat. En aquest cas, sí que és obligatori posar & davant del nom de variable edat. La línia:
il·lustra l'ús de printf() amb més d'un argument. Fixeu-vos que al primer argument hi ha dos codis de tipus: un del tipus de cadena de caràcters (%s) i un altre del tipus nombre enter (%d). Els dos arguments que segueixen el primer corresponen exactament a dues variables dels tipus dels codis abans esmentats. En la funció printf() no s'ha de posar & davant del nom de les variables. En executar el programa, es pot observar que els caràcters especials, com les vocals accentuades, no s'imprimeixen bé a la pantalla. A la pràctica següent veureu com resoldre aquest problema. |