Laborator instructiuni repetitive - UMFST

Preview:

Citation preview

Instructiunea while o Afisati primele 10 numere naturale

o Afisati primele 90 numere naturale sub forma unui tabel cu 9 coloane. Alinierea

numerelor se va face la stanga.

o Afisati primele 200 numere naturale sub forma unui tabel cu 10 coloane.

Alinierea numerelor se va face la dreapta.

o Afisati primele numere naturale sub forma unui tabel cu 7 coloane si 20 de

randuri. Alinierea numerelor se va face la stanga.

o Afisati primele numere naturale sub forma unui tabel cu 7 coloane si 20 de

randuri. Alinierea numerelor se va face la dreapta.

o Afisati suma si produsul primelor 100 numere naturale

o Afisati primele 91 numere naturale astfel: pe prima linie un numar, pe linia a doua

2 nummere, pe linia a treia 3 numere... etc

o Afisati primele 91 numere naturale astfel: pe prima linie 13 numar, pe linia a doua

12 nummere, pe linia a treia 11 numere... pe ultima linie un numar

o Instructiuni while in WFA Utilizand instructiunea while realizati urmatoarele aplicatii

Realizati o aplicatie grafica care deseneaza linii orizontale intr-un

dreptunghi asemanator cu imaginea de jos:

Se dau coordonatele x0, y0, latimea w si inaltimea h ale dreptunghiului.

Realizati o aplicatie grafica care deseneaza linii verticale intr-un

dreptunghi asemanator cu imaginea de jos:

Se dau coordonatele x0, y0, latimea w si inaltimea h ale dreptunghiului.

Realizati o aplicatie grafica care deseneaza caroiaj intr-un dreptunghi

asemanator cu imaginea de jos:

Se dau coordonatele x0, y0, latimea w si inaltimea h ale dreptunghiului.

Realizati o aplicatie grafica pentru a desena axa ox oy cu diviziuni

asemanatoare imaginii de jos:

Realizati o aplicatie grafica pentru a desena dereptunghiuri asemanatoare

cu cele de jos:

Realizati o aplicatie grafica pentru a desena elipse si dreptunghiuri de

dimensiuni si culori aleatoare asemanatoare cu imaginea de jos:

Reluati aplicatia din curs cu roza polara dar de data aceasta coeficientul se

da repetitiv cu o bucla while nu din NumericUpDown

o Instructiunea do while Realizati un program care calculeaza integrala functiei x3 pe intervalul x1

x2

Realizati un program care calculeaza integrala functiei x3 pe intervalul 0-

10 utilizand metoda trapezului.

Realizati un program C# WFA care afiseaza graficul din figura de jos:

Realizati o aplicatie grafica in care veti simula un termometru asemanator

cu imaginea de jos:

o Instructiunea for Afisati primele 25 de numere

Afisati patratul primelor 10 numere naturale

Realizati un program care cere un numar si verifica daca acesta este prim

sau nu.

Afisati toate numerele prime pana la 1000

Realizati un program care afiseaza numerele din figura de jos:

o

o Instructiuni for in WFA Utilizand instructiunea for realizati urmatoarele aplicatii

Realizati o aplicatie grafica pentru a desena o tabla de sah asemanatoare

imaginii de jos:

Realizati o aplicatie grafica care deseneaza linii orizontale intr-un

dreptunghi asemanator cu imaginea de jos:

Se dau coordonatele x0, y0, latimea w si inaltimea h ale dreptunghiului.

Realizati o aplicatie grafica care deseneaza linii verticale intr-un

dreptunghi asemanator cu imaginea de jos:

Se dau coordonatele x0, y0, latimea w si inaltimea h ale dreptunghiului.

Realizati o aplicatie grafica care deseneaza caroiaj intr-un dreptunghi

asemanator cu imaginea de jos:

Avand x0, y0,w,h si numarul de patratele realizati o aplicatie

asemanatoare imaginii de jos:

Realizati o aplicatie grafica pentru a desena axa ox oy cu diviziuni

asemanatoare imaginii de jos:

Realizati o aplicatie grafica pentru a desena dereptunghiuri asemanatoare

cu cele de jos:

Realizati o aplicatie grafica pentru a desena cercuri inscrise asemanatoare

cu cele de jos:

Realizati o aplicatie grafica in care veti simula un termometru asemanator

cu imaginea de jos:

Realizati o aplicatie grafica reprezentand un instrument virtual de forma:

Deplasati acul indicator pe in arc de cerc nu pe o dreapta.

Generati valorile random.

Trasati intr-un cerc o raza intr-o pozitie oarecare

Sugestie:

Trasati 60 raze echidistante intr-un cerc

Trasati 60 raze echidistante intr-un cerc. Se vor evidentia razele din 5 in

cinci cu o culoare distincta astfel:

Realizati un cadran de forma:

Folosind un timer afisati cu temporizare de 1 secunda 60 de raze

echidistante intru-un cerc

Reluati aplicatia anterioara dar stergeti razele anterioare pentru a simula o

raza care se roteste

Simulati radarul din imaginea de sus

Realizati un ceas de forma:

Afisati rotatia pamantului in jurul soarelui sub forma:

Folosind un timer cu temporizare de 0,1 simlati rotatia pamantului in jurul

soarelui

Realizati o aplicatie grafica pentru a desena elipse si dreptunghiuri de

dimensiuni si culori aleatoare asemanatoare cu imaginea de jos:

Reluati aplicatia din curs cu roza polara dar de data aceasta coeficientul se

da repetitiv cu o bucla for nu din NumericUpDown

Realizati o aplicatie grafica in care veti exemplifica paradoxul lui ahile cu

broasca

Realizati o aplicatie grafica in care veti desena n cercuri de forma de jos.

N este dat de un trackbar

Programul afiseaza primele 10 numere naturale

// Program scris in C++ Visual Studio 2008 de tipul:CLR console application

// Programul afiseaza primele 10 numere naturale

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

int i=1;

cout <<" \n\tNumerele sunt: ";

while (i<=10)

{

cout << i << " ";

i+=1;

}

cin.ignore();

cin.get();

return 0;

}

Afisarea primelor 90 numere naturale intr-un tabel cu 9 coloane. Alinierea numerelor

se face la stanga

// Program scris in C++ Visual Studio 2008 de tipul:CLR console application

// Programul afiseaza primele 90 numere naturale intr-un tabel cu 9 coloane

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

int i=0;

cout <<" \n\tNumerele sunt:\n\n ";

while (i<< i <<"\t";

i+=1;

if ((i%9)==0)

cout <<"\n ";

}

cin.ignore();

cin.get();

return 0;

}

cin.ignore();

cin.get();

return 0;

}

Afisarea primelor 200 numere naturale intr-un tabel cu 10 coloane. Alinierea

numerelor se face la stanga

// Program scris in C++ Visual Studio 2008 de tipul:CLR console application

// Programul afiseaza primele 200 numere naturale intr-un tabel cu 10

coloane.

// Alinierea numerelor se face la stanga

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

int i=0;

cout <<" \n\tNumerele sunt:\n\n ";

while (i<< i <<<"\n ";

}

cin.ignore();

cin.get();

return 0;

}

Afisarea primelor 200 numere naturale intr-un tabel cu 10 coloane. Alinierea

numerelor se face la dreapta

// Program scris in C++ Visual Studio 2008 de tipul:CLR console application

// Programul afiseaza primele 200 numere naturale intr-un tabel cu 10

coloane.

// Alinierea numerelor se face la dreapta

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

int i=0;

cout <<" \n\tNumerele sunt:\n\n ";

while (i<< " ";

if ((i>=10)&& (i<< " ";

if (i>99)

cout << " ";

cout << i ;

i+=1;

if ((i%10)==0)

cout <<"\n ";

}

cin.ignore();

cin.get();

return 0;

}

Afisati primele numere naturale sub forma unui tabel cu 7 coloane si 20 de randuri.

Alinierea numerelor se va face la stanga.

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

int i=0;

int r=1;//randul

int c=1;//coloana

cout <<" \n\tNumerele sunt:\n";

while (r <= 20)

{

while(c <= 7){

cout<< i <<"\t";

i+=1;

c++;

}

cout<<"\n";

c=1;

r++;

}

cin.ignore();

cin.get();

return 0;

}

Afisati primele numere naturale sub forma unui tabel cu 7 coloane si 20 de randuri.

Alinierea numerelor se va face la dreapta.

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

int i=0;

int r=1;//randul

int c=1;//coloana

cout <<" \n\tNumerele sunt:\n";

while (r<=20)

{

while(c <=7){

if(i > 99)

cout<<" ";

if((i > 9)&&(i < 100))

cout<<" ";

if(i < 10)

cout<<" ";

cout<< i <<" ";

i+=1;

c++;

}

cout<<"\n";

c=1;

r++;

}

cin.ignore();

cin.get();

return 0;

}

Afisare suma primelor 100 numere naturale

// Program scris in C++ Visual Studio 2008 de tipul:CLR console application

// Programul afiseaza suma primelor 100 numere naturale

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

int i=0,s=0;

cout <<" \n\tSuma este: ";

while (i <=100)

{

s=s+i;

i+=1;

}

cout << s;

cin.ignore();

cin.get();

return 0;

}

Ver 1: Afisare primele 90 numere naturale astfel: pe prima linie un numar, pe linia a

doua 2 nummere, pe linia a treia 3 numere... etc

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

int i=0;

int r=1;//randul

int c=1;//coloana

cout <<" \n\tNumerele sunt:\n";

while (i<=90)

{

while(c <=r){

if(i >=100)

cout<<" ";

if((i > 9)&&(i < 100))

cout<<" ";

if(i< 10)

cout<<" ";

cout<< i <<" ";

i++;

c++;

}

cout<<"\n";

c=1;

r++;

}

cin.ignore();

cin.get();

return 0;

}

Ver 2 gresita Afisare primele 90 numere naturale astfel: pe prima linie un numar, pe

linia a doua 2 nummere, pe linia a treia 3 numere... etc

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

int i=0;

int r=1;

int h=1;

cout <<" \n\tNumerele sunt:\n";

while (i <=90)

{

cout << i << " ";

if(h==r){

cout <<"\n";

r+=1;

h=1;

}

h+=1;

i+=1;

}

cin.ignore();

cin.get();

return 0;

}

Ver 2 corecta Afisare primele 90 numere naturale astfel: pe prima linie un numar, pe

linia a doua 2 nummere, pe linia a treia 3 numere... etc

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

int i=0;

int r=1;

int h=1;

cout <<" \n\tNumerele sunt:\n";

while (i <= 90)

{

cout << i << " ";

if(h==r){

cout <<"\n";

r+=1;

h=1;

}

else{

h+=1;

}

i+=1;

}

cin.ignore();

cin.get();

return 0;

}

Afisare 91 numere naturale astfel: pe prima linie 13 numar, pe linia a doua 12

nummere, pe linia a treia 11 numere... pe ultima linie un numar

Programul nu functioneaza corect daca pun in loc de i>91 pun de ex i>100 din cauza

unei bucle infinite ce se creaza

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

int i=0;

int r=1;//randul

int c=1;//coloana

cout <<" \n\tNumerele sunt:\n";

while (i < 91)

{

while((15-r-c)>0){

if(i > 99)

cout<<" ";

if((i > 9)&&(i < 100))

cout<<" ";

if(i < 10)

cout<<" ";

cout<< i <<" ";

i+=1;

c++;

}

cout<<"\n";

c=1;

r++;

}

cin.ignore();

cin.get();

return 0;

}

Afisare 91 numere naturale astfel: pe prima linie 13 numar, pe linia a doua 12

nummere, pe linia a treia 11 numere... pe ultima linie un numar

Programul functioneaza corect chiar daca pun in loc de i>91 de ex i>155

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

int i=0;

int r=1;//randul

int c=1;//coloana

cout <<" \n\tNumerele sunt:\n";

while ((i <= 155)&&((15-r-c) >= 0))

{

while((15-r-c) > 0){

if(i>99)

cout<<" ";

if((i > 9)&&(i < 100))

cout<<" ";

if(i < 10)

cout<<" ";

cout<< i <<" ";

i+=1;

c++;

}

cout<<"\n";

c=1;

r++;

}

cin.ignore();

cin.get();

return 0;

}

Integrala functiei x^2 pe intervalul [0-10], dupa care se compara cu rezultatul 333.333 .

Primitiva functiei x^2 este x^3/3. Pe intervalul [0-10] avem 1000/3=333.333

Se observa ca eroarea depinde de finetea pasului (numarul de pasi).

