Sunteți pe pagina 1din 13

1

LECȚIA 1:
PROGRAMUL SURSĂ ÎN LIMBAJUL C#.
TIPURI DE DATE ȘI VARIABILE
Un program pentru calculator (o aplicație software) este rezultatul unor
activități în două etape:
1. analiză, prin care se formulează problema de soluționat și se
descrie modul de rezolvare a acesteia printr-un algoritm;
2. programare, în urma căreia se obține programul propriu zis, care
ulterior este testat pentru eliminarea eventualelor erori.

1.1. ETAPELE GENERĂRII UNUI PROGRAM


EXECUTABIL

În funcție de complexitatea problemei și experiența programatorului,


etapele pot avea, în mod explicit, una sau mai multe din faze sau, unele
dintre ele, pot fi omise. Acestea sunt:
1. Formularea problemei
2. Algoritmul de rezolvare a problemei
3. Întocmirea programului sursă
4. Compilarea
5. Editare de legături (build, link,..)

1.2. PROGRAMUL SURSĂ ÎN LIMBAJUL C#

1.2.1. ISTORIC

Limbajul C# este rezultatul unei evoluții, care are la origine limbajul C,


dezvoltat în 1972 de Dennis M. Retchie, la Laboratoarele AT&T Bell,
pentru crearea de sisteme de operare. Anterior, sistemele de operare erau
dezvoltate în limbaj de asamblare, pentru a fi mai rapide.

7
LECȚIA 1: PROGRAMUL SURSĂ ÎN LIMBAJUL C#. TIPURI DE DATE ȘI VARIABILE

După adaptarea compilatorului pentru sistemul de operare MS-DOS,


Institutul National pentru Standarde al Americii (ANSI), a definit o
versiune oficială pentru limbajul C, rezultând astfel ANSI C.
Limbajul C#, apărut în anul 2001, înglobează principiile programării
structurate, ale programării orientate pe obiecte, dar și alte paradigme ale
programării, de exemplu programarea bazate pe evenimente, specifică
interfețelor grafice.
Ca și terminologie, pentru obiect se utilizează cuvântul cheie class, funcția
este numită metodă, iar datele, exprimate prin variabilele sunt câmpuri sau
atribute.

1.2.2. EXEMPLU SIMPLU DE PROGRAM SURSĂ C#

Un program simplu, care are ca și efect în execuție afișarea pe monitor


mesajul Hello C#!, este următorul exemplu. Pentru crearea acestuia trebuie
parcurși următorii pași :

Fig. 1.1. Elementele unui program sursă C# simplu


Pentru crearea acestuia trebuie parcurși următorii pași :
1. Folosind un editor de texte, se scrie textul de mai sus;
2. Se salvează acest text, numit program sursă, într-un fișier numit
de exemplu "p01.cs";
3. Compilarea și generarea fișierului executabil, "p01.exe" .
Toate aceste etape pentru generarea programului executabil sunt parcurse
interiorul mediului de programare, care include editorul de text,
compilatorul și ”link-editorul”, care generează programul executabil.

8
LECȚIA 1: PROGRAMUL SURSĂ ÎN LIMBAJUL C#. TIPURI DE DATE ȘI VARIABILE

Când programul este rulat (executat), atunci va apare pe ecran textul:


Hello C#!

O aplicație (un program) în C# este formată din una sau mai multe class
(clase, obiecte), grupate în namespaces (spații de nume, biblioteci).
Este obligatoriu ca doar una din aceste clase să conțină metoda Main( ),
care este un „punct de intrare” (entry point), pentru generarea programului
executabil.
Clasa (obiectul), class, - reprezintă principalul element structural și de
organizare în limbajele orientate spre obiecte, grupând date cât și funcții
(metode) care prelucrează respectivele date.
Spațiul de nume, namespace sunt colecții de clase, (metode și date).
Programele mari, sunt divizate în module, dezvoltate separat, de mai multe
persoane. Din acest motiv, există posibilitatea de a apărea identificatori cu
același nume. Pentru a evita erori furnizate din acest motiv, în 1955
limbajul C++ introduce noțiunea și cuvântul cheie namespace.
Fiecare mulțime de definiții dintr-o bibliotecă sau program este grupată
într-un spațiu de nume, existând astfel posibilitatea de a avea într-un
program definiții cu nume identic, dar situate în alte spații de nume.
În cazul în care, într-o aplicație, unele clase sunt deja definite, ele se pot
folosi importând spațiile de nume care conțin definițiile acestora. Mai
menționăm faptul că un spațiu de nume poate conține, la rândul său, mai
multe spații de nume.
În programul sursă din exemplul anterior:
 Linia 1: using System;, este o directivă care specifică faptul că se
