Øving:

Auditorieøving2_MATLAB.pdf

Oppgave 1 - Flervalgsoppgaver

Hva er 5310 i det hexadesimale tallsystemet?

Svar: 3516


Hvilken av følgende påstander er korrekte?

Svar: En IP-adresse identifiserer ikke en spesifikk datamaskin, men en forbindelse mellom en datamaskin og et nettverk. En ruter har en IP-adresse for hver nettverks-forbindelse.


Hva er sant om PandA?

Svar: PandA sier om et fenomen er tilstede eller ikke på et bestemt sted og tid


Hva er de tre vanligste overføringsfeilene mtp. dataoverføringer?

Svar: Interference (forstyrrelse), distortion (forvrenging), attenuation (svekking)


Ved linjesvitsjing...

Svar: ...opprettes et kommunikasjonssignal mellom en sender og en mottaker når det er nødvendig, og forsvinner etter bruk. Denne veien kommer ikke i kontakt med andre signaler (isolert vei).


Hva gjør nettverkslaget (IP-layer)?

Svar: Spesifiserer formatet på pakkene som sendes over nettet, og mekanismene for å sende pakker fra én datamaskin via rutere, til en annen.



Oppgave 2 - Dra&Slipp

 

 

function all_about_me(name, age, study)
	fprintf("My name is %s",name)
	fprintf("\n")
	fprintf("I am %s years old,",age)
	fprintf(" and I study %s",study)
end
 


 

Oppgave 3 - Kodeforståelse

a)

x = 3
y = 2
Funksjonen returnerer hvor mange ganger b går opp i a og resten av
divisjon av a på b.


b)

m = JULENISSEN
Funksjonen returnerer en streng med annenhver bokstav hentet fra
de to inputstrengene, med første bokstav hentet fra andre inputstreng (y).

 

c)

 

ans = 6
f regner ut den rekursive tverrsummen (av tverrsummen, av ...tallet), helt til det er bare et siffer igjen.

 


d)

101011001
Konverterer heltall til binærrepresentasjon

 

Oppgave 4

function  wordsWithPrefix = checkPrefix(words , prefix)
	wordsWithPrefix = {};
	i = 1;
	for word = words
    	if startsWith(word, prefix)
        	cellArray = {cellArray, word};
    	end
	end
end

 

Oppgave 5

function  isMatch = match(observed , actual)
	isMatch = true;
	for  pos = 1: length(observed)
		if (observed(pos) ~= '?' &&  observed(pos) ~=  actual(pos))
			isMatch = false;
		end
	end
end

 

Oppgave 6

a)

function  date = dateStruct( day , month , year )
	date = struct('day', day , 'month', month , 'year', year);
end


b)

function  movie = movieStruct(name , director , premiereDate)
	movie = struct('name', name , 'director ', director , 'premiereDate ', premiereDate ');
end


c)

function  validMovies = getMovieStructs(movies , fromYear , toYear)
	validMovies = [];
	for  movie = movies
		if movie.premiereDate.year > fromYear  && movie.premiereDate.year < toYear
			validMovies = [validMovies  movie];
		end
	end
end


 

Oppgave 7

function [avgPuls , minPuls , maxPuls] = pulsStatistikk(pulsData)
minPuls = inf;
maxPuls = -inf;
sumPuls = 0;
antall = 0;
for  puls = pulsData
	antall = antall + 1;
	if puls < minPuls
		minPuls = puls;
	end
	if puls > maxPuls
		maxPuls = puls;
	end
	sumPuls = sumPuls + puls;
end
avgPuls = sumPuls/antall;
end

Oppgave Quiz

 a)

function result = beginsWith(capitals, letter)
	result = {};
	for city = capitals
		if city{1}(1)==letter
			result(end+1) = city;
		end
	end
end

b)

function letter = randomLatinLetter(upper)
	if upper
		asciiValue = randi([65 90]);
	else
		asciiValue = randi([97 122]);
	end
	letter = char(asciiValue);
end

 

c)

function [questions, solutions] = letterQuestion(capitals)
	nSolutions = 0;
	while nSolutions == 0
		letter = randomLatinLetter(true);
		solutions = beginsWith(capitals, letter);
		nSolutions = length(solutions);
	end
	questions = sprintf('Capital starting with %s ?', letter);
end

d) 

function result = nLetters(city)
	result = length(city);
	for i = city
		if city(i) == ' '
			result = result  -1;
		end
	end
end

e)

 

 

 

function withLength = hasLength(capitals, length)
    withLength = {};
    for city = capitals
        if nLetters(city{1}) == length
            withLength(end+1) = city;
        end
    end
end

 

f)

 

 function [que, sol] = lengthQuestion(capitals)
    okLengths = [];
    for city = capitals 
        len = nLetters(city{1});
        if sum(len == okLengths) == 0
            okLengths(end + 1) = len;
        end
    end 
    randomLength = okLengths(randi(length(okLengths)));    
    que = sprintf("Capital with %i letters? ", randomLength);
    sol = hasLength(capitals, randomLength);
end

 

g)

 

function [que, sol] = randomQuestion(capitals)
	qType = randi([0,1]);                          
	if qType == 0                                 
    	[que, sol] = letterQuestion(capitals);      
	else
    	[que, sol] = lengthQuestion(capitals);      
	end
end

 

 

 

h)

function playQuiz(capitals):
keepOn = True
points = 0
while keepOn
    [quest, sol] = randomQuestion(capitals)
    city = input(quest, 's')
    if strcmp(city, 'q'):
       keepOn = False
    elseif ismember(city, sol):
        disp('Correct!')
        points = points + 1;
    else
       disp('Sorry, that was wrong!')
	end
end
end

i)

function main()
disp('CAPITALS QUIZ')
disp('Answer questions to score points.')
disp('To quit, answer q')
points = playQuiz(allCapitals)
if points == 1
    text = '1 point.\n'
else
    text = sprintf('%i points.\n', points)
end
fprintf('Congrats! You scored %s', text)
end



Oppgave Pythagoras
function triplets = pythagoreanTriplets(n)
triplets = [];
a = 2;
while true
   [rows, ~] = size(triplets);
   if rows >= n
      return 
   end
   a = a + 1;
   % Ingen vits å lete over denne
   maxSearch = a^2;
   for b = a : maxSearch
      c = sqrt(a^2 + b^2);
      if mod(c, 1) == 0
         triplets = [triplets; a, b, c]; 
      end
   end
end
end







  • No labels