|
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:
|
\[ f(x) = ax+b \] |
Nazwa funkcji liniowej pochodzi stąd, iż jej wykres jest linią prostą.
Miejsce zerowe \(x_0\) 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 \(\varepsilon\) jest wybraną dokładnością przyrównania do \(0\). Sądzę, iż \({\varepsilon = 0{,}0000000001}\) powinno być w większości typowych przypadków wystarczająco dokładne (jeśli nie, to należy je odpowiednio dostosować).
| K01: | Czytaj \(a\) i \(b\) |
| K02: | Jeśli \({|a| < \varepsilon}\), to idź do kroku K06 |
| K03: | \({x_0=-\dfrac{b}{a}}\) |
| K04: | Pisz \(x_0\) |
| 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:
\[
f(x) = ax+b
\]
Następnie sprawdzamy, czy współczynnik \(a\) jest równy (dostatecznie bliski) zeru. Jeśli nie, to wyznaczamy miejsce zerowe \(x_0\) 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.
W soboty i niedziele reklamy są wyłączane w całym serwisie.
Informacje dodatkowe.