// Programul calculeaza integrala functiei x^2 pe intervalul 0-10

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

double s=0;

double x0=0;

double x1=10;

double nr_pasi=1000000;

const double pas=(x1-x0)/nr_pasi;

double x=x0;

while (x<=x1)

{

s=s+x*x*pas;

x=x+pas;

}

cout <<" \n\tIntegrala este: " << s;

cin.ignore();

cin.get();

return 0;

}

Integrala functiei x^2 pe intervalul 0-10

Metoda trapezului.

// Programul calculeaza integrala functiei x^2 pe intervalul 0-10 utilizand

metoda trapezului

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

double y=0;

double yv=0;

double s=0;

double x0=0;

double x1=10;

double x=x0;

double nr_pasi=1000;

double d=(x1-x0)/nr_pasi;

while (x<=x1)

{

y=x*x;

s=s+(y+yv)*d/2;

x=x+d;

yv=y;

}

cout <<" \n\tIntegrala este:"<< s;

cin.get();

}

Se cere numarul de randuri si coloane

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

int i=0;

int r=1;//randul

int c=1;//coloana

int cmax;

int rmax;

cout <<"\nCate coloane:";

cin >> cmax;

cout <<"\nCate randuri:";

cin >> rmax;

while (r <=rmax)

{

cout << i << "\t";

c+=1;

i+=1;

if(c>cmax){

cout <<"\n";

r+=1;

c=1;

}

}

cin.ignore();

cin.get();

return 0;

}

If imbricat in while

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

int i=0;

int r=1;//randul

int c=1;//coloana

cout <<" \n\tNumerele sunt:\n";

while (r <=20)

{

cout << i << "\t";

c+=1;

i+=1;

if(c > 7){

cout <<"\n";

r+=1;

c=1;

}

}

cin.ignore();

cin.get();

return 0;

}

While imbricat intr-un while folosit ciudat

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

int i=0;

int j=1;//contor numere afisate pe un rand

int k=1;//contor linii

while (k < 21)

{

cout <<i<<"\t";

i++;

j++;

while (j > 7){

cout <<"\n";

j=1;

k++;

}

}

cin.ignore();

cin.get();

return 0;

}

While imbricat intr-un while corect

#include "stdafx.h"

#include < iostream >

using namespace std;

int main()

{

int i=0;

int c=1;// contor coloane

int r=1;// contor randuri

while (r < 21){

c=1;

while(c < 8);

{

cout << i <<"\t";

i++;

c++;

}

cout <<"\n";

r++;

}

cin.ignore();

cin.get();

return 0;

}

Afisare 1 pe randul 1 2 pe randul 2 3 p erandul3 etc- cu greseala

#include "stdafx.h"

#include < iostream >

using namespace std;

int main()

{

int i=0;

int c=1;// contor coloane

int r=1;// contor randuri

while (i <=r){

cout << i<<" ";

i++;

c++;

}

cout <<"\n";

r++;

}

cin.ignore();

cin.get();

return 0;

}

Afisare 1 pe randul 1 2 pe randul 2 3 p erandul3 etc utilizand if -cu greseala

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

int i=0;

int r=1;//randul

int c=1;//coloana

cout <<" \n\tNumerele sunt:\n";

while (i <=90)

{

cout << i << " ";

if(c==r){

cout <<"\n";

r+=1;

c=1;//greseala

}

c+=1;

i+=1;

}

cin.ignore();

cin.get();

return 0;

}

Afisare 1 pe randul 1 2 pe randul 2 3 p erandul3 etc utilizand if-corect

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

int i=0;

int r=1;//randul

int c=1;//coloana

cout <<" \n\tNumerele sunt:\n";

while (i <=90)

{

cout << i << " ";

if(c==r){

cout <<"\n";

r+=1;

c=0;

}

c+=1;

i+=1;

}

cin.ignore();

cin.get();

return 0;

}

Afisare 13 pe randul 1 12 pe randul 2 11 pe randul3

#include "stdafx.h"

#include < iostream >

using namespace std;

int main()

{

int i=0;

int c=1;// contor coloane

int r=1;// contor randuri

while (r<=13){

c=1;

while(c<=(13-r+1)){

cout << i<<" ";

i++;

c++;

}

cout <<"\n";

r++;

}

cin.ignore();

cin.get();

return 0;

}

Afisare 13 pe randul 1 12 pe randul 2 11 pe randul3 alta metoda

#include "stdafx.h"

#include < iostream >

using namespace std;

int main()

{

int i=0;

int c=1;// contor coloane

int r=1;// contor randuri

while (i<=(13-r+1)){

cout << i<<" ";

i++;

c++;

}

cout <<"\n";

r++;

}

cin.ignore();

cin.get();

return 0;

}

Instructiunea WHILE in WFA

WFA-Caroiaj in dreptunghi

float x0=100,y0=100,w=250, h=150;

int i=0;

System::Drawing::Graphics^ Desen;

Desen = this->CreateGraphics();

System::Drawing::Pen^ Creion_albastru;

Creion_albastru =gcnew

System::Drawing::Pen(System::Drawing::Color::Blue);

Desen->Clear(System::Drawing::Color(this->BackColor));

Desen->DrawRectangle(Creion_albastru,x0,y0,w,h);

//linii verticale

i=0;

while(i < w){

Desen->DrawLine(Creion_albastru,x0+i,y0,x0+i,y0+h);

i+=10;

}

// linii orizontale

i=0;

while(i < h){

Desen->DrawLine(Creion_albastru,x0,y0+i,x0+w,y0+i);

i+=10;

}

WFA-Aplicatie grafica pentru a desena axa ox oy cu diviziuni -realizat cu while

private: System::Void Form1_Paint(System::Object^ sender,

System::Windows::Forms::PaintEventArgs^ e) {

System::Drawing::Graphics^ Desen;

System::Drawing::Pen^ Creion_blu ;

System::Drawing::Pen^ Creion_rosu ;

Creion_blu=gcnew System::Drawing::Pen(System::Drawing::Color::Blue);

Creion_rosu=gcnew System::Drawing::Pen(System::Drawing::Color::Red);

Desen= this->CreateGraphics();

Desen->Clear(System::Drawing::Color(this->BackColor));

int w=this->Size.Width;

int h=this->Size.Height;

Desen->DrawLine( Creion_rosu,10,20, 10, h);

Desen->DrawLine(Creion_rosu,0,h-45, w, h-45);

int j=10;

while (j < w-30){

Desen->DrawLine(Creion_blu,10+j,h-43, 10+j, h-47);

j+=10;

}

j=10;

while (j < h-65){

Desen->DrawLine(Creion_blu,8,20+j,12,20+j);

j+=10;

}

}

Realizati un program C# WFA care afiseaza graficul din figura de jos:

namespace graph_01

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

System.Drawing.Graphics Desen;

System.Drawing.Pen Creion_albastru;

System.Drawing.Pen Creion_rosu;

System.Drawing.Pen Creion_gri;

System.Drawing.Pen Creion_pic;

int i, w = 400, h = 220, val, val_v, val_max = 1024, x0 = 75, y0 =

20, poz;

private void Form1_Paint(object sender, PaintEventArgs e)

{

Desen = this.CreateGraphics();

Creion_albastru = new

System.Drawing.Pen(System.Drawing.Color.Blue);

Creion_rosu = new System.Drawing.Pen(System.Drawing.Color.Red);

Creion_pic = new System.Drawing.Pen(this.BackColor);

Creion_gri = new System.Drawing.Pen(Color.LightGray);

Desen.DrawRectangle(Creion_albastru, x0 - 2, y0 - 2, w + 10, h +

4);

this.trackBar1.Maximum = val_max;

}

private void timer1_Tick(object sender, EventArgs e)

{

val_v = val;

val = System.Convert.ToInt16(this.trackBar1.Value);

this.label1.Text =

System.Convert.ToString(this.trackBar1.Value);

Desen.DrawLine(Creion_pic, x0 + poz + 1, y0, x0 + poz + 1, y0 +

h);

Desen.DrawLine(Creion_albastru, x0 + poz + 2, y0, x0 + poz + 2,

y0 + h - 1);

val = System.Convert.ToInt16(System.Convert.ToDouble(val) *

(System.Convert.ToDouble(h) / System.Convert.ToDouble(val_max)));

Desen.DrawLine(Creion_rosu, x0 + poz - 1, y0 + h - val_v, x0 +

poz, y0 + h - val);

// grid orizontal

i = 0;

do

{

Desen.DrawLine(Creion_gri, x0, i, w + x0, i);

i = i + 30;

}

while (i <= h);

// grid vertical

i = 0;

do

{

Desen.DrawLine(Creion_gri, x0 + i, y0, x0 + i, y0 + h);

i = i + 30;

}

while (i <= w);

poz++;

if (poz - 2 > w)

{

Desen.DrawLine(Creion_pic, x0 + poz + 1, y0, x0 + poz + 1,

y0 + h);

poz = 0;

Desen.DrawLine(Creion_pic, x0 + poz, y0, x0 + poz, y0 + h);

poz = 1;

Desen.DrawLine(Creion_pic, x0 + poz, y0, x0 + poz, y0 + h);

i = 0;

}

}

}

}

Instructiunea FOR

Afisare 100 numere

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

cout <<" \n\tNumerele sunt: ";

for (int i=1;i <= 100;i++)

{

cout << i << " ";

}

cin.ignore();

cin.get();

return 0;

}

Afisare n numere

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

int n;

cout <<" \n\tCate numere vreti sa afisam?: ";

cin >> n;

cout <<" \n\tCele " << n << " numere\n";

for (int i=1;i <= n;i++)

{

cout << i << " ";

}

cin.ignore();

cin.get();

return 0;

}

Patratul primelor n numere

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

int n;

cout <<" \n\tPatratul cator numere vreti sa afisam?: ";

cin >> n;

cout <<" \n\tPatratele celor "<< n << " numere\n";

for (int i=1;i <= n;i++)

{

cout << i*i << " ";

}

cin.ignore();

cin.get();

return 0;

}

Patratul primelor n numere pana se introduce n=0

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

int n=1;

while(n!=0){

cout <<" \n\Patratul cator numere vreti sa afisam?: ";

cin >> n;

cout <<" \n\Patratele celor "<< n <<" numere: \n\n";

for (int i=1;i <= n;i++)

{

cout << i*i << " ";

}

cin.ignore();

cin.get();

}

return 0;

}

Afisare n numere, cate 15 pe linie

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

int n;

int i;

int j;

const int nr=15;

cout <<" \n\Cate numere vreti sa afisam?: ";

cin >> n;

cout <<" \n\Cele "<< n <<" numere sunt: \n\n";

while(i <= n){

for (j=1;j <= nr;j++)

{

cout << i << " ";

i+=1;

}

cout <<"\n";

}

cin.ignore();

cin.get();

return 0;

}

Afisare n numere, cate 15 pe linie pana se introduce 0

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

int n=1;

int i;

int j;

while(n!=0){

i=0;

const int nr=15;

cout <<" \n\Cate numere vreti sa afisam?: ";

cin >> n;

cout <<" \n\Cele "<< n <<" numere sunt: \n\n";

while(i <= n){

for (j=1;j <= nr;j++)

{

cout << i << " ";

i+=1;

}

cout <<"\n";

}

cin.ignore();

cin.get();

}

return 0;

}

Aplicatia anterioara corectata (exact n numere nu mai mult)

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

int n=1;

int i;

int j;

while(n!=0){

i=0;

const int nr=15;

cout <<" \n\Cate numere vreti sa afisam?: ";

cin >> n;

cout <<" \n\Cele "<< n <<" numere sunt: \n\n";

while(i <= n){

for (j=1;((j <= nr)&&(i <= n));j++)

{

cout << i << " ";

i+=1;

}

cout <<"\n";

}

cin.ignore();

cin.get();

}

return 0;

}

Numar prim?

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

int n=1;

while(n!=0){

cout <<" \n\Ce numar vreti sa verificam?: ";

cin >> n;

int prim=1;

for (int i=2;i < n;i++)

{

if(n%i==0)

prim=0;

}

if (prim==1)

cout << "Numarul " << n << " este prim";

else

cout << "Numarul " << n << " nu este prim";

cin.ignore();

cin.get();

}

return 0;

}

Numarul nu este prim, si continua sa calculeze -demo pentru 7 si 8 de ex

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

int n=1;

