|
Serwis Edukacyjny Nauczycieli I-LO w Tarnowie
Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej
Autor artykułu: mgr Jerzy Wałaszek |
©2026 mgr Jerzy Wałaszek
|
| SPIS TREŚCI |
| Podrozdziały |
Funkcja liniowa posiada następujący przepis:
|
|
Nazwa funkcji liniowej pochodzi stąd, iż jej wykres jest linią prostą.
Miejsce zerowe x0 funkcji liniowej obliczamy analitycznie:

Jeśli współczynnik a jest równy 0, to na wartość funkcji nie mają wpływu jej argumenty - mówimy wtedy, iż jest to funkcja stała. Jej wykresem będzie linia prosta równoległa do osi OX. Odległość tej prostej od osi OX jest równa współczynnikowi b. Jeśli współczynnik b jest również równy 0, to funkcja przyjmuje wartość 0 dla wszystkich swoich argumentów - rozwiązaniem jest cały zbiór liczb rzeczywistych, czyli brak jednoznacznego rozwiązania. Jeśli b jest różne od 0, to funkcja nie posiada miejsca zerowego. gdyż dla żadnego swojego argumentu nie przyjmuje wartości 0.
Jeśli współczynnik a jest różny od 0, miejsce zerowe wyznaczamy zgodnie z wyprowadzonym wzorem.
Ponieważ współczynnik a mógł być uzyskany na drodze wcześniejszych obliczeń numerycznych i może zawierać błędy zaokrągleń, to przy porównaniu z zerem musimy zastosować podane we wstępie zasady. Otóż zamiast zwykłego sprawdzania, czy:

zastosujemy test:

gdzie ε jest wybraną dokładnością przyrównania do 0.
Sądzę, iż
| a,b | – współczynniki, a,b ∈ R |
| x0 | – miejsce zerowe, x0 ∈ R |
| ε | – dokładność porównania z zerem, ε ∈ R, ε = 0.0000000001 |
| K01: | Czytaj a i b |
| K02: | Jeśli
| a | < ε, to idź do kroku K06 |
| K03: |
![]() |
| K04: | Pisz x0 |
| K05: | Zakończ |
| K06: | Pisz "Brak miejsca zerowego" |
| K07: | Zakończ |

Wykonanie algorytmu rozpoczynamy od odczytania współczynników a i b wchodzących w skład przepisu funkcji liniowej:

