[Matlab] Ciąg arytmetyczny

zahhakpro
Użytkownik
Użytkownik
Posty: 1
Rejestracja: 5 sty 2021, o 09:29
Płeć: Kobieta
wiek: 19

[Matlab] Ciąg arytmetyczny

Post 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
Ostatnio zmieniony 5 sty 2021, o 11:56 przez Jan Kraszewski, łącznie zmieniany 1 raz.
piotrjawor
Użytkownik
Użytkownik
Posty: 5
Rejestracja: 30 cze 2015, o 21:36
Płeć: Mężczyzna
Lokalizacja: mazowieckie
Pomógł: 3 razy

Re: matlab ciąg arytmetyczny

Post autor: piotrjawor »

Tutaj:
a(i)=2+5*(n-1)
przypadkiem nie zamieniono n z i po prawej stronie znaku przypisania?
Awatar użytkownika
Janusz Tracz
Użytkownik
Użytkownik
Posty: 4054
Rejestracja: 13 sie 2016, o 15:01
Płeć: Mężczyzna
Lokalizacja: hrubielowo
Podziękował: 79 razy
Pomógł: 1389 razy

Re: matlab ciąg arytmetyczny

Post 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)]
a4karo
Użytkownik
Użytkownik
Posty: 22153
Rejestracja: 15 maja 2011, o 20:55
Płeć: Mężczyzna
Lokalizacja: Bydgoszcz
Podziękował: 38 razy
Pomógł: 3748 razy

Re: matlab ciąg arytmetyczny

Post 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
Ostatnio zmieniony 5 sty 2021, o 12:47 przez Jan Kraszewski, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
Awatar użytkownika
Janusz Tracz
Użytkownik
Użytkownik
Posty: 4054
Rejestracja: 13 sie 2016, o 15:01
Płeć: Mężczyzna
Lokalizacja: hrubielowo
Podziękował: 79 razy
Pomógł: 1389 razy

Re: matlab ciąg arytmetyczny

Post 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.
ODPOWIEDZ