Sunteți pe pagina 1din 4

Se se realizeze o aplicatie, avand interfata de mai jos, care sa permita calcule utilizand

siruri de numere introduse de utilizator (tip de date array). Se cere determinarea: minimului
respectiv maximului sirului de numere, suma respectiv produsul elementelor sirului,
determinarea numerelor positive din sir, calculul sumei si produsului numerelor pare si media
aritmetica a numerelor positive. Elementele sirului se vor introduce intr-o componenta de tip
edit si afisata in componenta memo utilizand un eveniment asociat primului buton. Butonul doi
va afisa un mesaj cu numarul de elemente introduse si va face inactiv primul buton. Al treilea
buton va afisa rezultatul, in functie de operatia aleasa din radiogroup, in componenta memo.
Cel de-al patrulea buton va curata componentele memo si edit, facand activ din nou butonul 1
pentru a putea reincepe utilizarea aplicatiei de la 0.

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
BitBtn1: TBitBtn;
RadioGroup1: TRadioGroup;
Edit1: TEdit;
Label1: TLabel;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
type sir=array[1..10000] of integer;
var s : sir;
i, n, min, max, suma, produs, npoz, sumap, produsp, k, sumanpoz :integer;
manpoz :real;

procedure TForm1.Button1Click(Sender: TObject);


begin
i:=i+1;
S[i]:=strtoint(edit1.text);
memo1.lines.add('S['+inttostr(i)+']='+inttostr(S[i]));
end;

procedure TForm1.Button2Click(Sender: TObject);


begin
n:=i;
memo1.lines.add('Sirul are '+inttostr(n)+' numere');
button1.enabled:=false;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
case radiogroup1.ItemIndex of
0:
begin
min:=s[1];
for i:=2 to n do
if min>s[i] then min:=S[i];
memo1.lines.add ('Minimul sirului este '+inttostr(min));
end;
1:
begin
max:=s[1];
for i:=2 to n do
if max<s[i] then max:=s[i];
memo1.lines.add('Maximul sirului este '+ inttostr(max));
end;

2:
begin
suma:=0;
for i:=1 to n do
suma:=suma+S[i];
memo1.lines.add('Suma este '+inttostr(suma));
end;

3:
begin
produs:=1;
for i:=1 to n do
produs:=produs*S[i];
memo1.lines.add ('Produsul este '+inttostr(produs));
end;

4:
begin
npoz:=0;
for i:=1 to n do
if s[i]>0 then npoz:=npoz+1;
memo1.lines.add ('Sirul are '+inttostr(npoz)+' numere pozitive');
end;
5:
begin
sumap:=0;
produsp:=1;
for i:=1 to n do
if s[i]mod 2=0 then
begin
sumap:=sumap+s[i];
produsp:=produsp*s[i];
end;
memo1.lines.add ('Suma numerelor pare este '+inttostr(sumap));
memo1.lines.add ('Produsul numerelor pare este '+inttostr(produsp));
end;

6:
begin
k:=0;
sumanpoz:=0;
manpoz:=0;
for i:=1 to n do
if s[i]>0 then
begin
k:=k+1;
sumanpoz:=sumanpoz+s[i];
end;
manpoz:=sumanpoz/k;
memo1.lines.add('Media aritmetica este '+floattostr(manpoz));
end;
end;
end;

procedure TForm1.Button4Click(Sender: TObject);


begin
memo1.Clear;
edit1.Text:=' ';
button1.enabled:=true;
end;

end.

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