while(n!=0){

cout <<" \n\Ce numar vreti sa verificam?: ";

cin >> n;

int prim=1;

for (int i=2;i < n;i++)

{

if(n%i==0)

prim=0;

cout << i << "\n";

}

if (prim==1)

cout << "Numarul " << n << " este prim";

else

cout << "Numarul " << n << " nu este prim";

cin.ignore();

cin.get();

}

return 0;

}

Numarul nu este prim, sa nu mai continue- demo pentru 7 si 8 de ex

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

int n=1;

while(n!=0){

cout <<" \n\Ce numar vreti sa verificam?: ";

cin >> n;

int prim=1;

for (int i=2;((i < n)&&(prim!=0));i++)

{

if(n%i==0)

prim=0;

cout << i << "\n";

}

if (prim==1)

cout << "Numarul " << n << " este prim";

else

cout << "Numarul " << n << " nu este prim";

cin.ignore();

cin.get();

}

return 0;

}

Toate numerele prime pana la n

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

int n=1;

while(n!=0){

cout <<" \n\Pana la ce numar sa afisam numerele prime?: ";

cin >> n;

cout << "Numerele prime sunt: \n";

for (int j=1;j <= n;j++){

int prim=1;

for (int i=2;((i < j)&&(prim!=0));i++)

{

if(j%i==0){

prim=0;

i=n;

}

}

if (prim==1)

cout << j << " \n";

}

cin.ignore();

cin.get();

}

return 0;

}

100 de numere aleatoare

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

cout << " 100 de numere aleatoare:\n";

for(int i=0; i < 100; i++)

{

if(i%5==0)

cout<<"\n";

cout << rand() <<" \t";

}

cin.ignore();

cin.get();

return 0;

}

fix 23 de numere while while

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

int i;

int k=1;

while(k <= 23){

while ( (i < 5)&&(k <= 23)){

cout << k++ << "\t";

i++;

}

cout << ":\n";

i=0;

}

cin.ignore();

cin.get();

}

fix 23 de numere for for

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

int k=1;

for(int j=1;j <= 5;j++){

for ( int i=1; ((i <= 5)&&(k <= 23)); i++){

cout << k++ << "\t";

}

cout <<":\n";

}

cin.ignore();

cin.get();

return 0;

}

73 numerele de la 100 la 172 pe 15 linii a cate 5 caractere.

// Se utilizeaza spatiul de nume std

// programul afiseaza 73 numerele de la 100 la 172 pe 15 linii a cate 5

caractere.

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

int k=100;

for (int j=1; j<=10 ; j++){

for ( int i=1; i<=5; i++)

cout << k++ << " ";

cout <<":\n";

}

cin.ignore();

cin.get();

return 0;

}

Realizati un program care afiseaza numerele din figura de jos:

#include "stdafx.h"

#include < iostream >

using namespace std;

int main(void)

{

int i=1;

int k=100;

int m=200;

while ((k <= 149) || (m <= 239)) {

while ((i <= 5)&&(k <= 149)){

cout << k++ << " ";

i++;

}

i=1;

cout <<"\t\t";

while (( i<= 4)&&(m <= 239)){

cout << m++ << " ";

i++;

}

cout << "\n";

i=1;

}

cin.ignore();

cin.get();

return 0;

}

Instructiunea do while o Realizati un program care calculeaza integrala functiei x3 pe intervalul x1 x2

o Realizati un program care calculeaza integrala functiei x3 pe intervalul 0-10

utilizand metoda trapezului.

o Realizati un program C# WFA care afiseaza graficul din figura de jos:

namespace graph_01

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

System.Drawing.Graphics Desen;

System.Drawing.Pen Creion_albastru;

System.Drawing.Pen Creion_rosu;

System.Drawing.Pen Creion_gri;

System.Drawing.Pen Creion_pic;

int i, w = 400, h = 220, val, val_v, val_max = 1024, x0 = 75, y0 =

20, poz;

private void Form1_Paint(object sender, PaintEventArgs e)

{

Desen = this.CreateGraphics();

Creion_albastru = new

System.Drawing.Pen(System.Drawing.Color.Blue);

Creion_rosu = new System.Drawing.Pen(System.Drawing.Color.Red);

Creion_pic = new System.Drawing.Pen(this.BackColor);

Creion_gri = new System.Drawing.Pen(Color.LightGray);

Desen.DrawRectangle(Creion_albastru, x0 - 2, y0 - 2, w + 10, h +

4);

this.trackBar1.Maximum = val_max;

}

private void timer1_Tick(object sender, EventArgs e)

{

val_v = val;

val = System.Convert.ToInt16(this.trackBar1.Value);

this.label1.Text =

System.Convert.ToString(this.trackBar1.Value);

Desen.DrawLine(Creion_pic, x0 + poz + 1, y0, x0 + poz + 1, y0 +

h);

Desen.DrawLine(Creion_albastru, x0 + poz + 2, y0, x0 + poz + 2,

y0 + h - 1);

val = System.Convert.ToInt16(System.Convert.ToDouble(val) *

(System.Convert.ToDouble(h) / System.Convert.ToDouble(val_max)));

Desen.DrawLine(Creion_rosu, x0 + poz - 1, y0 + h - val_v, x0 +

poz, y0 + h - val);

// grid orizontal

i = 0;

do

{

Desen.DrawLine(Creion_gri, x0, i, w + x0, i);

i = i + 30;

}

while (i <= h);

// grid vertical

i = 0;

do

{

Desen.DrawLine(Creion_gri, x0 + i, y0, x0 + i, y0 + h);

i = i + 30;

}

while (i <= w);

poz++;

if (poz - 2 > w)

{

Desen.DrawLine(Creion_pic, x0 + poz + 1, y0, x0 + poz + 1,

y0 + h);

poz = 0;

Desen.DrawLine(Creion_pic, x0 + poz, y0, x0 + poz, y0 + h);

poz = 1;

Desen.DrawLine(Creion_pic, x0 + poz, y0, x0 + poz, y0 + h);

i = 0;

}

}

}

}

o Realizati o aplicatie grafica in care veti simula un termometru asemanator cu

imaginea de jos:

namespace termo_01

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

System.Drawing.Graphics Desen;

System.Drawing.Pen Creion_albastru;

System.Drawing.Pen Creion_rosu;

System.Drawing.Pen Creion_gri;

System.Drawing.SolidBrush Pens_r;

System.Drawing.SolidBrush Pens_pic;

Int16 j,val, val_max = 500, x0 = 100, y0 = 50, w = 10, h = 200;

private void Form1_Paint(object sender, PaintEventArgs e)

{

Desen = this.CreateGraphics();

Creion_albastru = new

System.Drawing.Pen(System.Drawing.Color.Blue);

Creion_rosu = new System.Drawing.Pen(System.Drawing.Color.Red);

Creion_gri = new System.Drawing.Pen(System.Drawing.Color.Gray);

Pens_r = new

System.Drawing.SolidBrush(System.Drawing.Color.Red);

Pens_pic = new System.Drawing.SolidBrush(this.BackColor);

Desen.Clear(this.BackColor);

this.trackBar1.Maximum = val_max;

Desen.DrawRectangle(Creion_albastru, x0-1, y0-1, w+1,

h+1);//desenez contur termometru

j = 0;

do// desenez gradatii

{

if (j % 25 == 0)

{

Desen.DrawLine(Creion_gri, x0 + w + 2, y0 + j, x0 + w +

12, y0 + j);

}

else

{

Desen.DrawLine(Creion_gri, x0 + w + 2, y0 + j, x0 + w +

7, y0 + j);

}

j += 5;

} while (j <= h);

}

private void trackBar1_Scroll(object sender, EventArgs e)

{

val = System.Convert.ToInt16(System.Convert.ToDouble(h) /

System.Convert.ToDouble(val_max) *

System.Convert.ToDouble(this.trackBar1.Value));

Desen.FillRectangle(Pens_pic, x0, y0, w - 1, h - 1);

this.label1.Text =

System.Convert.ToString(this.trackBar1.Value);

Desen.FillRectangle(Pens_r, x0 + 1, h + y0 - val, w - 2, val);

}

}

}

Instrunea FOR in WFA

Tabla de sah

System::Drawing::Graphics^ Desen;

Desen = this->CreateGraphics();

System::Drawing::SolidBrush^ Pensula1;

Pensula1=gcnew System::Drawing::SolidBrush(System::Drawing::Color::Black);

System::Drawing::SolidBrush^ Pensula2;

Pensula2=gcnew System::Drawing::SolidBrush(System::Drawing::Color::White);

for(int i=1;i<=8;i++){

for(int j=1;j<=8;j++){

int a=i*25;

int b=j*25;

if((i+j)%2==0)

Desen->FillRectangle(Pensula1, a, b, 25, 25);

if((i+j)%2==1)

Desen->FillRectangle(Pensula2, a, b, 25, 25);

}

}

Tabla de sah scalabila (redimensionabila)

System::Drawing::Graphics^ Desen;

Desen = this->CreateGraphics();

System::Drawing::SolidBrush^ Pensula1;

Pensula1=gcnew

System::Drawing::SolidBrush(System::Drawing::Color::Black);

System::Drawing::SolidBrush^ Pensula2;

Pensula2=gcnew

System::Drawing::SolidBrush(System::Drawing::Color::White);

Desen->Clear(this->BackColor);

for(int i=1;i<=8;i++){

for(int j=1;j<=8;j++){

int w=this->Width/11;

int a=i*w;

int b=j*w;

if((i+j)%2==0)

Desen->FillRectangle(Pensula1, a, b,

w, w);

else

Desen->FillRectangle(Pensula2, a, b,

w, w);

}

}

Avand x0, y0,w,h si numarul de patratele realizati o aplicatie asemanatoare imaginii

de jos:

namespace liniute

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void Form1_Paint(object sender, PaintEventArgs e)

{

int x0 = 10, y0 = 25, w = 550, h = 400, i = 0;

int nc=20; // numarul de coloane

int lp = w / nc;// latimea unui patratel

int nl = h / lp;// numarul de linii

System.Drawing.Graphics Desen;

Desen = this.CreateGraphics();

System.Drawing.Pen Creion_a, Creion_r, Creion_gr;

Creion_a = new System.Drawing.Pen(System.Drawing.Color.Blue);

Creion_r = new System.Drawing.Pen(System.Drawing.Color.Red);

Creion_gr = new

System.Drawing.Pen(System.Drawing.Color.LightGray);

// Contur

Desen.DrawRectangle(Creion_a, x0-1, y0-1, w, h);

//Grid

for (i = 0; i <= nc; i++)

{

Desen.DrawLine(Creion_gr, x0 + i * lp, y0, x0 + i * lp,

y0+h);

}

for (i = 0; i <= nl; i++)

{

Desen.DrawLine(Creion_gr, x0, y0+i*lp, x0 + w, y0 + i*lp);

}

// Liniute /

y0 = y0 + lp;

for (i = 0; i < nc; i++)

{

Desen.DrawLine(Creion_r, x0+i*lp, y0+lp, x0 + lp+i*lp, y0);

}

// Liniute \

y0 = y0 + 2*lp;

for (i = 0; i < nc; i++)

{

Desen.DrawLine(Creion_r, x0 + i * lp, y0, x0 + lp + i * lp,

y0+lp);

}

// X

y0 = y0 + 2 * lp;

for (i = 0; i < nc; i+=2)

{

Desen.DrawLine(Creion_r, x0 + i * lp, y0 + lp, x0 + lp + i *

lp, y0);

Desen.DrawLine(Creion_r, x0 + i * lp, y0, x0 + lp + i * lp,

y0 + lp);

}

// +

y0 = y0 + 2 * lp;

for (i = 0; i < nc; i += 2)

{

Desen.DrawLine(Creion_r, x0 + lp / 2 + i * lp, y0 + lp, x0 +

lp/2 + i * lp, y0);

Desen.DrawLine(Creion_r, x0 + i * lp, y0 + lp / 2, x0 + lp +

i * lp, y0 + lp / 2);

}

// |\

y0 = y0 + 2 * lp;

for (i = 0; i < nc; i ++)

{

Desen.DrawLine(Creion_r, x0 + i * lp, y0 + lp, x0 + i * lp,

y0);

Desen.DrawLine(Creion_r, x0 + i * lp, y0, x0 + lp + i * lp,

y0+lp);

}

// /|

y0 = y0 + 2 * lp;

for (i = 0; i < nc; i++)

{

Desen.DrawLine(Creion_r, x0 + i * lp, y0 + lp, x0 + i * lp,

y0);

Desen.DrawLine(Creion_r, x0 + i * lp, y0 + lp, x0 + lp + i *

lp, y0);

}

// *

y0 = y0 + 2 * lp;

for (i = 0; i < nc; i += 2)

{

Desen.DrawLine(Creion_r, x0 + i * lp, y0 + lp, x0 + lp + i *

lp, y0);

Desen.DrawLine(Creion_r, x0 + i * lp, y0, x0 + lp + i * lp,

y0 + lp);

Desen.DrawLine(Creion_r, x0 + lp / 2 + i * lp, y0 + lp, x0 +

lp / 2 + i * lp, y0);

Desen.DrawLine(Creion_r, x0 + i * lp, y0 + lp / 2, x0 + lp +

i * lp, y0 + lp / 2);

}

}

}

}

