Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
1
UTCN, Curs: PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE II
12.1. Aplicatii cu circuite electrice 12.2. Aplicatii cu automate programabile 12.3. Aplicatii Visual C++
Cap.12. Aplicatii in C/C++ in inginerie electrica
CUPRINS
UTCN, Curs: PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE II
12.1 Aplicatii cu circuite electrice
2
UTCN, Curs: PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE II
Cap. 11. Aplicatii in C/ C++
#include <stdio.h>
void main(void)
{ //introducerea datelor
int i,n; char c;
double R[10], Res=0, Rep=0;
printf("Programul calculeaza rezistenta echivalenta \n");
printf("Introduceti nr de rezistente\n"); scanf("%d", &n);
printf("Introduceti valorile rezistentelor în Ohmi\n");
for (i=0;i<n;i++) {printf("R[%d]=", i); scanf("%lf", &R[i]);}
printf("cum sunt conectate rezistentele?\n s=serie p=paralel: ");
scanf("\n%c", &c); // sau c=getch();
//calculul rezistentei echivalente pentru conexiunea în serie
if (c=='s')
{for (i=0; i<n; i++)
Res+=R[i];
printf("Rezistenta echivalenta serie: R=%lf\n", Res); }
//calculul rezistentei echivalente pentru conexiunea în paralel
if (c=='p') {for (i=0; i<n; i++) Rep+=1/R[i];
printf("Rezistenta echivalenta paralel: R=%lf\n", 1/Rep);}
}
EXEMPLE
12.1 Aplicatii cu circuite electrice
UTCN, Curs: PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE II
12.1 Aplicatii cu circuite electrice
3
UTCN, Curs: PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE II
Cap. 11. Aplicatii in C/ C++
12.1 Aplicatii cu circuite electrice
UTCN, Curs: PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE II
#include <stdio.h>
#include <math.h>
#define PI 3.14159265358979
main()
{double R, L, C,U,I,f,w, Z, phi;
printf("R[ohmi]="); scanf("%lf", &R);
printf("L[H]="); scanf("%lf", &L);
printf("C[F]="); scanf("%lf", &C);
printf("U[V]="); scanf("%lf", &U);
printf("f[Hz]="); scanf("%lf", &f);
w=2*PI*f;
Z=sqrt(pow(R,2)+pow((w*L-1/(w*C)), 2));
phi=atan((w*L-1/(w*C))/R);
I=U/Z;
printf("Z[ohmi]=%lf\n", Z);
printf("I[A]=%lf\t phi[grade]=%lf\n", I, phi*180/PI);
}
12.1 Aplicatii cu circuite electrice
4
UTCN, Curs: PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE II
12.1 Aplicatii cu circuite electrice
UTCN, Curs: PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE II
Cap. 11. Aplicatii in C/ C++
Aplicatii inginerie electrica
5
UTCN, Curs: PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE II
Cap. 11. Aplicatii in C/ C++
#include <stdio.h>
#include <conio.h>
void main()
{char ch, c; double L1,L2,R1,R2,C1,C2, U;c='d';
while ((c=='D')||(c=='d'))
{printf("\nAlegeti tipul de divizor de tensiune:");
printf("\nInductiv=I, Capacitiv=C,Rezistiv=R :");
ch=getch(); putch(ch);
if (ch=='I' || ch=='i')
{printf("\nL1[H]=");scanf("%lf", &L1);
printf("L2[H]=");scanf("%lf", &L2);
printf("U[V]=");scanf("%lf", &U);
printf("U2[V]=%lf", U*L2/(L1+L2));}
else if (ch=='C' || ch=='c')
{printf("\nC1[F]=");scanf("%lf", &C1);
printf("C2[F]=");scanf("%lf", &C2);
printf("U[V]=");scanf("%lf", &U);
printf("U2[V]=%lf", U*C1/(C1+C2));}
else if (ch=='R' || ch=='r')
{printf("\nR1[ohmi]=");scanf("%lf", &R1);
printf("R2[ohmi]=");scanf("%lf", &R2);
printf("U[V]=");scanf("%lf", &U);printf("U2[V]=%lf", U*R2/(R1+R2));}
printf("\nContinuati? Da=D, Nu=N: "); c=getch(); putch(c);}}
12.1 Aplicatii cu circuite electrice
UTCN, Curs: PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE II
12.1 Aplicatii cu circuite electrice
6
UTCN, Curs: PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE II
12.1 Aplicatii cu circuite electrice
UTCN, Curs: PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE II
12.1 Aplicatii cu circuite electrice
7
UTCN, Curs: PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE II
12.1 Aplicatii cu circuite electrice
UTCN, Curs: PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE II
12.1 Aplicatii cu circuite electrice
…
8
UTCN, Curs: PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE II
12.1 Aplicatii cu circuite electrice
…
UTCN, Curs: PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE II
12.2. Aplicatii cu automate programabile
9
UTCN, Curs: PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE II
12.3. Aplicatii in Visual C++ : Universal Apps
In Microsoft Visual Studio 2015/2017 se pot scrie programe in C++
de tip apps care ruleaza in Windows 10, inclusiv pe telefoane mobile.
Aceste apps au interfata utilizator definita in XAML (Extensible
Application Markup Language .
UTCN, Curs: PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE II
12.3. Aplicatii in Visual C++ : Universal Apps
10
UTCN, Curs: PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE II
12.3. Aplicatii in Visual C++ : Universal Apps
UTCN, Curs: PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE II
Limbaje de programare
11
UTCN, Curs: PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE II
Limbajele C/ C++/ C#
C++ != C#, nu prin sintaxa, cat prin conceptie si mod de operare :
Definitia C : este un limbaj de programare mid-level cu scop general. Stă la
baza altor limbaje de programare foarte populare: C++, JAVA, C# , JavaScript.
Definitia C++ : este un limbaj de programare mid-level cu scop general cu
caracteristici high-level si (clase, POO) low-level (lucrul cu pointerii, adrese
de memorie etc) .
Definitia C# : este un limbaj de programare high-level simplu, modern, obiect
orientat, type-safe (nu permite ca in C++ pointeri void, iar erori de genul
“Access violation” –la accesul unei zona de memorie nealocate in C++
sunt inexistente in C#) si este derivat din C si C++
UTCN, Curs: PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE II
Diferente limbaje C++/C#
Codul C++ este compilat in cod assembly, pe cand C# este compilat in
“Intermediate language” ( IL), apoi este compilat in executabil printr-o
metoda Just-In-Time Compilation. Ex. Sa presupunem ca avem o
aplicatie cu 1000 de functii, clase si metode, dar in functie de datele de
intrare poate folosi doar 1-2 functii. C++ incarca TOT la compilare, pe
cand compilatorul de C# incarca functiile /clasele pe masura ce acestea
sunt utilizate.
Instructiunile if /else , while , for sunt la fel ca in C++ dar switch e
diferit (in C++ nu e obligatoriu break dupa fiecare case, in C# este
obligatoriu).
Instructiunea foreach in C# (contestat de unii pt ca se creaza obiecte
virtuale si ingreuneaza gestionarea memoriei)
In C# mai multe tipuri de date decat in C/C++ : short, unshort, decimal,
string, etc
C# nu permite mostenirea multipla si nu se pot deriva clasele decat
cu public
C++ e mai rapid decat C#
12
UTCN, Curs: PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE II
Aplicatii in Visual in C++/C#
Tutoriale video aplicatii Windows
UTCN, Curs: PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE II
Alte aplicatii in Visual C++/C#
Interfata Windows pentru calcul rezistenta echivalenta serie
13
UTCN, Curs: PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE II
Aplicatie in Visual C#
Interfata Windows pentru functii trigonometrice
UTCN, Curs: PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE II
Aplicatii grafice in Visual C++
Desenarea graficului functiei sinus
14
UTCN, Curs: PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE II
Aplicatii grafice in Visual C++
Desenarea graficului functiei sinus
UTCN, Curs: PROGRAMAREA CALCULATOARELOR SI LIMBAJE DE PROGRAMARE II
Aplicatii grafice in Visual C++
Alte tutoriale: youtube