Паскал - Pascal

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Паскал (програмски јазик)

Паскал (англиски Pascal) е современ програмски јазик, развиен во 70-тите години на минатиот век. За негов автор се смета швајцарскиот математичар Никлаус Вирт (Niklaus Wirth). Јазикот го добил името по францускиот математичар и хуманист од XVII век Блез Паскал (Blaise Pascal), кој ја конструирал првата машина за сметање.

Паскал е едноставен јазик, лесен за учење, разбирлив и со добра организација. Тој е тесно поврзан со поимот структурно програмирање, бидејќи е прв програмски јазик што овозможува структурно програмирање.

Јазикот Паскал располага со структури што овозможуваат природна логика на програмирање, со што се добиваат добро организирани (структурирани) програми. Тој содржи голем број управувачки наредби и голем број вградени функции и процедури, како и можност за дефинирање сопствени типови податоци од страна на програмерот. Паскал е погоден и за јасно и разбирливо опишување на алгоритми, што овозможува негово користење и во други области, а не само за програмирање.

Денес, Паскал има широка примена. Тој се користи во образованието за изучување на програмирањето како научна дисциплина, за прегледно запишување на разни алгоритми, за решавање на математички и на технички проблеми, за изработка на апликативни програми, за графичка анимација и друго. Мошне погоден е за почетници во програмирањето, бидејќи има многу лесна синтакса и ги содржи сите основни работи што му требаат на еден почетник за да разбере како функционира структурното програмирање, иако нема толку голема примена како некои други јазици (како Це, Јава и др.).


Hello World во Паскал

Hello World е многу прост пример за програма и најчесто е наведена како прва почетничка програма во прирачниците за програмски јазци. Се состои само од најважните елементи без коишто не може да се изврши програмата и печати низа од знаци: „Hello, World!“ (целта може да се постигне и со „Здраво!“, наместо англиското „Hello World“). Вака изгледа Hello World во Паскал:

Код:
program HelloWorld(output);
begin
  writeln('Hello, World!')
end.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Копајки низ компјутеров најдов неколку решени задачи, појма неам кој ги има пишувано, али чим ги ставил јавно на некој сајт/форум се надевам дека не е на одмет да ги постирам и тука.
Доколку авторот на следните кодови е член на форумов нека се јави :)

1. Да се внесат три броја и да се најде најголемиот од нив.
program dejaaan1;
uses wincrt;

var prvbroj,vtorbroj,tretbroj:integer;

begin

write('Prv broj: ');
read(prvbroj);
write('Vtor broj: ');
read(vtorbroj);
write('Tret broj: ');
read(tretbroj);
writeln(' ');

if ((prvbroj>vtorbroj) and (prvbroj>tretbroj)) then
write('Najgolem e prviot broj.');
if ((vtorbroj>prvbroj) and (vtorbroj>tretbroj)) then
write('Najgolem e vtoriot broj.');
if ((tretbroj>prvbroj) and (tretbroj>vtorbroj)) then
write('Najgolem e tretiot broj.');

end.
2. Да се внесе трицифрен број и да се прикаже неговата средна цифра.
Код:
program dejaaan2; 
uses wincrt; 

var broj,x:integer; 

begin 

write('Vnesi tricifren broj: '); 
read(broj); 
writeln(' '); 

if ((broj>999) or (broj<100)) then 
   writeln('Greska! Brojot mora da e tricifren!') 
else 
    begin 
         x:=broj div 10; 
         writeln('Sredna cifra na brojot ',broj,' e ',x mod 10); 
    end 

end.
3. Да се внесе вредност за аголот алфа и да се одреди дали е тап, прав или остар агол.
Код:
program dejaaan3; 
uses wincrt; 

var agol:integer; 

begin 

write('Vnesete vrednost za agolot alfa: '); 
read(agol); 
writeln(' '); 

if agol=90 then 
   writeln('Agolot e prav.') 
else 
    begin 
         if agol<90 then 
            writeln('Agolot e ostar.') 
         else 
             writeln('Agolot e tap.'); 
                              
    end 

end.
4. Да се внесе број помал од 10 и да се провери дали тој број е прост и дали е делив со 2 и 3.
Код:
program dejaaan4; 
uses wincrt; 

var broj:byte; 

begin 

write('Vnesi broj pomal od 10: '); 
read(broj); 
writeln(' '); 

if broj>10 then 
   writeln('Greska! Brojot mora da e pomal od 10!') 
else 
     begin 
          if ((broj=1) or (broj=2) or (broj=3) or (broj=5) or (broj=7)) then 
             writeln('Brojot e prost.') 
          else 
              writeln('Brojot e slozen.'); 
          if broj mod 2=0 then 
             writeln('Brojot e deliv so 2.') 
          else 
              writeln('Brojot ne e deliv so 2.'); 
          if broj mod 3=0 then 
             writeln('Brojot e delliv so 3.') 
          else 
              writeln('Brojot ne e deliv so 3.'); 
     end 