WFA-Aplicatie grafica pentru a desena axa ox oy cu diviziuni -realizat cu for

private: System::Void Form1_Paint(System::Object^ sender,

System::Windows::Forms::PaintEventArgs^ e) {

System::Drawing::Graphics^ Desen;

System::Drawing::Pen^ Creion_blu ;

System::Drawing::Pen^ Creion_rosu ;

Creion_blu=gcnew System::Drawing::Pen(System::Drawing::Color::Blue);

Creion_rosu=gcnew System::Drawing::Pen(System::Drawing::Color::Red);

Desen= this->CreateGraphics();

Desen->Clear(System::Drawing::Color(this->BackColor));

int w=this->Size.Width;

int h=this->Size.Height;

Desen->DrawLine( Creion_rosu,10,20, 10, h);

Desen->DrawLine(Creion_rosu,0,h-45, w, h-45);

for (int j=10;j < w-30;j+=10)

Desen->DrawLine(Creion_blu,10+j,h-43, 10+j, h-47);

for (int j=10;j < h-65;j+=10)

Desen->DrawLine(Creion_blu,8,20+j,12,20+j);

}

WFA-Aplicatie grafica pentru a desena 10 reptunghiuri

private: System::Void Form1_Paint(System::Object^ sender,

System::Windows::Forms::PaintEventArgs^ e) {

int i=0;

System::Drawing::Graphics^ Desen;

Desen = this->CreateGraphics();

Desen->Clear(System::Drawing::Color(this->BackColor));

System::Drawing::Pen^ Creion_albastru;

Creion_albastru =gcnew System::Drawing::Pen(System::Drawing::Color::Blue);

i=0;

for ( int i=1; i<=10; i++){

Desen->DrawRectangle(Creion_albastru,100+10*i,50+10*i,200,100);

}

delete Creion_albastru;

delete Desen;

}

WFA-Aplicatie grafica pentru a desena dereptunghiuri de dimensiuni si culori

aleatoare

private: System::Void Form1_ResizeEnd(System::Object^ sender,

System::EventArgs^ e) {

int i=0;

System::Drawing::Graphics^ Desen;

Desen = this->CreateGraphics();

System::Random^ n = gcnew System::Random();

Desen->Clear(System::Drawing::Color(this->BackColor));

i=0;

for ( int i=1; i<=100; i++){

System::Drawing::Pen^ Creion;

Creion=gcnew System::Drawing::Pen(System::Drawing::Color::FromArgb(n-

>Next(256),n->Next(256),n->Next(256)));

Desen->DrawRectangle(Creion,n->Next(this->Width),n->Next(this->Height),n-

>Next(75),n->Next(50));

Desen->DrawEllipse(Creion,n->Next(this->Width),n->Next(this->Height),n-

>Next(50),n->Next(75));

delete Creion;

}

delete Desen;

}

WFA-Aplicatie grafica pentru a desena cercuri inscrise

namespace cerc_p_c

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

Graphics desen;

private void Form1_Paint(object sender, PaintEventArgs e)

{

desen = CreateGraphics();

Pen bluePen = new Pen(Color.Blue);

Pen redPen = new Pen(Color.Red);

float L, indent;

L = Math.Min(this.Width - 40, this.Height - 40);

indent = 0;

for (int i = 0; i < 6; i++)

{

desen.DrawEllipse(bluePen, indent + 20, indent + 20, L, L);

desen.DrawRectangle(redPen, indent + 20, indent + 20, L, L);

indent += L / 2 - L / (float)Math.Sqrt(8);

L = L - (L / 2 - L / (float)Math.Sqrt(8)) * 2;

}

}

private void Form1_Resize(object sender, EventArgs e)

{

desen.Clear(this.BackColor);

this.Refresh();

}

}

}

Realizati o aplicatie grafica reprezentand un instrument virtual de forma:

namespace instrum_02

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

System.Drawing.Graphics Desen;

System.Drawing.Pen Creion_albastru;

System.Drawing.Pen Creion_rosu;

System.Drawing.Pen Creion_pic;

System.Drawing.Pen Creion_gri;

System.Drawing.Font font_nina;

System.Drawing.SolidBrush Pens_r;

Int16 j,val, val_v, val_max = 400, x0 = 20, y0 = 30, w = 250, h1=10;

private void Form1_Paint(object sender, PaintEventArgs e)

{

Desen = this.CreateGraphics();

Creion_albastru = new

System.Drawing.Pen(System.Drawing.Color.Blue);

Creion_rosu = new System.Drawing.Pen(System.Drawing.Color.Red);

Creion_pic = new System.Drawing.Pen(this.BackColor);

Creion_gri = new

System.Drawing.Pen(System.Drawing.Color.LightGray);

Pens_r = new

System.Drawing.SolidBrush(System.Drawing.Color.Red);

font_nina = new System.Drawing.Font("Nina", 8);

Desen.DrawRectangle(Creion_albastru, x0, y0-h1, w + x0, w + y0);

this.trackBar1.Maximum = val_max;

for (j = 0; j <= w; j += 5)// desenez gradatii

{

if (j % 25 == 0)

{

Desen.DrawLine(Creion_gri, x0 +10+ j, y0 - h1+4, x0 +

j+10, y0 - h1+17);

Desen.DrawString(System.Convert.ToString(j * val_max /

w), font_nina, Pens_r, x0 + j, y0-h1-15);

}

else

{

Desen.DrawLine(Creion_gri, x0 +10+ j, y0-h1+10, x0

+j+10, y0 -h1+17);

}

}

}

private void trackBar1_Scroll(object sender, EventArgs e)

{

val_v = val;

val = System.Convert.ToInt16(this.trackBar1.Value);

this.label1.Text =

System.Convert.ToString(this.trackBar1.Value);

val = System.Convert.ToInt16(System.Convert.ToDouble(val) *

(System.Convert.ToDouble(w) / System.Convert.ToDouble(val_max))); //scalare

Desen.DrawLine(Creion_pic, ((w+ x0) / 2 + 10), w+ y0, val_v + x0

+ 10, y0 + 10);

if (val < 0.9 * w)

Desen.DrawLine(Creion_albastru, ((w+ x0) / 2 + 10), w+ y0,

val + x0 + 10, y0 + 10);

else

Desen.DrawLine(Creion_rosu, ((w+ x0) / 2 + 10), w+ y0, val +

x0 + 10, y0 + 10);

}

}

}

WFA-Aplicatie grafica pentru a desena n raze in cerc

Desenare cerc

System::Drawing::Graphics^ Desen;

Desen = this->CreateGraphics();

System::Drawing::Pen^ Creion_albastru;

Creion_albastru =gcnew System::Drawing::Pen(System::Drawing::Color::Blue);

int x0=this->Width/5;

int y0=this->Height/5;

int d=this->Width/2;

Desen->Clear(this->BackColor);

Desen->DrawEllipse(Creion_albastru,x0,y0,d,d);

C# Desenare cerc

namespace cerc

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

System.Drawing.Graphics Desen;

System.Drawing.Pen Creion_albastru;

int x0, y0, d;

private void Form1_Load(object sender, EventArgs e)

{

Desen = this.CreateGraphics();

Creion_albastru = new

System.Drawing.Pen(System.Drawing.Color.Blue);

x0 = this.Width / 5;

y0 = this.Height / 5;

d = this.Width / 2;

}

private void Form1_Paint(object sender, PaintEventArgs e)

{

Desen = this.CreateGraphics();

x0 = this.Width / 5;

y0 = this.Height / 5;

d = this.Width / 2;

Desen.Clear(this.BackColor);

Desen.DrawEllipse(Creion_albastru,x0,y0,d,d);

}

}

}

Trasarea unei raze intr-o pozitie oarecare intr-un cerc

System::Drawing::Graphics^ Desen;

Desen = this->CreateGraphics();

System::Drawing::Pen^ Creion_albastru;

Creion_albastru =gcnew System::Drawing::Pen(System::Drawing::Color::Blue);

System::Drawing::Pen^ Creion_rosu;

Creion_rosu =gcnew System::Drawing::Pen(System::Drawing::Color::Red);

int x0=this->Width/5;

int y0=this->Height/5;

int d=this->Width/2;

int xc=x0+d/2;

int yc=y0+d/2;

int alfa_g=40;// unghiul in grade

double alfa_r=2*System::Math::PI*alfa_g/360;// unghiul in radiani

int x=xc+d/2*System::Math::Cos(alfa_r);

int y=yc-d/2*System::Math::Sin(alfa_r);

Desen->DrawEllipse(Creion_albastru,x0,y0,d,d);

Desen->DrawLine(Creion_rosu,xc,yc,x,y);

C# Trasarea unei raze intr-o pozitie oarecare intr-un cerc

namespace raza_cerc

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

int x0, y0, d, xc, yc, x, y;

double alfa_g, alfa_r;

System.Drawing.Graphics Desen;

System.Drawing.Pen Creion_albastru;

System.Drawing.Pen Creion_rosu;

private void Form1_Load(object sender, EventArgs e)

{

Desen = this.CreateGraphics();

Creion_albastru = new

System.Drawing.Pen(System.Drawing.Color.Blue);

Creion_rosu = new System.Drawing.Pen(System.Drawing.Color.Red);

x0 = this.Width / 5;

y0 = this.Height / 5;

d = this.Width / 2;

xc = x0 + d / 2;

yc = y0 + d / 2;

alfa_g = 40;// unghiul in grade

alfa_r = 2 * System.Math.PI * alfa_g / 360;// unghiul in radiani

}

private void Form1_Paint(object sender, PaintEventArgs e)

{

x0 = this.Width / 5;

y0 = this.Height / 5;

d = this.Width / 2;

xc = x0 + d / 2;

yc = y0 + d / 2;

x = System.Convert.ToInt16(xc + d / 2 *

System.Math.Cos(alfa_r));

y = System.Convert.ToInt16(yc - d / 2 *

System.Math.Sin(alfa_r));

Desen = this.CreateGraphics();

Desen.Clear(this.BackColor);

Desen.DrawEllipse(Creion_albastru, x0, y0, d, d);

Desen.DrawLine(Creion_rosu, xc, yc, x, y);

}

}

}

Trasarea 12 raze echidistante intr-un cerc

System::Drawing::Graphics^ Desen;

Desen = this->CreateGraphics();

System::Drawing::Pen^ Creion_albastru;

Creion_albastru =gcnew

System::Drawing::Pen(System::Drawing::Color::Blue);

System::Drawing::Pen^ Creion_rosu;

Creion_rosu =gcnew System::Drawing::Pen(System::Drawing::Color::Red);

int x0=this->Width/5;

int y0=this->Height/5;

int d=this->Width/2;

int xc=x0+d/2;

int yc=y0+d/2;

int x,y;

int alfa_g;// unghiul in grade

Desen->Clear(this->BackColor);

Desen->DrawEllipse(Creion_albastru,x0,y0,d,d);

for (alfa_g=0;alfa_gDrawLine(Creion_rosu,xc,yc,x,y);

}

N raze echidistante intr-un cerc "C#"

namespace Mot_cerc_v0

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

System.Drawing.Graphics Desen;

System.Drawing.Pen Creion_albastru;

System.Drawing.Pen Creion_rosu;

int x, y, x0, y0, d, xc, yc;

double alfa_g,alfa_r;

private void Form1_Load(object sender, EventArgs e)

{

x0 = this.Width / 5;

y0 = this.Height / 5;

d = this.Width / 2;

xc = x0 + d / 2;

yc = y0 + d / 2;

Desen = this.CreateGraphics();

Creion_albastru =new

System.Drawing.Pen(System.Drawing.Color.Blue);

Creion_rosu =new

System.Drawing.Pen(System.Drawing.Color.Red);

}

private void Form1_Paint(object sender, PaintEventArgs e)

