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:

Kod: Zaznacz cały

n=27;
2+5*(n-1)
A jeśli chcesz wektor z wyrazami tego ciągu do \(\displaystyle{ n}\)-tego wyrazy to można zapisać:

Kod: Zaznacz cały

n=6;
[2:5:2+5*(n-1)]

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.