Здравствуйте, гость ( Вход | Регистрация )



Гостевой доступ к форуму из Москвы: Телефоны: +7(495)7859696,7376201,7376233,7868796,7390241 Login: demo Password: demo
 
ОтветитьСоздать новую тему
> Паскаль, Дубль 3
Developer
сообщение Jun 28 2005, 08:34
Сообщение #1


Постоянный пользователь
Group Icon

Группа: Advanced
Сообщений: 412
Регистрация: 23-June 05
Из: Балашиха
Пользователь №: 7
Заходит на форум с гостевика или полного инета.



Паскаль –язык программирования созданный в 1991 году, специально для обучению принципов программирования. Сегодня познакомлю вас с основными аспектами этого языка, и советую сразу же переходить на изучение Delphi. На это есть свои причины: Язык программирования Delphi основан на Object Pascal, который, в свою очередь основана на Pascal, Delphi имеет визуальную среду программирования, что облегчает создание программ для ОС Windows и наконец Delphi намного мощнее Pascal.

Структура программы:
program name; -вместо слова name поставьте любое слово. С этого начинается любое приложение написанное на Pascal. Далее идёт блок var - блок объявления переменных
begin - начало программного кода
...... - ну сам код, конечно.
end. завершаем программу
После каждого оператора ставиться ;
Оператор присваивания :=
также перед begin'ом можно вставить следующие блоки:
label -объявления меток.
const –константы.
type –типы.
var –переменные.
procedure, function -процедуры и функции.


--------------------
"пиво без водки деньги на ветер" ©Star Wars Episode I: Буря в стакане
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
Developer
сообщение Jun 28 2005, 08:37
Сообщение #2


Постоянный пользователь
Group Icon

Группа: Advanced
Сообщений: 412
Регистрация: 23-June 05
Из: Балашиха
Пользователь №: 7
Заходит на форум с гостевика или полного инета.



Создадим нашу первую простейшую программу:
Для начала изучим 2 простейших оператора:
1)Оператор вывода:
write ('');
2)оператор ввода:
read ();
Если вы хотите чтоб после завершения работы оператора курсор переходил на следующую строку то ставьте ln перед оператором(только для операторов ввода\вывода), например: writeln ('');
program chisla;
var
a,b:integer
begin
writeln ('Vvedite 2 4isla:');
readln (a,;
writeln ('1 4islo= ',a,' 2 4islo= ',;
end.
Данная программа просит ввести 2 числа, а затем выводит их на экран.


ПРИМЕЧАНИЕ:
Пару интересных операторов:
abs (x) x-целое абсолютная по модулю величина (x)
sqr (x) x-целое возведение в квадрат
trunc(x) x-вещественное выделение целой части
round (x) x-вещественное округление x до целого числа
succ (x) x-целое следующее за x число
pred (x) x-целое предыдущее за x число
random(x) x-целое генерирует число от 0 до x-1, для работы оператора после begin напишите randomize;


--------------------
"пиво без водки деньги на ветер" ©Star Wars Episode I: Буря в стакане
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
Developer
сообщение Jun 28 2005, 08:39
Сообщение #3


Постоянный пользователь
Group Icon

Группа: Advanced
Сообщений: 412
Регистрация: 23-June 05
Из: Балашиха
Пользователь №: 7
Заходит на форум с гостевика или полного инета.



Представим ситуацию, когда надо вывести дробное число, например 3,48:
тогда пишем:
a:=3,48
writeln (a:4:2);
и так 4- это общее число знаков, а 2- это кол-во позиций после запятой

Основные Операторы:
Дальше я познакомлю вас с основными операторами паскаля:
Оператор Варианта:
1)if <условие> then <оператор> else <оператор>

2)case <ключ выбора> of <список вариантов>
else
<оператор>
end;
case- как вы уже наверное знаете переводиться случай
of- из

Пример программы с использованием оператора Варианта:
Надо ввести 3 числа и найти наименьшее:
program min;
var
a,b,c,min:integer;
var
begin
writeln ('Введите 3 числа:');
readln (a,b,c);
min:=a
if b<min then min:=b
if c<min then min:=c
write ('Наименьшее число= ',min);
end.

Цикл со счётчиком:
for i:=n to m do
begin
<операторы>
end;
for -для
i -счётчик
n -начальное значение
m -конечное значение
do -делать


--------------------
"пиво без водки деньги на ветер" ©Star Wars Episode I: Буря в стакане
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
Developer
сообщение Jun 28 2005, 08:45
Сообщение #4


Постоянный пользователь
Group Icon

Группа: Advanced
Сообщений: 412
Регистрация: 23-June 05
Из: Балашиха
Пользователь №: 7
Заходит на форум с гостевика или полного инета.



Примеры:
1)program cikl;
var
i:integer;
begin
for i:=1 to 10 do
begin
writeln (i);
writeln ('*');
end;
end.

2)program cikl;
var
a,i:integer;
begin
randomize;
for i:=1 to 10 do
begin
a:=random (100)
writeln (i,' число= ',a);
end;
end.

