Смекни!
smekni.com

Шпаргалка по Информатике (стр. 3 из 4)

Процедуры: с параметрами значениями, с параметрами переменными.

Переменные:

1) локальные (объявляются внутри блока)

· формальные(параметры заголовка процедуры);

· вспомогательные (переменные в разделе VAR процедуры, неизвестны основной программе);

2) глобальные (объявляются в разделе VAR основной программы, могут фигурировать в основной программе и теле процедуры).

Одна и та же переменная может быть локальной и глобальной, т.к. компилятор отводит отдельные ячейки памяти для каждой переменной

Процедуры с параметрами-значениями.

Под параметром понимается имя переменной, которое является входной для процедуры. При его описании не требуется служебное слово VAR. Параметры-значения при вызове процедуры принимают из основной программы свои значения. При обращении к процедуре с параметрами значениями в основной программе могут служить имена переменных и конкретные значения выражения. При обращении необходимо соблюдать соответствия списков параметров, а также их типов.

Процедуры с параметрами-переменными.

В отличие от процедур с параметрами значениями, процедуры с параметрами-переменными не имеют входных параметров. Из основной программы не передаются значения переменных в процедурах, за исключением глобальных переменных. Параметрам-переменным должно предшествовать слово VAR столько раз, сколько различных типов представлено в выходных данных.

PROCEDURE PRIMER (VAR a,b,c:integer; VAR m:CHAR; VAR i,j:real);

При обращении к процедурам с параметрами-переменными фактическими параметрами являются имена переменных, которые описаны в основной программе.

Program pr1;

Uses crt;

Var a,b,s:real;

Procedure summa (var x,y:real; var z:real); {x,y – параметры значения z - переменные}

Begin

z:=x+y;

end;

begin

clrscr;

writeln (‘Vvedite a,b’);

readln (a,b);

summa (a,b,s);

writeln (‘summa chisel’, a:3:1, ‘and’, b:3:1, ‘=’, s:3:1);

readln;

end.

11.Паскаль имеет набор стандартных функций. Однако он граничен. Но пользователь может расширить список функций, добавив свои. Список стандартных функций:

ACOS вычисляет арккосинус
ASIN вычисляет арксинус
ATAN вычисляет арктангенс
ATN2 вычисляет арктангенс с учетом квадратов
COS вычисляет косинус угла
COT возвращает котангенс угла
EXP возвращает экспоненту
FLOOR выполняет округление вниз
LOG вычисляет натуральный логарифм
LOG10 вычисляет десятичный логарифм
PI возвращает значение "пи"
POWER возводит число в степень
RADIANS преобразует значение угла из градуса в радианы
RAND возвращат случайное число
ROUND выполняет округление с заданной точностью
SIN вычисляет синус угла
SQRT извлекает квадратный корень
TAN возвращает тангенс угла

Подпрограмма-функция предназначена для вычисления какого-либо параметра.

FUNCTION имя (список параметров:тип):тип;

FUNCTION имя:тип;

Тип результата есть тип значения функции. Список параметров такой же как и у процедуры, только здесь все параметры-аргументы. Имя переменной, которая хранит значение функции совпадает с именем самой функции. Другой особенностью написания функции является наличие в нем хотя бы одного оператора присваивания, в левой части которого стоит имя определяемой функции, а в правой – выражение для вычисления результата функции. Функция вызывается только с помощью некоторого выражения. Для того, чтобы обратиться к функции необходимо использовать ее имя со списком фактических параметров в каком-либо выражении, тип которого совпадает с типом значения функции. Таким образом, функции имеет ряд отличий от процедур. Первое отличие функции в ее заголовке. Он состоит из слова function, за которым следует имя функции, далее в круглых скобках - список формальных параметров, затем через двоеточие записывается тип функции - тип возвращаемого параметра. Функция может возвращать параметры следующих типов: любого порядкового, любого вещественного, стандартного типа string. Второе отличие заключается в том, что в теле функции хотя бы раз имени функции должно быть присвоено значение.

program p2;

var f, b, s, t, c, d : real; { глобальные параметры}

function stp (a, x : real) : real;

var y : real; { локальные параметры}

begin

y := exp (x * ln ( a)) ;

stp:= y;{присвоение имени функции результата вычислений подпр-мы}

end; { описание функции закончено }

begin {начало основной программы }

d:= stp (2.4, 5); {вычисление степеней разных чисел и переменных }

writein (d, stp (5,3.5));

read (f, b, s, t); c := stp (f, s)+stp (b, t);

writeln (c);

end.

12.Функция – это подпрограмма, предназначенная для вычисления какого-либо параметра.

