Архиве

Nizovi

Једнодимензионални низови

Код рада са већом количином података врло често се јавља потреба за великим бројем променљивих које би чувале потребне вредности. У већини таквих случајева број неопходних променљивих је или јако велики или се и не зна колико променљивих ће бити употребљено у програму. Да би се олакшало решавање оваквог типа проблема уводи се појам низа. Низ је уређени скуп података једног типа са заједничким именом које се назива именом низа. Тип низ има следеће особине:

 Садржи коначан, унапред одређен број чланова (n)

 Сви чланови једног низа морају бити истог типа

 Сваки члан се означава именом низа и својим индексом (редним бројем)

Да би се низ могао користити у програму, мора бити претходно дефинисан. Прво се у делу за дефиниције типова (у одељку Type) дефинише нови тип података, који можемо назвати нпр. niz:

Type niz=array[1..100] of integer;

 array – резервисана реч која говори да је у питању низовни тип, сложени тип састављен од    компоненти истог типа

 [1..100] – низ може имати од једног до сто чланова (редни бројеви – индекси могу ићи од 1 до 100)

 of integer – чланови низа су цели бројеви

Затим можемо декларисати глобалне променљиве:

n – број елемената низа и

a – променљива типа низ (име низа) у делу за декларације -Var:

var

a:niz;

n:integer;

PRIMERI:

1. Aplikacija učitava n članova niza putem InputBox-a i ispisuje ih u Edit komponentu.

 

2. Kreirati aplikaciju koja omogućava učitavanje niza od n celobrojnih elemenata, niz prikazuje u listbox-u i računa proizvod parnih elemenata niza.

 

REŠENJE:

 

3. Креирати целобројни низ од n чланова (n≤10). Чланове низа унети преко InputBox-a, а затим исписати само парне елементе низа.

РЕШЕЊЕ:

type

niz=array [1..10] of integer;

var

a:niz;

n,i:integer;

Процедура за дугме Button1:

procedure TForm1.Button1Click(Sender: TObject);

begin

n:=StrToInt(Edit1.Text);

Edit2.Text:=“;                {ova naredba briše sadržaj iz Edit2}

for i:=1 to n do

Begin

a[i]:=StrToInt(InputBox(‘Unos elemenata niza’, ‘Unesi broj’, “));

Edit2.Text:=Edit2.Text + ‘ ‘ + IntToStr(a[i]);

End;

end;

Процедура за дугме Button2:

procedure TForm1.Button2Click(Sender: TObject);

begin

Edit3.Text:=“;                {ova naredba briše sadržaj iz Edit3}

for i:=1 to n do

Begin

IF a[i] mod 2 = 0 THEN

Edit3.Text:=Edit3.Text + ‘ ‘ + IntToStr(a[i]);

End;

end;

end.

4. Kreirati aplikaciju koja omogućava učitavanje niza od 8 celobrojnih elemenata, niz prikazuje u listbox-u i prebrojava koliko ima dvocifrenih elemenata niza.

REŠENJE:

 

5. Kreirati aplikaciju koja omogućava učitavanje niza od n celobrojnih elemenata, niz prikazuje u listbox-u i drugom listbox-u prikazuje samo neparne elemente niza .

REŠENJE:

 

 

 

 

 

Funkcije i procedure

FUNKCIJE I PROCEDURE

Potprogrami su delovi programa. Često se delovi koda ponavljaju u okviru nekog programa. Logično je da se ta grupa komandi izdvoji u potprogram, i da se po želji poziva u okviru programa tamo gde je potrebno. Takođe, potprogrami omogućavaju da se program razbije na menje module, i da se lakše reši problem.

U potprograme spadaju procedure i funkcijski potprogrami (funkcije). Procedure i funkcije su slične. Obe se izvršavaju nad nekim ulaznim promenljivama, i obe izvršavaju neke naredbe. Razlika je u tome što funkcije uvek vraćaju neku vrednost (imaju izlazni rezultat), dok procedure ne moraju da vraćaju neku vrednost. Funkcije mogu da se napišu kao procedura, obrnuto ne važi.

Ulazne promenljive se nazivaju argumenti ili fiktivni parametri. Potprogram se poziva u okviru programa, kada se pri pozivu navode stvarni parametri.

Sam potprogram može da ima svoje lokalne promenljive, čije vrednosti mogu da se dobiju iz glavnog programa, ali ne mogu da se vide u glavnom programu. Lokalne promenljive mogu da imaju ISTA imena kao i globalne promenljive (pod uslovom da te globalne ne pozivam u potprogramu).

Globalne promenljive su promenljive koje se deklarišu u okviru glavnog programa, vidljive su kroz ceo program, mogu da menjaju vrednost u potprogramu, i promenjena vrednost se vidi u glavnom programu. Globalne promenljive u Lazarusu mogu de se deklarišu i pre procedura (ispod implementation linije koda).

DEFINISANJE FUNKCIJA:

Programski jezici imaju mnoštvo već gotovih funkcija i procedura, koje mi uveliko koristimo. To su na primer funkcije ili naredbe: For, While, Repeat itd.

Prilikom rešavanja zadataka, te gotove funkcije nam ponekad nisu dovoljne, već je potrebno da samostalno DEFINIŠEMO potrebne funkcije. Postupak je sledeći:

Kada pokrenemo programski kod, u sekciji implementation

1. Definišemo samu funkciju, koristeći rezervisanu reč function

2. Dajemo ime funkciji

3. Uzagradi navodimo  promjenljive koje definiše korisnik, a potrebne su za izračunavanje same funkcije i definišemo tip tih promenljivih

4. iza zagrade se definiše tip rezultata koji funkcija vraća

implementation
function Stepenovanje(Osnova,Eksponent : Integer): Integer;
var
i, t: Integer;
begin
t := 1
for i := 1 to Eksponent do
t := t * Osnova;
Stepenovanje := t;
end;
{$R *.lfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
var a,b,c: integer;
begin
a:= strtoint(edit1.text);
b:= strtoint(edit2.text);
c:= Stepenovanje(a,b);
showmessage(‘razultat je:’+’ ‘+ inttostr(c));
end;

end.

funkcije i procedure urađeni zadaci

zadaci-funkcije1