Monthly Archives: November 2016

Pascal: Funkcije i procedure

U Pascalu postoje dva tipa potprograma, funkcije i procedure. Razlike je sto funkcije vracaju neku vrednost u glavni program, dok procedure jednostavno izvrse ono zbog cega su pozvane. Inace glavni razlog za koriscenje potprograma je bolja organizacija. Ako neki proces ponavljamo nekoliko puta na vise mesta u programu, logicno je da ga napisemo jednom i kasnije pozivamo kada nam treba. Takodje, ovakve potprograme mozemo koristiti kasnije i u drugim programima. Pogledajmo nekoliko primera.

program Funkcije;
var
a,b,v: integer;

//funkcija koja vraca veci broj
function max(x,y:integer): integer;
//lokalna varijabla unutar funkcije
var
calc: integer;
begin
if (x > y) then calc := x else calc :=y;
max := calc;
end;

//glavni program
begin
write('Unesite prvi broj: ');
readln(a);
write('Unesite drugi broj: ');
readln(b);
writeln('--------------------');
//pozivamo funkciju
v := max(a,b);
writeln ('Veci broj je: ',v);
readln;
end.

U ovom primeru smo najpre deklarisali funkciju max koja od dva poslata broja vraca veci. Zatim smo je pozvali iz glavnog programa da bi odredili koji je broj veci od dva uneta, i na kraju ispisali rezultat na ekranu. Kao sto ste mogli da vidite, funkcije se definisu sintaxom:

function ime(argumenti:tip; argumenti2:tip2;..):izlazni tip

.. i na kraju vraca rezultat u formatu: ime := neki proracun. Ona moze sadrzati i lokalne varijable koje smo u nasem primeru ubacili samo radi demonstracije, inace nije bilo neophodno. Pogledajmo jos jedan primer.

program Funkcije2;
var
a,b:integer;
//direktno vracena funkcija
function god(a,b:integer):integer;
begin
god := a-b;
end;

//glavni program
begin
write('Unestite vase godiste: ');
readln(a);
write('Unestite aktuelnu godinu: ');
readln(b);
writeln('--------------------');
writeln('Ove godine punite ',god(b,a),' god.');
readln;
end.

Ovaj program je vrlo slican, i demonstrira vracanje rezultata u jednoj liniji bez dodatnih internih varijabli. Takodje i pozivanje funkcije direktno iz druge komande ili izraza, bez dodatnih spoljnih varijabli.

Vise o potprogramima u Pascalu mozete pogledati ovde.

Advertisements

Pascal: Stringovi

Stringove smo vec pominjali i koristili u prethodnim primerima. Oni predstavljaju niz karaktera i kao takvi su jedan od najbitnijih elemenata u svim modernim programskim jezicima opste namene. Ovde cemo obraditi neke od brojnih funkcija i operacija sa stringovima u Pascalu.

Pogledajmo sada jedan primer sa stringovima:

program Stringovi;
uses
crt;

var
ime,pre,c,n:string;

begin
write('Unesite ime: ');
readln(ime);
write('Unesite prezime: ');
readln(pre);
c := ' '; //dodajemo razmak
clrscr;
//nastavljanje
writeln('Puno ime je: ', concat(ime,c,pre));
//moze i sa +
c := ime+pre;
writeln('Zbir imena i prezimena je: ', c);
//brisanje dela stringa
n := c; //cuvamo originalni zbir
delete(c,2,3);
writeln('Zbir bez tri slova: ', c);
//razno
writeln('Broj karaktera u imenu: ', length(ime));
writeln('Zbir malim slovima: ', lowercase(n));
writeln('Zbir velikim slovima: ',upcase(n));
writeln('Pozicija prezimena u zbiru: ',pos(pre,n));
readln;
end.

U nasem programu najpre smo uneli ime i prezime. Zatim smo pomocu funkcije concat sastavili tri stringa u jedan, i demonstrirali kako se isti efekat moze postici sa prostim sabiranjem. Zatim smo obrisali deo stringa pomocu funkcije delete. Argumetni su delete(string,pocetak brisanja,duzina brisanja). U delu razno smo obradili jos nekoliko funkcija. To su length koja vraca duzinu stringu, zatim prebacivanje u mala i velika slova pomocu lowercase i upcase, kao i odredjivanje pozicije stringa u stringu pomocu funkcije pos.

U koliko pod Uses ucitate i sysutils, bice vam dostupne dodatne korisne funkcije, poput IntToStr i StrToInt. Pogledajmo jos jedan primer.

program Stringovi2;
uses
crt, sysutils;

var
ime,god,lin:string;
g,x:integer;

