В этом уроке мы напишем самую простую программу, состоящую всего из пяти строк. Эта программа будет выводить сообщение на экран. Для написания программы нам необходимо знать как работают операторы Write, Readln, а также понять для чего нужны зарезервированные в Паскаль слова Program, Begin, End.
В строке №1 записывается заголовок программы. Все программы, написанные на языке Pascal, начинаются со служебного слова program. Слово program зарезервировано в Pascal, т.е. оно может использоваться только для объявления имени программы. Далее, через пробел записывается название программы, которое мы придумываем сами. Для примера назовем нашу первую программу «number1». В конце первой строки ставится точка с запятой.
Строка №2. Тело программы начинается с зарезервированного в Pascal слова begin. После него не ставится точка с запятой. Заканчивается программа зарезервированным словом end. (строка №5). После слова end ставится точка. Конструкция begin…end является разделом операторов. Внутри этого раздела находятся операторы, которые будут выполняться программой. В любой программе должны присутствовать слова begin…end.
В строке №3 записывается первый оператор, который будет выполнять программа. Оператор Write служит для вывода на экран какого-либо сообщения. Текст этого сообщения записывается после слова Write, заключается в круглые скобки и в апострофы. В конце обязательна точка с запятой (все операторы в программе должны отделяться друг от друга точкой с запятой). Таким образом, в результате работы оператора Write на экран будет выведено сообщение «Привет.»
В строке №4 записывается оператор readln. Этот оператор служит для задержки экрана, чтобы мы могли увидеть результаты выполнения программы на экране. Если его не использовать, то после того как программа будет выполнена экран сразу свернется и мы не успеем увидеть выводимое на экран сообщение. Кстати, оператор Readln можно не использовать. А для того чтобы увидеть результаты выполнения программы можно нажать Alt+F5. После оператора Readln у нас не стоит точка с запятой т. к. далее идет оператор end. (перед End. точка с запятой не обязательна). Теперь наберем нашу программу в Паскале.
Сохраним, нажав F2 (или в командной строке File-Save) и запустим ее, нажав Ctrl+F9 (либо в панели команд Run-Run).
Получим следующий результат.
Самая нижняя строка и есть наш результат.
Теперь нажмем Enter (для завершения выполнения программы) и еще раз запустим программу.
Получим следующий результат.
Этим примером я хочу показать Вам, что каждый раз при запуске программы старые результаты программы тоже будут выводиться на экран. Для того чтобы этого избежать, используется оператор очистки экрана clrscr (сокращенно от англ. Clear Screen (очистить экран)), который ставится вначале программы после слова begin. Для того чтобы этот оператор работал необходимо подключить модуль CRT с помощью команды USES.
Программа будет выглядеть так:
Заметьте, что после Uses Crt и после Clrscr ставится точка с запятой.
После запуска (ctrl+F9) окно вывода сообщения будет иметь вид:
Дополнение к материалу.
1. Программа, запущенная в Free Pascal обрабатывается какое-то количество времени. Поэтому после запуска необходимо подождать несколько секунд. Вы увидите сообщение о том, что выполняется программа, а через несколько секунд (1-20) увидите результат выполнения программы.
2. При запуске программ, которые должны выводить на экран текст на русском языке может возникнуть проблема с кодировкой. В консольном окне вы увидите непонятные символы. Для того чтобы этого избежать небходимо кликнуть правой кнопкой мыши по верхней части консольного окна (там, где написано C:\FPC\2.2.2\bin\i386-win32\fp.exe), выбрать «Свойства» и перейти на вкладку «Шрифт». Здесь выбираем «точечные шрифты» и нажимаем Ok.
3. Компилятору Pascal абсолютно безразлично какими буквами Вы будете набирать программу, заглавными или строчными, т.е. регистр при наборе программ роли не играет.
4. Имя программы (в нашем случае «number1») не играет какой-либо роли в программе, поэтому не обязательно объявлять имя программы с помощью слова «Program». Таким образом, первую строку программы можно не писать и это никак не повлияет на работу программы.
5. Как уже было сказано, слово «Program» является зарезервированным словом в Pascal. Зарезервированные слова можно использовать только по их прямому назначению. При наборе программ в редакторе Pascal все зарезервированные слова подсвечиваются белым цветом. Название программы «number1» является идентификатором (именем). Идентификаторы – это последовательности символов, которые придумывает сам программист. В нашем примере нам необходимо было придумать название программы. При написании идентификаторов используются определенные правила:
Комментарии
АХАХАХАХАХАХАХ АХАХАХАХАХАХАХА Х
И не только...
var x,y: integer;
var z: complex;
begin
x:=2;
y:=3;
z:=((x,3)/9+(y*x,2))*99/y+x;
writeln(z,' ');
end.
Векторы и матрицы
Дан вектор А, состоящий из 12 вещественных чисел. Оставить его без изменения, если он упорядочен по возрастанию или по убыванию. В противном случае удалить те элементы А, порядковые номера которых кратны трём, сохранив прежним порядок оставленных членов.
А={-1.5,2.9,3.2 ,-0.6,5.4,0.7,- 4.1 ,8.3,7.2,-2.9,- 1.3,6.5}
uses crt;
const
n_max = 100;
var
a: array[1..n_max] of integer;
n, m, i, j, q, pos: integer;
t: boolean;
max, tmp: integer;
begin
write('Введите размерность массива: ');
readln(n);
WriteLn ('Введите элементы массива');
for i := 1 to n do
begin
a := -n_max div 2 + n_max;
write('A[',i,'] = ');
ReadLn (A);
if a > max then
begin
max := a;
pos := i;
end;
end;
writeln;
i := 1;
while (i < n) and not t do
begin
if a < a[i + 1] then
t := true;
inc(i);
end;
for j := 1 to n - 1 do
for q := j + 1 to n do
if a[j] > a[q] then
begin
tmp := a[j];
a[j] := a[q];
a[q] := tmp;
end;
writeln('Отсорт ированный массив: ');
for i := 1 to n do
write(a:5);
end.
Вот один не плохой форум: http://www.cyberforum.ru/
Желаю удачки тебе! Творческих успехов
pascal-abc.ru
uses Crt;
Uses Dos;
CONST
days:ARRAY [0..6] of string [11] = ('Voskr.', 'Ponedel.', 'Vtornik', 'Sreda', '4etverg', 'Pyatnica', 'Subbota');
VAR
year, month, day, day_of_week : WORD;
VAR hour, minute, second, hund : WORD;
BEGIN
Writeln ('_________________________________________');
Writeln ('------------- --------------- -------------') ;
ClrScr;
Write('Cleared Screen!');
PROCEDURE Get_Date;
BEGIN
GetDate (year, month, day, day_of_week);
Writeln ('Segodnya: ', days[day_of_wee k], ',', day,'/', month,'/',year);
Writeln ('------------- --------------- -------------') ;
END;
PROCEDURE Set_Date;
BEGIN
Writeln('Vvedit e daty: ');
Readln(day, month, year);
SetDate (year, month, day);
Writeln ('_________________________________________');
Writeln ('------------- --------------- -------------') ;
END;
PROCEDURE Get_Time;
BEGIN
GetTime (hour, minute, second, hund);
Writeln ('Sey4as: ', hour,':', minute,':', second,':', hund);
Writeln ('------------- --------------- -------------') ;
END;
PROCEDURE Set_Time;
BEGIN
Writeln ('Vvedite vremya');
Readln(hour, minute, second, hund);
SetTime(hour, minute, second, hund);
END;
BEGIN
Get_Date;
Set_Date;
Get_Time;
Set_Time;
Get_Time;
Writeln ('OK!');
Writeln;
Writeln ('Najmite Enter dlya vihoda ...');
Readln;
End.
Error: Identifier not found "readIn"
гуглил не помогло, не смог найти причины...
Тогда заработает. Я так думаю.
var
p7, p4, p1, p8, p5, p2, p9, p6, p3, st1, st2, st3, vod1, vod2, ind,ind2,pam, shet, shet1: integer;hod, ris1, ris2, ris3, ris4, ris5, ris6, ris7, ris8, ris9: string;
begin
write('Игра башня!');
writeln('Цель игры:пирамидку из левой части перетащить в правую!');
writeln('Как играть! Вы вводите два числа от 1 до 3. ПЕРВОЕ число означает столбец откуда будет взята часть. ВТОРОЕ число означает в какой столбец будет положена.');
ind2:=1;
while ind2=1 do
begin
shet:=0;
ris1 := '(0000)';ris2 := '__|__ ';ris3 := '__|__ ';ris4 := ' (00) ';ris5 := ' | ';ris6 := ' | ';ris7 := ' () ';ris8 := ' | ';ris9 := ' | ';
p1 := 4;p2 := 0;p3 := 0;p4 := 2;p5 := 0;p6 := 0;p7 := 1;p8 := 0;p9 := 0;
writeln('Начнем !');
writeln(' () | | ');
writeln(' (00) | | ');
writeln('(0000) __|__ __|__ ');
writeln(' 1 2 3 ');
writeln();
ind:=0;
while ind = 0 do
begin
st1 := p7 + p4 + p1;
st2 := p8 + p5 + p2;
st3 := p9 + p6 + p3;
vod1 := 0;
vod2 := 0;
writeln('Вводит е ПЕРВОЕ число!');
while (vod1 > 3) or (vod1 = 0) do
begin
if vod1 > 3 then writeln('Число должно быть от 1 до 3,вводите еще раз.');
readln(vod1);
end;
writeln('Вводит е ВТОРОЕ число!');
while (vod2 > 3) or (vod2 = 0) or (vod2 = vod1) do
begin
if (vod2 > 3) or (vod1 = vod2) then writeln('Число должно быть от 1 до 3 и не равно 1 числу,вводите еще раз.');
readln(vod2);
end;
case vod1 of
1:
begin
case st1 of
1:
begin
if (vod2 = 2) then
case st2 of
0: begin p2 := p1;p1 := 0;shet := shet + 1; end;
2: begin p5 := p1;p1 := 0;shet := shet + 1; end;
4: begin p5 := p1;p1 := 0;shet := shet + 1; end;
6: begin p8 := p1;p1 := 0;shet := shet + 1; end;
end;
if (vod2 = 3) then
case st3 of
0: begin p3 := p1;p1 := 0;shet := shet + 1; end;
2: begin p6 := p1;p1 := 0;shet := shet + 1; end;
4: begin p6 := p1;p1 := 0;shet := shet + 1; end;
6: begin p9 := p1;p1 := 0;shet := shet + 1; end;
end;
end;
2:
begin
if (vod2 = 2) then
case st2 of
0: begin p2 := p1;p1 := 0;shet := shet + 1; end;
1: begin writeln('Нельзя так!'); end;
4: begin p5 := p1;p1 := 0;shet := shet + 1; end;
5: begin writeln('Нельзя так!'); end;
end;
if (vod2 = 3) then
case st3 of
0: begin p3 := p1;p1 := 0;shet := shet + 1; end;
1: begin writeln('Нельзя так!'); end;
4: begin p6 := p1;p1 := 0;shet := shet + 1; end;
5: begin writeln('Нельзя так!'); end;
end;
end;
3:
begin
if (vod2 = 2) then
case st2 of
0: begin p2 := p4;p4 := 0; shet := shet + 1; end;
4: begin p5 := p4;p4 := 0;shet := shet + 1; end;
end;
if (vod2 = 3) then
case st3 of
0: begin p3 := p4;p4 := 0;shet := shet + 1; end;
4: begin p6 := p4;p4 := 0;shet := shet + 1; end;
end;
end;
4:
begin
if (vod2 = 2) then
case st2 of
0: begin p2 := p1;p1 := 0;shet := shet + 1; end;
1: begin writeln('Нельзя так'); end;
2: begin writeln('Нельзя так'); end;
3: begin writeln('Нельзя так'); end;
end;
if (vod2 = 3) then
case st3 of
0: begin p3 := p1;p1 := 0;shet := shet + 1; end;
1: begin writeln('Нельзя так'); end;
2: begin writeln('Нельзя так'); end;
3: begin writeln('Нельзя так'); end;
end; end;
5:
begin
if (vod2 = 2) then
case st2 of
0: begin p2 := p4;p4 := 0; shet := shet + 1; end;
2: begin p5 := p4;p4 := 0;shet := shet + 1; end;
end;
if (vod2 = 3) then
case st3 of
0: begin p3 := p4;p4 := 0; shet := shet + 1; end;
2: begin p6 := p4;p4 := 0; shet := shet + 1; end;
end; end;
6:
begin
if (vod2 = 2) then
case st2 of
0: begin p2 := p4;p4 := 0;shet := shet + 1; end;
1: begin writeln('Нельзя так'); end;
end;
if (vod2 = 3) then
case st3 of
0: begin p3 := p4;p4 := 0;shet := shet + 1; end;
1: begin writeln('Нельзя так'); end;
end; end;
7:
begin
if (vod2 = 2) then begin p2 := p7;p7 := 0;shet := shet + 1; end; if (vod2 = 3) then begin p3 := p7;p7 := 0; shet := shet + 1; end;
end;end; end;
2:
begin
case st2 of
1:
begin
if (vod2 = 1) then
case st1 of
0: begin p1 := p2;p2 := 0;shet := shet + 1; end;
2: begin p4 := p2;p2 := 0; shet := shet + 1; end;
4: begin p4 := p2;p2 := 0;shet := shet + 1; end;
6: begin p7 := p2;p2 := 0;shet := shet + 1; end;
end;
if (vod2 = 3) then
case st3 of
0: begin p3 := p2;p2 := 0;shet := shet + 1; end;
2: begin p6 := p2;p2 := 0;shet := shet + 1; end;
4: begin p6 := p2;p2 := 0;shet := shet + 1; end;
6: begin p9 := p2;p2 := 0;shet := shet + 1; end;
end; end;
2:
begin
if (vod2 = 1) then
case st1 of
0: begin p1 := p2;p2 := 0;shet := shet + 1; end;
1: begin writeln('Нельзя так!'); end;
4: begin p4 := p2;p2 := 0;shet := shet + 1; end;
5: begin writeln('Нельзя так!'); end;
end;
if (vod2 = 3) then
case st3 of
0: begin p3 := p2;p2 := 0;shet := shet + 1; end;
1: begin writeln('Нельзя так!'); end;
4: begin p6 := p2;p2 := 0;shet := shet + 1; end;
5: begin writeln('Нельзя так!'); end;
end; end;
3:
begin
if (vod2 = 1) then
case st1 of
0: begin p1 := p5;p5 := 0;shet := shet + 1; end;
4: begin p4 := p5;p5 := 0;shet := shet + 1; end;
end;
if (vod2 = 3) then
case st3 of
0: begin p3 := p5;p5 := 0;shet := shet + 1; end;
4: begin p6 := p5;p5 := 0;shet := shet + 1; end;
end; end;
4:
begin
if (vod2 = 1) then
case st1 of
0: begin p1 := p2;p2 := 0;shet := shet + 1; end;
1: begin writeln('Нельзя так'); end;
2: begin writeln('Нельзя так'); end;
3: begin writeln('Нельзя так'); end;
end;
if (vod2 = 3) then
case st3 of
0: begin p3 := p2;p2 := 0;shet := shet + 1; end;
1: begin writeln('Нельзя так'); end;
2: begin writeln('Нельзя так'); end;
3: begin writeln('Нельзя так'); end;
end; end;
5:
begin
if (vod2 = 1) then
case st1 of
0: begin p1 := p5;p5 := 0;shet := shet + 1; end;
2: begin p4 := p5;p5 := 0;shet := shet + 1; end;
end;
if (vod2 = 3) then
case st3 of
0: begin p3 := p5;p5 := 0;shet := shet + 1; end;
2: begin p6 := p5;p5 := 0;shet := shet + 1; end;
end; end;
6:
begin
if (vod2 = 1) then
case st1 of
0: begin p1 := p5;p5 := 0;shet := shet + 1; end;
1: begin writeln('Нельзя так'); end;
end;
if (vod2 = 3) then
case st3 of
0: begin p3 := p5;p5 := 0;shet := shet + 1; end;
1: begin writeln('Нельзя так'); end;
end; end;
7:
begin
if (vod2 = 1) then begin p1 := p8;p8 := 0;shet := shet + 1; end;if (vod2 = 3) then begin p3 := p8;p8 := 0;shet := shet + 1; end;
end;end; end;
3:
begin
case st3 of
1:
begin
if (vod2 = 1) then
case st1 of
0: begin p1 := p3;p3 := 0;shet := shet + 1; end;
2: begin p4 := p3;p3 := 0; shet := shet + 1; end;
4: begin p4 := p3;p3 := 0;shet := shet + 1; end;
6: begin p7 := p3;p3 := 0;shet := shet + 1; end;
end;
if (vod2 = 2) then
case st2 of
0: begin p2 := p3;p3 := 0;shet := shet + 1; end;
2: begin p5 := p3;p3 := 0; shet := shet + 1; end;
4: begin p5 := p3;p3 := 0;shet := shet + 1; end;
6: begin p8 := p3;p3 := 0;shet := shet + 1; end;
end; end;
2:
begin
if (vod2 = 1) then
case st1 of
0: begin p1 := p3;p3 := 0;shet := shet + 1; end;
1: begin writeln('Нельзя так!'); end;
4: begin p4 := p3;p3 := 0;shet := shet + 1; end;
5: begin writeln('Нельзя так!'); end;
end;
if (vod2 = 2) then
case st2 of
0: begin p2 := p3;p3 := 0;shet := shet + 1; end;
1: begin writeln('Нельзя так!'); end;
4: begin p5 := p3;p3 := 0;shet := shet + 1; end;
5: begin writeln('Нельзя так!'); end;
end; end;
3:
begin
if (vod1 = 1) then
case st1 of
0: begin p1 := p6;p6 := 0;shet := shet + 1; end;
4: begin p4 := p6;p6 := 0;shet := shet + 1; end;
end;
if (vod2 = 2) then
case st2 of
0: begin p2 := p6;p6 := 0;shet := shet + 1; end;
4: begin p5 := p6;p6 := 0;shet := shet + 1; end;
end; end;
4:
begin
if (vod2 = 1) then
case st1 of
0: begin p1 := p3;p3 := 0;shet := shet + 1; end;
1: begin writeln('Нельзя так'); end;
2: begin writeln('Нельзя так'); end;
3: begin writeln('Нельзя так'); end;
end;
if (vod2 = 2) then
case st2 of
0: begin p2 := p3;p3 := 0;shet := shet + 1; end;
1: begin writeln('Нельзя так'); end;
2: begin writeln('Нельзя так'); end;
3: begin writeln('Нельзя так'); end;
end; end;
5:
begin
if (vod2 = 1) then
case st1 of
0: begin p1 := p6;p6 := 0;shet := shet + 1; end;
2: begin p4 := p6;p6 := 0;shet := shet + 1; end;
end;
if (vod2 = 2) then
case st2 of
0: begin p2 := p6;p6 := 0;shet := shet + 1; end;
2: begin p5 := p6;p6 := 0;shet := shet + 1; end;
end; end;
6:
begin
if (vod2 = 1) then
case st1 of
0: begin p1 := p6;p6 := 0;shet := shet + 1; end;
1: begin writeln('Нельзя так'); end;
end;
if (vod2 = 2) then
case st2 of
0: begin p2 := p6;p6 := 0;shet := shet + 1; end;
1: begin writeln('Нельзя так'); end;
end; end;
end;
end;
end;
if p1 = 1 then ris1 := ' () ';
if p2 = 1 then ris2 := ' () ';
if p3 = 1 then ris3 := ' () ';
if p4 = 1 then ris4 := ' () ';
if p5 = 1 then ris5 := ' () ';
if p6 = 1 then ris6 := ' () ';
if p7 = 1 then ris7 := ' () ';
if p8 = 1 then ris8 := ' () ';
if p9 = 1 then ris9 := ' () ';
if p1 = 2 then ris1 := ' (00) ';
if p2 = 2 then ris2 := ' (00) ';
if p3 = 2 then ris3 := ' (00) ';
if p4 = 2 then ris4 := ' (00) ';
if p5 = 2 then ris5 := ' (00) ';
if p6 = 2 then ris6 := ' (00) ';
if p1 = 4 then ris1 := '(0000)';
if p2 = 4 then ris2 := '(0000)';
if p3 = 4 then ris3 := '(0000)';
if p1 = 0 then ris1 := '__|__ ';
if p2 = 0 then ris2 := '__|__ ';
if p3 = 0 then ris3 := '__|__ ';
if p4 = 0 then ris4 := ' | ';
if p5 = 0 then ris5 := ' | ';
if p6 = 0 then ris6 := ' | ';
if p7 = 0 then ris7 := ' | ';
if p8 = 0 then ris8 := ' | ';
if p9 = 0 then ris9 := ' | ';
writeln(ris7, ris8, ris9);
writeln(ris4, ris5, ris6);
writeln(ris1, ris2, ris3);
writeln('');
st3 := p9 + p6 + p3;
if st3 = 7 then
begin
writeln('ВЫ ПОБЕДИТЕЛЬ!!!') ;
shet1 := shet mod 10;
case shet1 of
1:hod:=' ход.';
2, 3, 4: hod:=' хода.';
5, 6, 7, 8, 9: hod:=' ходов.';
end;
writeln('Было сделано ', shet,hod);
shet1 := pam mod 10;
case shet1 of
1:hod:=' ход.';
2, 3, 4: hod:=' хода.';
end;
if pam>0 then
begin
if pamshet then writeln('В этот раз было лучше.До этого было ',pam,hod);
if pam=shet then writeln('Число ходов не отличается от того что было.');
end;
pam:=shet;
ind := 2;
writeln('Хотите сыграть еще раз?');
writeln('Да-1') ;
writeln('Нет-2' );
readln(ind2);
end;
end;
end;
end.
if pam=shet then writeln('В этот раз было лучше.До этого было ',pam,hod);
if pamshet then writeln('Число ходов не отличается от того что было.');
а надо :
if pam=shet then writeln('В этот раз было лучше.До этого было ',pam,hod);
if pam=shet then writeln('Число ходов не отличается от того что было.');
Теперь я должен заново все начинать =).
Var x,y,z,Y,C :integer;
Begin
readln (x,y,z);
x:= 1.825;y:= -18.225; z:= -3.298; Y:= Abc(Sqr Sqr(y/x))- exp(1/3*Ln(y/x));
C:= (y-x)y-z/(y-x)/1+(y-Sqr(x))
writeln (x,y,z,Y,C)
end
Var x,g,z,Y,C :real;
Begin
x:= 1.825;g:= -18.225; z:= -3.298; Y:=(Sqr(g/x))- exp(1/3*Ln(g/x));
C:= (g-x)*y-z/(g-x)/1+(g-Sqr(x));
writeln(x,g,z,Y,C);
readln (x,g,z)
end.
begin
read (a,b);
writeln (a/b);
end.