Sunteți pe pagina 1din 14

Proiectarea Asistata de

Calculator pentru Avionica


PACA
LABORATOR 1

Introducere in limbajul C, C++, C#


Scurt istoric

Limbajul C a fost inventat de catre Dennis Ritchie in anii 70 pe un calculator pe care rula sistemul de
operare UNIX. Limbajul C s-a dezvoltat in urma revolutiei programarii structurate din anii 60. Inainte de
programarea structurata, programele erau greu de scris si de inteles din cauza logicii. O masa incalcita
de salturi, apelui si reveniri, greu de urmarit era cunoscuta sub numele de cod spaghetti. Datorita
sintaxei sale concise si usor de utilizat, in anii 80, limbajul C a devenit cel mai raspandit limbaj
structurat.
Limbajul C are insa limitele sale. Una dintre acestea o reprezinta incapacitatea de a lucra cu programe
mari. Limbajul C ridica o bariera atunci cand programul atinge o anumita dimensiune.
Limbajul C# a fost dezvoltat de o echipa restransa de ingineri de la Microsoft, echipa din care s-a
evidentiat Anders Hejlsberg (autorul limbajului Turbo Pascal si membru al echipei care a proiectat
Borland Delphi). A fost lansat publicului in iunie 2000 si oficial in primavara anului 2002 Desi limbajul
este creat de Microsoft, acesta nu este destinat doar platformelor Microsoft. Compilatoare C# exista si
pentru alte sisteme precum Linux sau Macintosh. Creat ca instrument de dezvoltare pentru
arhitectura .NET, limbajul ofera o modalitate facila si eficienta de a scrie programe pentru sistemul
Windows, internet, componente software etc.
C# deriva din doua dintre cele mai de succes limbaje de programare: C si C++. De asemenea, limbajul
este o ruda apropiata a limbajului Java.
C# este un limbaj simplu, cu circa 80 de cuvinte cheie si 12 tipuri de date predefinite. El permite
programarea structurata, modulara si orientata obiectual, conform perceptelor moderne ale programarii
profesionale.
Principiile de baza ale programarii orientate pe obiecte (INCAPSULARE, MOSTENIRE, POLIMORFISM) sunt
elemente fundamentale ale programarii C#. In mare, limbajul mosteneste sintaxa si principiile de
programare din C++. Sunt o serie de tipuri noi de date sau functiuni diferite ale datelor din C++, iar in
spiritul realizarii unor secvente de cod sigure (safe), unele functiuni au fost adaugate (de exemplu,
interfete si delegari), diversificate (tipul struct), modificate (tipul string) sau chiar eliminate (mostenirea
multipla si pointerii catre functii). Unele functiuni (cum ar fi accesul direct la memorie folosind pointeri)
au fost pastrate, dar secventele de cod corespunzatoare se considera "nesigure".

Arhitectura platformei
Microsoft.NET

Trasaturi ale platformei .NET


Dezvoltarea multilimbaj: Deoarece exista mai multe limbaje pentru aceasta platforma, este mai usor de
implementat parti specifice n limbajele cele mai adecvate. Numarul limbajelor curent implementate este mai
mare decat 10.
Independenta de procesor si de platforma: Odata scrisa si compilata, orice aplicatie .NET (al carei
management este facut de catre CLR) poate fi rulata pe orice platforma. Aplicatia este izolata de particularitatile
hardware sau ale sistemului de operare.
Managementul automat al memoriei: Problemele de tipul memory leakage nu mai trebuie sa preocupe
programatorii; overhead-ul indus de catre mecanismul de garbage collection este suportabil, fiind implementat n
sisteme mult mai timpurii.
Suportul pentru versionare: Daca o aplicatie a fost dezvoltata si testata folosind anumite componente,
instalarea unei componente de versiune mai noua nu va atenta la buna functionare a aplicatiei n discutie: cele
doua versiuni vor coexista pasnic.
Sprijinirea standardelor deschise: Nu toate dispozitivele ruleaza sisteme de operare Microsoft sau folosesc
procesoare Intel. Din aceasta cauza orice este strans legat de acestea este evitat.
Distribuirea usoara: Actualmente instalarea unei aplicatii sub Windows nseamna copierea unor fisiere n
niste directoare anume, modificarea unor valori n registri, instalare de componente COM, etc. Dezinstalarea
completa a unei aplicatii este in majoritatea cazurilor o utopie. Aplicatiile .NET, datorita metadatelor si reflectarii
trec de aceste probleme. Se doreste ca instalarea unei aplicatii sa nu nsemne mai mult decat copierea fisierelor
necesare ntr-un director, iar dezinstalarea aplicatiei sa se faca prin stergerea acelui director.
Arhitectura distribuita: Noua filosofie este de a asigura accesul la servicii Web distribuite; acestea
conlucreaza la obtinerea informatiei dorite. Platforma
.NET asigura suport si unelte pentru realizarea acestui
tip de aplicatii.
Interoperabilitate cu codul unmanaged: Codul unmanaged se refera la cod care nu se afla n totalitate
sub controlul CLR. El este rulat de CLR, dar nu beneficiaza de CTS sau garbage collection. Este vorba de apelurile
functiilor din DLL-uri, folosirea componentelor COM, sau folosirea de catre o componenta COM a unei componente
.NET. Codul existent se poate folosi n continuare.
Securitate: Aplicatiile bazate pe componente distribuite cer automat securitate.