vor folosi clase incluse în spațiul de nume (biblioteca) System. În
cazul nostru, se va folosi clasa (obiectul) Console.
 Linia 3: namespace c03, spațiul de nume, creat de programator la
începerea unui nou proiect, coincide cu numele proiectului;
 Linia 5: class Program, orice program C# este alcătuit din una sau
mai multe clase;
 Linia 7: static void Main(string[] args), metoda Main, „punctul de
intrare” în program;
 Linia 9: System.Console.WriteLine("Hello C#!");, clasa Console,
amintită mai sus, este folosită pentru operațiile de intrare/ieșire.
Pentru aceasta, se apelează metoda WriteLine(…) din această
clasă, pentru afișarea mesajului dorit pe ecran.
9
LECȚIA 1: PROGRAMUL SURSĂ ÎN LIMBAJUL C#. TIPURI DE DATE ȘI VARIABILE

În programul sursă, pentru a identifica sau utiliza anumite metode sau


variabile se utilizează numele acestora, precedate de numele clasei din care
fac parte și a numelui de spațiu care include clasa, folosind ca și separator
caracterul ”. ” (punct), ca și în figura de mai jos.

Fig. 1.2. Separatorul .


Dacă se utilizează directiva using <nume_namespace>;, atunci componentele
unui namespace sunt automat incluse și recunoscute în programul sursă,
fără a mai fi nevoie de precizarea nume namespace în fața obiectelor
incluse și utilizate în programul sursă.

1.3. MEDIUL DE PROGRAMARE

Exemplele de programe sursă din acest curs sunt testate în mediul de


programare Visual Studio Express , al firmei Microsoft, versiunea 2013 for
Windows Desktop.
Console Prezentarea elementelor esențiale ale limbajului nu implică (pentru
Application simplitate) utilizarea de la început interfețelor Windows, majoritatea
programelor rulate fiind în modul consolă (Console Application).
Pentru realizarea unei aplicații (program), pe lângă fișierul sursă .cs, mai
sunt necesare alte informații stocate în fișiere antet, biblioteci etc. Acestea
împreună formează un proiect (project).
Un proiect nou de tip Console Application se începe prin secvența de
comenzi din meniu:
FILE  New Project…  Visual C#  Console Application
În fereastra de dialog deschisă (New Project…) se precizează limbajul
(C#), modelul preinstalat (template), numele proiectului (Name), folderul
care va conține fișierele create (Location) și numele problemei care include
proiectul (Solution name), Fig. 1.3.

10
LECȚIA 1: PROGRAMUL SURSĂ ÎN LIMBAJUL C#. TIPURI DE DATE ȘI VARIABILE

Fig. 1.3. Fereastra New Project…


După deschiderea unui nou proiect (project), mediul IDE (Integrated
Developement Environment) pentru editarea, compilarea, editarea
legăturilor și rularea programelor de tip Console Application are următorul
aspect, Fig. 1.4:

Fig. 1.4. Editorul programului sursă


Se observă că se creează un namespace cu numele proiectului, care conține
clasa Program, class Program, cu metoda principală Main (..).

11
LECȚIA 1: PROGRAMUL SURSĂ ÎN LIMBAJUL C#. TIPURI DE DATE ȘI VARIABILE

Pentru a afișa un mesaj pe ecran, programul sursă va apele metoda


WriteLine(..), a clasei (obiectului) Console din spațiul de nume de
bibliotecă System:
System.Console.WriteLine("Hello C#!");.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace p01
{
class Program
{
static void Main(string[] args)
{
System.Console.WriteLine("Hello C#!");
}
}
}

Urmează etapa de compilare și generare a programului executabil, cu una


din comenzile DEBUG  Start Debugging sau DEBUG  Start
Without Debugging.

12
LECȚIA 1: PROGRAMUL SURSĂ ÎN LIMBAJUL C#. TIPURI DE DATE ȘI VARIABILE

Fig. 1.5. Submeniul DEBUG


Dacă programul sursă este corect întocmit, fără erori sintactice, atunci
fereastra de execuție de tip consolă artă ca în figura de mai jos:

Fig. 1.5. Fereastra de execuție a programului

1.4. VARIABILE

Variabila este o mărime care poate lua valori de un anumit tip, dintr-o
mulțime sau interval de date. Numele de variabile au următoarele restricții
specifice identificatorilor, ca atomi lexicali:
- nu pot începe cu un cifră( 1x, 5j, .. ),

13
LECȚIA 1: PROGRAMUL SURSĂ ÎN LIMBAJUL C#. TIPURI DE DATE ȘI VARIABILE

- nu pot fi cuvinte rezervate ( int, Main etc. ),


- nu pot conține caractere speciale ($ @ # & etc.), cu excepția
caracterului underscore (_).

1.4.1. TIPURI DE DATE

Limbajul C# a fost prevăzut cu următoarele tipuri primitive (built-in


types)) de date:
- int, numere întregi;
- float, double, decimal, pentru numere zecimale
- char, codul unui caracter sau un număr întreg reprezentat pe un
byte;
- string, șiruri de caractere;
- bool, valori logice true/false;
- object, tip special, poate lua valori de orice tip primitiv;

