Przykładowe programy Delphi do analizy własnej
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.