Рекурсия – это такой способ организации вычислительного процесса, при котором подпрограмма в ходе выполнения составляющих ее операторов обращается сама к себе. Эта возможность связана с тем, что при каждом новом обращении к подпрограмме параметры, которые она использует, заносятся в стек, причем параметры предыдущего обращения также сохраняются.

Термин рекуррентные соотношения связан с американским научным стилем и определяет математическое задание функции с помощью рекурсии. При каждом обращении к рекурсивной функции в стеке выделяется место для: адреса возврата в вызывающую функцию и вершины стека вызывающей функции (4 байта), списка фактических параметров (может быть пустым), локальных переменных рекурсивной функции (могут отсутствовать).

Наличие в задаче рекуррентного соотношения позволяет использовать рекурсию. Например, арифметическая прогрессия – последовательность чисел, в которой разность между последующими и предыдущими членами остается неизменной и называется разностью прогрессии. То есть каждый следующий член прогрессии равен предыдущему, увеличенному на разность прогрессии.

13. Массивы – объединение фиксированного числа однотипных величин. Они относятся к структуре прямого доступа, это достигается путем индексации его элементов. Массивы: одномерные и двумерные.

Двумерные массивы.

Двумерный массив представляет собой таблицу, он является матрицей. Потому для определения позиции элемента в таком массиве необходимы два индекса. Двумерные массивы описывают путем указания границ изменения индексов строк и столбцов. Объявление двумерного массива похоже на объявление одномерного, отличается лишь индексация.

VAR M:array [1..20, 1..10] of REAL; {20 строк, 10 столбцов}

M[10,5] - элемент 10 строки, 5 столбца

M[i,j] – общее обозначение

Массив принадлежит к структурным величинам.

TYPE- раздел типов, после пишется имя вводимого типа, а затем после знака «=» определяется этот тип.

TYPE massiv=array [1..20,1..10] of REAL;

VAR M:massiv;

CONST – раздел констант, используется для задания числа строк и столбцов.

CONST m=20; n=10;

VAR M:array [1..m, 1..n] of REAL;

При работе с двумерными массивами принято организовывать ввод и вывод массива с помощью соответствующих процедур. Если ввод и вывод осуществляется с помощью процедур, то должен быть определен тип массива с помощью служебного слова TYPE, т.к. в самой процедуре объявлять массив служебными словами запрещено!

Процедура ввода:

PROCEDURE VVODMAS(VAR M:massiv);

BEGIN

FOR i:=1 to m DO

FOR j:=1 to n DO

M [i,j]:=-50+RANDOM(100);

END;

Процедура вывода:

PROCEDURE VIVODMAS(VAR M:massiv);

BEGIN

FOR i:=1 to m DO

BEGIN

FOR j:=1 to n DO

WRITELN (M[i,j]:5];

WRITELN;

END;

END;

14.Массивы – объединение фиксированного числа однотипных величин. Они относятся к структуре прямого доступа, это достигается путем индексации его элементов. Массивы: одномерные и двумерные.

Одномерные массивы.

Индекс позволяет обратиться к любому элементу прямым путем -->каждый элемент массива характеризуется общим именем и персональным индексом. Массив требует объявления в разделе объявлений.

1)имя массива, общее для всех элементов;

2)тип компонента;

3)указание числа элементов и одновременно указывается чем индексируются элементы;
4)служебное слово, указывающее, что это именно массив.

VAR M:array [тип индекса] of ТИП КОМПОНЕНТЫ;

Нет никаких ограничений для типов компонент (за исключением файла). Для объединенных массивов можно использовать: целые числа, вещественные числа, CHAR, записи, строки и т.д.

Тип той величины, которой индексируют элементы массива, может быть только ординальным! (нельзя !!!REAL).

VAR M:array [1..10] of REAL;

N:array [‘A’..’z’] of INTEGER;

Раздел типов TYPE служит для формирования своих структурных типов.

TYPE mas=array [1..10] of REAL;

VAR M:mas;

Обработка массивов.

Программы работы с массивами имеют следующую структуру:

1) задание самого массива;

2) обработка массива;

3) вывод нового результирующего массива.

Любая программа начинается с заполнения массива. Элемент массива является просто переменной. Способы задания:

1) read (M[i]);

2) M[i]:=(2*3-15)/3

3) Заполнение случайными числами

· Randomize – процедура датчиков случайных чисел, сразу за BEGIN

BEGIN

RANDOMIZE;

· Random(N) – функция одного элемента типа INTEGER, порождает целые числа от 0 до N-1.

RANDOM(101)+1;

FOR i:=1 to N DO

M[i]:=-50+RANDOM(101);

Вывод элементов массива на экран:

· в столбец WRITELN(M[i]);