Przykładowe programy Delphi do analizy własnej

Komentarze

Transkrypt

Przykładowe programy Delphi do analizy własnej
Przykładowe programy Delphi do analizy własnej
program proste_obl;
{$APPTYPE CONSOLE}
uses SysUtils, Math; //Math potrzebne dla funkcji power
var
x,y:real;
begin
// podajemy liczbę
write('Podaj x:');
readln(x);
writeln; // pusty wiersz
// wykonywanie działań
y:= sin(x*pi/180);
writeln('SIN(x) :',y:10:4); // wypisanie wyniku
writeln; // pusty wiersz
y:= ln(x);
writeln('LN(x) :',y:10:4);
writeln; // odstęp
y:= ln(x)/ln(10);
writeln('Log10(x) = ',y:10:4);
writeln;
y:= sqrt(ln(x));
writeln('LN(x)^(1/2) = ',y:10:4);
writeln;
y:= power(ln(x),3);
writeln('LN(x)^3 = ',y:10:4);
writeln;
writeln('Pierwiastek 3-go stopnia');
y:= power(ln(x),1/3);
writeln('LN(x)^(1/3) = ',y:10:4);
writeln;
writeln('Zaokraglenie wyniku do 2 miejsc dziesietnych');
y:= round(y*1E2)/1E2;
writeln('LN(x)^(1/3) : ',y:10:4);
writeln;
y:= exp(-2*x);
writeln('exp(-2x): ',y:10:10);
readln;
end.
program parzyste;
{$APPTYPE CONSOLE}
uses SysUtils;
//wprowadzanie danych do tablicy
// i znajdowanie największego elementu parzystego
var tab: array[1..20] of integer;
x,max_p:integer;
ile,k:1..100;
begin
ile:=1;
//wczytywanie w pętli aż podamy 0
repeat
write('Podaj element:');
readln(x);
//sprawdzenie końca wpisywania jeśli liczba jest równa 0
if x<>0 then
begin
tab[ile]:= x;
ile:=ile+1;
end
else
ile:=ile-1;
until x=0;//koniec pętli
writeln;
writeln('Wpisales ',ile ,' elementow');
//wypisanie całej tablicy w pętli
for k:=1 to ile do
write(tab[k]:5);
//wyszukanie największego parzystego elementu
max_p:=0;
for k:=1 to ile do
if (tab[k] mod 2 = 0) and (tab[k]>max_p) then max_p:= tab[k];
writeln;
writeln('Najwieksza parzysta to:', max_p);
readln;
end.
program tab_kw;
{$APPTYPE CONSOLE}
uses SysUtils;
type Ttab= array[1..5,1..5] of integer; /tablica dwuwymiarowa
var tab:Ttab;
w,k:1..5;
//definicja procedury
procedure wyswietl(var x:Ttab);
var i, j:1..5;
begin
for i:=1 to 5 do
begin
for j:=1 to 5 do
write (tab[i,j]:5);
writeln;
end;
end;//koniec procedury
begin //początek programu
//losowe wypełnienie tablicy
randomize;
for k:=1 to 5 do
for w:=1 to 5 do
tab[w,k]:=random(20)-10; //zakres wartości (-10, 10)
wyswietl(tab);//wykonanie procedury – przekazanie tablicy
//wstawienie zer do 2 wiersza
writeln; //pusty wiersz
for k:=1 to 5 do tab[2,k]:=0;
wyswietl(tab); //ponowne wykonanie procedury
readln;
end.
UWAGA: wcześniej utworzyć plik tekstowy o nazwie nazwiska.txt, z 20-ma nazwiskami w osobnych
wierszach (plik musi być w tym samym folderze co program)
program nazwiska_plik;
{$APPTYPE CONSOLE}
uses SysUtils;
var plik: textFile;
tab: array [1..20] of string[20];
k:integer;
min:string[20];
begin //początek programu
//skojarzenie zmiennej plikowej z plikiem fizycznym
AssignFile(plik,'nazwiska.txt');
//otwarcie pliku
reset(plik);
//czytanie w pliku do tablicy i wypisanie
writeln('Wszystkie nazwiska z pliku');
for k:=1 to 20 do
begin
readln(plik, tab[k]);
writeln(' ':20,tab[k]);
end;
closeFile(plik);
//wyszukanie najwcześniejszego w alfabecie
min:=tab[1];
for k:=2 to 20 do
if tab[k]<min then min:=tab[k];
writeln('Nawczesniejsze nazwisko w alfabecie:', min);
readln;
end.
UWAGA: Wcześniej należy utworzyć plik tekstowy o nazwie liczby.txt, z kilkoma liczbami całkowitymi
w osobnych wierszach (plik musi być w tym samym folderze co program).
program liczby_pl;
{$APPTYPE CONSOLE}
uses SysUtils;
var plik:textfile;
tab: array [1..20] of real;
k, ile:integer;
min,suma,srednia:real;
begin
//skojarzenie z plikiem fizycznym istniejącym
AssignFile(plik,'liczby.txt');
//otwarcie pliku do odczytu
reset(plik);
//czytanie w pliku do tablicy i wypisanie - nie wiemy ile liczb jest w pliku
writeln('Oto Wszystkie liczby z pliku');
k:=1;
while not eof(plik) do
begin
readln(plik, tab[k]);
writeln(' ':20,tab[k]:10:3);
k:=k+1;
end;
ile:=k-1;
writeln('Ilosc liczb:',ile);
closeFile(plik);
//wyszukanie najmniejszej i zliczanie
min:=tab[1];
for k:=1 to ile do
if tab[k]<min then min:=tab[k];
writeln('Najmniejsza:', min:12:2);
//suma
suma:=0;
for k:=1 to ile do
suma:=suma+tab[k];
writeln('Suma:',suma:10:3);
//srednia
srednia:=suma/ile;
writeln('Srednia arytmetyczna:',srednia:10:3);
readln;
end.
A teraz dopisanie liczby do tego samego pliku...
program dopisanie;
{$APPTYPE CONSOLE}
uses SysUtils;
var plik: textFile;
liczba: real;
begin
//skojarzenie z plikiem fizycznym istniejącym
AssignFile(plik,'liczby.txt');
//otwarcie do dopisywania na końcu pliku tekstowego
append(plik);
//podanie liczby
write('Podaj liczbe:');
readln(liczba);
//zapis do pliku
writeln(plik, liczba);
writeln('DOPISANO');
closeFile(plik);
readln;
end.
Programy dla pliku elementowego, zawierającego rekordy
program tworzenie;
{$APPTYPE CONSOLE}
uses SysUtils;
type
data= record
d:1..31;
m:1..12;
r:1970..2000;
end;
Ttowar= record
nr: integer;
nazwa: string[20];
producent: string[15];
cechy:array[1..3] of string[10];
data_zakupu: data;//wyżej zdefiniowany typ
cena: real;
sztuk: integer;
end;
var towar:Ttowar;
k:1..30;
plik: file of Ttowar;
begin //początek programu
assignFile(plik,'towary.bin');
rewrite(plik);
writeln('Wpisanie 3-ch towarow do nowego pliku');
//podawanie danych 1 towaru
for k:=1 to 3 do
begin
write('Podaj numer : ');
readln(towar.nr);
write('Podaj nazwe towaru: ');
readln(towar.nazwa);
write('Podaj producenta: ');
readln(towar.producent);
write('Podaj 1 ceche: ');
readln(towar.cechy[1]);
write('Podaj 2 ceche: ');
readln(towar.cechy[2]);
write('Podaj dzien zakupu: ');
readln(towar.data_zakupu.d);
write('Podaj miesiac zakupu: ');
readln(towar.data_zakupu.m);
write('Podaj rok zakupu: ');
readln(towar.data_zakupu.r);
write('Podaj cene towaru: ');
readln(towar.cena);
write('Podaj ilosc sztuk towaru: ');
readln(towar.sztuk);
write(plik,towar);//zapis rekordu do pliku
end;
//koniec pętli
closeFile(plik);
readln;
end.
program czytanie;
{$APPTYPE CONSOLE}
uses SysUtils;
type
data= record
d:1..31;
m:1..12;
r:1970..2000;
end;
Ttowar= record
nr:integer;
nazwa:string[20];
producent:string[15];
cechy:array[1..3] of string[10];
data_zakupu:data;
cena:real;
sztuk:integer;
end;
var towar:Ttowar;
plik: file of Ttowar;
begin //początek programu
assignFile(plik,'towary.bin');
reset(plik);
//odczyt z pliku w petli
while not eof(plik) do //dopóki nie ma końca pliku
begin
read(plik,towar); // przeczytaj w pliku jeden rekord
write('Nr: ',towar.nr);
write(' Nazwa: ',towar.nazwa);
writeln(' Producent: ',towar.producent);
write('Cecha 1: ',towar.cechy[1]);
writeln(' Cecha 2: ',towar.cechy[2]);
writeln('Data zakupu: ',towar.data_zakupu.d,'.',towar.data_zakupu.m,'.',towar.data_zakupu.r);
write('Cena: ',towar.cena:10:2);
writeln(' Sztuk: ',towar.sztuk);
writeln;
end;
readln;
closefile(plik);
end.
program dopisanie;
{$APPTYPE CONSOLE}
uses SysUtils;
type
data= record
d:1..31;
m:1..12;
r:1970..2000;
end;
Ttowar= record
nr:integer;
nazwa:string[20];
producent:string[15];
cechy:array[1..3] of string[10];
data_zakupu:data;
cena:real;
sztuk:integer;
end;
var towar:Ttowar;
plik: file of Ttowar;
begin //początek programu
assignFile(plik,'towary.bin');
reset(plik); //otwarcie pliku
writeln('Dopisanie dodatkowego towaru do pliku');
//przewijanie pliku na koniec – czytanie rekordów bez wypisywania
while not eof(plik) do
read(plik,towar); // czytaj kolejny rekord
//podawanie danych jednego towaru
write('Podaj numer : ');
readln(towar.nr);
write('Podaj nazwe towaru: ');
readln(towar.nazwa);
write('Podaj producenta: ');
readln(towar.producent);
write('Podaj 1 ceche: ');
readln(towar.cechy[1]);
write('Podaj 2 ceche: ');
readln(towar.cechy[2]);
write('Podaj dzien zakupu: ');
readln(towar.data_zakupu.d);
write('Podaj miesiac zakupu: ');
readln(towar.data_zakupu.m);
write('Podaj rok zakupu: ');
readln(towar.data_zakupu.r);
write('Podaj cene towaru: ');
readln(towar.cena);
write('Podaj ilosc sztuk towaru: ');
readln(towar.sztuk);
write(plik,towar);//zapis rekordu do pliku
readln;
closeFile(plik);
end.
program analiza;
{$APPTYPE CONSOLE}
uses SysUtils;
type
data= record
d:1..31;
m:1..12;
r:1970..2000;
end;
Ttowar= record
nr:integer;
nazwa:string[20];
producent:string[15];
cechy:array[1..3] of string[10];
data_zakupu:data;
cena:real;
sztuk:integer;
end;
var towar:Ttowar;
sklep: array[1..30] of Ttowar;
plik: file of Ttowar;
ile,k:1..30;
begin //start programu
assignFile(plik,'towary.bin');
reset(plik);
//odczyt z istniejącego pliku w pętli
k:=1;
while not eof(plik) do //dopóki nie ma końca pliku
begin
read(plik,towar); // przeczytaj w pliku jeden rekord
sklep[k]:=towar;
k:=k+1;
end;
ile:=k-1;
writeln('Mamy w sklepie ',ile, ' towary');
writeln('Towary o cenach wiekszych niz 2 zl');
//wypisanie towarów o cenach> 2.00 zł
for k:=1 to ile do
if sklep[k].cena>2.0 then
writeln(sklep[k].nazwa:20,sklep[k].cena:10:2);
readln;
closeFile(plik);
end.
program zbiory;
{$APPTYPE CONSOLE}
uses SysUtils;
type kolory=(czerwony, niebieski, szary, czarny, fioletowy);//typ wyliczeniowy
var caly, kilka1,kilka2, inne: set of kolory; //typ zbiorowy
begin
//utworzenie zbiorów
caly:= [czerwony..fioletowy]; //pełny zbiór
kilka1:=[czerwony..czarny]; //podzbiór
kilka2:=[szary , czarny, fioletowy]; //podzbiór
inne:= kilka1*kilka2; //iloczyn zbiorów
//wypisanie zbiorów
writeln ('Zbior CALY');
if czerwony in caly then write ('Czerwony ');
if niebieski in caly then write ('Niebieski ');
if szary in caly then write ('Szary ');
if czarny in caly then write ('Czarny ');
if fioletowy in caly then write ('Fioletowy ');
writeln; writeln;
writeln ('Zbior KILKA1');
if czerwony in kilka1 then write ('Czerwony ');
if niebieski in kilka1 then write ('Niebieski ');
if szary in kilka1 then write ('Szary ');
if czarny in kilka1 then write ('Czarny ');
if fioletowy in kilka1 then write ('Fioletowy ');
writeln; writeln;
writeln ('Zbior KILKA2');
if czerwony in kilka2 then write ('Czerwony ');
if niebieski in kilka2 then write ('Niebieski ');
if szary in kilka2 then write ('Szary ');
if czarny in kilka2 then write ('Czarny ');
if fioletowy in kilka2 then write ('Fioletowy ');
writeln; writeln;
writeln ('Zbior INNE');
if czerwony in inne then write ('Czerwony ');
if niebieski in inne then write ('Niebieski ');
if szary in inne then write ('Szary ');
if czarny in inne then write ('Czarny ');
if fioletowy in inne then write ('Fioletowy ');
readln;
end.

Podobne dokumenty