ПРИМЕЧАНИЕ:
для того чтобы уменьшать значения(то есть когда n>m), надо писать не to а downto.
Начальное и конечное значения должны иметь тип Integer
для операторов for.... и if.... :
если после операторов if и for ставится всего 1 оператор то ставить begin и end не обязательно..
И еще в операторе стоящем перед else точка с запятой не ставиться.


Оператор цикла с условием:
repeate
<опраторы>
until <условие>

repeat -повторять
until -до
Данный цикл повторяется пока условие не станет истинным..

Оператор цикла с предусловием:
while <условие> do
begin
<операторы>
end;
while –пока
do -делать
Массивы
Одномерные массивы:
объявляется так: <имя массива>:array [1..n] of <тип эелементов>
Далее небольшие примеры кода для работы с Массивами:


--------------------
"пиво без водки деньги на ветер" ©Star Wars Episode I: Буря в стакане
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
Developer
сообщение Jun 28 2005, 08:46
Сообщение #5


Постоянный пользователь
Group Icon

Группа: Advanced
Сообщений: 412
Регистрация: 23-June 05
Из: Балашиха
Пользователь №: 7
Заходит на форум с гостевика или полного инета.



1)Ввод с клавиатуры:
for i:=1 to n do
begin
writeln ('Введите ',i,'-ый элемент');
readln (a[i]);
end;
2)Задать массив случайным образом:
randomize;
for i:=1 to n do
begin
a[i]:=random (10);
writeln ('a[',i,']=',a[i]);
end;
3)Вывод массива:
for i:=1 to n do
writeln ('a[',i,']= ',a[i]);
4)Расчёт кол-ва элементов меньших t:
t-любое целое число
k:=0;
for i:=1 to n do
begin
if a[i]<t then
k:=k+1
end;
writeln ('кол-во элементов <',t,'= ',k);
5)Подсчёт суммы:
for i:=1 to n do
s:=s+a[i];
writeln ('Сумма элементов= ',s);

Общее для всех элементов у нас будет:
var
a:array [1..n] of integer;
b:array [1..n] of real;

6)Нахождение max и min:
min:=a[1];
max:=a[1];
for i:=1 to n do
begin
if a[i]<min then
min:=a[i];
if a[i]>max then
max:=a[i];
end;
writeln ('max= ',max,'; min= ',min);
7)Запись массива в обратном порядке:
for i:=1 to n\2 do
begin
p:=a[i]
a[i]:=a[n-i+1];
a[n-i+1]:=p;
end;
8)Формирование нового массива из элементов старого:
t-любое число.
k:=0
for i:=1 to n do begin
if a[i]>t then begin
k:=k+1;
c[k]:=a[i];
end;
end.
9)Вставка элементов в массив на j-ое место(например будем вставлять число 10):
for i:=n+1 downto j+1 do
a[i]:=a[i-1];
a[j]:=10;


--------------------
"пиво без водки деньги на ветер" ©Star Wars Episode I: Буря в стакане
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
Developer
сообщение Jun 28 2005, 08:46
Сообщение #6


Постоянный пользователь
Group Icon

Группа: Advanced
Сообщений: 412
Регистрация: 23-June 05
Из: Балашиха
Пользователь №: 7
Заходит на форум с гостевика или полного инета.



Двумерные массивы:
Описание:
<имя массива>:array [кол-во строк] of array [кол-во столбцов] of <тип>;
или
<имя массива>:array [кол-во строк,кол-во столбцов] of <тип>;
по-моему 2 способ более удобнее...

Например:
1)a:array [1..3,1..4] of real;
то есть 3 строки, 4 столбца и тип REAL.
2)program vvod1;
var
a:array [1..3,1..3] of integer;
i,j:integer;
begin
for i:=1 to 3 do -'для строк
for j:=1 to 3 do -'для столбцов
begin
readln (a[i,j]);
writeln ('a[',i,',',j,']=',a[i,j]);
end;
end.

И небольшие заготовки для ваших программ с использованием двумерных массивов:
1)Вывод ввиде таблици:
program vvod2;
var
a:array [1..5,1..5] of real;
i,j:integer;
begin
for i:=1 to 5 do
begin
for i:=1 to 5 do
begin
a[i,j]:=i,j;-'ну иль чё угодно напишите тут
write (a[i,j]:6:2);
end;
writeln;
end;
end.
2)Заполнение случайными числами:
program vvod3;
var
a:array [1..5,1..5] of integer;
i,j:integer;
begin
randomize;
for i:=1 to 5 do
begin
for j:=1 to 5 do
begin
a[i,j]:=random (9);
write (a[i,j]+6);
end;
writeln;
end;
end.
3)Подсчёт суммы элементов:
program summa1;
var
a:array [1..3,1..3] of integer;
s,i,j:integer;
begin
s:=0
randomize;
for i:=1 to 3 do
begin
for j:=1 to 3 do
begin
a[i,j]:=random (9);
s:=s+a[i,j];
write (a[i,j]:4);
end;
А дальше есть не большой выбор действий:
1)writeln;
end;
writeln ('сумма= ',s); -'общая сумма
end.
2)writeln ('Сумма= ',s); -'сумма по каждой строке
writeln;
end;
end.