{

Desen.Clear(this.BackColor);

Desen.DrawEllipse(Creion_albastru, x0, y0, d, d);

for (alfa_g = 0; alfa_g < 360; alfa_g += 6)

{

alfa_r = 2 * System.Math.PI * alfa_g / 360;// unghiul in

radiani

x = System.Convert.ToInt16(xc + d / 2 *

System.Math.Cos(alfa_r));

y = System.Convert.ToInt16(yc - d / 2 *

System.Math.Sin(alfa_r));

Desen.DrawLine(Creion_rosu, xc, yc, x, y);

}

}

}

}

Trasarea 12 raze echidistante intr-un cerc. Se vor evinentia razele din 5 in cinci cu o

culoare distincta astfel:

System::Drawing::Graphics^ Desen;

Desen = this->CreateGraphics();

System::Drawing::Pen^ Creion_albastru;

Creion_albastru =gcnew

System::Drawing::Pen(System::Drawing::Color::Blue);

System::Drawing::Pen^ Creion_rosu;

Creion_rosu =gcnew System::Drawing::Pen(System::Drawing::Color::Red);

int x0=this->Width/5;

int y0=this->Height/5;

int d=this->Width/2;

int xc=x0+d/2;

int yc=y0+d/2;

int x,y;

int alfa_g;// unghiul in grade

Desen->Clear(this->BackColor);

Desen->DrawEllipse(Creion_albastru,x0,y0,d,d);

for (alfa_g=0;alfa_g < 360;alfa_g+=6){

double alfa_r=2*System::Math::PI*alfa_g/360;// unghiul in

radiani

x=xc+d/2*System::Math::Cos(alfa_r);

y=yc-d/2*System::Math::Sin(alfa_r);

if (alfa_g%30==0)

Desen->DrawLine(Creion_rosu,xc,yc,x,y);

else

Desen->DrawLine(Creion_albastru,xc,yc,x,y);

}

Realizati un cadran de forma:

System::Drawing::Graphics^ Desen;

Desen = this->CreateGraphics();

System::Drawing::Pen^ Creion_albastru;

Creion_albastru =gcnew

System::Drawing::Pen(System::Drawing::Color::Blue);

System::Drawing::Pen^ Creion_rosu;

Creion_rosu =gcnew System::Drawing::Pen(System::Drawing::Color::Red);

System::Drawing::SolidBrush^ Pensula;

Pensula=gcnew System::Drawing::SolidBrush(this->BackColor);

int x0=this->Width/5;

int y0=this->Height/5;

int d=this->Width/2;

int xc=x0+d/2;

int yc=y0+d/2;

int x,y;

int alfa_g;// unghiul in grade

Desen->Clear(this->BackColor);

Desen->DrawEllipse(Creion_albastru,x0,y0,d,d);

for (alfa_g=0;alfa_g < 360;alfa_g+=6){

double alfa_r=2*System::Math::PI*alfa_g/360;// unghiul in

radiani

x=xc+d/2*System::Math::Cos(alfa_r);

y=yc-d/2*System::Math::Sin(alfa_r);

if (alfa_g%30==0)

Desen->DrawLine(Creion_rosu,xc,yc,x,y);

else

Desen->DrawLine(Creion_albastru,xc,yc,x,y);

}

Desen->FillEllipse(Pensula,x0+5,y0+5,d-10,d-10);

Versiunea II-a

System::Drawing::Graphics^ Desen;

Desen = this->CreateGraphics();

System::Drawing::Pen^ Creion_albastru;

Creion_albastru =gcnew

System::Drawing::Pen(System::Drawing::Color::Blue);

System::Drawing::Pen^ Creion_rosu;

Creion_rosu =gcnew System::Drawing::Pen(System::Drawing::Color::Red);

int x0=this->Width/5;

int y0=this->Height/5;

int d=this->Width/2;

int di=d-10;

int xc=x0+d/2;

int yc=y0+d/2;

int x1,y1,x2,y2;

int alfa_g;// unghiul in grade

Desen->Clear(this->BackColor);

Desen->DrawEllipse(Creion_albastru,x0,y0,d,d);

for (alfa_g=0;alfa_g < 360;alfa_g+=6){

double alfa_r=2*System::Math::PI*alfa_g/360;// unghiul in

radiani

y1=yc-d/2*System::Math::Sin(alfa_r);

x1=xc+d/2*System::Math::Cos(alfa_r);

y2=yc-di/2*System::Math::Sin(alfa_r);

x2=xc+di/2*System::Math::Cos(alfa_r);

if (alfa_g%30==0)

Desen->DrawLine(Creion_rosu,x1,y1,x2,y2);

else

Desen->DrawLine(Creion_albastru,x1,y1,x2,y2);

}

Folosind un timer afisati cu temporizare de 1 secunda 60 de raze echidistante intru-un

cerc

System::Drawing::Graphics^ Desen;

System::Drawing::Pen^ Creion_albastru;

System::Drawing::Pen^ Creion_rosu;

int x,y,x0,y0,xc,yc,x1,y1,x2,y2,i,d,di,alfa_g;

double alfa_r;

#pragma endregion

private: System::Void Form1_Paint(System::Object^ sender,

System::Windows::Forms::PaintEventArgs^ e) {

Desen = this->CreateGraphics();

Creion_albastru =gcnew

System::Drawing::Pen(System::Drawing::Color::Blue);

Creion_rosu =gcnew System::Drawing::Pen(System::Drawing::Color::Red);

x0=this->Width/5;

y0=this->Height/5;

d=this->Width/2;

di=d-10;

xc=x0+d/2;

yc=y0+d/2;

Desen->Clear(this->BackColor);

Desen->DrawEllipse(Creion_albastru,x0,y0,d,d);

for (alfa_g=0;alfa_g < 360;alfa_g+=6){

double alfa_r=2*System::Math::PI*alfa_g/360;// unghiul in

radiani

y1=yc-d/2*System::Math::Sin(alfa_r);

x1=xc+d/2*System::Math::Cos(alfa_r);

y2=yc-di/2*System::Math::Sin(alfa_r);

x2=xc+di/2*System::Math::Cos(alfa_r);

if (alfa_g%30==0)

Desen->DrawLine(Creion_rosu,x1,y1,x2,y2);

else

Desen->DrawLine(Creion_albastru,x1,y1,x2,y2);

}

}

private: System::Void timer1_Tick(System::Object^ sender,

System::EventArgs^ e) {

alfa_r=2*System::Math::PI*i/360;

x=xc+d/2*System::Math::Cos(alfa_r);

y=yc-d/2*System::Math::Sin(alfa_r);

Desen->DrawLine(Creion_rosu,xc,yc,x,y);

i=i-360/60;

if (i<-360)

i=0;

}

Reluati aplicatia anterioara dar stergeti razele anterioare pentru a simula o raza care se

roteste

System::Drawing::Graphics^ Desen;

System::Drawing::Pen^ Creion_albastru;

System::Drawing::Pen^ Creion_rosu;

System::Drawing::SolidBrush^ Pensula;

int x,y,x0,y0,xc,yc,x1,y1,x2,y2,i,d,di,alfa_g;

double alfa_r;

#pragma endregion

private: System::Void Form1_Paint(System::Object^ sender,

System::Windows::Forms::PaintEventArgs^ e) {

Desen = this->CreateGraphics();

Creion_albastru =gcnew

System::Drawing::Pen(System::Drawing::Color::Blue);

Creion_rosu =gcnew System::Drawing::Pen(System::Drawing::Color::Red);

Pensula=gcnew System::Drawing::SolidBrush(this->BackColor);

x0=this->Width/5;

y0=this->Height/5;

d=this->Width/2;

di=d-10;

xc=x0+d/2;

yc=y0+d/2;

Desen->Clear(this->BackColor);

Desen->DrawEllipse(Creion_albastru,x0,y0,d,d);

for (alfa_g=0;alfa_g < 360;alfa_g+=6){

double alfa_r=2*System::Math::PI*alfa_g/360;// unghiul in

radiani

y1=yc-d/2*System::Math::Sin(alfa_r);

x1=xc+d/2*System::Math::Cos(alfa_r);

y2=yc-di/2*System::Math::Sin(alfa_r);

x2=xc+di/2*System::Math::Cos(alfa_r);

if (alfa_g%30==0)

Desen->DrawLine(Creion_rosu,x1,y1,x2,y2);

else

Desen->DrawLine(Creion_albastru,x1,y1,x2,y2);

}

}

private: System::Void timer1_Tick(System::Object^ sender,

System::EventArgs^ e) {

alfa_r=2*System::Math::PI*i/360;

x=xc+d/2*System::Math::Cos(alfa_r);

y=yc-d/2*System::Math::Sin(alfa_r);

Desen->FillEllipse(Pensula,x0+5,y0+5,d-10,d-10);

Desen->DrawLine(Creion_rosu,xc,yc,x,y);

i=i-360/60;

if (i<-360)

i=0;

}

namespace radar_v0

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

int x0, y0, d, xc, yc, x, y;

double alfa_g, alfa_r;

System.Drawing.Graphics Desen;

System.Drawing.Pen Creion_albastru;

System.Drawing.Pen Creion_rosu;

System.Drawing.Pen Creion_pic;

private void Form1_Load(object sender, EventArgs e)

{

Desen = this.CreateGraphics();

Creion_albastru = new

System.Drawing.Pen(System.Drawing.Color.Blue);

Creion_rosu = new System.Drawing.Pen(System.Drawing.Color.Red);

Creion_pic = new System.Drawing.Pen(this.BackColor);

x0 = this.Width / 5;

y0 = this.Height / 5;

d = this.Width / 2;

xc = x0 + d / 2;

yc = y0 + d / 2;

alfa_g = 90;// unghiul in grade

alfa_r = 2 * System.Math.PI * alfa_g / 360;// unghiul in radiani

}

private void Form1_Paint(object sender, PaintEventArgs e)

{

x0 = this.Width / 5;

y0 = this.Height / 5;

d = this.Width / 2;

xc = x0 + d / 2;

yc = y0 + d / 2;

x = System.Convert.ToInt16(xc + d / 2 *

System.Math.Cos(alfa_r));

y = System.Convert.ToInt16(yc - d / 2 *

System.Math.Sin(alfa_r));

Desen = this.CreateGraphics();

Desen.Clear(this.BackColor);

Desen.DrawEllipse(Creion_albastru, x0, y0, d, d);

Desen.DrawEllipse(Creion_albastru, x0 + 20, y0 + 20, d - 40, d -

40);

//Desen.DrawLine(Creion_rosu, xc, yc, x, y);

}

private void timer1_Tick(object sender, EventArgs e)

{

alfa_r = 2 * System.Math.PI * alfa_g / 360;// unghiul in

radiani

x = System.Convert.ToInt16(xc + ((d / 2) - 25) *

System.Math.Cos(alfa_r));

y = System.Convert.ToInt16(yc - ((d / 2) - 25) *

System.Math.Sin(alfa_r));

Desen.DrawLine(Creion_pic, xc, yc, x, y);

alfa_g = alfa_g - 6;

if (alfa_g == 0)

alfa_g = 360;

alfa_r = 2 * System.Math.PI * alfa_g / 360;// unghiul in

radiani

x = System.Convert.ToInt16(xc + ((d / 2) - 25) *

System.Math.Cos(alfa_r));

y = System.Convert.ToInt16(yc - ((d / 2) - 25) *

System.Math.Sin(alfa_r));

Desen.DrawLine(Creion_rosu, xc, yc, x, y);

}

}

}

Simulati radarul din imaginea de sus

namespace radar_v1

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

System.Drawing.Graphics Desen;

System.Drawing.Pen Creion_albastru;

System.Drawing.Pen Creion_rosu;

System.Drawing.SolidBrush Radiera;

int x0, y0, r, xc, yc, xm, ym, a, ai, d, rc, ds;

double ar;

private void Form1_Paint(object sender, PaintEventArgs e)

{

Desen = this.CreateGraphics();

Creion_albastru = new

System.Drawing.Pen(System.Drawing.Color.Blue);

Creion_rosu = new System.Drawing.Pen(Color.Red);

Radiera = new System.Drawing.SolidBrush(this.BackColor);

d = 10;

x0 = d;

y0 = d;

r = 3 * this.Width / 7;

xc = x0 + r;

yc = y0 + r;

a = 0; // unghiul alfa in grade

ar = 0; // unghiul alfa in radiani

ai = 0; // unghiul alfa initial in grade

ds = 2 * r / 7; // rata cu care scade diametrul

rc = 0; // rata cu care creste pozitia pe x si pe y

Desen.DrawEllipse(Creion_albastru, x0, y0, 2 * r, 2 * r);

}

