Програмирање 1/К1 2017

Извор: SI Wiki
< Програмирање 1
Датум измене: 31. јул 2020. у 12:10; аутор: Ivan Pešić (разговор | доприноси) (Dodato resenje zadatka)
(разл) ← Старија измена | Тренутна верзија (разл) | Новија измена → (разл)
Пређи на навигацију Пређи на претрагу

Zadaci

Zadatak 1

Napisati program na simboličkom mašinskom jeziku za picoComputer koji određuje da li je razlika celobrojnog dela aritmetičke sredine prvih K elemenata niza dužine N (gde je 1<N≤100) i celobrojnog dela aritmetičke sredine preostalih N-K elemenata niza deljiva brojem K. Ukoliko jeste, treba ispisati 1, ukoliko nije, treba ispisati 0. Program najpre učitava brojeve K i N, a zatim i elemente niza. Prepostaviti da je 0<K<N. Računanje aritmetičke sredine obaviti u posebnom potprogramu.

		a=100
		adrA=1
		n=2
		k=3
		i=4
		brElem=5
		s=6
		as1=7
		as2=0
		ORG 8 ; TODO: Adjust to make room for static data.
		
		in n
		mov i, 100
		bgt n,i,kraj
		mov i,2
		bgt i,n,kraj
		mov adrA,#a
		in (adrA),n
		in k
		mov brElem,k
		jsr as
		mov as1,s
		sub brElem,n,k
		jsr as
		mov as2,s
		sub n, as1,as2
		div as1, n,k
		mul as1,as1,k
		
		
		bgt n,as1,skok
		mov n,1
		beq n,n,kraj
		
		skok: mov n,0
		
		
		kraj: stop n



		as: mov s,0
		mov i,brelem
		petlja:	add s,s,(adrA)
		add adrA,adra,1
		sub i,i,1
		bgt i,0, petlja
		div s,S,brElem
		rts