Advertisement
Guest User

Untitled

a guest
Apr 7th, 2014
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 3.49 KB | None | 0 0
  1. Program HelloWorld(output);
  2.  
  3. type
  4.    arrayType = array[1..100, 1..100] of real;
  5.    arrayOneRow = array[1..5000] of real;
  6.    
  7.    
  8. procedure inputSomething(var ext_size: integer; ext_text:string);
  9. begin
  10.     ext_size := 0;
  11.     while (ext_size < 1) or (ext_size > 100) do
  12.     begin
  13.         write(ext_text);
  14.         readln(ext_size);        
  15.     end;
  16.     writeln(ext_size);
  17. end;
  18.  
  19. procedure prepareArray(var ext_array:arrayType; ext_ArraySize, ext_randomInterval:integer);
  20.    var i,j: integer;
  21. begin
  22.     for  i:=1 to  ext_ArraySize do
  23.         for j:=1 to ext_ArraySize do                                      
  24.             ext_array[i,j]:= random * 2 * ext_randomInterval - ext_randomInterval;
  25. end;
  26.  
  27. procedure outputMatrix(ext_array:arrayType; ext_ArraySize:integer);
  28. var i,j: integer;
  29. begin
  30.     for  i:=1 to ext_ArraySize do
  31.     begin
  32.             for j:=1 to ext_ArraySize do
  33.                     write(ext_array[i,j]:3:2,' ');
  34.             writeln('');
  35.     end;
  36. end;
  37.  
  38. procedure getShitHigherThanIncidentalDiagonal(var ext_output: arrayOneRow; var ext_outputArraySize:integer; ext_array:arrayType; ext_arraySize:integer);
  39. var i,j: integer;
  40. begin
  41.     ext_outputArraySize := 0;
  42.     for  i:=1 to ext_ArraySize do
  43.         for j:=1 to ext_ArraySize do          
  44.             if i <= ext_ArraySize-j then
  45.             begin
  46.                 inc(ext_outputArraySize);
  47.                 ext_output[ext_outputArraySize] := ext_array[i,j];
  48.             end;
  49. end;
  50.  
  51. procedure getArithmeticalMeanOfNegativeElementsOfArray(var ext_output: real; ext_array: arrayOneRow; ext_arraySize:integer);
  52. var i,counter:integer;
  53. var sum:real;
  54. begin
  55.     ext_output:=0;
  56.     sum:=0;
  57.     counter:=0;
  58.     for  i:=1 to ext_ArraySize do      
  59.         if ext_array[i]<0 then
  60.         begin
  61.             inc(counter);
  62.             sum := sum+ext_array[i];       
  63.         end;
  64.     if counter>0 then
  65.         ext_output:=sum/counter;
  66. end;
  67.  
  68. var matrixOneSize, matrixTwoSize, randomInterval, lenghtOfArrayOnesElements, lenghtOfArrayTwosElements, repeatCount, highestInFirst, highestInSecond :integer;
  69. var negativeNumbersAllowed, itemFound :boolean;
  70. var arrayOne, arrayTwo: arrayType;
  71. var elementsOfFirstArrayThatHigherThanIncidentionalDiagonal, elementsOfSecondArrayThatHigherThanIncidentionalDiagonal: arrayOneRow;
  72. var arithmeticalMean:real;
  73. begin
  74.     Randomize;
  75.     inputSomething(matrixOneSize, 'set matrix one size M1s= ');
  76.     inputSomething(matrixTwoSize, 'set matrix two size M2s= ');  
  77.     inputSomething(randomInterval, 'set randomInterval rINT= ');  
  78.    
  79.     prepareArray(arrayOne, matrixOneSize, randomInterval);
  80.     writeln('first array');
  81.     outputMatrix(arrayOne, matrixOneSize); 
  82.     getShitHigherThanIncidentalDiagonal(elementsOfFirstArrayThatHigherThanIncidentionalDiagonal,
  83.         lenghtOfArrayOnesElements, arrayOne, matrixOneSize);    
  84.     write('arithmetical mean of negative elements of array that located higher than incidental diagonal is ');
  85.     getArithmeticalMeanOfNegativeElementsOfArray(arithmeticalMean,
  86.         elementsOfFirstArrayThatHigherThanIncidentionalDiagonal,lenghtOfArrayOnesElements);
  87.     writeln(arithmeticalMean:2:2);
  88.    
  89.     prepareArray(arrayTwo, matrixTwoSize, randomInterval);
  90.     writeln('second array');
  91.     outputMatrix(arrayTwo, matrixTwoSize);
  92.     getShitHigherThanIncidentalDiagonal(elementsOfSecondArrayThatHigherThanIncidentionalDiagonal,
  93.         lenghtOfArrayTwosElements, arrayTwo, matrixTwoSize);  
  94.     write('arithmetical mean of negative elements of array that located higher than incidental diagonal is ');
  95.     getArithmeticalMeanOfNegativeElementsOfArray(arithmeticalMean,
  96.         elementsOfSecondArrayThatHigherThanIncidentionalDiagonal,lenghtOfArrayTwosElements);
  97.     writeln(arithmeticalMean:2:2);
  98. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement