Перейти на главную страницу
abs(x) |
Абсолютное значение х, т.е. х |
exp(x) |
Значением функции является е в степени х. |
sin(x) и cos(x) |
Значение синуса или косинуса х, х должен задаваться в радианах. |
arctan(x) |
Арктангенс х. |
ln(x) |
Натуральный логарифм х (х>0) |
sqr(x) |
Квадрат х. |
sqrt(x) |
Квадратный корень из х. |
random(x) |
Случайное число из диапазона 0<=...< x |
Pi |
Значение пи. |
odd(x) |
Значение функции true, если х нечетен, и false в противном случае. |
inc(x,n) |
Значением является х увеличенное на n. |
dec(x,n) |
Значением является х уменьшенное на n. |
int(x) |
Целая часть числа х. |
frac(x) |
Дробная часть числа х. |
trunc(x) |
Целая часть в форме longint. |
round(x) |
Значение х округленное до следующего целого числа. |
2) * / DIV (деление нацело)
MOD (получение остатка от деления)
3) + -
VAR a,b : integer;
r,s : integer;
............................
r:=a div b; {r=3 при a=7, b=2}
r:= a mod b; {r=1 при a=7,b=2}
s:=a*b;
s:=a div b;
VAR a,b : integer;
r : integer;
r:=a/b; {если результат объявлен как целочисленный, нельзя использовать наклонную черту деления}
VAR a,b : real;
r : integer;
.................
r:=a div b; { нельзя использовать операцию div для вещественных чисел}
r:=a mod b; { операция mod используется только по отношению к целым числам}
VAR a,b : integer;
r : real;
....................
r:=a div b; {r должно быть целым}
Слева по отношению к оператору присваивания должен стоять более широкий тип.
VAR a : integer;
b : real;
c : real;
...........
c:=a+b {правильно}
a:=c+b; {неправильно}
Примеры: 23 div 5 = 4 23 mod 5 = 3
16 div 4 = 4 16 mod 4 = 0
5 div 8 = 0 5 mod 8 = 5
37 div 10 = 3 37 mod 10 = 7
Определить количество слив, если их делили на 5 человек:
write (‘Кол-во слив = ');
readln (a);
b:= a mod 5;
writeln(‘Осталось ‘,b,’ слив’);
Определить сколько попугаев уберется на удаве, если длина удава b, а длина попугая а.
write ('a='); readln (a);
write ('b='); readln (b);
c:= b div a;
writeln ('Поместится', с, ‘попугаев');
В любом выражении, если один или более операндов имеют вещественный тип, то результат будет так же вещественного типа. Операнды операторов div и mod всегда должны быть целого типа.
При вычислении выражений принят следующий приоритет: 1) *, /, div, mod; 2) +, -. порядок выполнения операций регулируется с помощью скобок. В Turbo Pascal нет операции возведения в степень.
Задание: Внести в программу составленную ранее необходимые изменения для высчитывания целой части от деления и остатка от деления первого числа на второе и вывода этих результатов на экран. а так же вывода на экран информации вида: a=b*c +r, где a – первое число, b – второе число, c – частное, r – остаток.
Целочисленное деление.
> - больше;
= - равно;
<> - не равно;
>= - больше или равно;
Функции:
abs (x) – модуль числа х, тип результата совпадает с типом аргумента;
sqr (x) – квадрат числа х, тип результата совпадает с типом аргумента;
sqrt (x) – квадратный корень из числа х, аргумент и результат должны иметь вещественный тип;
Пример: вычислить гипотенузу прямоугольного треугольника, если длина катетов a и b.
write ('a='); readln (a);
write ('b='); readln (b);
c:= sqrt (sqr(a) + sqr(b) );
writeln ('c=', с:5:2);
Вычислить модуль разности чисел a и b.
write ('a='); readln (a);
write ('b='); readln (b);
c:= abs (a - b);
writeln ('модуль=', с);
Тригонометрические функции:
sin (x) – синус числа х, выраженного в радианах, аргумент и результат должны иметь вещественный тип;
cos (x) – косинус числа х, выраженного в радианах, аргумент и результат должны иметь вещественный тип;
arctan (x) – арктангенс числа х, результат будет выражен в радианах, аргумент должен быть вещественного типа;
Пример: вычислить синус, косинус, тангенс и котангенс угла 30.
a:=Pi/180*30;
s:=sin(a); c:=cos(a);
t:=s/c; ct:=c/s;
Экспонента и логарифм:
exp (x) – ех, аргумент и результат должны иметь вещественный тип;
ln (x) – натуральный логарифм числа х, аргумент и результат должны иметь вещественный тип;
exp (b*ln(a)) – степень числа, где а основание, а b показатель степени, т.е. ab.
Примеры вычисления степени:
(x-3)7 exp(7*ln(x-3))
2x exp(x*ln2)
Преобразование типов:
Round (x) – перевод дробного числа в целое с округлением;
Tranc (х) – перевод дробного числа в целое отбрасыванием дробной части.
Примеры преобразования типов:
a1:=Round(2.34); а1=2
a2:=Trunc(2.34); а2=2
b1:=Round(8.51); b1=9
b2:=Trunc(8.51); b1=8
c1:=Round(-3.7); c1=-4
frac (x) – дробная часть числа х, аргумент и результат должны иметь вещественный тип;
Изменение аргумента:
inc (x) – увеличение числа х на единицу, аргумент и результат должны быть целого типа;
inc (x, a) – увеличение числа х на число а, оба аргумента и результат должны быть целого типа;
dec (x) – уменьшение числа х на единицу, аргумент и результат должны быть целого типа;
dec (x, a) – уменьшение числа х на число а, оба аргумента и результат должны быть целого типа.
Генерация случайных чисел:
Randomize – установка датчика случайных чисел в исходное состояние;
Random - формирование случайного дробного числа из диапазона от 0 до 1.
Примеры получения дробных случайных чисел:
Case Key of
75 : Left;
77 : Right;
72 : Up;
80 : Down;
End;
Until Key=#27;
Lowvideo – символы выводятся на экран с пониженной яркостью.
Условия в Turbo Pascal. Виды условий.
Алгоритмы решения большинства задач не являются последовательными. Действия, которые необходимо выполнить, могут зависеть от определенного условия, например исходных данных, или результатов, полученных во время выполнения программы. Например, если нам необходимо переменной max присвоить значение большей из переменных х1 или х2, мы должны определить сначала какое число больше а уже после этого заносить его значение в переменную max.
В языке Pascal условие – это выражение логического типа (Boolean), которое может принимать одно из двух значений: истина или ложь.
В Pascal имеется шесть операторов, позволяющих сравнивать между собой значения числовых переменных, а также значения переменной и константу (число).
Использование операторов сравнения позволяет записывать простые условия. Например, х1>x2 или х1=х2, или х1<>х2 и т.п.
Из простых условий, которые являются выражениями логического типа, можно строить сложные условия с применением к ним, как к операндам, логических операторов:
Not – отрицание;
And – логическое «и»;
Or – логическое «или».
При записи сложных условий важно учитывать то, что логические операторы имеют более высокий приоритет, чем операторы сравнения, поэтому простые условия следует брать в скобки.
Например, нам необходимо из трех чисел выбрать большее, можно составить такое условие: (x>y) and (x>z), или условие попадания точки в интервал : будет выглядеть так:
(х<= -3) or (x>=7). Возможно составление и более сложных условий: (a=5) or ((a>10) and (a<1)).
Итак, следовательно, условия могут быть либо простыми, либо составными, полученными из простых с помощью логических связок.
Условный оператор.
В Turbo Pascal включены два условных оператора – if и case (хотя исторически так сложилось что последний называется оператором выбора), каждый из которых может быть записан в двух формах: полной и неполной.
Синтаксис инструкции IF:
If условие
then
begin
{инструкции выполняемые, если условие истинно};
{инструкции выполняемые, если условие ложно};
Инструкция if выполняется следующим образом:
if x>y then writeln (‘большее из данных двух чисел ’, x)
else writeln ( ‘большее из данных двух чисел ’,y);
Если какое-либо действие нужно выполнить только при выполнении условия, инструкция if может быть записана так:
{инструкции выполняемые, если условие истинно};
If x<>0 then y:=1/x;
Иногда возникает необходимость использования вложенных условных операторов.
Пример: С клавиатуры задаются три числа, необходимо вывести на экран значение большего из этих чисел. Фрагмент такой программы будет выглядеть так:
if x>y
if x>z then writeln (‘большее из данных чисел ’, x)
else writeln ( ‘большее из данных чисел ’,z);
end
Либо можно построить несколько по другому, например так:
if (x>y) and (x>z)
then begin writeln (‘большее из данных чисел ’, x)
else
if y>z then writeln (‘большее из данных чисел ’, y)
Задачи:
б) оканчивается ли оно цифрой 7;
в) оканчивается ли оно чётной цифрой. Составное условие не использовать.
б) одинаковы ли его цифры?
б) кратна ли сумма его цифр числу A?
б) является ли произведение его цифр трёхзначным числом;
в) больше ли числа A произведение его цифр;
г) кратна ли пяти сумма его цифр;
д) кратна ли сумма его цифр числу A.
б) определить, есть ли среди его цифр одинаковые?
б) кратна ли трём сумма его цифр;
в) кратно ли четырём произведение его цифр;
г) кратно ли произведение его цифр числу A.
б) Верно ли, что оно заканчивается четной цифрой?
б) те из них, которые принадлежат интервалу (0,7 – 5,1).
Оператор выбора.
Рассмотренный условный оператор If позволяет выбирать только одно из двух возможных действий в зависимости от логического выражения.
Оператор выбора case является обобщением оператора If – он дает возможность выполнять одно из нескольких действий в зависимости от значения переключателя.
В качестве переключателя используется выражение, которое располагается между ключевыми словами case и of. Результатом этого выражения может быть только значение порядкового типа, общее количество элемент которого не превышает 65535.
Синтаксис инструкции case:
список констант_1 : begin
{последовательность инструкций 1};
end;
список констант_2 : begin
{последовательность инструкций 2};
end;
список констант_n : begin
{последовательность инструкций n};
end
else begin
{последовательность инструкций, выполняемая в случае, если выражение не попало ни в один из списков констант};
Где выражение – это выражение, от значения которого зависит дальнейший ход программы (одна из последовательностей инструкций, которая должна быть выполнена).
Список констант – константы, разделенные запятыми. Если константы представляют диапазон чисел, то вместо списка можно указать первую и последнюю константу диапазона, разделив их двумя точками. Например список 1, 2, 3, 4, 5, 6 может быть заменен диапазоном 1..6.
При выполнении инструкции case происходит следующее: вычисляется значение выражения оператора case, затем полученное значение последовательно сравнивается с константами из списков констант. Если значение выражения совпадает с константой из списка, то выполняется соответствующая этому списку последовательность инструкций, и на этом выполнение инструкции case завершается. Если значение выражения не совпадает ни с одной константой из всех списков, то выполняется последовательность инструкций идущих после else. Синтаксис инструкции case позволяет не использовать else и соответствующую последовательность инструкций. В этом случае, если значение выражения не совпадает ни с одной константой из всех списков, то выполняется следующая за cаse команда.
Примеры:
Case day of Case day of Case day of
1, 2, 3, 4, 5: write (‘ рабочий день’); 1..5: write (‘ рабочий день’); 6: write (‘суббота’);
6: write (‘суббота’); 6: write (‘суббота’); 7: write (‘воскресенье’)
7: write (‘воскресенье’); 7: write (‘воскресенье’); else write (‘ рабочий день’);
end; end; end;
Задачи:
Циклы.
Оператор цикла for.
Оператор for используется если надо выполнить некоторую последовательность действий несколько раз, причем заранее известно число таких повторений. Также удобно использовать этот оператор, когда необходимо некоторым образом использовать в теле цикла информацию о номере очередной итерации.
Синтаксис оператора цикл for:
{последовательность операторов};
Либо:
{последовательность операторов};
n1 – начальное значение счетчика, которое является значением выражение, определяющее начальное значение переменной – счетчика цикла;
n2 – конечное значение счетчика, которое является выражением, определяющим конечное значение переменной – счетчика циклов.
Примечания:
for i:=1 to n do
y:=y+1/i;
writeln (‘y=’,y:5:2);
for i:=1 to n do begin
s:=s+sqr(i);
writeln (sqr(i));
end;
writeln (‘s=’,s);
for i:=1 to k do
y:=y*x;
writeln (‘y=’,y:5:2);
Задачи:
б) квадраты всех целых чисел от a до b (значение b вводится с клавиатуры; b≥10);
в) третьи степени всех целых чисел от a до 50 (значение a вводится с клавиатуры; a≤10);
г) все целые числа от a до b (значение a и b вводятся с клавиатуры; b≤a).
б) сумму всех целых чисел от a до 500 (значение a вводится с клавиатуры; a≤500);
в) сумму всех целых чисел от -10 до b (значение b вводится с клавиатуры; b≥ -10);
г) сумму всех целых чисел от a до b (значения a и b вводятся с клавиатуры; b≥a).
б) среднее арифметическое всех целых чисел от 100 до b (значение b вводится с клавиатуры; b≥100);
в) среднее арифметическое всех целых чисел от a до 200 (значение a вводится с клавиатуры; a≤200);
б) сумму квадратов всех целых чисел от a до 50 (значение a вводится с клавиатуры; 0≤a≤50);
в) сумму квадратов всех целых чисел от 1 до n (значение n вводится с клавиатуры; 1≤n≤100);
г) сумму квадратов всех целых чисел от a до b (значение a и b вводится с клавиатуры; b≥a).
Оператор цикла с предусловием while.
Оператор цикла while используется в программе, если надо провести некоторые повторные вычисления (цикл), однако число повторов заранее неизвестно и определяется самим ходом вычисления.
В общем виде оператор выглядит так:
{последовательность операторов};
где условие – выражение логического типа.
Оператор цикла while работает следующим образом:
program summa;
uses crt;
var
begin
s:=0; i:=1;
writeln (‘Введите натуральное число n’); readln(n);
while i<=n do
begin
s:=s+i;
end;
readln;
Составить таблицу значений функции на отрезке [2;4] с шагом 0,2.
program func;
uses crt;
var
x, y: real;
clrscr;
while x<=4 do
begin
y:=sqrt(x);
x:=x+0.2;
end;
readln;
Задачи:
б) сумму его цифр;
в) произведение его цифр;
г) среднее арифметическое его цифр;
д) сумму квадратов его цифр;
е) сумму кубов его цифр;
ж) его первую цифру;
б) Приписать по двойке в начало и конец записи этого числа.
в) Удалить из него все цифры А.
г) Переставить его первую и последние цифры.
д) Приписать к нему такое же число.
б) количество всех чисел последовательности.
б) является ли заданное число степенью числа 5.
б) Найти первое натуральное число, квадрат которого больше n.
б) Верно ли, что произведение его цифр меньше 50?
в) Верно ли, что количество его цифр есть четное число?
г) Верно ли, что это число четырехзначное?
Составное условие и вложенный условный оператор не использовать.
д) Верно ли, что его первая цифра не превышает 6?
е) Верно ли, что оно начинается и заканчивается одной и той же цифрой?
ж) Определить, какая из его цифр больше: первая или последняя.
б) Верно ли, что количество его цифр есть четное число, а само число не превышает b?
в) Верно ли, что оно начинается на X и заканчивается на Y?
г) Верно ли, что произведение его цифр меньше А, а само число делится на В?
д) Верно ли, что сумма его цифр больше M, а само число делится на N?
б) есть ли в нем цифры 2 и 5.
б) Верно ли, что в нем нет цифры В?
в) Верно ли, что цифра А встречается в нем более К раз?
г) Определить, есть ли в нем цифры А и В.
2*1=1 2*2=4 … 2*9=18
… … … …
9*1=9 9*2=18 … 9*9=81
б) считать совподающими.
Оператор цикла с постусловием repeat.
Инструкция repeat как и инструкция while, используется в программе, если надо провести некоторые повторяющиеся вычисления (цикл), однако число повторений не известно и определяется самим ходом вычислений.
В общем виде оператор выглядит так:
repeat
{последовательность операторов};
где условие – выражение логического типа.
Оператор работает следующим образом:
Примечания:
Пример: Составить программу вычисляющую сумму положительных чисел, вводимых с клавиатуры.
program polog;
uses crt;
var
n, s: integer;
clrscr;
repeat
readln (n);
if n>0 then s:=s+n;
until n<=0;
writeln (‘Сумма введенных положительных чисел =’,s);
readln;
Пример: С клавиатуры вводится число, проверить является ли оно простым.
program prost;
uses crt;
var
r, n, d: integer;
clrscr;
d:=2;
r:=n mod d;
if r<>0 then d:=d+1;
until r=0;
if d=n then
writeln (n,‘ – простое число’)
else writeln (n,‘ – составное число’)
readln;
Задачи:
б) Найти сумму его делителей.
в) Найти сумму его четных делителей.
г) Определить количество его делителей.
д) Определить количество его нечетных делителей.
е) Определить количество его делителей. Сколько из них четных?
ж) Найти количество его делителей, больших D.
б) минимальное из них.
Сравнение работы операторов цикла (repeat, while, for).
№ n/n
|
Цикл с предусловием while (пока условие истинно) |
Цикл с постусловием repeat (до истинности условия) |
Цикл со счетчиком for |
1 |
До начала цикла должны быть сделаны начальные установки переменных, управляющих условием цикла, для корректного входа в цикл. |
Начальная установка переменной счетчика цикла до заголовка не требуется | |
2 |
В теле цикла должны присутствовать операторы, изменяющие переменные условия так, чтобы цикл через некоторое число итераций закончился. |
Изменение в теле цикла значений переменных, стоящих в заголовке цикла, не допускается. | |
3 |
Цикл работает пока условие истинно. |
Цикл работает пока условие ложно. |
Количество итераций цикла неизменно и точно определяется значениями верхней и нижней границ и шага цикла. |
4 |
Цикл завершается, когда условие становится ложным. |
Цикл завершается, когда условие становится истинным. |
Нормальный ход работы цикла может быть нарушен оператором goto или процедурами Break и Continue. |
5 |
Цикл может не выполниться ни разу, если исходное значение условия при входе в цикл ложно |
Цикл обязательно выполняется как минимум один раз. |
Цикл может не выполниться ни разу, если шаг цикла будет изменять значение счетчика цикла от нижней границы в направлении, противоположном верхней границы. |
6 |
Если в теле цикла требуется более одного оператора, то необходимо использовать составной оператор. |
Независимо от количества операторов в теле цикла использование составного оператора не требуется. |
Если в теле цикла требуется более одного оператора, то необходимо использовать составной оператор. |
Вложенные циклы
Для решения задачи достаточно часто требуется использовать две и более циклические конструкции, одна из которых расположена внутри другой (других). Такие конструкции называют вложенными циклами. Какие именно циклы при этом используются, роли не играет, они могут быть организованы посредством любых рассмотренных ранее операторов (For, While, Repeat ... Until).
Задача : Сколько можно купить быков, коров и телят, если бык стоит 10 рублей, корова - 5 рублей, теленок - полтинник (0,5 рубля), при условии, что на 100 рублей надо купить 100 голов скота.
Решение : Обозначим через b- количество быков, k - количество коров, t - количество телят. После этого можно записать два уравнения:
10b+5k+0,5t=100 и b+k+t=100
Преобразуем их :
20b+10k+t=200 и b+k+t=100
На 100 рублей можно купить :
Program skot;
Var b,k,t : integer;
Begin
For k:=0 to 20 do
For t:=0 to 200 do
if (20*b+10*k+t=200) and (b+k+t=100) then
writeln(‘быков ‘,b,‘ коров ’,k,’ телят ’,t);
end.
t=100-(b+k)
Массив – это упорядоченный набор однотипных элементов, имеющих общее имя.
Перед использованием массив, как и любая переменная, должен быть объявлен в разделе объявления переменных. В общем виде объявление массива выглядит так:
имя: array [нижний_индекс..верхний_индекс] of тип;
где
array – ключевое слово, обозначающее, что переменная является массивом;
нижний_индекс и верхний_индекс – целые числа, определяющие диапазон изменения индексов (номеров) элементов массива и, неявно, количество элементов (размер) массива;
тип – тип элементов массива.
Примеры объявления массивов:
t: array[1..31] of real;
k: array[0..2] of integer;
n: array[1..30] of longint;
Чтобы в программе использовать элемент массива, надо указать имя массива и номер элемента (индекс), заключив его в квадратные скобки. индекс может быть константой или выражением целого типа.
Например: t[1]:=1.22;
d:=k[1]*k[1]-4*k[2]*k[1];
readln (n[i+1]);
writeln (t[m]);
А[2]:=4;
или
B[2]:=’Петров’;
........
Такой способ задания значений используется, если массив небольшой.
For i:=1 to 10 do
begin
Writeln(‘введите ’,i,’-ый элемент массива’);
{в качестве индекса используется параметр цикла }
end;
Этот способ задания значений также используется для небольших массивов.
RANDOMIZE;
For i:=1 to 10 do
a[i]:=Random(x);
…....
{массив заполнится целыми числами в диапазоне от 0 до Х}
Каждый элемент массива должен быть рассчитан по формуле (например ai=sin i - cos i)
for i:=1 to 10 do
a[i]:=sin(i)-cos(i);
For i:=1 to 10 do writeln(a[i]);
Вывод пятого элемента массива записывается так : write(a[5]);
Программа алгоритм, записанный на языке программирования, служащий для выполнения каких-либо действий
25 09 2014
10 стр.
В языке программирования Turbo Pascal все данные, используемые программой должны принадлежать к какому-либо типу данных. Некоторые из них
13 10 2014
1 стр.
Блеза Паскаля. На основе языка Паскаль в 1985 г фирма Borland выпустила версию Turbo Pascal версии с этого времени язык Паскаль используется во всем мире в учебных заведениях в кач
02 10 2014
4 стр.
25 09 2014
1 стр.
Блеза Паскаля. Первоначально этот язык был создан для обучения программированию. Однако благодаря заложенным в нем большим возможностям структурного программирования он стал широко
25 09 2014
6 стр.
Основными достоинствами Паскаля являются легкость при изучении и наглядность программ. Кроме того, в языке Паскаль отражена концепция структурного программирования, имеется богатый
25 09 2014
1 стр.
В33 Середовище програмування Turbo Pascal 0: Підруч для учнів 10 кл серед загальноосв шк. – Ввпк: „Коледж”, 2008 – 47с
25 09 2014
4 стр.
Приведём простейший пример программы, единственная цель которой – вывести на экран какое-нибудь приветствие
14 09 2014
14 стр.