private void timer1_Tick(object sender, EventArgs e)

{

// cercuri concentrice

Desen.FillEllipse(Radiera, x0 + 1, y0 + 1, 2 * r - 2, 2 * r -

2);

rc = 0;

for (d = 2 * r; d >= 0; d -= ds)

{

Desen.DrawEllipse(Creion_albastru, x0 + rc, y0 + rc, d, d);

rc += ds / 2;

}

//raze in cerc

for (a = 0; a < 360; a += 360 / 12)

{

ar = a * Math.PI / 180;

xm = System.Convert.ToInt16(xc + r * Math.Sin(ar));

ym = System.Convert.ToInt16(yc - r * Math.Cos(ar));

Desen.DrawLine(Creion_rosu, xc, yc, xm, ym);

}

// fascicul de raze

for (a = ai; a < (ai + 30); a += 360 / 120)

{

ar = a * Math.PI / 180;

xm = System.Convert.ToInt16(xc + r * Math.Sin(ar));

ym = System.Convert.ToInt16(yc - r * Math.Cos(ar));

if (a % 30 == 0)

Desen.DrawLine(Creion_rosu, xc, yc, xm, ym);

else

Desen.DrawLine(Creion_albastru, xc, yc, xm, ym);

}

ai += 10;

}

}

}

Pentru a evita clipirea imaginii vom folosi obiectul imagine

namespace radar_v2

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

System.Drawing.Graphics Desen,g;

System.Drawing.Bitmap img;

System.Drawing.Pen Creion_albastru;

System.Drawing.Pen Creion_rosu;

int x0, y0, r, xc, yc, xm, ym, a, ai, d, rc, ds;

double ar;

private void Form1_Paint(object sender, PaintEventArgs e)

{

Desen = this.CreateGraphics();

Creion_albastru = new

System.Drawing.Pen(System.Drawing.Color.Blue);

Creion_rosu = new System.Drawing.Pen(Color.Red);

d = 10;

x0 = d;

y0 = d;

r = 3 * this.Width / 7;

xc = x0 + r;

yc = y0 + r;

img = new Bitmap(2*(r+d), 2*(r+d));

g = Graphics.FromImage(img);

a = 0; // unghiul alfa in grade

ar = 0; // unghiul alfa in radiani

ai = 0; // unghiul alfa initial in grade

ds = 2 * r / 7; // rata cu care scade diametrul

rc = 0; // rata cu care creste pozitia pe x si pe y

}

private void timer1_Tick(object sender, EventArgs e)

{

g.Clear(BackColor);

g.DrawEllipse(Creion_albastru, x0, y0, 2 * r, 2 * r);

// cercuri concentrice

rc = 0;

for (d = 2 * r; d >= 0; d -= ds)

{

g.DrawEllipse(Creion_albastru, x0 + rc, y0 + rc, d, d);

rc += ds / 2;

}

//raze in cerc

for (a = 0; a < 360; a += 360 / 12)

{

ar = a * Math.PI / 180;

xm = System.Convert.ToInt16(xc + r * Math.Sin(ar));

ym = System.Convert.ToInt16(yc - r * Math.Cos(ar));

g.DrawLine(Creion_rosu, xc, yc, xm, ym);

}

// fascicul de raze

for (a = ai; a < (ai + 30); a += 360 / 120)

{

ar = a * Math.PI / 180;

xm = System.Convert.ToInt16(xc + r * Math.Sin(ar));

ym = System.Convert.ToInt16(yc - r * Math.Cos(ar));

if (a % 30 == 0)

g.DrawLine(Creion_rosu, xc, yc, xm, ym);

else

g.DrawLine(Creion_albastru, xc, yc, xm, ym);

}

Desen.DrawImage(img, 0, 0);

ai += 10;

}

}

}

Pentru a evita clipirea imaginii vom folosi pictureBox si obiectul imagine

namespace radar_v3

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

System.Drawing.Graphics g;

System.Drawing.Bitmap img;

System.Drawing.Pen Creion_albastru;

System.Drawing.Pen Creion_rosu;

int x0, y0, r, xc, yc, xm, ym, a, ai, d, rc, ds;

double ar;

private void Form1_Paint(object sender, PaintEventArgs e)

{

Creion_albastru = new

System.Drawing.Pen(System.Drawing.Color.Blue);

Creion_rosu = new System.Drawing.Pen(Color.Red);

d = 10;

x0 = d;

y0 = d;

r = 3 * this.pictureBox1.Width / 7;

xc = x0 + r;

yc = y0 + r;

img = new Bitmap(2 * (r + d), 2 * (r + d));

g = Graphics.FromImage(img);

a = 0; // unghiul alfa in grade

ar = 0; // unghiul alfa in radiani

ai = 0; // unghiul alfa initial in grade

ds = 2 * r / 7; // rata cu care scade diametrul

rc = 0; // rata cu care creste pozitia pe x si pe y

}

private void timer1_Tick(object sender, EventArgs e)

{

g.Clear(BackColor);

g.DrawEllipse(Creion_albastru, x0, y0, 2 * r, 2 * r);

// cercuri concentrice

rc = 0;

for (d = 2 * r; d >= 0; d -= ds)

{

g.DrawEllipse(Creion_albastru, x0 + rc, y0 + rc, d, d);

rc += ds / 2;

}

//raze in cerc

for (a = 0; a < 360; a += 360 / 12)

{

ar = a * Math.PI / 180;

xm = System.Convert.ToInt16(xc + r * Math.Sin(ar));

ym = System.Convert.ToInt16(yc - r * Math.Cos(ar));

g.DrawLine(Creion_rosu, xc, yc, xm, ym);

}

// fascicul de raze

for (a = ai; a < (ai + 30); a += 360 / 120)

{

ar = a * Math.PI / 180;

xm = System.Convert.ToInt16(xc + r * Math.Sin(ar));

ym = System.Convert.ToInt16(yc - r * Math.Cos(ar));

if (a % 30 == 0)

g.DrawLine(Creion_rosu, xc, yc, xm, ym);

else

g.DrawLine(Creion_albastru, xc, yc, xm, ym);

}

pictureBox1.Image = img;

ai += 10;

}

}

}

Utilizati ceasul sistem pentru a simula un secundar de ceas

Secundarul se roteste in sens trigonometric

System::Drawing::Graphics^ Desen;

System::Drawing::Pen^ Creion_albastru;

System::Drawing::Pen^ Creion_rosu;

System::Drawing::SolidBrush^ Pensula;

int x,y,x0,y0,xc,yc,x1,y1,x2,y2,i,d,di,alfa_g;

double alfa_r;

#pragma endregion

private: System::Void Form1_Paint(System::Object^ sender,

System::Windows::Forms::PaintEventArgs^ e) {

Desen = this->CreateGraphics();

Creion_albastru =gcnew

System::Drawing::Pen(System::Drawing::Color::Blue);

Creion_rosu =gcnew System::Drawing::Pen(System::Drawing::Color::Red);

Pensula=gcnew System::Drawing::SolidBrush(this->BackColor);

x0=this->Width/5;

y0=this->Height/5;

d=this->Width/2;

di=d-10;

xc=x0+d/2;

yc=y0+d/2;

Desen->Clear(this->BackColor);

Desen->DrawEllipse(Creion_albastru,x0,y0,d,d);

for (alfa_g=0;alfa_g < 360;alfa_g+=6){

double alfa_r=2*System::Math::PI*alfa_g/360;// unghiul in

radiani

y1=yc-d/2*System::Math::Sin(alfa_r);

x1=xc+d/2*System::Math::Cos(alfa_r);

y2=yc-di/2*System::Math::Sin(alfa_r);

x2=xc+di/2*System::Math::Cos(alfa_r);

if (alfa_g%30==0)

Desen->DrawLine(Creion_rosu,x1,y1,x2,y2);

else

Desen->DrawLine(Creion_albastru,x1,y1,x2,y2);

}

}

private: System::Void timer1_Tick(System::Object^ sender,

System::EventArgs^ e) {

i=6*System::DateTime::Now.Second;

alfa_r=2*System::Math::PI*i/360;

x=xc+d/2*System::Math::Cos(alfa_r);

y=yc-d/2*System::Math::Sin(alfa_r);

Desen->FillEllipse(Pensula,x0+5,y0+5,d-10,d-10);

Desen->DrawLine(Creion_rosu,xc,yc,x,y);

}

Secundarul se roteste in sens direct

private: System::Void timer1_Tick(System::Object^ sender,

System::EventArgs^ e) {

i=90-6*System::DateTime::Now.Second;

alfa_r=2*System::Math::PI*i/360;

x=xc+d/2*System::Math::Cos(alfa_r);

y=yc-d/2*System::Math::Sin(alfa_r);

Desen->FillEllipse(Pensula,x0+5,y0+5,d-10,d-10);

Desen->DrawLine(Creion_rosu,xc,yc,x,y);

}

Adaugati si un minutar

private: System::Void timer1_Tick(System::Object^ sender,

System::EventArgs^ e) {

i=90-6*System::Convert::ToInt16(System::DateTime::Now.Second);

alfa_r=2*System::Math::PI*i/360;

x=xc+d/2*System::Math::Cos(alfa_r);

y=yc-d/2*System::Math::Sin(alfa_r);

Desen->FillEllipse(Pensula,x0+5,y0+5,d-10,d-10);

Desen->DrawLine(Creion_rosu,xc,yc,x,y);

i=90-6*System::Convert::ToInt16(System::DateTime::Now.Minute);

alfa_r=2*System::Math::PI*i/360;

x=xc+d/2*System::Math::Cos(alfa_r);

y=yc-d/2*System::Math::Sin(alfa_r);

Desen->DrawLine(Creion_albastru,xc,yc,x,y);

}

Realizati un ceas de forma: - "ceas_v1"

private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e) {

i=90-6*System::Convert::ToInt16(System::DateTime::Now.Second);

alfa_r=2*System::Math::PI*i/360;

x=xc+d/2*System::Math::Cos(alfa_r);

y=yc-d/2*System::Math::Sin(alfa_r);

Desen->FillEllipse(Pensula,x0+5,y0+5,d-10,d-10);

Desen->DrawLine(Creion_albastru,xc,yc,x,y);

i=90-6*System::Convert::ToInt16(System::DateTime::Now.Minute);

alfa_r=2*System::Math::PI*i/360;

x=xc+(d-20)/2*System::Math::Cos(alfa_r);

y=yc-(d-20)/2*System::Math::Sin(alfa_r);

Desen->DrawLine(Creion_albastru,xc,yc,x,y);

i=90-

(30*System::Convert::ToInt16(System::DateTime::Now.Hour)+System::Convert::ToInt16(System::DateTime::Now.Minute)/2);

alfa_r=2*System::Math::PI*i/360;

x=xc+(d-30)/2*System::Math::Cos(alfa_r);

y=yc-(d-30)/2*System::Math::Sin(alfa_r);

Desen->DrawLine(Creion_rosu,xc,yc,x,y);

}

# "ceas_v3"

namespace ceas_v3

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

System.Drawing.Graphics desen;

System.Drawing.Pen creion;

System.Drawing.Pen creion2;

System.Drawing.SolidBrush pensula;

System.Drawing.Pen creionminut;

System.Drawing.Pen creionora;

System.Drawing.SolidBrush pensulacerc;

int x, y, x1, y1, d, x2, y2, i, x3, y3; double g, r;

private void Form1_Paint(object sender, PaintEventArgs e)

{

x = this.Width / 5;

y = this.Height / 5;

d = this.Width / 2;

x1 = x + d / 2;

y1 = y + d / 2;

desen = this.CreateGraphics();

creion = new System.Drawing.Pen(System.Drawing.Color.Blue);

creionminut = new

System.Drawing.Pen(System.Drawing.Color.White);

creionora = new System.Drawing.Pen(System.Drawing.Color.Orange);

creion2 = new System.Drawing.Pen(System.Drawing.Color.Red);

pensula = new System.Drawing.SolidBrush(this.BackColor);

pensulacerc = new

System.Drawing.SolidBrush(System.Drawing.Color.DarkBlue);

desen.Clear(this.BackColor);

desen.DrawEllipse(creion, x, y, d, d);

for (g = 0; g < 360; g += 6)

{

double r = 2 * System.Math.PI * g / 360;

x2 = Convert.ToInt16(x1 + (d / 2) * System.Math.Cos(r));

y2 = Convert.ToInt16(y1 - (d / 2) * System.Math.Sin(r));

desen.DrawLine(creion2, x1, y1, x2, y2);

if (g % 30 == 0)

desen.DrawLine(creion2, x1, y1, x2, y2);

else

desen.DrawLine(creion, x1, y1, x2, y2);

}

desen.FillEllipse(pensula, x + 5, y + 5, d - 10, d - 10);

}