end.
5. Да се внесат 2 броја и еден оператор и да се отпечати резултатот од соодветната операција (+,-,*,/)
Код:
program dejaaan5; 
uses wincrt; 

var x,y:real; 
    operator:char; 

begin 

write('Prv broj: '); 
readln(x); 
write('Vtor broj: '); 
readln(y); 
write('Operator: '); 
readln(operator); 

case operator of 
     '+': writeln('Zbir: ',x+y:5:2); 
     '-': writeln('Razlika: ',x-y:5:2); 
     '*': writeln('Proizvod: ',x*y:5:2); 
     '/': writeln('Kolicnik: ',x/y:5:2); 
     else writeln('Greska.'); 
end; 

end.
6. Да се најде збирот на првите 5 броја
Код:
program dejaaan6; 
uses wincrt; 

var broj,zbir:integer; 

begin 

broj:=1; 
zbir:=0; 

while (broj<=5) do 
      begin 
           zbir:=zbir+broj; 
           broj:=broj+1; 
      end; 
writeln('Zbir: ',zbir); 

end.
7. За внесениот број n да се пресмета вредноста на изразот s=1+1/2+1/3+...+1/n
Код:
program dejaaan7; 
uses wincrt; 

var n,s,broj,x:integer; 

begin 

write('n='); 
readln(n); 
broj:=1; 
s:=0; 

while (broj<=n) do 
      begin 
           x:=1/broj; 
           s:=s+x; 
           broj:=broj+1; 
      end; 

writeln('s=',s); 

end.
8. Да се пресмета аритметичка средина на природните броеви до внесениот број n.
Код:
program dejaaan8; 
uses wincrt; 

var n,broj,zbir:integer; 
    a:real; 

begin 

write('n='); 
readln(n); 
broj:=1; 
zbir:=0; 

while (broj<=n) do 
      begin 
           zbir:=zbir+broj; 
           broj:=broj+1; 
      end; 

a:=zbir/n; 

writeln('Aritmeticka sredina na broevite do ',n,' e: ',a:5:2); 

end.
9. Да се внесе број n и да се пресмета збирот на неговите цифри.
Код:
program dejaaan9; 
uses wincrt; 

var n,broj,zbir,cifra:integer; 

begin 

write('n='); 
readln(n); 
zbir:=0; 
broj:=n; 

while (n<>0) do 
      begin 
           cifra:=n mod 10; 
           n:=n div 10; 
           zbir:=zbir+cifra; 
      end; 

writeln('Zbir na cifrite na brojot ',broj,' e: ',zbir); 

end.
10. Да се внесе број n и да се прикаже колку цифри има.
Код:
program dejaaan10; 
uses wincrt; 

var n,broj,cifri,cifra:integer; 

begin 

write('n='); 
read(n); 
broj:=n; 
cifri:=0; 
writeln(' '); 

while (n<>0) do 
      begin 
           cifra:=n mod 10; 
           n:=n div 10; 
           cifri:=cifri+1; 
      end; 

writeln('Brojot ',broj,' ima ',cifri,' cifri.'); 

end.
http://pascalprogramming.byethost15.com/
http://library.thinkquest.org/27297/
http://www.geocities.com/SiliconVall.../pasles00.html
http://www.taoyue.com/tutorials/pascal/
http://www.algonet.se/~khaan/tutor/index.html
http://www.geocities.com/SiliconVall...444/pstart.htm
 
Член од
25 февруари 2009
Мислења
5
Поени од реакции
0
Еве нешто лично од мене:
Собирање полиноми
Код:
program SobiranjePolinomi;
 var a,b,c: real;
 p:real;
 begin
 WriteLn('Vnesi gi a,b,c');
 Read(a);
 Read(b);
 Read(c);
 p:=a*a+2*a*b+b*b+c*c+2*a*c+2*b*c;
 WriteLn('A*A ',' + ','2*A*B ',' + ','B*B ',' + ','C*C ','2*A*C ',' + ','2*B*C ','= ',a*a:5:2 ,' + ',2*a*b:5:2 ,' + ',b*b:5:2 ,
 ' + ',c*c:5:2 ,'+ ',2*a*c:5:2 ,'+',2*b*c:5:2 ,'=',p:5:2);
 end.
 
