Ред на Фибоначи написан на Lisp

Реда на Фибоначи написан на Лисп

(define (fib n)
	(cond ((= n 0) 0)
              ((= n 1) 1)
              (else (+ (fib (- n 1))
                       (fib (- n 2))))))
;izpolzvane
(fib 6)
;otgovor 8

Няма коментари

Факториел в Lisp

Факториел от число на езика Лисп

(define (fact n)
  (define (fact_iter p i)
    (if (> i n) p
        (fact_iter (* p i) (+ i 1))))
    (fact_iter 1 1))
;izpolzvane
(fact 5)
;vryshta  120

Няма коментари

Функции с координати в Лисп


Функция за проверка дали една точка с координати (X Y) е в един кръг с център (0,0) и радиус b, и извън кръг с център (0,0) и радиус a.
Първият начин е директно с една дефиниция:

(define (isIn? x y a b)
  (and (<= (+ (* x x) (* y y)) (* b b))
       (> (+ (* x x) (* y y)) (* a a))))

Другия начин е с дефиниране дали една точка е в кръг и след това дефиниране на главната функция:

(define (inCircle? x y z)
  (<= (+ (* x x) (* y y)) (* z z)))

(define (isIn? x y a b)
  (and (inCircle? x y b)
       (not (inCircle? x y a))))

Няма коментари

Основни функции в Лисп

За естествени числа:
функции за проверка на число дали е четно, нечетно, позитивно.
Функции за модул на число, факториел, сума от 1 до n и ред на Фибуначи.

(define (odd? x)
  (= (modulo x 2) 0))
(define (even? x)
  (= (modulo x 2) 1))
(define (positive? x)
  (> x 0))
(define (abs x)
  (cond
    ((> x 0) x)
    ((= x 0) 0)
    ((< x 0) (- 0 x))))
(define (fact n)
  (cond
    ((= n 0) 1)
    (else (* n (fact (- n 1))))))
(define (sum x)
  (if
   ((= x 1) 1)
   (+ x (sum (- n 1)))))
(define (fib n)
  (cond
    ((= n 1) 1)
    ((= n 2) 1)
    (else (+ (fib (- n 1)) (fib (- n 2))))))

Функция за число на степен

(define (pow a n)
  (if (even? n)
      (if (= n 0) 1
          (* (pow a (/ n 2))
             (pow a (/ n 2))))
      (if (= n 1) a
          (* (pow a (- n 1))
             a))))
(pow 2 5)

Няма коментари

Android custom loader – за зареждане

Статична снимка за зареждане в Андроид (Loader).

Можете да скривате и показвате когато си поискате зареждането. Това става чрез функциите startLoading() и stopLoading().

<RelativeLayout xmlns:tools="http://schemas.android.com/tools"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <RelativeLayout
        android:id="@+id/loaderLayout"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:background="@color/menuBackground"
        android:clickable="true"
        android:visibility="gone" >

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:contentDescription="@string/loading"
            android:src="@drawable/loader" />

    </RelativeLayout>

</RelativeLayout>
	ImageView loaderImageView;
	View loaderLayout;
	RotateAnimation animation;
	
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		loaderImageView = (ImageView) findViewById(R.id.imageView1);
		loaderImageView.setDrawingCacheEnabled(true);
		loaderImageView.setDrawingCacheQuality(loaderImageView.DRAWING_CACHE_QUALITY_HIGH);
    	animation = new RotateAnimation(0f, 355f,Animation.RELATIVE_TO_SELF, 0.5f,Animation.RELATIVE_TO_SELF, 0.5f);
    	animation .setInterpolator(new LinearInterpolator());
        animation .setRepeatCount(Animation.INFINITE);
        animation .setDuration(2000); 
		loaderLayout = findViewById(R.id.loaderLayout);
		
		startLoading();
		DoSomething();
		stopLoading();
	}
	
    protected void startLoading() {
    	loaderLayout.setVisibility(View.VISIBLE);
        loaderImageView.startAnimation(animation);
    }
 
    protected void stoptLoading() {
    	loaderLayout.setVisibility(View.GONE);
        // Later.. stop the animation
        loaderImageView.setAnimation(null);
    }
    protected void doSomething() {
        //TODO something
    };

Няма коментари

  • Страница 5 от 9
  • <
  • 1
  • ...
  • 3
  • 4
  • 5
  • 6
  • ...
  • 9
  • >