Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемОксана Недоноскова
1 Сошников Дмитрий Валерьевич к.ф.-м.н., доцент Факультет инноваций и высоких технологий Московский физико-технический институт
2 2 Лекция 7 Пример: построение графика 2D-функции
3 ©2008 Сошников Д.В. 3 plot (-4.0,4.0) (-1.0,1.0) sin;; Масштабирование: (* from int to float range *) let scale (a:float,b:float) (i,j) x = float(x-i)/float(j-i)*(b-a)+a;; (* from float range to int *) let uscale (i,j) (a:float,b:float) (f:float) = int((f-a)/(b-a)*float(j-i))+i;;
4 ©2008 Сошников Д.В. 4 #light open System; let xrange = (0,50);; let yrange = (0,15);; let plot xdim ydim f = for i=fst yrange to snd yrange do for j=fst xrange to snd xrange do let x = scale xdim xrange j let y = uscale yrange ydim (f x) Console.Write(if y=i then "*" else ".") Console.WriteLine("") ;; plot (-4.0,4.0) (-1.0,1.0) sin;;
5 ©2008 Сошников Д.В. 5 let plot1 xdim f = let ydim = fora (fst xrange) (snd yrange) (100.0,-100.0) (fun (xmin,xmax) i -> let x = scale xdim xrange i (min xmin (f x),max xmax (f x)) ) in for i=fst yrange to snd yrange do for j=fst xrange to snd xrange do let x = scale xdim xrange j let y = uscale yrange ydim (f x) // printf "i=%d, j=%d, x=%f, y=%f\n" i j x y Console.Write(if y=i then "*" else ".") Console.WriteLine("") ;; plot1 (-4.0,4.0) sin;;
6 ©2008 Сошников Д.В. 6 type out_device = int*(int*int -> unit);; let plotgen xdim f dev = let (n,dfun) = dev let ydim = fora 0 n (100.0,-100.0) (fun (xmin,xmax) i -> let x = scale xdim xrange i (min xmin (f x),max xmax (f x))) for i=0 to n-1 do for j=0 to n-1 do let x = scale xdim (0,n-1) j let y = uscale (0,n-1) ydim (f x) if y=i then dfun (j,y) ;;
7 ©2008 Сошников Д.В. 7 open System.Drawing;; let implot xdim f = let img = new Bitmap(400,400) plotgen xdim f (400, fun (x,y) -> img.SetPixel(x,y,Color.Black)) ;; implot (-4.0,4.0) sin;;
8 ©2008 Сошников Д.В. 8 Функциональное программирование – эффективный способ решения задач, характеризующийся отсуствием побочных эффектов, функциональной декомпозицией задачи и высоким уровнем функциональной абстракции Язык программирования F# сочетает в себе все достоинства функционального программирования с возможностями.NET Framework, что позволяет создавать весьма компактные решения достаточно нетривиальных задач F# по ощущениям (краткость конструкций, интерпретирующий режим) похож на динамический язык (python), но на самом деле это язык со строгой типизацией!
9 9
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.