PDA

Просмотр полной версии : Pascal


Sergey94
05.01.2011, 10:33
Pascal/Паскаль

http://s43.radikal.ru/i101/1101/78/a261b0f7a5f1.jpg

Описание на Википедии (http://ru.wikipedia.org/wiki/Pascal/)
Зарубежная страница и справочник (http://freepascal.org/docs-html/user/userli1.html#x2-1000/)


Среда программирования Паскаль тоже является одной из самых известных и используемых, преподаваемой во многих вузах и даже некоторых школах.
Наиболее распространенными версиями являются Turbo Pascal 7.0 и Pascal ABC.
На данный момент активно развивается новый проект Pascal ABC.NET!

Пример
uses crt;
const {объявление постоянных, не изменяющихся, переменных}
n=10;
m=1000;
var {объявление переменных}
a:array[1..n] of longint;
i,s:integer;
begin {начало программы}
randomize; s:=0;
for i:=1 to (random(n-2)+2) do {цикл}
begin
a[i]:=random(m);write(a[i],';');s:=s+(a[i] mod 10);{сгенерировали очередной элемент массива и нашли сумму остатков от деления на 10}
end;
writeln; {ушли на новую строку}
writeln(s); {вывели на экран результат}
end. {конец программы.}

http://s52.radikal.ru/i138/1101/5e/f8361c532e0a.jpg (http://s43.radikal.ru/i100/1101/f0/3d1ff36fc5de.jpg)




Интересные ссылки по теме:
http://forum.sources.ru/index.php?showforum=124
http://pascalabc.net
http://borlpasc.narod.ru/prog.htm
http://tpdn.ru/
http://pascalbook.ru/?content=online-book
http://pascalturbo.net/

Ссылки для скачивания
Turbo Pascal 7.0 (http://www.softportal.com/getsoft-2409-borland-turbo-pascal-1.html) ~1mb
Turbo Pascal 7.1 (http://tp7.info/po/turbo_pascal_7_1.exe) ~5.61mb
PascalABC.NET 1.6 + Microsoft .NET Framework v2.0 (http://pascalabc.net/downloads/PascalABCNETWithDotNetSetup.exe) ~98mb с официального сайта
Содержит:
* Система программирования PascalABC.NET
* Задачник PT4
* Платформа Microsoft .NET Framework v2.0 SP2
* WindowsInstaller KB893803 (обновление Windows Installer до версии 3.1)
* Russian Language Pack for .NET v2.0 (русификация сообщений о ошибках времени выполнения)
* Framework Class Library Help (документация для всплывающей подсказки)
* Справка по .NET библиотекам с кодом на PascalABC.NET (chm-файл, 50 Мб)

PascalABC.NET 1.6 (http://pascalabc.net/downloads/PascalABCNETSetup.exe) ~5.3mb с официального сайта
Содержит:
* Система программирования PascalABC.NET
* Задачник PT4


В плане программирования, я думаю, будем стараться объяснить и помочь всем, чем сможем.

Kvadratchelu
22.01.2013, 20:42
имхо, нынче очень мощные позиции становятся у бесплатного Free Pascal, особенно интересна среда Lazarus.

Luchs
16.10.2013, 14:38
Хай. Уже 2ой день учу паскаль по книге Ушкакова "паскаль для школоты школьников" (free pascal IDE) :) Дошел до " как включить в работу числовые данные". И вот задание:
http://s020.radikal.ru/i723/1310/cc/00cd9bbd079f.jpg
Выполнять математические действия над целыми числами уже могу но данное задание выполнить не смог. Напишите код или разжуйте пожалуйста. Спс.

adVISeR
16.10.2013, 20:24
Luchs
C:= A;
A:= B;
B:= C;

Luchs
16.10.2013, 20:30
adVISeR, а без введения 3ей переменной?
Сори за параллельное обсуждение проблемы

Анкар
16.10.2013, 23:15
Luchs, есть один способ с побитовым XOR, но он плохой, не трогай его. И еще с использованием арифметики, но он не универсальный.

Keltar
17.10.2013, 00:00
Luchs,
А:=А+В;
В:=А-В;
А:=А-В;

вроде так.

Luchs
17.10.2013, 00:11
Keltar, спасибо! Задачка решена! :)

adVISeR
17.10.2013, 02:05
Luchs, не советую такой метод использовать вообще, создаёт головную боль тем, кто будет читать этот код. В наше время экономия памяти на одной числовой переменной это ничто.

Льюс Терин
21.10.2013, 08:52
Пацаны, каким оператором проверить имеет переменная какое либо значение или нет?

pokibor
21.10.2013, 13:16
nosikamus, что за странный вопрос? Переменная не может не иметь значения. Если не ошибаюсь, в Паскале всем переменным при объявлении присваивается значение по умолчанию (например, для целочисленного типа - 0 и т.п.). В иных языках (например, C), если переменная не инициализирована, у нее может быть какое угодно значение.
Если речь идёт о ссылочной переменной, то о том, что переменная не содержит ссылки. символизирует особое значение. В Паскале, если не ошибаюсь, оно зовётся nil.
Если нужно убедится, было ли что-то присвоено переменной, пути два:
1) инициализировать её со значением, которое не может быть присвоено по логике программы, и проверять потом на равенство этому значению;
2) выделить отдельную булеву переменную, инициализировать ее значением false и ставить в true одновременно с присваиванием значения нужной переменной.

Объектно-ориентированное программирование даёт ряд дополнительных возможностей, но это уже другая история.

Льюс Терин
21.10.2013, 13:27
Если нужно убедится, было ли что-то присвоено переменной, пути два:
Вот это, спасибо.

Объектно-ориентированное программирование даёт ряд дополнительных возможностей, но это уже другая история.
Добавлено через 30 секунд
Ну мне для делфи вообще нужно, я трэдом ошибся.

Влад В В
19.12.2013, 23:10
Парни, есть написанная программа. Нужно найти точки пересечения с осью Ox.
Program parabola;
uses GraphABC;
Var i,x0,y0,x1,y1,k,x1a,y1a: integer;
x,y,x2,y2: real;
Begin
setWindowSize(640,400);
x0:=320; y0:=360; k:=25;
line(x0,20,x0,380); line(20,y0,620,y0);
line(x0,20,x0-10,30); line(x0,20,x0+10,30);
line(630,y0,620,y0-10); line(630,y0,620,y0+10);
for i:=-5 to 5 do
begin
line(x0+(i*k),y0-10,x0+(i*k),y0+10);
textout(x0+(i*k),y0+10,inttostr(i));
end;
for i:=-5 to 5 do
begin
line(x0-10,y0+(i*k),x0+10,y0+(i*k));
if i<>0 then textout(x0+10,y0+(i*k),inttostr(-i));
end;

setPenColor(cllime);
x:=-10;
While x<=10 do
begin
y:=sqr(x)*x+3*(sqr(x))-9*x-5+cos(x);

x1:=trunc(x0+x*k); y1:=trunc(y0-y*k);
circle(x1,y1,2);
x:=x+0.01;
end;

End.

И вот вопрос в чём. Можно ли вывести точки пересечения на самом графике?

Льюс Терин
20.12.2013, 09:31
Влад В В, Находишь координаты пересечения и рисуешь точку, не? Y тебе уже известен.

Flvcko
14.01.2014, 13:14
Сегодня начали изучать этот язык)

Hast
21.01.2014, 02:18
igroman_96ru, сердечно поздравляю.

Flvcko
22.01.2014, 13:48
Hast, cпасибо,язык действительно интересный