--------------------
"пиво без водки деньги на ветер" ©Star Wars Episode I: Буря в стакане
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
Developer
сообщение Jun 28 2005, 08:47
Сообщение #7


Постоянный пользователь
Group Icon

Группа: Advanced
Сообщений: 412
Регистрация: 23-June 05
Из: Балашиха
Пользователь №: 7
Заходит на форум с гостевика или полного инета.



ПОД ПРОГРАММЫ:
1)ПРОЦЕДУРЫ:
procedure <имя> var <переменные> <параметры>:<тип>
var
<переменные>
begin
<операторы>
end.
2)Функции:
function <имя> (<переменные>):<тип функции>
var
<переменные>
begin
имя:= результат;
end;

Пример:
program minimum;
var
a,b:integer;
function min(c1,c2:integer):integer;
begin
if c1<c2 then
min:=c1;
else
min:=c2;
end;
begin
writeln ('Введите 2 числа');
readln (a,;
writeln ('наименьшее число',min(a,);
end.

Работа с файлами:
Объявление:
имя: file of тип элемента;
к примеру:
a:file of integer;
Операторы:
1)copy (p1,p2,p3) где
p1-имя строки
p2-номер знака
p3-число копируемых элементов
2)Pos(s1,'<фрагмент>') -поцск фрагмента в строке
3)insert (s1,s2,n) -В S2 вставляем S1, начиная с позиции n
4)delete (s1,n,m) -из s1 удалмть m символов с позиции n
5)assign (f,'Путь+имя файла') -открытие файла.
6)rewrite (f) -открыть файл для записи
7)append (d) -открыть в режиме добавления
8)reset (f) -чтение
9)EOF (f) -проверка на конец файла
10)IORESULT -проверка на правильность операции открытия файла

Примерчик:
program redaktor;
var


--------------------
"пиво без водки деньги на ветер" ©Star Wars Episode I: Буря в стакане
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
Developer
сообщение Jun 28 2005, 08:48
Сообщение #8


Постоянный пользователь
Group Icon

Группа: Advanced
Сообщений: 412
Регистрация: 23-June 05
Из: Балашиха
Пользователь №: 7
Заходит на форум с гостевика или полного инета.



f:file;
ch:char;
st:string;
begin
writeln ('Введите имя файла');
readln (st);
assign (f,st);
writeln ('удалить файл(у); переименовать (п)');
readln (ch)
case ch of
'У';'у':erace (f);
'п';'П':begin
writeln ('Введите новое имя:');
readln (st);
rename (f,st);
end;
end;
end.

Ну и на последок напишем простейшую игру. Цель игры отгадать число от 1 до 9, задуманное компьютером за 5 попыток:
program game007;
var
c,i,n,m:integer;
begin
randomize;
writeln (' Game007 v1.4');
writeln (' newberkyt 2003');
writeln (' All right reserved.');
c:=random(9)+1;
writeln (' Komputer zadumal shislo...');
writeln (' ot 1 do 9');
writeln (' Otgaday.....');
writeln (' y tebya est 5 popitok....');
n:=0;
repeat
n:=n+1;
write (' Vash variant');
readln (i);
if i>c then
writeln (' chislo menshe....')
else
writeln (' shislo bolshe....');
until (n=5) or (c=i);
if c=i then
writeln (' You Win!!!! otvet= ',i)
else
writeln (' Game over, otvet= ',c);
writeln ('E-Mail to:andreyereimn@yandex.ru')
end.


Вот мы вкратце изучили Pascal. Теперь можно смело переходить к изучению Delphi. Т.к. основной синтаксис мы уже изучили, и дальнейшее изучение Delphi будет совсем простым. Удачи вам в этом совсем не лёгком деле.


--------------------
"пиво без водки деньги на ветер" ©Star Wars Episode I: Буря в стакане
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
vadim
сообщение Apr 13 2006, 20:04
Сообщение #9


Постоянный пользователь
****

Группа: Banned
Сообщений: 295
Регистрация: 23-March 06
Пользователь №: 337
Заходит на форум с гостевика.



я ненавижу Pascal хоть он и лёгкий но от одного синего экрана меня выварачивает!!!!!!!(как и Borland Сu++) Гораздо лучше Delphi или Сu++ Builder


--------------------
Изображение
Зайди непожелеешь.........[/url]
Скажи, зачем тебе жена?
Завел бы лучше, милый, кошку.
Ведь кошка - также, как Она
Мила, нежна - все понемножку.

Жена порой "мышей не ловит"
А кошка ловит и с успехом.
онечно, кошка не готовит,
Зато довольна старым мехом.

Пусть не умеет говорить,
Зато отсутствуют запросы..
Опять же, можно отловить,
И наказать, потыкав носом.

ороче, кошка это круче.
Но уверяю вас, друзья
Что кошку трахать несподручно
И целовать ее нельзя.
По следам кровавых мегачоперов.....................
Изображение
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение

ОтветитьСоздать новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия Сейчас: 1st December 2020 - 14:17
 
     
Rambler's Top100 службы мониторинга серверов
Gentoo Powered Lighttpd Powered