Crearea aplicatiilor consola


Pentru a realiza aplicatii consola in mediul de dezvoltare Visual
Studio, trebuie sa instalam o versiune a acestuia, eventual de la
adresa: https://www.visualstudio.com/downloads/downloadvisual-studio-vs
Dupa lansarea aplicatiei, din meniul File se alege optiunea
NewProject, apoi alegem ConsoleAplication, modificand numele
aplicatiei in caseta Name.

Crearea aplicatiilor consola

La crearea unei aplicatii consola se genereaza un fisier cu extensia .c (de la C), .cpp (de
la C++) sau .cs. (de la C Sharp).
Exemplu de cod sursa generat in C# este:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Exemplu1
{
class Program
{
static void Main(string[ ] args)
{
string nume = Cristina;
Console.WriteLine("Primul program realizat de + nume);
}
}
}

Pentru compilarea programului, selectati Build din meniul principal sau apasati tasta F6.
In cazul in care aveti erori, acestea sunt afisate in fereastra Error List. Efectuand dubluclic pe fiecare eroare in parte, cursorul din program se pozitioneaza pe linia continand
eroarea.
Rularea programului se poate realiza in mai multe moduri:
- rapid fara asistenta de depanare (Start Without Debugging Ctrl+F5);
- rapid cu asistenta de depanare (Start Debugging F5);
- rulare pas cu pas (Step Into F11 si Step Over F10);
- rulare rapida pana la linia marcata ca punct de intrerupere (Toggle Breakpoint F9
pe linia respectiva si apoi Start Debugging F6). Incetarea urmarii pas cu pas (Stp
Debugging Shift+F5) permite iesirea din modul depanare si revenirea la modul normal
de lucru. Toate optiunile si rulare si depanare se gasesc in meniul Debug al mediului de
programare.

Structura unui program


C#

using System;
namespace Salut
{
class Program
{
static void Main()
{
Console.WriteLine(Salut!");
}
}
}

In C#, simplificat vorbind, un program poate fi privit ca avand mai multe "straturi":
avem cod in interiorul metodelor, care, la randul lor, se afla in interiorul claselor, aflate in
interiorul namespaces-urilor. O aplicatie C# este formata din una sau mai multe clase,
grupate in spatii de nume (namespaces). Este obligatoriu ca doar una din aceste clase
sa contina "un punct de intrare" si anume metoda (functia) Main.
- Clasa (class), in termeni simplificati, reprezinta principalul element structural si de
organizare in limbajele orientate spre obiecte, grupand date cat si functii care prelucreaza
respectivele date.
- Spatiul de nume (Namespaces): din ratiuni practice programele mari sunt divizate in
module, dezvoltate separat, de mai multe persoane. Din acest motiv, exista posibilitatea de
a aparea identificatori cu acelasi nume. Pentru a evita erori furnizate din acest motiv, in
1995 limbajul C++ introduce notiunea si cuvantul cheie namespace. Fiecare multime de
definitii dintr-o librarie sau program este grupata intr-un spatiu de nume, existand astfel
posibilitatea de a avea intr-un program definitii cu nume identic, dar situate in alte spatii de
nume.
linia 1: este o directiva care specifica faptul ca se vor folosi clase incluse in spatiul de nume System. In
cazul nostru se va folosi clasa Console;
linia 2: spatiul nostru de nume;
linia 4: orice program C# este alcatuit din una sau mai multe clase;

Sintaxa limbajului
Comentarii
- comentariu pe un rand prin folosirea //. Tot ce urmeaza dupa caracterele // sunt considerate, din acel loc pana la
sfarsitul randului, drept comentarii.
Exemplu:
// Acesta este un comentariu pe un singur rand

- comentariu pe mai multe randuri prin folosirea /* si */. Orice text cuprins intre simbolurile mentionate mai sus se
considera a fi comentariu. Simbolurile /* reprezinta inceputul comentariului, iar */ sfarsitul respectivului comentariu.
Exemplu:
/* Acesta este un
comentariu care se
intinde pe mai multe randuri */
- creare document in format XML folosind ///. XML a fost proiectat in scopul transferului de date intre aplicatii pe
Internet.

Nume
Prin nume dat unei variabile, clase, metode etc. intelegem o succesiune de caractere care indeplinesc urmatoarele reguli:
- numele trebuie sa inceapa cu o litera sau cu unul dintre caracterele "_" si "@";
- primul caracter poate fi urmat numai de litere, cifre sau un caracter de subliniere;
- numele care reprezinta cuvinte cheie nu pot fi folosite in alt scop decat acela pentru care au fost definite;
- cuvintele cheie pot fi folosite in alt scop numai daca sunt precedate de @;
- doua nume sunt distincte daca difera prin cel putin un caracter (fie el si litera mica ce difera de aceeasi litera
majuscula);
- In cazul numelor claselor, metodelor, a proprietatilor, enumerarilor, interfetelor, spatiilor de nume, fiecare cuvant care
compune numele incepe cu o majuscula;
- In cazul numelor variabilelor, daca numele este compus din mai multe cuvinte, primul incepe cu minuscula, celelalte
cu majuscula;

Constante
In C# exista doua modalitati de declarare a constantelor: folosind const sau folosind modificatorul readonly. Constantele
declarate cu const trebuie sa fie initializate la declararea lor.

Exemple
Afisarea unui
mesaj
pe ecran in C#

// Primul program in C#.


using System;
namespace Salut
{
class Salut
{
static void Main()
{
Console.WriteLine("Salutari si felicitari pentru primul
program in C#");
// Pastram fereastra deschisa in modul debug
Console.WriteLine("Apasati orice tasta pentru a iesi");
Console.ReadKey();
}
}
}

Exemple
Afisarea unui
mesaj
pe ecran in C

// Primul program in C++.


#include "stdafx.h"
#include "conio.h"
int main()
{
printf("Salutari si felicitari pentru primul program in
C\n");
// Pastram fereastra deschisa in modul debug
printf("Apasati orice tasta pentru a iesi\n");
_getch();
return 0;
}

Exemple
Afisarea cu 4 zecimale
a constantei PI in C#
using System;
using System.Collections.Generic;
using System.Text;
namespace Exemplu1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Valoarea constantei matematice PI este
{0:#.####}", Math.PI);
Console.ReadKey();
}
}
}

Exemple
//Aplicatie de afisare tabel Fahrenheit-Celsius pentru fahr= 0,20,...300
#include "stdafx.h"
#include "conio.h"
int main()
{
int fahr, celsius;
int prim, ultim, pas;
prim=0;
// limita inferioara a scarii
ultim =300; // limita superioara
pas=20;
// pasul
fahr= prim;
while (fahr<= ultim)
{ celsius =5 * (fahr-32)/9;
printf("%d\t%d\n", fahr, celsius);
fahr=fahr+pas;}
_getch();
return 0;
}

Afisarea tabel
Fahrenheit-Celsius in C

Exemple
#include "stdafx.h"
#include "conio.h"
int main()
Afisarea tabel
{
float fahr, celsius;
Fahrenheit-Celsius in
float prim, ultim, pas;
prim=0;
// limita inferioara a scarii Aliniere prin format
ultim =300; // limita superioara
pas=20;
// pasul
fahr= prim;
while (fahr<= ultim)
{ celsius =5 * (fahr-32)/9;
printf("%3.0f\t%6.1f\n", fahr, celsius);
fahr=fahr+pas;}
_getch();
return 0;
}

Exemple
using System;
using System.Collections.Generic;
using System.Text;

Transformarea unui nr
de secunde in ore, min
si secunde in C#

namespace Exemplu2
{
class Program
{
static void Main(string[] args)
{
int sec, h, m, s;
Console.Write(nr. Secunde:);
sec=int.Parse(Console.ReadLine());
m=sec/60;
s=sec%60;
h=m/60;
m=m%60;
Console.WriteLine({0} secunde reprezinta: {1} ore, {2} min, {3}
s, sec, h,m,s);
Console.ReadKey();
}
}
}

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