Beruflich Dokumente
Kultur Dokumente
43
44
45
46
Figura 2.4
47
Figura 2.6
48
Figura 2.8
Compilare i rulare
Compilarea i rularea
Pentru compilarea programului surs se selecteaz Build | Compile
(Ctrl F7) figura 13 . Dup corectarea tuturor erorilor de editare, se trece la
rularea programului din Debug | Start without debugging (Ctrl F5) figura
2.14 i 2.8.
2.2.2 Informaii ajuttoare
Informaiile ajuttoare se obin din meniul Help figura 2.18.
F1
informaii ajuttoare;
Alt+F1 fereastra de informaii anterioar;
Ctrl+F1 informaii despre obiectul pe care este poziionat cursorul;
Esc
nchide fereastra ajuttoare.
2.2.3 Meniul principal: File, Edit, View, Insert, Project, Build,
Tools, Window, Help
File / Alt+F principalele funcii ale acestei opiuni ale meniului
principal sunt ptezentate n figura 2.9 i tabelul 2.1.
Tabel 2.1 Opiunile meniului File
Funcie
Semnificaie
New / CTRL+N
deschide o nou fereastr de editare avnd implicit
numele NONAMExx.CPP
Open / CTRL+O permite selectarea unui fiier de pe disc i ncrcarea sa
n editor
49
Close
Save / CTRL+S
Save as
Save all
Page Setup
Print
EXIT
nchide fiierul
salveaz pe disc fiierul editat
salveaz pe disc fiierul editat sub un nume nou
introdus de utilizator
salveaz pe disc toate fiierele deschise pentru editare
iniializare pagin
tiprete coninutul ferestrei curente
prsete mediul integrat
Figura 2.9
Figura 2.10
50
Figura 2.11
Figura 2.12
Figura 2.13
executabil
CTRL+F5
(include
att
51
Figura 2. 14
Figura 2.16
Figura 2.18
52
unde:
- Directiva #include numefisier are rolul de a preciza compilatorului c
trebuie s citeasc, s adauge i s caute n programul surs textul care se
gsete n fiierul numefisier. Fiierele sunt cutate ntr-un folder
special, destinat acestora. Directivele #include permit introducerea
fiierelor standard (stdio.h, conio.h, string.h, math.h) n textul
programului;
- directiva #define simbol valoare definete un identificator utilizator numit
constant simbolic i o secven de caractere (valoare). Dac este utilizat
o astfel de directiv, toi identificatorii simbol care se gsesc n fiierul
surs al programului sunt nlocuii cu secvena de caractere care i urmeaz
(valoare). O macrocomand astfel definit poate fi utilizat n definirea
altor macrocomenzi.
53
Exemplu:
#define opt 8
#define saisprezece 2*opt
#define douazeci saisprezece+4
printf(\n%d,saisprezece-7);
printf(\n%d,opt*4);
printf(\n %d,2*(douazeci -opt*doi));
54
Sintaxa:
tipfunctie numefunctie(lista_de_parametri_formali)
{
declaratii de variabile pentru functia numefunctie
descrierea in C a algoritmului functiei numefunctie
[return (expresie);]
}
Exemplu:
//linie de comentariu
#include "stdafx.h"
//definire fisier antet
#include "iostream"
#define opt 8
//defineste o macrocomanda
#define saisprezece 2*opt
#define douazeci saisprezece+4
#define M 6
//defineste o constanta
using namespace std;
void main(void)
//antet main
{
//corp main
int a;
//declarare variabile
printf("***Cautati sa intelegeti programarea***");
printf("\n%d",saisprezece-7);
printf("\n%d",opt*4);
printf("\n%d",2*(douazeci-opt));
a=M*3;
printf("\nValoarea lui a=%d", a);
getchar();
}
55
3. Desfurarea lucrrii
Pentru familiarizare cu mediul de lucru s se execute urmtoarele
exerciii:
3.1. S se lanseze n execuie mediul VisualStudioC++ 2008, deschiznd
meniurile.
3.2. S se editeze, compileze i s se ruleze urmtorul program C care
citete numele, prenumele, facultatea i universitatea studentului i s se
afieze un mesaj (anexa 1).
- S se terg caracterele \n de la nceputul liniei marcate cu //2, s se
ruleze din nou programul i s se observe efectul.
- S se terg un caracter " de la linia marcat cu //1 i s se observe
ce se ntmpl la o nou compilare.
3.3. S se determine numrul de cifre ale unui numr natural (este declarat
de tip ntreg i va trebui s fie <=32767 vezi laborator 1 paragraf 1.2
conversia dintr-o baz oarecare n baza 10) (anexa 2).
Observaie: Cifrele numrului sunt resturile mpririi ntregi a
numrului la baza sistemului de numeraie n care este scris. Dup fiecare
mprire, noul numr care se mparte este ctul mpririi precedente.
mpririle continu pn cnd ctul devine 0.
S se execute programul n mod Debug, linie cu linie (F10). S se
observe cum se modific valorile variabilelor odat cu execuia instruciunilor.
3.4. S se determine numrul cifrelor zecimale ale unui numr real i s se
realizeze un ir cu acestea. Pseudocodul se gsete n: laborator 3 (anexa 3).
3.5. S se tipreasc un numr natural n baza 10 introdus de la tastatur n
bazele 10, 8 i 16, folosind specificatorii de tip %d, %o i %x. (anexa 4).
3.6. S se transforme un numr din zecimal n binar - vezi laborator 1
paragraf 1.1 (anexa 5).
56
3.7. S se treac partea fracionar a unui numr scris n baza 10 ntr-o baz
oarecare b. Numrul se va introduce sub forma 0.xxxxxxx... (anexa 6).
ANEX
1
#include "stdafx.h"
#include "iostream"
using namespace std;
void main(void)
//antet main
{
//corp main
char c1,c2,c3,c4;
//variabile locale
puts("***Primul program***");
cout<<("\n numele:");
cin>>c1;
cout<<("\n prenumele:");
cin>>c2;
cout<<("\n facultatea:");
cin>>c3;
cout<<("\n UNIVERSITATEA:");
cin>>c4;
cout<<("\n Ma initiez, \n");
cout<<("\n nume =");
cout<<(c1);
cout<<("\n prenume =");
cout<<(c2);
cout<<("\n facultate =");
cout<<(c3);
cout<<("\n UMIVERSITATE =");
cout<<(c4);
puts("*** Succes! ***");
getchar();
}
#include "stdafx.h"
//corp main
//Cifrele numarului se gasesc
in sirul s
void main()
{
int c,r,nr,N,j,s [100];
printf("\n Numarul de cifre
ale unui numar natural\n");
printf("\n Care, trebuie sa
fie <=32767 (de tip
int)\n\n\a");
do
{
printf("\nIntroduceti un\
nr pozitiv: ");
scanf("%d",&nr);
}
while(nr<0);
j=0;
do
{
c=nr/10;
r=nr-c*10;
s[j]=r;
nr=c;
j++;
}
while(nr>0);
N=j-1;
printf("\nNumarul are %d\
cifre. Sirul format\
este\n\t",j);
for(j=N;j>=0;j--)
printf("\n%d",s[j]);
getchar();
}
Rezultatul prelucrrii:
Rezultatul prelucrrii:
57
Rezultatul prelucrrii:
#include "stdafx.h"
#include <math.h>
#include "iostream"
using namespace std ;
void main()
{
double nr;
long int j,N,sir[100],cif;
printf("\nNumarul de cifre
zecimale\
ale unui numar real\n");
do
printf("\nIntroduceti un numar\
real:\t");
while(scanf("%lf",&nr)!=1);
j=0; // contor pentru sirul \
cifrelor zecimale ale nr.real
while(nr!=floorl(nr))
//sau while((nr-floorl(nr))>1e-6)
{
//determina cifra actuala
cif=(long int) (10*(nrfloorl(nr)));
sir[j]=cif;
nr=nr*10.0;
j++;
}
N=j;
printf("\nNumarul are %d cifre\
zecimale,sirul format:\n",N);
for(j=0;j<N;j++)
cout<< sir[j];
getchar();
}
5
#include "stdafx.h"
#include "iostream"
using namespace std ;
void main()
{
int c,r,nr,i,j,bin[100];
printf("\nProgramul face \
transformarea in binar a \
unui numar natural\n");
printf("\nNumarul trebuie \
sa fie <=32767 (de tip\
int)\n\n\a");
do
{
printf("\nIntroduceti un\
nr pozitiv: ");
scanf("%d",&nr);
}
while(nr<0);
j=0;
do
{
c=nr/2;
r=nr-c*2;
bin[j]=r;
j++;
nr=c;
}
while(nr>0);
printf("\nNumarul \
transformat in binar\
este:\t");
for(i=j-1;i>=0;i--)
printf("%d",bin[i]);
getchar();
}
Rezultatul prelucrrii:
4
#include "stdafx.h"
#include "iostream"
using namespace std ;
void main()
{
int n;
cout << "Introduceti un nr.\
natural n (in baza 10) : ";
cin >> n;
cout << "Baza 10: " << n;
printf("\nBaza 8: %o", n);
printf("\nBaza 16: %X", n);
getchar();
}
Rezultatul prelucrrii:
58
6
#include "stdafx.h"
#include <math.h>
#include "iostream"
using namespace std ;
void main()
{
double f;
int i,n, c[20],q,nmax=15,cond;
cout << "Introduceti partea fractionara a numarului,:";
cin >> f;
cout << "Noua baza: ";
cin>> q;
i=0;
do
{
c[i]=floor(f*q);
f=f*q-floor(f*q);
i++;
//Stabilirea conditiei de incheiere: fie f=0,
// am ajuns la numarul de cifre impus
if(f==0.0)
cond=1;
else
if(i==nmax)
cond=1;
else cond=0;
}
while(!cond);
n=i;
cout<<"Cifrele partii fractionare in baza " << q << " sunt: ";
for(i=0;i<n;i++)
cout << c[i];
getchar();
getchar();
}
Rezultatul prelucrrii:
59