Serwis Edukacyjny
w I-LO w Tarnowie
obrazek

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz       Dalej  

Autor artykułu: mgr Jerzy Wałaszek

©2024 mgr Jerzy Wałaszek
I LO w Tarnowie

Ciągi arytmetyczne

SPIS TREŚCI
Podrozdziały

Problem

Należy wygenerować n kolejnych wyrazów ciągu arytmetycznego.

Rozwiązanie 1

Wzór na i-ty wyraz ciągu arytmetycznego jest następujący:

ai = a1+(i-1)×d
a1 : pierwszy wyraz ciągu
d : stały przyrost
i : numer wyrazu do wygenerowania

Algorytm wyznaczania n kolejnych wyrazów ciągu arytmetycznego

Wejście:

n : liczba wyrazów ciągu do wygenerowania; n ∈ N.
a
 : pierwszy wyraz ciągu; a1 ∈ R.
d
 : przyrost; d ∈ R.

Wyjście:

Kolejne wyrazy ciągu a1a2 … an.

Elementy pomocnicze:

i : przebiega przez kolejne indeksy w przedziale <1, n>; i ∈ N.

Lista kroków:

K01: Dla i = 1,2,…,n:
     wykonuj krok K02
K02: Pisz a = (i-1)×d
K03: Zakończ

Przykładowe programy

 Uwaga:

Zanim uruchomisz program, przeczytaj wstęp do tego artykułu, w którym wyjaśniamy funkcje tych programów oraz sposób korzystania z nich.

Program odczytuje z jednego wiersza kolejno trzy liczby: n, a1 oraz d. Następnie wyświetla n kolejnych wyrazów ciągu arytmetycznego.
Pascal
// Ciąg arytmetyczny
// Data   : 6.02.2011
// (C)2020 mgr Jerzy Wałaszek
//----------------------------

program prg;

var n,i : integer;
    a,d : double;

begin
  readln(n,a,d);

  for i := 1 to n do
    write(a+(i-1)*d:9:3,' ');

  writeln;
end.
C++
// Ciąg arytmetyczny
// Data   : 6.02.2011
// (C)2020 mgr Jerzy Wałaszek
//----------------------------

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
  int n,i;
  double a,d;

  cout << fixed
       << setprecision(3);

  cin >> n >> a >> d;

  for(i = 1; i <= n; i++)
    cout << setw(9)
         << a+(i-1)*d
         << " ";
 
  cout << endl;

  return 0;
}
Basic
' Ciąg arytmetyczny
' Data   : 6.02.2011
' (C)2020 mgr Jerzy Wałaszek
'----------------------------

Dim As Integer n,i
Dim As Double a,d

Input n,a,d

For i = 1 To n
  Print Using " #####.###";a+(i-1)*d;
Next
Print
End
Python (dodatek)
# Ciąg arytmetyczny
# Data   : 03.02.2024
# (C)2024 mgr Jerzy Wałaszek
# ----------------------------

arr = input().split(" ")
n = int(arr[0])
a = float(arr[1])
d = float(arr[2])

for i in range(n):
    print("%9.3f" % (a+i*d),end=" ")
print()
Wynik:
32 1 0.57
   1.000     1.570     2.140     2.710     3.280     3.850     4.420     4.990
   5.560     6.130     6.700     7.270     7.840     8.410     8.980     9.550
  10.120    10.690    11.260    11.830    12.400    12.970    13.540    14.110
  14.680    15.250    15.820    16.390    16.960    17.530    18.100    18.670

Na początek:  podrozdziału   strony 

Rozwiązanie dla ciągu arytmetycznego o wyrazach całkowitych.

Jeśli generowany ciąg arytmetyczny ma wyrazy całkowite, to kolejne wyrazy możemy tworzyć rekurencyjnie, tzn. mając wyraz ai, następny otrzymujemy dodając do poprzedniego przyrost d. Korzyścią jest pozbycie się operacji mnożenia, zatem wyrazy będą generowane nieco szybciej. Metoda ta nie nadaje się dla ciągów rzeczywistych, ponieważ w wyniku dodawania mogą kumulować się błędy zaokrągleń.

Algorytm wyznaczania n kolejnych wyrazów całkowitego ciągu arytmetycznego

Wejście:

n : liczba wyrazów ciągu do wygenerowania; n ∈ N.
a : pierwszy wyraz ciągu; a1 ∈ C.
d
 : przyrost; d ∈ N.

Wyjście:

Kolejne wyrazy ciągu a1 a2 … an.

Elementy pomocnicze:

i : przebiega przez kolejne indeksy w przedziale <1, n>; i ∈ N.

Lista kroków:

K01: Dla i = 1,2,…,n:
     wykonuj kroki K02K03
K02:   Pisz a  ; wypisujemy bieżący wyraz
K03:   aa+d ; wyliczamy wyraz następny
K04: Zakończ

Przykładowe programy

 Uwaga:

Zanim uruchomisz program, przeczytaj wstęp do tego artykułu, w którym wyjaśniamy funkcje tych programów oraz sposób korzystania z nich.

Program odczytuje z wiersza kolejno trzy liczby całkowite: n, a1 oraz d. Następnie wyświetla n kolejnych wyrazów ciągu arytmetycznego.
Pascal
// Całkowity ciąg arytmetyczny
// Data   : 6.02.2011
// (C)2020 mgr Jerzy Wałaszek
//----------------------------

program prg;

var n,i,a,d : integer;

begin
  readln(n,a,d);

  for i := 1 to n do
  begin
    write(a:7,' ');
    inc(a,d);
  end;

  writeln;
end.
C++
// Całkowity ciąg arytmetyczny
// Data   : 6.02.2011
// (C)2020 mgr Jerzy Wałaszek
//----------------------------

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
  int n,i,a,d;

  cin >> n >> a >> d;

  for(i = 1; i <= n; i++)
  {
    cout << setw(7) << a << " ";
    a += d;
  }

  cout << endl;

  return 0;
}
Basic
' Całkowity ciąg arytmetyczny
' Data   : 6.02.2011
' (C)2020 mgr Jerzy Wałaszek
'----------------------------

Dim As Integer n,i,a,d

Input n,a,d

For i = 1 To n
  Print Using " #######";a;
  a += d
Next
Print
End
Python (dodatek)
# Całkowity ciąg arytmetyczny
# Data   : 03.02.2024
# (C)2024 mgr Jerzy Wałaszek
# ----------------------------

arr = input().split(" ")
n = int(arr[0])
a = int(arr[1])
d = int(arr[2])

for i in range(n):
    print("%7d" % (a) end=" ")
    a += d
print()
Wynik:
20 2000 123
    2000    2123    2246    2369    2492    2615    2738    2861    2984    3107
    3230    3353    3476    3599    3722    3845    3968    4091    4214    4337

Na początek:  podrozdziału   strony 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2024 mgr Jerzy Wałaszek

Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone
pod warunkiem podania źródła oraz niepobierania za to pieniędzy.

Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl

Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.

Informacje dodatkowe.