private void timer1_Tick(object sender, EventArgs e)

{

//secundar

i = 90 - 6 * System.DateTime.Now.Second;

r = (2 * System.Math.PI * i) / 360;

x3 = Convert.ToInt16(x1 + (d / 2 - 6) * System.Math.Cos(r));

y3 = Convert.ToInt16(y1 - (d / 2 - 6) * System.Math.Sin(r));

desen.FillEllipse(pensula, x + 5, y + 5, d - 10, d - 10);

desen.DrawLine(creion2, x1, y1, x3, y3);

//minutar

i = 90 - 6 * System.DateTime.Now.Minute;

r = (2 * System.Math.PI * i) / 360;

x3 = Convert.ToInt16(x1 + (d / 2 - 10) * System.Math.Cos(r));

y3 = Convert.ToInt16(y1 - (d / 2 - 10) * System.Math.Sin(r));

desen.DrawLine(creionminut, x1, y1, x3, y3);

//ora

i = 90 - (30 * System.Convert.ToInt16(System.DateTime.Now.Hour)

+ System.Convert.ToInt16(System.DateTime.Now.Minute) / 2);

r = (2 * System.Math.PI * i) / 360;

x3 = Convert.ToInt16(x1 + (d / 2 - 35) * System.Math.Cos(r));

y3 = Convert.ToInt16(y1 - (d / 2 - 35) * System.Math.Sin(r));

desen.DrawLine(creionora, x1, y1, x3, y3);

desen.FillEllipse(pensulacerc, x1 - 5, y1 - 5, 10, 10);

}

}

}

simulati o roata care se invarte: - "roata"

namespace roata

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

int x0, y0, d, xc, yc, x, y;

double alfa_g, alfa_r;

System.Drawing.Graphics Desen;

System.Drawing.Pen Creion_albastru;

System.Drawing.Pen Creion_rosu;

System.Drawing.Pen Creion_pic;

private void Form1_Load(object sender, EventArgs e)

{

Desen = this.CreateGraphics();

Creion_albastru = new

System.Drawing.Pen(System.Drawing.Color.Blue);

Creion_rosu = new System.Drawing.Pen(System.Drawing.Color.Red);

Creion_pic = new System.Drawing.Pen(this.BackColor);

x0 = this.Width / 5;

y0 = this.Height / 5;

d = this.Width / 2;

xc = x0 + d / 2;

yc = y0 + d / 2;

alfa_g = 90;// unghiul in grade

alfa_r = 2 * System.Math.PI * alfa_g / 360;// unghiul in radiani

}

private void Form1_Paint(object sender, PaintEventArgs e)

{

x0 = this.Width / 5;

y0 = this.Height / 5;

d = this.Width / 2;

xc = x0 + d / 2;

yc = y0 + d / 2;

x = System.Convert.ToInt16(xc + d / 2 *

System.Math.Cos(alfa_r));

y = System.Convert.ToInt16(yc - d / 2 *

System.Math.Sin(alfa_r));

Desen = this.CreateGraphics();

Desen.Clear(this.BackColor);

Desen.DrawEllipse(Creion_albastru, x0, y0, d, d);

Desen.DrawEllipse(Creion_albastru, x0+20, y0+20, d-40, d-40);

//Desen.DrawLine(Creion_rosu, xc, yc, x, y);

}

private void timer1_Tick(object sender, EventArgs e)

{

for (int i = 0; i <= 12; i++)

{

alfa_r = 2 * System.Math.PI * (alfa_g+30*i) / 360;// unghiul

in radiani

x = System.Convert.ToInt16(xc + ((d / 2) - 25) *

System.Math.Cos(alfa_r));

y = System.Convert.ToInt16(yc - ((d / 2) - 25) *

System.Math.Sin(alfa_r));

Desen.DrawLine(Creion_pic, xc, yc, x, y);

}

alfa_g = alfa_g-6;

if (alfa_g == 0)

alfa_g = 360;

for (int i = 0; i <= 12; i++)

{

alfa_r = 2 * System.Math.PI * (alfa_g + 30 * i) / 360;//

unghiul in radiani

x = System.Convert.ToInt16(xc + ((d / 2) - 25) *

System.Math.Cos(alfa_r));

y = System.Convert.ToInt16(yc - ((d / 2) - 25) *

System.Math.Sin(alfa_r));

Desen.DrawLine(Creion_rosu, xc, yc, x, y);

}

}

}

}

Afisati rotatia pamantului in jurul soarelui sub forma: - "sist_sol_v0"

System::Drawing::Graphics^ Desen;

System::Drawing::Pen^ Creion_gri;

System::Drawing::SolidBrush^ Pens_r;

System::Drawing::SolidBrush^ Pens_a;

System::Drawing::SolidBrush^ Pens_pic;

static int x0; // Stanga sus

static int y0;

static int d0; // axa majora

static int d1; // axa minora

static int xc; // centrul sistemului solar

static int yc;

static int x,y; // poxitia curenta a planetei

static int r=5; // raza planetei

static int alfa_g;// unghiul in grade

static double alfa_r;// unghiul in radiani

private: System::Void Form1_Paint(System::Object^ sender,

System::Windows::Forms::PaintEventArgs^ e) {

Desen = this->CreateGraphics();

Creion_gri =gcnew

System::Drawing::Pen(System::Drawing::Color::LightGray);

Pens_r =gcnew

System::Drawing::SolidBrush(System::Drawing::Color::Red);

Pens_a =gcnew

System::Drawing::SolidBrush(System::Drawing::Color::Blue);

Pens_pic =gcnew

System::Drawing::SolidBrush(System::Drawing::Color(this->BackColor));

x0=this->Width/5;

y0=this->Height/5;

d0=this->Width/1.5;

d1=this->d0/2;

xc=x0+d0/2;

yc=y0+d1/2;

Desen->Clear(this->BackColor);

Desen->DrawEllipse(Creion_gri,x0,y0,d0,d1); //desenez elipsa

Desen->FillEllipse(Pens_r,x0+d1/3,y0+d1/2-10,20,20); //

desenez soarele

for(alfa_g=0;alfa_g <=360;alfa_g+=360/12){

alfa_r=2*System::Math::PI*alfa_g/360;// unghiul in

radiani

x=xc+d0/2*System::Math::Cos(alfa_r);

y=yc-d1/2*System::Math::Sin(alfa_r);

Desen->FillEllipse(Pens_a,x-r,y-r,2*r,2*r);

}

}

C#

namespace sist_sol_v0

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

System.Drawing.Graphics Desen;

System.Drawing.Pen Creion_gri;

System.Drawing.SolidBrush Pens_r;

System.Drawing.SolidBrush Pens_a;

System.Drawing.SolidBrush Pens_pic;

static int x0; // Stanga sus

static int y0;

static int d0; // axa majora

static int d1; // axa minora

static int xc; // centrul sistemului solar

static int yc;

static int x,y; // poxitia curenta a planetei

static int r=5; // raza planetei

static int alfa_g;// unghiul in grade

static double alfa_r;// unghiul in radiani

private void Form1_Paint(object sender, PaintEventArgs e)

{

Desen = this.CreateGraphics();

Creion_gri =new

System.Drawing.Pen(System.Drawing.Color.LightGray);

Pens_r =new

System.Drawing.SolidBrush(System.Drawing.Color.Red);

Pens_a =new

System.Drawing.SolidBrush(System.Drawing.Color.Blue);

Pens_pic =new System.Drawing.SolidBrush(this.BackColor);

x0=this.Width/5;

y0=this.Height/5;

d0=System.Convert.ToInt16(this.Width/1.5);

d1=d0/2;

xc=x0+d0/2;

yc=y0+d1/2;

Desen.Clear(this.BackColor);

Desen.DrawEllipse(Creion_gri,x0,y0,d0,d1); //desenez

elipsa

Desen.FillEllipse(Pens_r,x0+d1/3,y0+d1/2-10,20,20); //

desenez soarele

for(alfa_g=0;alfa_g <=360;alfa_g+=360/12){

alfa_r=2*System.Math.PI*alfa_g/360;// unghiul in

radiani

x=System.Convert.ToInt16(xc+d0/2*System.Math.Cos(alfa_r));

y=System.Convert.ToInt16(yc-

d1/2*System.Math.Sin(alfa_r));

Desen.FillEllipse(Pens_a,x-r,y-r,2*r,2*r);

}

}

}

}

Folosind un timer cu temporizare de 0,1 simlati rotatia pamantului in jurul soarelui -

"sist_sol_v1"

System::Drawing::Graphics^ Desen;

System::Drawing::Pen^ Creion_gri;

System::Drawing::SolidBrush^ Pens_r;

System::Drawing::SolidBrush^ Pens_a;

System::Drawing::SolidBrush^ Pens_pic;

static int x0; // Stanga sus

static int y0;

static int d0; // axa majora

static int d1; // axa minora

static int xc; // centrul soarelui

static int yc;

static int x,y; // poxitia curenta a planetei

static int r=5; // raza planetei

static int alfa_g;// unghiul in grade

static double alfa_r;// unghiul in radiani

private: System::Void Form1_Paint(System::Object^ sender,

System::Windows::Forms::PaintEventArgs^ e) {

Desen = this->CreateGraphics();

Creion_gri =gcnew

System::Drawing::Pen(System::Drawing::Color::LightGray);

Pens_r =gcnew

System::Drawing::SolidBrush(System::Drawing::Color::Red);

Pens_a =gcnew

System::Drawing::SolidBrush(System::Drawing::Color::Blue);

Pens_pic =gcnew

System::Drawing::SolidBrush(System::Drawing::Color(this->BackColor));

x0=this->Width/6;

y0=this->Height/6;

d0=this->Width/1.5;

d1=this->d0/2;

xc=x0+d0/2;

yc=y0+d1/2;

Desen->Clear(this->BackColor);

Desen->FillEllipse(Pens_r,x0+d1/3,y0+d1/2-10,20,20); //

desenez soarele

}

private: System::Void timer1_Tick(System::Object^ sender,

System::EventArgs^ e) {

Desen->FillEllipse(Pens_pic,x-r,y-r,2*r,2*r); // sterg

vechiul pamant

Desen->DrawEllipse(Creion_gri,x0,y0,d0,d1); //desenez elipsa

alfa_r=2*System::Math::PI*alfa_g/360;// unghiul in radiani

x=xc+d0/2*System::Math::Cos(alfa_r);

y=yc-d1/2*System::Math::Sin(alfa_r);

alfa_g+=10;

if (alfa_g>360)

alfa_g=0;

//Desen->DrawLine(Creion_rosu,xc,yc,x,y);

Desen->FillEllipse(Pens_a,x-r,y-r,2*r,2*r);

}

C#

namespace sist_sol_v1

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

System.Drawing.Graphics Desen;

System.Drawing.Pen Creion_gri;

System.Drawing.SolidBrush Pens_r;

System.Drawing.SolidBrush Pens_a;

System.Drawing.SolidBrush Pens_pic;

static int x0; // Stanga sus

static int y0;

static int d0; // axa majora

static int d1; // axa minora

static int xc; // centrul sistemului solar

static int yc;

static int x, y; // poxitia curenta a planetei

static int r = 5; // raza planetei

static int alfa_g;// unghiul in grade

static double alfa_r;// unghiul in radiani

private void Form1_Paint(object sender, PaintEventArgs e)

{

Desen = this.CreateGraphics();

Creion_gri = new

System.Drawing.Pen(System.Drawing.Color.LightGray);

Pens_r = new

System.Drawing.SolidBrush(System.Drawing.Color.Red);

Pens_a = new

System.Drawing.SolidBrush(System.Drawing.Color.Blue);

Pens_pic = new System.Drawing.SolidBrush(this.BackColor);

x0 = this.Width / 5;

y0 = this.Height / 5;

d0 = System.Convert.ToInt16(this.Width / 1.5);

d1 = d0 / 2;

xc = x0 + d0 / 2;

yc = y0 + d1 / 2;

Desen.FillEllipse(Pens_r, x0 + d1 / 3, y0 + d1 / 2 - 10, 20,

20); // desenez soarele

}

private void timer1_Tick(object sender, EventArgs e)

