{"id":1239,"date":"2013-04-16T19:02:23","date_gmt":"2013-04-16T18:02:23","guid":{"rendered":"http:\/\/www.itkommando.hu\/site\/?page_id=1239"},"modified":"2021-07-16T08:55:58","modified_gmt":"2021-07-16T07:55:58","slug":"free-pascal-2","status":"publish","type":"page","link":"https:\/\/www.itkommando.hu\/site\/a_halozat_szolgalataban\/tanulmanyok\/free-pascal-2\/","title":{"rendered":"Free Pascal 2"},"content":{"rendered":"<p>Az <a title=\"Free Pascal\" href=\"http:\/\/www.itkommando.hu\/site\/a_halozat_szolgalataban\/tanulmanyok\/free-pascal\/\">el\u0151z\u0151 r\u00e9szben<\/a> a <a href=\"https:\/\/www.freepascal.org\/\">Free Pascal<\/a> ford\u00edt\u00f3 alapvet\u0151 biztons\u00e1gi be\u00e1ll\u00edt\u00e1sait vett\u00fck szem\u00fcgyre. Ez a r\u00e9sz a programok optimaliz\u00e1l\u00e1s\u00e1val foglalkozik.<\/p>\n<p>Mivel a Pascal elterjedts\u00e9ge meg sem k\u00f6zel\u00edti a C jelleg\u0171 nyelvek\u00e9t, mi els\u0151sorban az \u00fczemeltet\u00e9si feladatok automatiz\u00e1l\u00e1s\u00e1ra haszn\u00e1ljuk. A gyakran ism\u00e9tl\u0151d\u0151 vagy hosszadalmas feladatokn\u00e1l jelent\u0151s szerepe van a sebess\u00e9gre val\u00f3 optimaliz\u00e1l\u00e1snak.<\/p>\n<p>Az optimaliz\u00e1l\u00e1s els\u0151 k\u00e9rd\u00e9se, hogy mire optimaliz\u00e1lunk:<\/p>\n<ul>\n<li>Sebess\u00e9gre<\/li>\n<li>Mem\u00f3ria haszn\u00e1latra<\/li>\n<li>Program m\u00e9retre<\/li>\n<li>\u00c1tl\u00e1that\u00f3s\u00e1gra<\/li>\n<\/ul>\n<p>A program tervez\u00e9s\u00e9n\u00e9l mindh\u00e1rom szempontot figyelembe lehet venni, de sok esetben az optimaliz\u00e1l\u00e1s &#8211; egy hat\u00e1ron t\u00fal &#8211; a kiv\u00e1lasztott szempont szerinti teljes\u00edtm\u00e9ny\u00e9nek n\u00f6vel\u00e9s\u00e9t jelenti a t\u00f6bbi rov\u00e1s\u00e1ra.<\/p>\n<p>Az optimaliz\u00e1l\u00e1st mindig a pontos feladatk\u00edr\u00e1ssal \u00e9s a megfelel\u0151 algoritmusok megv\u00e1laszt\u00e1s\u00e1val kell kezdeni.<br \/>\nA p\u00e9ldaprogramunk egy egyszer\u0171 rendez\u0151 algoritmus lesz, mivel azon az elmondottak j\u00f3l bemutathat\u00f3ak. A programok nem egy j\u00f3l haszn\u00e1lhat\u00f3 rendez\u0151algoritmus, hanem egy gondolatmenet bemutat\u00e1s\u00e1ra szolg\u00e1lnak, ez\u00e9rt egy naiv algoritmust v\u00e1lasztunk,\u00a0 mivel abban nagy fejleszt\u00e9si potenci\u00e1l van.<br \/>\n<code><br \/>\nProgram rendez;<br \/>\nUses sysutils;<br \/>\nConst<\/code><\/p>\n<p style=\"padding-left: 10px;\">meret=30000;<\/p>\n<p>Var<\/p>\n<p style=\"padding-left: 10px;\">tomb:array [1..meret] of real; \/\/A rendezend\u0151 t\u00f6mb<br \/>\ntmp:real;<br \/>\ni,j:integer; \/\/Ciklusv\u00e1ltoz\u00f3k<\/p>\n<p>begin<br \/>\nRandomize;<br \/>\n\/\/ A t\u00f6mb felt\u00f6lt\u00e9se v\u00e9letlen sz\u00e1mokkal<br \/>\nFor I:=1 to meret do<br \/>\nBegin<br \/>\ntomb[I]:=random;<br \/>\nEnd;<br \/>\n\/\/A rendez\u00e9s<br \/>\nWriteln (&#8216;Kezd : &#8216;,TimeToStr(time));<br \/>\nFor I:=meret downto 1 do<br \/>\nbegin<br \/>\nFor j:=1 to I-1 do<br \/>\nbegin<br \/>\nIf tomb[j]&lt;tomb[j+1] then<br \/>\nBegin<br \/>\ntmp:=tomb[j];<br \/>\ntomb[j]:=tomb[j+1];<br \/>\ntomb[j+1]:=tmp;<br \/>\nend;<br \/>\nend;<br \/>\nend;<\/p>\n<p>Writeln (&#8216;Vege : &#8216;,TimeToStr(time));<br \/>\nend.<\/p>\n<p>A program a legegyszer\u0171bb bubor\u00e9krendez\u00e9st val\u00f3s\u00edtja meg, mindenf\u00e9le optimaliz\u00e1l\u00e1s n\u00e9lk\u00fcl.<\/p>\n<p>Ha a programot \u00fagy m\u00f3dos\u00edtjuk, hogy kihaszn\u00e1ljuk a m\u00e1r rendezett elemek adta lehet\u0151s\u00e9geket, a program fut\u00e1si idej\u00e9t v\u00e1rhat\u00f3an a fel\u00e9re cs\u00f6kkenthetj\u00fck, azonban a cs\u00f6kken\u00e9s m\u00e9rt\u00e9ke f\u00fcgg a kiindul\u00e1si rendezetts\u00e9gt\u0151l.<\/p>\n<p>Program rendez2;<br \/>\nUses sysutils;<br \/>\nConst<\/p>\n<p>meret=32000;<\/p>\n<p>Var<br \/>\nrendben:boolean;<br \/>\ntomb:array [1..meret] of double; \/\/A rendezend\u0151 t\u00f6mb<br \/>\ntmp:real;<br \/>\ni,j:integer; \/\/Ciklusv\u00e1ltoz\u00f3k<\/p>\n<p>begin<br \/>\nRandomize;<br \/>\n\/\/ A t\u00f6mb felt\u00f6lt\u00e9se v\u00e9letlen sz\u00e1mokkal<br \/>\nFor I:=1 to meret do<br \/>\nBegin<br \/>\ntomb[I]:=random;<br \/>\nEnd;<br \/>\n\/\/A rendez\u00e9s<\/p>\n<p>Writeln (&#8216;Kezd : &#8216;,TimeToStr(time));<br \/>\nFor I:=meret-1 downto 1 do<br \/>\nbegin<br \/>\nJ:=I-1;<br \/>\nrendben:=false;<br \/>\nrepeat<br \/>\nj:=j+1;<br \/>\nIf (tomb[j]&lt;tomb[j+1]) then<br \/>\nBegin<br \/>\ntmp:=tomb[j];<br \/>\ntomb[j]:=tomb[j+1];<br \/>\ntomb[j+1]:=tmp;<br \/>\nend<br \/>\nelse<br \/>\nbegin<br \/>\nrendben:=true;<br \/>\nend;<br \/>\n\/\/\u00a0\u00a0\u00a0 writeln (j);<br \/>\nuntil (j=meret);<br \/>\nend;<br \/>\nWriteln (&#8216;Vege : &#8216;,TimeToStr(time));<\/p>\n<p>end.<\/p>\n<p>Term\u00e9szetesen vannak enn\u00e9l (jelent\u0151sen) hat\u00e9konyabb megold\u00e1sok is, azonban annak bemutat\u00e1s\u00e1ra, hogy j\u00f3zan gondolkod\u00e1ssal egy program fut\u00e1si ideje t\u00f6red\u00e9k\u00e9re cs\u00f6kkenthet\u0151, megfelel.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Az el\u0151z\u0151 r\u00e9szben a Free Pascal ford\u00edt\u00f3 alapvet\u0151 biztons\u00e1gi be\u00e1ll\u00edt\u00e1sait vett\u00fck szem\u00fcgyre. Ez a r\u00e9sz a programok optimaliz\u00e1l\u00e1s\u00e1val foglalkozik. Mivel a Pascal elterjedts\u00e9ge meg sem k\u00f6zel\u00edti a C jelleg\u0171 nyelvek\u00e9t,&hellip;<a href=\"https:\/\/www.itkommando.hu\/site\/a_halozat_szolgalataban\/tanulmanyok\/free-pascal-2\/\" class=\"more-link\"><span class=\"more-button\">Tov\u00e1bb a r\u00e9szletekre<span class=\"screen-reader-text\">Free Pascal 2<\/span><\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":1003,"parent":397,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[68,13,16],"tags":[],"class_list":["post-1239","page","type-page","status-publish","has-post-thumbnail","hentry","category-free-pascal","category-szoftver","category-tanacsok"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.itkommando.hu\/site\/wp-json\/wp\/v2\/pages\/1239","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.itkommando.hu\/site\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.itkommando.hu\/site\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.itkommando.hu\/site\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.itkommando.hu\/site\/wp-json\/wp\/v2\/comments?post=1239"}],"version-history":[{"count":16,"href":"https:\/\/www.itkommando.hu\/site\/wp-json\/wp\/v2\/pages\/1239\/revisions"}],"predecessor-version":[{"id":5601,"href":"https:\/\/www.itkommando.hu\/site\/wp-json\/wp\/v2\/pages\/1239\/revisions\/5601"}],"up":[{"embeddable":true,"href":"https:\/\/www.itkommando.hu\/site\/wp-json\/wp\/v2\/pages\/397"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.itkommando.hu\/site\/wp-json\/wp\/v2\/media\/1003"}],"wp:attachment":[{"href":"https:\/\/www.itkommando.hu\/site\/wp-json\/wp\/v2\/media?parent=1239"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.itkommando.hu\/site\/wp-json\/wp\/v2\/categories?post=1239"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.itkommando.hu\/site\/wp-json\/wp\/v2\/tags?post=1239"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}