1)
var
D: array[1..20] of integer;
i, min: integer;
begin
min := 100; // минимальное значение
for i:=1 to 20 do
begin
D[i] := random(100);
if D[i] < min then
min := D[i];
end;
write(min);
end.
2)
var
B: array[1..30] of integer;
i, sum, count: integer;
srAr: real;
begin
count := 0; // количество чисел больших среднего арифметического
sum := 0; // сумма всех чисел массива
for i := 1 to 30 do
begin
B[i]:= random(30) + 20;
sum := sum + B[i];
end;
srAr := sum / 30; // среднее арифметическое
for i := 1 to 30 do
if B[i] > srAr then
count := count + 1;
write(count);
end.
Тип переменной задает вид того значения, которое ей присваивается и правила, по которым операторы языка действуют с переменной, например:
Если переменные A и B целочисленного типа, то программа:
A:=3.14;
B:=2.71;
WRITELN(A,’ ‘,B,’ ‘,A+B);
Выведет на экран строку: “3.14 2.71 5.85”
Если же они строкового типа, то программа:
A:=’3.14’;
B:=’2.71’;
WRITELN(A,’ ‘,B,’ ‘,A+B);
Выведет: “3.14 2.71 3.142.71”, так как оператор сложения просто добавит строку B в конец строки A.
Тип константы определяется записи ее значения:
Const
C1=17;
C2=3.14;
C3='A';
C4=False;
C5=C2+C1;
Можно использовать выражения. Выражения должны в качестве операторов содержать только константы, в том числе ранее объявленные, а так же знаки математических операций, скобки и стандартные функции.
В Паскале предопределены следующие простейшие типы переменных:
BYTEцелое число от 0 до 255, занимает одну ячейку памяти (байт).BOOLEANлогическое значение (байт, заполненный единицами, или нулями), true, или false.WORDцелое число от 0 до 65535, занимает два байта.INTEGERцелое число от –32768 до 32767, занимает два байта.LONGINTцелое число от –2147483648 до 2147483647, занимает четыре байта.REALчисло с дробной частью от 2.9*10-39.до 1.7*1038, может принимать и отрицательные значения, на экран выводится с точностью до 12-го знака после запятой, если результат какой либо операции с REAL меньше, чем 2.9*10-39, он трактуется как ноль. Переменная типа REAL занимает шесть байт.DOUBLEчисло с дробной частью от 5.0*10-324.до.1.7*10308, может принимать и отрицательные значения, на экран выводится с точностью до 16-го знака после запятой ,если результат какой либо операции с DOUBLE меньше, чем 5.0*10-324, он трактуется как ноль. Переменная типа DOUBLE занимает восемь байт.CHARсимвол, буква, при отображении на экран выводится тот символ, код которого хранится в выводимой переменной типа CHAR, переменная занимает один байт.STRINGстрока символов, на экран выводится как строка символов, коды которых хранятся в последовательности байт, занимаемой выводимой переменной типа STRING; в памяти занимает от 1 до 256 байт – по количеству символов в строке, плюс один байт, в котором хранится длина самой строки.При обьявлении переменной строкового типа можно заранее указать ее длину в байтах – X:
MyString:STRING[X];
При присвоении этой переменной строки длиннее X, присваиваемая строка будет обрезана с конца после X-того символа.
Размер переменной типа STRING в памяти можно узнать следующим
Size:=SizeOf(MyString);
Функция SizeOf() возвращает размер, занимаемый переменной, служащей параметром. Параметром может служить и тип переменной; строка:
Writeln(SizeOf(STRING));
Выведет на экран число 256, так как по умолчанию под все строки отводится по 256 байт.
Кроме того, можно узнать, сколько символов в строке (индекс последнего непустого символа в строке):
Size:=Ord(MyString[0]);
Используется ибращение к нулевому элементу (символу) строки, в котором хранится ее длина, но MyString[0] – значение типа CHAR, тоесть символ, код которого равен длине строки, нужный нам код – число возвращает функция Ord()Таким же образом можно обратиться к любому N – тому элементу строки:
MyChar:=MyString[N];
{MyChar:CHAR}