Inicjalizacja repozytorium

This commit is contained in:
2025-01-27 23:31:45 +01:00
commit e37cf6b784
27 changed files with 1743 additions and 0 deletions
@@ -0,0 +1,6 @@
*
!.gitignore
!**/
!*.pas
.#*.pas
@@ -0,0 +1,44 @@
program rownanie_kwadratowe;
var
a,b,c : Double;
x,x1,x2 : Double;
Delta : Double;
begin
write('Podaj a: ');
ReadLn(a);
write('Podaj b: ');
ReadLn(b);
write('Podaj c: ');
ReadLn(c);
if a=0 then
begin
x:=c/b;
writeln('To jest rownanie liniowe');
writeln(x:0:5); // Wypisze pięć miejsc po przecinku zamiast naukowej notacji
end else
begin
Delta:=b*b-4*a*c;
if Delta < 0 then
writeln('Brak rozwiazan')
else
begin
if Delta > 0 then
begin
x1:=(-b - Sqrt(Delta))/(2*a);
x2:=(-b + Sqrt(Delta))/(2*a);
writeln('Dwa pierwiastki');
writeln(x1:0:5);
writeln(x2:0:5);
end else
begin
x:=b/(2*a);
writeln('Jeden pierwiastek');
writeln(x:0:5);
end;
end;
end;
end.
@@ -0,0 +1,37 @@
program rok_przestepny;
function Czytaj_rok: Integer;
var
rok: Integer;
begin
write('Podaj rok: ');
readln(rok);
Czytaj_rok:=rok;
end;
function Czy_przestepny(rok :Integer ): Boolean;
begin
Czy_przestepny:= ((rok mod 4 = 0) AND (NOT (rok mod 100 = 0)) ) OR (rok mod 400 = 0);
end;
procedure Wypisz_czy_przestepny(rok : Integer; przestepny: Boolean );
begin
if przestepny then
writeln('Rok ', rok, ' jest przestepny')
else
writeln('Rok ', rok, ' nie jest przestepny');
end;
procedure Glowna_procedura;
var
rok : Integer;
przestepny : Boolean;
begin
rok:= Czytaj_rok();
przestepny:= Czy_przestepny(rok);
Wypisz_czy_przestepny(rok,przestepny);
end;
begin
Glowna_procedura()
end.
@@ -0,0 +1,38 @@
program suma_cyfr;
function Czytaj_liczbe : Integer;
var
liczba : Integer;
begin
write('Podaj liczbe: ');
readln(liczba);
Czytaj_liczbe:=liczba;
end;
function Suma_cyfr(liczba : Integer) : Integer;
var suma : Integer;
begin
suma:=0;
liczba:=abs(liczba);
while liczba>0 do
begin
suma:=suma+(liczba mod 10);
liczba:=trunc(liczba/10);
end;
Suma_cyfr:=suma;
end;
procedure Wypisz_wynik(liczba : Integer; suma : Integer );
begin
writeln('Suma cyfr liczby ', liczba, ' to ', suma);
end;
procedure Glowna_procedura;
var liczba : Integer;
begin
liczba:=Czytaj_liczbe();
Wypisz_wynik(liczba,Suma_cyfr(liczba));
end;
begin
Glowna_procedura();
end.
@@ -0,0 +1,53 @@
program silnia;
function Czytaj_liczbe: Int64;
var
liczba: Int64;
begin
Write('Podaj liczbę calkowita: ');
ReadLn(liczba);
Czytaj_liczbe := liczba;
end;
function Silnia_rekurencyjna(n: Int64): Int64;
begin
if n = 0 then
Silnia_rekurencyjna := 1
else
Silnia_rekurencyjna := n * Silnia_rekurencyjna(n - 1);
end;
function Silnia_iteracyjna(n: Int64): Int64;
var
wynik, i: Int64;
begin
wynik := 1;
for i := 1 to n do
wynik := wynik * i;
Silnia_iteracyjna := wynik;
end;
procedure Wypisz_wyniki(wynikRek, wynikIter: Int64);
begin
WriteLn('Silnia rekurencyjna: ', wynikRek:10);
WriteLn('Silnia iteracyjna: ', wynikIter:10);
end;
procedure Glowna_procedura;
var
liczba, wynikRek, wynikIter: Int64;
begin
liczba := Czytaj_liczbe;
if liczba < 0 then
begin
WriteLn('Silnia jest zdefiniowana tylko dla liczb nieujemnych.');
Exit;
end;
wynikRek := Silnia_rekurencyjna(liczba);
wynikIter := Silnia_iteracyjna(liczba);
Wypisz_wyniki(wynikRek, wynikIter);
end;
begin
Glowna_procedura()
end.
@@ -0,0 +1,71 @@
program silnia_czas;
uses sysUtils;
function Czytaj_liczbe: Int64;
var
liczba : Int64;
begin
Write('Podaj liczbe calkowita: ');
ReadLn(liczba);
Czytaj_liczbe := liczba;
end;
function Silnia_rekurencyjna(n: Int64): Int64;
begin
if n = 0 then
Silnia_rekurencyjna := 1
else
Silnia_rekurencyjna := n * Silnia_rekurencyjna(n - 1);
end;
function Silnia_iteracyjna(n: Int64): Int64;
var
wynik, i : Int64;
begin
wynik := 1;
for i := 1 to n do
wynik := wynik * i;
Silnia_iteracyjna := wynik;
end;
procedure Wypisz_wyniki(liczba,ile,wynikRek, wynikIter : Int64; CzasI, CzasR : TdateTime);
begin
writeln('Podana liczba: ', liczba);
writeln('Podana liczba iteracji', ile);
writeln('Czas silni rekurencyjnej: ', CzasR:0:2, ' sekund');
WriteLn('Silnia rekurencyjna: ', wynikRek:10);
writeln('Czas silni iteracyjnej: ', CzasI:0:2, ' sekund');
WriteLn('Silnia iteracyjna: ', wynikIter:10);
end;
procedure Glowna_procedura;
var
CzasI, CzasR : TdateTime;
i : Int64;
ile, liczba : Int64;
wynikI, wynikR : Int64;
begin
liczba := Czytaj_liczbe();
Write('Podaj liczbe iteracji: ');
ReadLn(ile);
CzasI := Time();
for i := 0 to ile do
wynikI := Silnia_iteracyjna(liczba);
CzasI := Time()-CzasI;
CzasI := CzasI*24*60*60;
CzasR := Time();
for i := 0 to ile do
wynikR := Silnia_rekurencyjna(liczba);
CzasR := Time()-CzasR;
CzasR := CzasR*24*60*60;
Wypisz_wyniki(liczba,ile,wynikR,wynikI,CzasI,CzasR);
end;
begin
Glowna_procedura()
end.
@@ -0,0 +1,33 @@
program suma_cyfr;
function Czytaj_liczbe : Integer;
var
liczba : Integer;
begin
write('Podaj liczbe: ');
readln(liczba);
Czytaj_liczbe:=liczba;
end;
function Suma_cyfr(liczba : Integer) : Integer;
begin
if liczba = 0 then
Suma_cyfr:=0
else
Suma_cyfr:= (abs(liczba) mod 10) + Suma_cyfr(liczba div 10);
end;
procedure Wypisz_wynik(liczba : Integer; suma : Integer );
begin
writeln('Suma cyfr liczby ', liczba, ' to ', suma);
end;
procedure Glowna_procedura;
var liczba : Integer;
begin
liczba:=Czytaj_liczbe();
Wypisz_wynik(liczba,Suma_cyfr(liczba));
end;
begin
Glowna_procedura();
end.
@@ -0,0 +1,65 @@
program potega;
function potega_iter(a : Integer ;n : Integer ) : Integer;
var
wynik, i : Integer;
begin
wynik := 1;
for i := 1 to n do
wynik:= wynik*a;
potega_iter:= wynik;
end;
function potega_rek(a : Integer ;n : Integer ) :Integer;
begin
if n = 0 then
potega_rek:= 1
else
potega_rek:= a * potega_rek(a,n-1);
end;
function potega_iter_kwr(a : Integer ;n : Integer ) : Integer;
var
wynik : Integer;
begin
wynik := 1;
if n = 1 then
wynik:=a;
while n>1 do
begin
if n mod 2 = 1 then
begin
wynik:=a*wynik;
n:=n-1;
end
else
begin
wynik:=a*a*wynik;
n:=n div 2;
end;
end;
potega_iter_kwr:=wynik;
end;
function potega_rek_kwr(a : Integer ;n : Integer ) :Integer;
var
wynik : Integer;
begin
wynik:=0;
if n = 0 then
potega_rek_kwr:= 1
else if n mod 2 = 1 then
potega_rek_kwr:= a * potega_rek_kwr(a,n-1)
else
begin
wynik := potega_rek_kwr(a, n div 2);
potega_rek_kwr:=wynik*wynik;
end;
end;
begin
WriteLn('Potega Iteracyjna: ', potega_iter(2,3));
WriteLn('Potega Rekurencyjna: ', potega_rek(2,3));
WriteLn('Potega Iteracyjna Kwadratowa: ', potega_iter_kwr(2,3));
WriteLn('Potega Rekurencyjna Kwadratowa: ', potega_rek_kwr(2,3));
end.