În tabelul următor sunt prezentate tipurile primitive și intervalele de valori


corespunzătoare acestora.
Tabelul 1.1 Tipuri de date
Nr.
Tip Valoarea
Valoarea minimă Valoarea maximă byt
data implicită
es

sbyte 0 -128 127 1

byte 0 0 255 1

short 0 -32768 32767 2

ushort 0 0 65535 2

int 0 -2147483648 2147483647 4


uint 0u 0 4294967295 4

- 8
long 0L 9223372036854775 9223372036854775807
808

ulong 0u 0 18446744073709551615 8
float 0.0f ±1.5×10-45 ±3.4×1038 4

double 0.0d ±5.0×10-324 ±1.7×10308 8

decimal 0.0m ±1.0×10-28 ±7.9×1028 16


bool false Two possible values: true and false 1

14
LECȚIA 1: PROGRAMUL SURSĂ ÎN LIMBAJUL C#. TIPURI DE DATE ȘI VARIABILE

char '\u0000' '\u0000' '\uffff' 2


object null - - -

string null - - -

În limbajul C#, orice variabilă, înainte de utilizare, trebuie declarată.


Formatul general
<tip_data> lista_variabile;
<tip_data> <identificator> [= <valoare_initiala>];

1.4.2. METODE PENTRU OPERAȚII DE INTRARE /


IEȘIRE

O modalitate simplă de citire/scriere a valorilor variabilelor de tipuri


primitive, utilizate de un program C#, sunt metodele clasei Console din
spațiul de nume System:
Pentru citirea valorilor (input):
Read(…), citește un caracter (codul acestuia); Read(…)
RealKey(…), citește tasta apăsată sau o combinație de taste; Write(…)
ReadLine(…), citește o (singură) linie de caractere;
Pentru tipărirea valorilor (output):
Write(…), tipărește valoarea argumentelor (variabilelor);
WriteLine(…), tipărește valoarea argumentelor și mută cursorul pe linia
următoare.

 Cu metodele Read(…), ReadLine(…) se citesc un caracter, respectiv șiruri de


caractere de la tastatură; Parse(…)
 Pentru citirea valorilor numerice caracterele citite trebuie convertite cu
metoda Parse(…) (vezi exemplele următoare).

1.5. APLICAȚII

Afișare mesaje pe ecran


a) Scrieți un program care afișează pe ecran diferite
L1_1 mesaje.

15
LECȚIA 1: PROGRAMUL SURSĂ ÎN LIMBAJUL C#. TIPURI DE DATE ȘI VARIABILE

/*
Program L1_1 v1.0
Afisare de mesaje
Autor: NUME Prenume
Data: dd.ll.yyyy
*/
using System;
namespace L1_1
{
class Program
{
static void Main(string[] args)
{
System.Console.Write("Buna ziua!");
System.Console.Write("\n");
System.Console.WriteLine("Sunt NUME Prenume, anul I
????.\nInvat sa programez in C#!");

System.Console.ReadKey();
}
}
}

b) Care sunt elementele unui program sursă C# ? Reține forma


minimală a unui program sursă C#. Folosiți indentarea liniilor
pentru claritatea programului.
c) Ce sunt comentariile ? Cum și unde se introduc în programul
sursă ?
d) Rețineți cele două metode (funcții) care afișează pe ecran
constante șir de caractere. În ce clasă sunt sunt cuprinse ? În
care namespace ?
e) Care este rolul secvenței \n în șirul argument al metodei
Write(…) ?
f) Care este efectul metodei ReadKey() ? Afișați în prealabil
mesajul “Apasati o tasta pentru a continua”.
g) Introduceți comentariile informative la început de program
sursa. Adăugați programul la Portofoliul de programe.

Greutatea ideală
Calculează greutatea ideală în funcție de înălțime (vârstă) după
L1_2 mai multe formule propuse.
a) Introduceți și executați următorul program.