begin
write('Unesite ime: ');
readln(ime);
write('Unesite godiste: ');
readln(god);
clrscr;
//prebacivanje u integer i nazad
g := strtoint(god);
g := 2020 - g;
god := inttostr(g);
//sabiranje stringa
lin := '2020te punite ' + god + ' godina';
writeln(lin);
//vracamo vrednost u god
g := 2020 - g;
god := inttostr(g);
//prebacivanje u ASCII i nazad
x := ord(ime[1]);
writeln('ASCII prvog slova imena: ', x);
lin := chr(x);
writeln('Prvo slovo imena iz ASCII: ',lin);
insert(god,ime,3);
writeln('Godiste ubaceno u ime: ',ime);
delete(ime,3,4);
writeln('Obrisano godiste iz imena: ',ime);
readln;
end.

Ovde smo najpre uneli ime i godiste. Zatim smo prebacili godiste u integer da bi izvrsili racunsku operaciju, nakon cega smo vrednost opet vratili u string i ispisali na ekranu. Zatim smo prebacili slovo u ASCII vrednost i nazad, i na kraju pokazali kako se string ubacuje i izbacuje iz drugog stringa. Argumenti funkcije insert su (string koji ubacujemo, string u koji ubacujemo, mesto odakle pocinjemo). Argumenti funkcije delete su vec objasnjenji u prethodnom primeru.

Svi moderni jezici imaju brojne funkcije sa stringovima. Ovde smo obradili samo neke koje se cesto koriste. Vise o stringovima u pascalu pogledajte ovde i ovde.

Kakva podla i pokvarena reklama…

Citajuci vesti na Yahoo, naisao sam na link ka ovoj adresi: http://www.smartwebuser.org/601
Odmah mi je bio cudan ovaj deo teksta “If you live in Serbia and have a Linux computer which is over 6 months old, then we advise you to keep reading.”
Zatim sam ukljucio VPN u Operi i poceo, redom da menjam VPN servere.
Ono sto sam dobio je sledece:
“If you live in Canada and have a Linux computer which is over 6 months old, then we advise you to keep reading.”
“If you live in U.S and have a Linux computer which is over 6 months old, then we advise you to keep reading.”
“If you live in Germany and have a Linux computer which is over 6 months old, then we advise you to keep reading.”
“If you live in Netherlands and have a Linux computer which is over 6 months old, then we advise you to keep reading.”
“If you live in Singapore and have a Linux computer which is over 6 months old, then we advise you to keep reading.”

Pomislio sam, da imaju nesto protiv Linuxa, onda sam instalirao Browserling – Cross-browser testing dodatak za Operu i namestio sam da izgleda, kao da idem na internet sa Google Chrome iz Windowsa. Ono sto sam dobio je:
“If you live in U.S and have a Windows computer which is over 6 months old, then we advise you to keep reading.”

Strasno, kakva podla i pokvarena reklama… Jedino sto mogu da Vam preporucim, na osnovu ovog gafa je da, doticni proizvod, a bogami i sajt izbegavate u sirokom luku…
Evo i screenshotova, procitajte uokvireni deo teksta…

usa

singapur

serbia

holland

germany

canada

usa-win

Google digitalna radionica

Google je pokrenuo jako zanimljivu obrazovnu inicijativu na temu online marketinga. Ideja je da se pomogne ljudima, narocito malim preduzecima, u laksoj promociji svojih delatnosti putem interneta. Radionica obradjuje najrazlicitije teme, pocevsi od objasnjenja osnovnih termina pa nadalje. Poput principa SEO optimizacije, nacina rada SEM sistema, koriscenja drustvenih mreza, prednosti mobilnog (responsivnog) dizajna i aplikacija, razlicite metode povezivanja sa korisnicima, koriscenje alata za analizu aktivnosti korisnika radi dodatne optimizacije i slicno. Ukratko, sve na jednom mestu u vezi digitalnog marketinga.

Skola je organizovana na moderan i zanimljiv nacin, sa ciljem da stimulise studente. Predavaci su kvalitetni i jasno objasnjavaju teme. Teme se sastoje od kratkih i jednostavnih lekcija. Nakon sto kompletirate temu, sledi kratak test koji donosi bedzeve. U koliko vas tematika zainteresuje toliko da kompletirate sve bedzeve i polozite zavrsni test, dobicete digitalni sertifikat iz ove oblasti koji potpisuju Google i IAB Europe. Ali ono najvrednije sto cete dobiti je primenjivo znanje u ovoj oblasti, koje po zelji mozete da obnovite kad god vam odgovara.

Radionica je potpuno besplatna i mozete se registrovati ovde.

%d bloggers like this: