handdator

Visa fullständig version : Programmera i matlab, problem med tentaplugg


Erik__
2009-12-14, 16:24
Goddag kolo

Jag ska ha programmeringstenta i matlab på onsdag, jag läser på gamla uppgifter och skulle behöva hjälp med några saker.

Kursen är väldigt grundläggande gällande programmering. Vi förväntas kunna loopar, rekursion och dylika saker.

Men jag har några problem med funktionen fprintf()
Om jag skulle vilja skriva ut en tegelvägg t.ex.
________________________
|____|____|____|____|____|
|__|____|____|____|____|__|

Där antal klossar ska vara ett variabelvärde som användaren matar vi, hur skriver man det då med fprintf()?
Det är ingen läxa eller liknande utan sådant som kan tänkas dyka upp på tentan.

stafh
2009-12-14, 16:32
Börja varje rad med |, skriv ut x antal __| på jämna rader och y antal __| på udda. Sluta iterera när ni skrivit ut rätt mängd tegelstenar.

Baan
2009-12-14, 16:34
Utan att ha använt matlab mer än typ en timme totalt (lol) låter du användaren mata in antalet klossar sen en enkel for-loop, ungefär. Sen får du använda rätt metod/funktion, att radbrytningen kommer rätt etc.

Olegh
2009-12-14, 17:14
Lösningsförslag följer. Kanske skulle gå att minimera koden med något slags smart bruk av switch.



SPOILER










y=5; %bredd
x=3; %höjd

for i=1:y
if i==y
fprintf('_____\n');
else
fprintf('_____');
end
end

for i=1:x
if rem(i,2)==0
fprintf('|__');
for h=1:y-1
fprintf('|____');
end
fprintf('|__|\n');
else
for h=1:y
if h==y
fprintf('|____|\n');
else
fprintf('|____');
end
end
end
end

stridis
2009-12-14, 17:17
Utan att ha använt matlab mer än typ en timme totalt (lol)

Alldeles för många timmar har jag wasteat med matlab till vilken nytta? Får fan ångest av tråden, även om problemet inte var speciellt svårt.

Erik__
2009-12-14, 17:53
Det här med fprintf

vad innebär det här?
fprintf('_____\n')

\n alstå

stafh
2009-12-14, 17:55
Det här med fprintf

vad innebär det här?
fprintf('_____\n')

\n alstå

Radbrytning.

Olegh
2009-12-14, 17:55
Radbrytning :) Sovit på föreläsningarna?