{

Desen.FillEllipse(Pens_pic,x-r,y-r,2*r,2*r); // sterg vechiul

pamant

Desen.DrawEllipse(Creion_gri,x0,y0,d0,d1); //desenez

elipsa

alfa_r=2*System.Math.PI*alfa_g/360;// unghiul in radiani

x=System.Convert.ToInt16(xc+d0/2*System.Math.Cos(alfa_r));

y=System.Convert.ToInt16(yc-

d1/2*System.Math.Sin(alfa_r));

alfa_g+=10;

if (alfa_g>360)

alfa_g=0;

//Desen.DrawLine(Creion_gri,xc,yc,x,y);

Desen.FillEllipse(Pens_a,x-r,y-r,2*r,2*r);

}

}

}

Realizati o aplicatie grafica in care veti simula un termometru asemanator cu imaginea

de jos: - "termo_02"

System::Drawing::Graphics^ Desen;

System::Drawing::Pen^ Creion_albastru;

System::Drawing::Pen^ Creion_rosu;

System::Drawing::Pen^ Creion_gri;

System::Drawing::SolidBrush^ Pens_r;

System::Drawing::SolidBrush^ Pens_v;

System::Drawing::SolidBrush^ Pens_pic;

System::Drawing::Font^ font_nina;

static double val;

static double val_max=400;

static int j;

static int x0=100;

static int y0=50;

static int w=10;

static double h=200;

private: System::Void Form1_Paint(System::Object^ sender,

System::Windows::Forms::PaintEventArgs^ e) {

Desen = this->CreateGraphics();

Creion_albastru =gcnew

System::Drawing::Pen(System::Drawing::Color::Blue);

Creion_rosu =gcnew

System::Drawing::Pen(System::Drawing::Color::Red);

Creion_gri =gcnew

System::Drawing::Pen(System::Drawing::Color::LightGray);

Pens_r=gcnew

System::Drawing::SolidBrush(System::Drawing::Color::Red);

Pens_v=gcnew

System::Drawing::SolidBrush(System::Drawing::Color::LightBlue);

Pens_pic=gcnew

System::Drawing::SolidBrush(System::Drawing::Color(this->BackColor));

font_nina=gcnew System::Drawing::Font("Nina",8);

Desen->Clear(System::Drawing::Color(this->BackColor));

this->trackBar1->Maximum=val_max;

Desen->DrawRectangle(Creion_albastru,x0,y0,w,h);//desenez

contur termometru

for (j=0;j <= h ;j+=5)// desenez gradatii

if(j%25==0){

Desen->DrawLine(Creion_gri,x0+w+2,y0+j,

x0+w+12,y0+j);

Desen-

>DrawString(System::Convert::ToString(val_max-

j*val_max/h),font_nina,Pens_r,x0+w+20,y0+j-7);

}

else

Desen->DrawLine(Creion_gri,x0+w+2,y0+j,

x0+w+7,y0+j);

}

private: System::Void trackBar1_Scroll(System::Object^ sender,

System::EventArgs^ e) {

val=(h/val_max)*System::Convert::ToDouble((this->trackBar1-

>Value));

Desen->FillRectangle(Pens_pic, x0+1, y0+1, w-2, h-2);

this->label1->Text=System::Convert::ToString(this->trackBar1-

>Value);

if(valFillRectangle(Pens_v, x0+1, h+y0-val, w-2, val);

Desen->FillEllipse(Pens_v,x0-20,y0,10,10);

}

else{

Desen->FillRectangle(Pens_r, x0+1, h+y0-val, w-2,

val);

Desen->FillEllipse(Pens_r,x0-20,y0,10,10);

}

}

C#

namespace termo_02

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

System.Drawing.Graphics Desen;

System.Drawing.Pen Creion_albastru;

System.Drawing.Pen Creion_rosu;

System.Drawing.Pen Creion_gri;

System.Drawing.SolidBrush Pens_r;

System.Drawing.SolidBrush Pens_v;

System.Drawing.SolidBrush Pens_pic;

System.Drawing.Font font_nina;

static float val;

static float val_max = 100;

static float val_min = 0;

static float val_p = 50;

static int j;

static int x0 = 100;

static int y0 = 50;

static int w = 10;

static int h = 200;

private void Form1_Load(object sender, EventArgs e)

{

Desen = this.CreateGraphics();

Creion_albastru = new

System.Drawing.Pen(System.Drawing.Color.Blue);

Creion_rosu = new System.Drawing.Pen(System.Drawing.Color.Red);

Creion_gri = new

System.Drawing.Pen(System.Drawing.Color.LightGray);

Pens_r = new

System.Drawing.SolidBrush(System.Drawing.Color.Red);

Pens_v = new

System.Drawing.SolidBrush(System.Drawing.Color.LightBlue);

Pens_pic = new System.Drawing.SolidBrush(this.BackColor);

font_nina = new System.Drawing.Font("Nina", 8);

}

private void Form1_Paint(object sender, PaintEventArgs e)

{

Desen = this.CreateGraphics();

Desen.Clear(this.BackColor);

//h = 5 * System.Convert.ToInt16(this.Height / 8);

h = System.Convert.ToInt16(val_max) * System.Convert.ToInt16(5 *

this.Height / 8 / val_max);

this.trackBar1.Maximum = System.Convert.ToInt16(val_max);

this.trackBar1.Minimum = System.Convert.ToInt16(val_min);

Desen.DrawRectangle(Creion_albastru, x0, y0, w, h);//desenez

contur termometru

for (j = 0; j <= h; j += 5)// desenez gradatii

{

if (j % 25 == 0)

{

Desen.DrawLine(Creion_gri, x0 + w + 2, y0 + j, x0 + w +

12, y0 + j);

Desen.DrawString(System.Convert.ToString(val_max-

j*val_max/h),font_nina,Pens_r,x0+w+20,y0+j-7);

}

else

{

Desen.DrawLine(Creion_gri, x0 + w + 2, y0 + j, x0 + w +

7, y0 + j);

}

}

}

private void trackBar1_Scroll(object sender, EventArgs e)

{

val = (h / val_max) * (this.trackBar1.Value);

this.label1.Text =

System.Convert.ToString(this.trackBar1.Value);

Desen.FillRectangle(Pens_pic, x0 + 1, y0 + 1, w - 1, h - 2);

if (this.trackBar1.Value > val_p)

{

Desen.FillRectangle(Pens_r, x0 + 1, h + y0 - val, w - 1,

val);

}

else

{

Desen.FillRectangle(Pens_v, x0 + 1, h + y0 - val, w - 1,

val);

}

}

}

}

Paradoxul lui Ahile

namespace ahile

{

public partial class Form1 : Form

{

static int a,b; // pozitia lui ahile respectiv a broastei

static int w, h, v ; // h, w dimensiunile unui dreptunghi

static System.Drawing.Graphics Desen;

static System.Drawing.SolidBrush Pensula, Pensula_pic;

static System.Drawing.Pen Creion_blu ;

public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

Desen = this.CreateGraphics();

Pensula = new

System.Drawing.SolidBrush(System.Drawing.Color.Blue);

Pensula_pic = new System.Drawing.SolidBrush(this.BackColor);

Creion_blu = new System.Drawing.Pen(System.Drawing.Color.Blue);

Desen.Clear(this.BackColor);

w = this.Size.Width / 67;

h = this.Size.Height / 20;

a = 63;

b = 37;

v = 3;

}

private void timer1_Tick(object sender, EventArgs e)

{

a = a + 1;

if (a == 64)

{

Desen.Clear(this.BackColor);

Desen.FillRectangle(Pensula_pic, (a - 1) * w,

this.Size.Height / 3, w, h);

Desen.FillRectangle(Pensula_pic, (b - 1) * w,

(this.Size.Height / 3) + h + 2, w, h);

for (a = 0; a < 65; a++)

{

if (this.radioButton2.Checked){

Desen.DrawRectangle(Creion_blu, (a - 1) * w,

this.Size.Height / 3, w, h);

Desen.DrawRectangle(Creion_blu, (a - 1) * w,

(this.Size.Height / 3)+h+2, w, h);

}

}

a = 0;

b = 37;

}

Desen.FillRectangle(Pensula, a*w, this.Size.Height / 3, w, h);

Desen.FillRectangle(Pensula_pic, (a-1)*w, this.Size.Height / 3,

w, h);

if (this.radioButton2.Checked)

Desen.DrawRectangle(Creion_blu, (a - 1) * w,

this.Size.Height / 3, w, h);

if(v==3){

Desen.FillRectangle(Pensula, b*w, (this.Size.Height / 3) +

h+2, w, h);

Desen.FillRectangle(Pensula_pic, (b-1)*w, (this.Size.Height

/ 3) + h+2, w, h);

if (this.radioButton2.Checked)

Desen.DrawRectangle(Creion_blu, (b - 1) * w,

(this.Size.Height / 3) + h+2, w, h);

b=b+1;

v = 0;

}

v = v + 1;

}

private void trackBar1_Scroll(object sender, EventArgs e)

{

this.timer1.Interval = this.trackBar1.Value;

}

}

}

Realizati o aplicatie grafica in care veti desena n cercuri de forma de jos.

namespace Mot_cerc_v1

{

public partial class Form1 : Form

{

System.Drawing.Graphics Desen;

System.Drawing.Pen Creion_albastru;

System.Drawing.Pen Creion_rosu;

int x, y, x0, y0, d, xc, yc;

double alfa_g, alfa_r;

public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

Creion_albastru = new

System.Drawing.Pen(System.Drawing.Color.Blue);

Creion_rosu = new System.Drawing.Pen(System.Drawing.Color.Red);

}

private void Form1_Paint(object sender, PaintEventArgs e)

{

x0 = this.Width / 4;

y0 = this.Height / 4;

d = this.Width / 3;

xc = x0 + d / 2;

yc = y0 + d / 2;

Desen = this.CreateGraphics();

Desen.Clear(this.BackColor);

Desen.DrawEllipse(Creion_albastru, x0, y0, d, d);

for (alfa_g = 0; alfa_g < 360; alfa_g += 45)

{

alfa_r = 2 * System.Math.PI * alfa_g / 360;// unghiul in

radiani

x = System.Convert.ToInt16(xc + d / 2 *

System.Math.Cos(alfa_r));

y = System.Convert.ToInt16(yc - d / 2 *

System.Math.Sin(alfa_r));

Desen.DrawEllipse(Creion_rosu,x-d/2,y-d/2,d,d);

}

}

}

}

Versiunea 2

namespace Mot_cerc_v2

{

public partial class Form1 : Form

{

System.Drawing.Graphics Desen;

System.Drawing.Pen Creion_albastru;

System.Drawing.Pen Creion_rosu;

int x, y, x0, y0, d, xc, yc;

double alfa_g, alfa_r;

public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

Desen = this.CreateGraphics();

Creion_albastru = new

System.Drawing.Pen(System.Drawing.Color.Blue);

Creion_rosu = new System.Drawing.Pen(System.Drawing.Color.Red);

}

private void trackBar1_Scroll(object sender, EventArgs e)

{

Desen.Clear(this.BackColor);

Desen.DrawEllipse(Creion_albastru, x0, y0, d, d);

for (alfa_g = 0; alfa_g < 360; alfa_g += this.trackBar1.Value)

{

alfa_r = 2 * System.Math.PI * alfa_g / 360;// unghiul in

radiani

x = System.Convert.ToInt16(xc + d / 2 *

System.Math.Cos(alfa_r));

y = System.Convert.ToInt16(yc - d / 2 *

System.Math.Sin(alfa_r));

Desen.DrawEllipse(Creion_rosu, x - d / 2, y - d / 2, d, d);

}

}

private void Form1_Paint(object sender, PaintEventArgs e)

{

x0 = this.Width / 4 + 20;

y0 = this.Height / 4 + 30;

d = this.Width / 3;

xc = x0 + d / 2;

yc = y0 + d / 2;

Desen = this.CreateGraphics();

Desen.Clear(this.BackColor);

Desen.DrawEllipse(Creion_albastru, x0, y0, d, d);

for (alfa_g = 0; alfa_g < 360; alfa_g += this.trackBar1.Value)

{

alfa_r = 2 * System.Math.PI * alfa_g / 360;// unghiul in

radiani

x = System.Convert.ToInt16(xc + d / 2 *

System.Math.Cos(alfa_r));

y = System.Convert.ToInt16(yc - d / 2 *

System.Math.Sin(alfa_r));

Desen.DrawEllipse(Creion_rosu, x - d / 2, y - d / 2, d, d);

}

}

}

}