Następnie sprawdzamy, czy współczynnik a jest równy (dostatecznie bliski) zeru.
Jeśli nie, to wyznaczamy miejsce zerowe x0 i wypisujemy je kończąc algorytm.
Jeśli tak, to funkcja f(x) nie posiada jednoznacznego miejsca zerowego (dla b różnego od 0 miejsce takie nie istnieje). Wypisujemy odpowiedni tekst i kończymy algorytm.
W celu uruchomienia przykładów zastosuj projekt aplikacji konsoli (ang. Console Application).
C++// Program oblicza miejsce
// zerowe dla funkcji liniowej
// f(x) = ax + b
//----------------------------
// (C)2006 mgr Jerzy Wałaszek
// I Liceum Ogólnokształcące
// w Tarnowie
//----------------------------
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <cmath>
using namespace std;
int main()
{
const double EPS = 0.0000000001;
double a,b,x0;
// 4 cyfry po przecinku
cout << setprecision(4)
// format stałoprzecinkowy
<< fixed;
cout << "Miejsce zerowe f(x) = ax + b\n"
"----------------------------\n"
" (C)2006 mgr Jerzy Walaszek\n\n"
"a = ";
cin >> a;
cout << "\nb = ";
cin >> b;
cout << "\nWYNIK\n\n";
if(fabs(a) < EPS)
cout << "Brak miejsca zerowego\n\n";
else
{
x0 = - b / a;
cout << "x0 = " << x0 << endl << endl;
}
system("pause");
return 0;
}
|
Pascal// Program oblicza miejsce
// zerowe dla funkcji liniowej
// f(x) = ax + b
//----------------------------
// (C)2006 mgr Jerzy Wałaszek
// I Liceum Ogólnokształcące
// w Tarnowie
program mzfl1;
const
// dokładność porównania z zerem
EPS = 0.0000000001;
var
a,b,x0 : double;
begin
writeln('Miejsce zerowe f(x) = ax + b');
writeln('----------------------------');
writeln(' (C)2006 mgr Jerzy Walaszek');
writeln;
write('a = '); readln(a);
writeln;
write('b = '); readln(b);
writeln;
writeln('WYNIK');
writeln;
if abs(a) < EPS then
writeln('Brak miejsca zerowego')
else
begin
x0 := - b / a;
writeln('x0 = ',x0:10:4);
end;
writeln;
writeln('Nacisnij klawisz Enter...');
readln;
end.
|
Basic' Program oblicza miejsce ' zerowe dla funkcji liniowej ' f(x) = ax + b '---------------------------- ' (C)2006 mgr Jerzy Wałaszek ' I Liceum Ogólnokształcące ' w Tarnowie ' dokładność porównania z zerem Const EPS As Double = 0.0000000001 Dim As double a,b,x0 Print "Miejsca zerowe f(x) = ax + b" Print "----------------------------" Print " (C)2006 mgr Jerzy Walaszek" Print Input "a = ", a Print Input "b = ", b Print Print "WYNIK" Print If Abs(a) < EPS Then Print "Brak miejsca zerowego" Else x0 = - b / a Print Using "x0 = #####.####";x0 End If Print Print "Nacisnij klawisz Enter..." Sleep End |
Python
(dodatek)# Program oblicza miejsce
# zerowe dla funkcji liniowej
# f(x) = ax + b
#----------------------------
# (C)2026 mgr Jerzy Wałaszek
# I Liceum Ogólnokształcące
# w Tarnowie
# dokładność porównania z zerem
eps = 0.0000000001
print("Miejsce zerowe f(x) = ax + b")
print("----------------------------")
print(" (C)2026 mgr Jerzy Wałaszek")
print()
a = float(input("a = "))
print()
b = float(input("b = "))
print()
print("WYNIK")
print()
if abs(a) < eps:
print("Brak miejsca zerowego")
else:
x0 = - b / a
print("x0 = %.4f" % x0)
print()
input("Naciśnij Enter...")
|
| Wynik: |
Miejsce zerowe f(x) = ax + b ---------------------------- (C)2026 mgr Jerzy Wałaszek a = 12 b = -3 WYNIK x0 = 0.2500 Naciśnij Enter... |
JavaScript<html>
<head>
</head>
<body>
<div style="overflow-x: auto;"
align="center">
<table
border="0"
cellpadding="4"
style="border-collapse:
collapse">
<tr>
<td nowrap>
<form
name="frmbincode"
style="text-align: center;
background-color:
#E7E7DA">
<big><b>
Miejsce zerowe
</b></big><br>
<br>
f(x) = ax + b<br>
<br>
(C)2026
mgr Jerzy Wałaszek
I LO w Tarnowie
<hr>
Podaj wartości
współczynników:<br>
<br>
a = <input
type="text"
name="inp_a"
size="16"
value="12"
style="text-align:
right">
<br>
b = <input
type="text"
name="inp_b"
size="16"
value="-3"
style="text-align:
right">
<hr>
<input
type="button"
value="Oblicz"
name="B1"
onclick="main()">
<hr>
<b>WYNIK:</b>
<div id="out">.</div>
</form>
</td>
</tr>
</table>
</div>
<script language=javascript>
// Program oblicza miejsce
// zerowe dla funkcji liniowej
// f(x) = ax + b
//----------------------------
// (C)2006 mgr Jerzy Wałaszek
// I Liceum Ogólnokształcące
// w Tarnowie
function main()
{
var EPS = 0.0000000001
var a,b,x0,t
a = parseFloat(document
.frmbincode.inp_a.value)
b = parseFloat(document
.frmbincode.inp_b.value)
if(isNaN(a) || isNaN(b))
t = "<b><font color=red>" +
"Złe współczynniki" +
"</font></b>"
else
{
if(Math.abs(a) < EPS)
t = "<b><font color=red>" +
"Brak miejsca zerowego" +
"</font></b>"
else
{
x0 = - b / a
t = "x<sub>0</sub> = " + x0
}
}
document.getElementById("out")
.innerHTML = t
}
</script>
</body>
</html> |
![]() |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2026 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.