Член од
9 јануари 2006
Мислења
5.532
Поени од реакции
7.277
Денес, Паскал има широка примена. Тој се користи во образованието за изучување на програмирањето како научна дисциплина, за прегледно запишување на разни алгоритми, за решавање на математички и на технички проблеми, за изработка на апликативни програми.....
Незнам кој и кога го напишал горнив текст на Wikipedia али она зборче "Денес" ме заинтригира да го побарам текстов на гугл. И гледајки како го спомнува образованието ни, прво што ми текнуе е дека или авторот е вероватно некој метузалем кој држи фотеља у некое школо или недајбоже факултет и после 30 и кусур години стаж освен паскал не ги научил ништо друго или пак е извадок од книга која сеуште се врти по нашево "напредно" школство :) И сеа некој странец со познавање на македонскиот и програмирањето да го прочита ова на вики шо ке си помисли дека кај нас?, дека сеуште се ИН 286ките, 386ките или незнам стварно.....Ок паскалот е основа за "C" и натаке јазиците ама бре Денес еј, земи бирај зборови или воопшто не измислувај топла вода на wiki, земи преведи.
Сaмо краток извадок од англиската верзија за паскал на Wiki:
"Pascal enjoyed great popularity throughout the 1970s and the 1980s"
Крај!
Сеа продужете со кратки паскал програмки да не ви реметам тема, добри се за сите програмери почетници, само ме испровоцира написов на wiki.:smir:
 

Mr.HyPNoTiC

UnTraceable Guest!
Член од
13 ноември 2007
Мислења
1.450
Поени од реакции
239
Еве нешто од мене :P

PHP:
Program BlaBla;
Var  a:real;
Begin
          WriteLn('Vnesete vrednost za agolot:');
          ReadLn(a);
          Case a of
          0..89:WriteLn('Vasiot agol e ostar i negoviot sinus iznesuva: ',sin(a),' a negoviot cosinus iznesuva: ',cos(a));
          90:WriteLn('Agolot e prav i negoviot sinus iznesuva: ',sin(a),' negoviot cosinus e: ',cos(a),' tangensot mu e : ',tg(a),' i negoviot kotangens iznesuva : ',ctg(a));
          90..179:WriteLn('Vasiot agol e tab i tangensot mu iznesuva: ',tg(a),' a kotangensot: ',ctg(a));
          END;
END.
 

Mr.HyPNoTiC

UnTraceable Guest!
Член од
13 ноември 2007
Мислења
1.450
Поени од реакции
239
Па нема врска тектот ... како сакаш така ќе пишуваш :toe:
За тест ја имав задачата :salut:
 

petar_joker

OLD ROCKER
Член од
5 септември 2007
Мислења
1.249
Поени од реакции
57
Не ти е целосна задачава. Треба да има претворање од степени во радијани. И претворање на поголеми агли во интервалот од 0 до п.
 

Mr.HyPNoTiC

UnTraceable Guest!
Член од
13 ноември 2007
Мислења
1.450
Поени од реакции
239
Па еве што ми беше задачата :
Според вредноста на аголот да се пресмета :

  • Ако е остар да се пресмета неговиот Синус и Косинус
  • Ако е тап да се пресмета неговиот Тангенс и Котангенс
  • Ако е прав да се пресмета Синусот,Косинусот,Тангенсот и Котангенсот
 

petar_joker

OLD ROCKER
Член од
5 септември 2007
Мислења
1.249
Поени од реакции
57
Не ме разбра шо сакав да ти кажам. Паскал не може да спресмета агол напишан во степени, туку само во радијани (барем така се сеќавам). И што ако внесиш вредност поголема од 180 степени?
Немам време сега, покасно ќе гледам да ја напишам јас како шо мислам.
 

Mr.HyPNoTiC

UnTraceable Guest!
Член од
13 ноември 2007
Мислења
1.450
Поени од реакции
239
Па прочитај ја задачата ... над 180 е полн агол (незз дали беше така ама не ми се тере во задачата тоа туку само ако е остар,тап и прав) . Инаку е глупав паскалот ...
 

Potato

Cold hearted
Член од
18 мај 2007
Мислења
4.924
Поени од реакции
86
Не мора у радијани бе, мош мора за да најдеш tg, ctg и слично, ама не мора за да го прочиташ аголот.

вака нешто ќе дојде
write('Vnesi go agolot');
readln(a)
и после се следува на обична задача со case of.
 

petar_joker

OLD ROCKER
Член од
5 септември 2007
Мислења
1.249
Поени од реакции
57
Како можам да ја постирам задачава шо ја имам решено во Паскал??
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Како можам да ја постирам задачава шо ја имам решено во Паскал??
Започни да пишуваш пост и во менито на опции ќе забележиж вакво знакче --->
... притисни на него и измеѓу таговите впиши го алгоритмот.

Код:
И тука алгоритмот[code]
 
Г

Грејвдигер

Гостин
Не ти е целосна задачава. Треба да има претворање од степени во радијани. И претворање на поголеми агли во интервалот од 0 до п.
Таман е брат. Програмата ти бара да внесеш колку СТЕПЕНИ е аголот и да ти напише каков е. А за радијани не бара ништо :)
 
Член од
8 ноември 2008
Мислења
13
Поени од реакции
0
здраво,
вака имам турбо паскал 7.0 и ми треба да испринтам програми, ама не сака! ај кој знае нека пише како зашто не сака со file->print:toe:
фала однапред
 

Kajgana Shop

На врв Bottom