Strona 1 z 1
[Matlab] Ciąg arytmetyczny
: 5 sty 2021, o 09:37
autor: zahhakpro
Proszę o pomoc z zadaniem:
Napisz skrypt obliczający
\(\displaystyle{ n}\) wyrazów ciągu arytmetycznego
\(\displaystyle{ a_n=2+5(n-1)}\). Parametr n definiuje użytkownik. Musi on być liczbą naturalną- w przeciwnym razie skrypt musi ponawiać komunikat o podanie prawidłowego parametru
\(\displaystyle{ n}\).
Co jest źle?
Kod: Zaznacz cały
n=input('Podaj wartosc n');
while n~=round(n)
disp('Podaj wlasciwy parametr n')
for i=1:n
a(i)=2+5*(n-1)
end
end
Re: matlab ciąg arytmetyczny
: 5 sty 2021, o 10:00
autor: piotrjawor
Tutaj:
a(i)=2+5*(n-1)
przypadkiem nie zamieniono n z i po prawej stronie znaku przypisania?
Re: matlab ciąg arytmetyczny
: 5 sty 2021, o 11:24
autor: Janusz Tracz
W Twoim kodzie obliczane są wszystkie wyrazy ciągu o indeksach
\(\displaystyle{ 1,...,n}\). To nie jest konieczne istotny jest tylko
\(\displaystyle{ n}\)-ty wyraz. Ja bym to napisał tak:
Kod: Zaznacz cały
n=input('Podaj wartosc n');
while n~=floor(n)
display( 'Niepoprawna wartosc n' )
n=input('Podaj wartosc n')
end
if n==floor(n)
display( 2+5*(n-1) )
end
jeśli parametr
\(\displaystyle{ n}\) miałby być wprowadzany z klawiatury. Bo jeśli ma być w programie to wystarczy:
A jeśli chcesz wektor z wyrazami tego ciągu do
\(\displaystyle{ n}\)-tego wyrazy to można zapisać:
Re: matlab ciąg arytmetyczny
: 5 sty 2021, o 12:19
autor: a4karo
Janusz Tracz pisze: 5 sty 2021, o 11:24
W Twoim kodzie obliczane są wszystkie wyrazy ciągu o indeksach
\(\displaystyle{ 1,...,n}\). To nie jest konieczne istotny jest tylko
\(\displaystyle{ n}\)-ty wyraz. Ja bym to napisał tak:
I źle byś napisał, bo zadanie brzmi
zahhakpro pisze: 5 sty 2021, o 09:37
Proszę o pomoc z zadaniem:
Napisz skrypt obliczający
\(\displaystyle{ n}\) wyrazów
Re: matlab ciąg arytmetyczny
: 5 sty 2021, o 14:55
autor: Janusz Tracz
Racja źle przeczytałem. Ale łatwo to naprawić. W sumie to pokazałem też jak łatwo policzyć łatwo bez pętli \(\displaystyle{ n}\) pierwszych wyrazów [2:5:2+5*(n-1)]. Gdyby display(2+5*(n-1)) zamienić na display([2:5:2+5*(n-1)])to mamy to co trzeba.