niedziela, 31 października 2021

Example of ordering array (C++)

 #include <iostream>

#include <stdlib.h>

#include <time.h>

#define kk 24


using namespace std;


int *tab1; int *tab2; int *tab3; int *tab4; int *tab5; int *tab6;


int min_T(int a, int b, int c)

{

int d;

d=a;

if(d>=b)

d=b;

if(d>=c)

d=c;

return d;


}

int max_T(int a, int b, int c)

{

int d;

d=a;

if(d<=b)

d=b;

if(d<=c)

d=c;

return d;

}

int mid_T(int a, int b, int c)

{

int d=0;

if(a<=b && a>=c)

d=a;

if(a<=c && a>=b)

d=a;


if(b<=a && b>=c)

d=b;

if(b<=c && b>=a)

d=b;

if(c<=a && c>=b)

d=c;

if(c<=b && c>=a)

d=c;

return d;


}


int main()

{


int i;

srand(time(NULL));

tab1=new int[kk]; tab2=new int[kk]; tab3=new int[kk];

tab4=new int[kk]; tab5=new int[kk]; tab6=new int[kk];

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

{

tab1[i]=1+rand()%kk;

tab2[i]=1+rand()%kk;

tab3[i]=1+rand()%kk;

tab4[i]=min_T(tab1[i],tab2[i],tab3[i]);

tab5[i]=max_T(tab1[i],tab2[i],tab3[i]);

tab6[i]=mid_T(tab1[i],tab2[i],tab3[i]);

cout<<tab4[i]<<"-"<<tab6[i]<<"-"<<tab5[i]<<endl;


}

delete [] tab6; delete [] tab5; delete [] tab4;

delete [] tab3; delete [] tab2; delete [] tab1;

return 0;

}


niedziela, 17 października 2021

C fprintf()

 #include <stdio.h>

#include <stdlib.h>

#include <time.h>

#include <math.h>

#define asize 30


int tab1[asize], tab2[asize], tab3[asize];

double sq1[asize], sq2[asize], sq3[asize];

int main()

{

int i,j;

FILE *f1,*f2,*f3;

srand(time(NULL));

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

{

tab1[i]=rand()%asize+1;

tab2[i]=rand()%asize+1;

tab3[i]=rand()%asize+1;

if(tab1[i]>tab2[i])

        {

                      

                        j=tab1[i];

tab1[i]=tab2[i];

tab2[i]=j;

}

if(tab1[i]>tab3[i])

{

j=tab1[i];

tab1[i]=tab3[i];

tab3[i]=j;

}

if(tab3[i]<tab2[i])

{

j=tab1[i];

tab3[i]=tab2[i];

tab2[i]=j;

}

sq1[i]=sqrt(1.00*tab1[i]);

sq2[i]=sqrt(1.00*tab2[i]);

sq3[i]=sqrt(1.00*tab3[i]);

}

f1=fopen("MINVALUES.txt","wt");

for(i=0;i<asize;i++) {

fprintf(f1,"%d  %.2f\n",tab1[i],sq1[i]);

}

fclose(f1);

f2=fopen("MIDDLEVALUES.txt","wt");

for(i=0;i<asize;i++) {

fprintf(f2,"%d  %.2f\n",tab2[i],sq2[i]);

}

fclose(f2);

f3=fopen("MAXVALUES.txt","wt");

for(i=0;i<asize;i++) {

fprintf(f3,"%d  %.2f\n",tab3[i],sq3[i]);

}




return 0;

}


czwartek, 14 października 2021

Testing Lazarus in Linux Ubuntu (Free Pascal)

 Lazarus is free and therefore seems like an interesting alternative.


function is_First(mvalue:Integer):Boolean;
var i,suma:Integer;
  begin
    suma:=0;
    for i:=1 to mvalue+1 do
    begin
      if mvalue mod i=0 then
      suma:=suma+1;
    end;
    if suma=2 then
    is_First:=True
    else
    is_First:=False;
  end;
function sum_Tab(tab: array of Integer; size:Integer): Integer;
var i,sum:Integer;
begin
 sum:=0;
 for i:=0 to size do
  sum:=sum+tab[i];
 sum_Tab:=sum;

end;
function min_Tab(tab: array of Integer; size: Integer): Integer;
var i,min: Integer;
begin
 min:=tab[0];
 for i:=1 to size do
 begin
   if min>tab[i] then
    min:=tab[i];
 end;
 min_Tab:=min;
end;
function max_Tab(tab: array of Integer; size: Integer): Integer;
var i,max: Integer;
begin
 max:=tab[0];
 for i:=1 to size do
 begin
   if max<tab[i] then
    max:=tab[i];
 end;
 max_Tab:=max;;
end;

function aver_Tab1(tab: array of Integer; size: Integer):Real;
  begin
   aver_Tab1:=(1.00*sum_Tab(tab,size))/(1.00*size);
  end;
function aver_Tab2(tab: array of Integer; size: Integer):Real;
begin
  aver_Tab2:=((1.00*min_Tab(tab,size))+(1.00*max_Tab(tab,size)))/2.00;
end;

{ TForm1 }

procedure TForm1.Button2Click(Sender: TObject);
begin
  Close;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  pascalsA: array of Integer;
  i,j,m1,m2,s:Integer;
  a1,a2: Real;
begin
 setLength(pascalsA,30);

 i:=0;
 j:=1;
 repeat
   if is_First(j) then
   begin
     pascalsA[i]:=j;
     i:=i+1;
   end ;
   j:=j+1;

 until i>30;

 for i:=0 to 29 do
 begin
   ListBox1.Items.Add(IntToStr(i+1)+') '+IntToStr(pascalsA[i]));
 end;
 m1:=min_Tab(pascalsA,29);
 m2:=max_Tab(pascalsA,29);
 s:=sum_Tab(pascalsA,29);
 a1:=aver_Tab1(pascalsA,29);
 a2:=aver_Tab2(pascalsA,29);
 Label6.Caption:=IntToStr(m1);
 Label7.Caption:=IntToStr(m2);
 Label8.Caption:=IntToStr(s);
 Label9.Caption:=FloatToStr(a1);
 Label10.Caption:=FloatToStr(a2);


end;

end.