Serwis Edukacyjny w I-LO w Tarnowie 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 |
ProblemNależy wygenerować n kolejnych wyrazów ciągu arytmetycznego. |
Wzór na i-ty wyraz ciągu arytmetycznego jest następujący:
ai = a1+(i-1)×d
K01: Dla i = 1, 2, …, n: wykonuj krok K02 K02: Pisz a = (i-1)×d K03: Zakończ
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. |
// 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 |
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ń.
K01: Dla i = 1, 2, …, n: wykonuj kroki K02…K03 K02: Pisz a ; wypisujemy bieżący wyraz K03: a ← a+d ; wyliczamy wyraz następny K04: Zakończ
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. |
// 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 |
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:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.