16
LECȚIA 1: PROGRAMUL SURSĂ ÎN LIMBAJUL C#. TIPURI DE DATE ȘI VARIABILE

//as3_1 Exemplu de utilizare a variabilelor de tip int,


float

using System;
namespace as3_1
{
class Program
{
static void Main(string[] args)
{
int inaltimea, varsta;
float greutatea;
// declarare variabile date de intrare
string sir;
// declarare variabila string
Console.Write("Inaltimea [cm]: ");
// afiseaza mesaj
sir = Console.ReadLine();
// citeste un sir de caractere
inaltimea = int.Parse(sir);
// converteste sirul în valoare intreaga
Console.Write("Varsta [ani]: ");
// afiseaza mesaj
sir = Console.ReadLine();
// citeste un sir de caractere
varsta = int.Parse(sir);
// converteste sirul în valoare intreaga

greutatea = (float)(inaltimea - 100);


Console.WriteLine("\nFormula Broca\n\tgreutatea
= {0:.##};", greutatea);

greutatea = (float)(inaltimea / 2.4);


Console.WriteLine("\nFormula Pende\n\tgreutatea
= {0:.##};", greutatea);

Console.WriteLine("\nFormula Lorentz");
greutatea = (float)(inaltimea - 100 - (inaltimea
- 150) / 4);
Console.WriteLine("\tgreutatea barbati =
{0:.##};", greutatea);
greutatea = (float)(inaltimea - 100 - (inaltimea
- 150) / 2);
Console.WriteLine("\tgreutatea femei =
{0:.##};", greutatea);

greutatea = (float)(inaltimea - 100 + (varsta /


10) * 0.9);
Console.WriteLine("\nFormula dupa
varsta\n\tgreutatea = {0:.##};", greutatea);

17
LECȚIA 1: PROGRAMUL SURSĂ ÎN LIMBAJUL C#. TIPURI DE DATE ȘI VARIABILE

Console.Write("\nApasati orice tasta pentru a


termina...");
Console.ReadKey();
}
}
}
b) Explicați funcționarea în execuție a programului, identificați variabilele, tipul
acestora și relațiile de calcul utilizate.
c) Care este semnificația pentru {0:.##} și \t ?
d) Introduceți comentariile informative la început de program sursă. Adăugați
programul la Portofoliul de programe.

Rezistența aerului
Următorul program calculează forța de rezistență a aerului asupra
L1_3
unui vehicul în mișcare.
a) Introduceți și executați acest program.

//as3_2 Exemplu de utilizare a variabilelor de tip int,


float
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace a3_as2
{
class Program
{
static void Main(string[] args)
{
//variabile
double Ra,K,s,v;
string sir;

//afisare tabel cu date de intrare


Console.Write("Calculeaza rezistenta aerului asupra
unui vehicul in miscare\n");
Console.Write("________________________________________
____________________\n");

//afisare tabel cu date de intrare


Console.Write("Tabel de valori\n");
Console.Write("Tipul vehicul \tCoeficientul K [kg/m^3]
\tAria sectiunii s [m^2]\n");

18
LECȚIA 1: PROGRAMUL SURSĂ ÎN LIMBAJUL C#. TIPURI DE DATE ȘI VARIABILE

Console.Write("Autoturism\t0.20...0.30\t1,2...2,8\n");
Console.Write("Autobuz\t0.30...0.40\t4,5...7,0\n");
Console.Write("Autocamion\t0.60...0.70\t3,0...5,0\n");

//introducere date de intrare


Console.Write("Introduceti coeficientul dinamic al
vehiculului [kg/m^3] K = ");
sir = Console.ReadLine();
K = double.Parse(sir);

Console.Write("Introduceti aria sectiunii transversale


a vehiculului [m^2] s = ");
sir = Console.ReadLine();
s = double.Parse(sir);
Console.Write("Introduceti viteza de deplasare a
vehiculului [km/h] v =: ");
sir = Console.ReadLine();
v = double.Parse(sir);

//calcul valori date de iesire


Ra=K*s*v*v/13.0;

//afisare rezultate
Console.Write("\nRezistenta aerului este: {0}
[N].\n",Ra);

Console.Write("\nApasati orice tasta pentru a


termina...");
Console.ReadKey();
}
}
}

b) Explicați funcționarea în execuție a programului, identificați


variabilele, tipul acestora și relațiile de calcul utilizate.

c) Introduceți comentariile informative la început de program sursă.


Adăugați programul la Portofoliul de programe.

19

S-ar putea să vă placă și