Advertisement
Guest User

Untitled

a guest
Oct 17th, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.10 KB | None | 0 0
  1. // Learn more about F# at http://fsharp.org
  2. // See the 'F# Tutorial' project for more help.
  3.  
  4. let multiplyI (a:int[,]) (b:int[,]) =
  5. // în numele funcției, I vine de la „imperativ”
  6. // a:int[,] este o adnotare de tip (engl. “type annotation”),
  7. // adică se specifică explicit tipului parametrilor, în acest caz pentru a putea folosi metoda GetLength
  8. let n = a.GetLength(0) // numărul de linii al matricei a
  9. let m = a.GetLength(1) // numărul de coloane al matricei a
  10. let p = b.GetLength(0)// numărul de linii al matricei b
  11. let q = b.GetLength(1)// numărul de coloane al matricei b
  12. if (n <> q) then
  13. Array2D.zeroCreate 1 1
  14. else
  15. let mutable c = Array2D.init n q (fun x y -> 0) // se inițializează matricea rezultat cu funcția Array2D.init
  16. for i = 0 to n-1 do
  17. for j = 0 to q-1 do
  18. for k = 0 to m-1 do
  19. c.[i,j] <- c.[i,j] + (a.[i,k] * b.[k,j])
  20. c
  21. // se returnează rezultatul
  22.  
  23.  
  24. [<EntryPoint>]
  25. let main argv =
  26. printfn "%A" argv
  27. 0 // return an integer exit code
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement