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

©2020 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:

a i  = a 1 + ( i  - 1 ) × d

a
1 – 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, a 1  ∈ R.
d  – przyrost, d  ∈ R.

Wyjście:

Kolejne wyrazy ciągu a 1  a 2 ... a n

Zmienne pomocnicze:

i  – przebiega przez kolejne indeksy w przedziale [ 1, n  ],   iN.

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 kolejno trzy liczby: n, a 1 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
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 a i, 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, nN.
a  – pierwszy wyraz ciągu, a 1   ∈ C.
d  – przyrost, dC.

Wyjście:

Kolejne wyrazy ciągu a 1 a 2 ... a n

Zmienne pomocnicze:

i  – przebiega przez kolejne indeksy w przedziale [1, n],   i ∈ N.

Lista kroków:

K01: Dla i  = 1, 2, ..., n:
wykonuj kroki
K02 i K03
 
K02:     Pisz a wypisujemy bieżący wyraz  
K03:     a  ← a  + 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 kolejno trzy liczby: n, a 1 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
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
©2020 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.