Kolozzeum Forum - Sveriges största träningsforum
Gå tillbaka   Kolozzeum Forum - Sveriges största träningsforum > Träning > Allmänt Forum

Svara
 
Ämnesverktyg Visningsalternativ
Gammal 2009-12-14, 16:24   #1
Erik__
hehe lol
 
Reg.datum: Nov 2004
Inlägg: 3 930
Programmera i matlab, problem med tentaplugg

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.
Erik__ är inte uppkopplad   Svara med citat
Gammal 2009-12-14, 16:32   #2
stafh
Registred User
 
stafhs avatar
 
Reg.datum: May 2005
Inlägg: 1 081
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.
__________________
The young are simply too dumb to live, the old are weak and unclean
The ones in the middle, they also must die - their ways are obtuse and obscene
stafh är inte uppkopplad   Svara med citat
Gammal 2009-12-14, 16:34   #3
Baan
Registered User
 
Baans avatar
 
Reg.datum: Apr 2004
Ort: Göteborg
Inlägg: 12 325
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.
__________________
träning

@Twitter
Baan är inte uppkopplad   Svara med citat
Gammal 2009-12-14, 17:14   #4
Olegh
mjau
 
Oleghs avatar
 
Reg.datum: Feb 2009
Inlägg: 445
Lösningsförslag följer. Kanske skulle gå att minimera koden med något slags smart bruk av switch.



SPOILER










Kod:
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
Olegh är inte uppkopplad   Svara med citat
Gammal 2009-12-14, 17:17   #5
stridis
stridis- avatartextmästare
 
stridiss avatar
 
Reg.datum: Jan 2003
Ort: lindome
Inlägg: 6 597
Citat:
Ursprungligen postat av Baan Visa inlägg
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.
__________________
Stridis invictus.

I won't just gaze into the abyss, I'll maintain uncomfortable eye contact with it.
stridis är uppkopplad nu   Svara med citat
Gammal 2009-12-14, 17:53   #6
Erik__
hehe lol
 
Reg.datum: Nov 2004
Inlägg: 3 930
Det här med fprintf

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

\n alstå
Erik__ är inte uppkopplad   Svara med citat
Gammal 2009-12-14, 17:55   #7
stafh
Registred User
 
stafhs avatar
 
Reg.datum: May 2005
Inlägg: 1 081
Citat:
Ursprungligen postat av Erik__ Visa inlägg
Det här med fprintf

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

\n alstå
Radbrytning.
__________________
The young are simply too dumb to live, the old are weak and unclean
The ones in the middle, they also must die - their ways are obtuse and obscene
stafh är inte uppkopplad   Svara med citat
Gammal 2009-12-14, 17:55   #8
Olegh
mjau
 
Oleghs avatar
 
Reg.datum: Feb 2009
Inlägg: 445
Radbrytning Sovit på föreläsningarna?
Olegh är inte uppkopplad   Svara med citat


Svara


Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +1. Klockan är nu 08:26.


Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
Copyright 2015, Kolozzeum (TM)