Програмирање 1/К1 2018 — разлика између измена

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
(Dodato resenje zadatka)
 
(ispravka)
 
Ред 1: Ред 1:
==Zadaci==
==Zadaci==
===Zadatak 1===
===Zadatak 1===
)Napisati program na simboličkom mašinskom jeziku za picoComputer koji na osnovu niza celih
Napisati program na simboličkom mašinskom jeziku za picoComputer koji na osnovu niza celih
brojeva dužine N (gde je 1<N≤100) formira novi niz čiji će svaki element sadržati najveći delilac bez
brojeva dužine N (gde je 1<N≤100) formira novi niz čiji će svaki element sadržati najveći delilac bez
ostatka odgovarajućeg elementa polaznog niza, ne računajući sam taj element. Program najpre
ostatka odgovarajućeg elementa polaznog niza, ne računajući sam taj element. Program najpre

Тренутна верзија на датум 31. јул 2020. у 13:19

Zadaci

Zadatak 1

Napisati program na simboličkom mašinskom jeziku za picoComputer koji na osnovu niza celih brojeva dužine N (gde je 1<N≤100) formira novi niz čiji će svaki element sadržati najveći delilac bez ostatka odgovarajućeg elementa polaznog niza, ne računajući sam taj element. Program najpre učitava broj N, a zatim i elemente niza. Ukoliko se za dužinu niza unese nekorektna vrednost, program treba da završi svoje izvršavanje. Nakon unosa program vrši zahtevanu obradu i ispisuje novoformirani niz. Određivanje najvećeg delioca zadatog broja realizovati kao zaseban potprogram.

		n=1
		i=2
		adrA=3
		adrB=6
		a=100
		b=200
		pom=4
		nzd=5
		del=7
		ORG 8 ; TODO: Adjust to make room for static data.
		
		; Program entry point
		in n
		mov i, 100
		bgt 0, n, kraj
		bgt n,i, kraj
		mov adrA,#a
		mov adrB,#b
		in (adrA), n
		mov i,n
		
		petlja:jsr najmanjiZajDel
		mov (adrB),nzd
		add adrB,adrB,1
		add adrA,adrA,1
		sub i,i,1
		bgt i,0, petlja
		mov adrB,#b
		out (adrB),n
		kraj: stop
		
		najmanjiZajDel: mov del, 1
		mov nzd,1
		ponovi: div pom, (adrA), del
		mul pom,pom,del
		bgt (adrA),pom, nije
		
		mov nzd,del
		nije: add del,del,1
		bgt (adrA),del,ponovi
		rts