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

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

Zadaci

Zadatak 1

Napisati program na simboličkom mašinskom jeziku za picoComputer koji vrši određenu obradu nad nizom celih brojeva. Program treba najpre da učita dužinu niza N (2 < N ≤ 100), a zatim i same elemente niza. Potom program treba da dati niz izdeli na K sukcesivnih podnizova jednake dužine i ispiše podniz sa najvećim proizvodom elemenata. Broj K se učitava sa standardnog ulaza. Podrazumevati da je N deljivo sa K. Računanje proizvoda elemenata podniza realizovati kao zaseban potprogram.

		n=1
		adrA=2
		a=100
		i=3
		k=4
		s=5
		max=6
		j=7
		minint=-32768
		ORG 8 ; TODO: Adjust to make room for static data.
		
		in n
		mov i, 2
		bgt i,n, kraj
		mov i,100
		bgt n, i, kraj
		
		mov adrA,#a
		in (adrA),n
		in k
		
		mov max,#minint
		petlja: jsr pp
		bgt max,s,skok
		mov max,s
		div i, n, k
		sub i, adrA,i 
		sub j,j,1
		skok: bgt j,0,petlja
		mov j,i
		div i,n,k
		out (j), i
		kraj: stop
		
		pp: mov s,1
		div i, n,k
		ponovo: mul s, (adrA),1
		add adrA,adrA,1
		sub i,i,1
		bgt i,0,ponovo
		rts