Форум Игромании

Форум Игромании (http://forum.igromania.ru/index.php)
-   Программирование (http://forum.igromania.ru/forumdisplay.php?f=243)
-   -   Pascal (http://forum.igromania.ru/showthread.php?t=130838)

Sergey94 05.01.2011 10:33

Pascal/Паскаль
 

Среда программирования Паскаль тоже является одной из самых известных и используемых, преподаваемой во многих вузах и даже некоторых школах.
Наиболее распространенными версиями являются 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




Интересные ссылки по теме:


Ссылки для скачивания
Скрытый текст:
Turbo Pascal 7.0 ~1mb
Turbo Pascal 7.1 ~5.61mb
PascalABC.NET 1.6 + Microsoft .NET Framework v2.0 ~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 ~5.3mb
Скрытый текст:
с официального сайта
Содержит:
* Система программирования PascalABC.NET
* Задачник PT4


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

Kvadratchelu 22.01.2013 20:42

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

Luchs 16.10.2013 14:38

Хай. Уже 2ой день учу паскаль по книге Ушкакова "паскаль для школоты школьников" (free pascal IDE) :) Дошел до " как включить в работу числовые данные". И вот задание:

Выполнять математические действия над целыми числами уже могу но данное задание выполнить не смог. Напишите код или разжуйте пожалуйста. Спс.

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

Цитата:

Сообщение от pokibor (Сообщение 11141631)
Если нужно убедится, было ли что-то присвоено переменной, пути два:

Вот это, спасибо.

Цитата:

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

Добавлено через 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пасибо,язык действительно интересный


Часовой пояс GMT +4, время: 10:14.

Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.