Параметры - раздел Программирование, Алфавит языка Turbo Pascal Параметры, Перед Которыми Отсутствует Зарезервированное Слово Var И За Которы...
Параметры, перед которыми отсутствует зарезервированное слово var и за которыми следует тип, называются параметрами-значениями. Например, в описании
procedure korrect (s, к : real; x : integer);
s, k, x – параметры-значения. Фактический параметр, соответствующий параметру-значению, может быть выражением соответствующего типа, например:
korrect (2.5, (х + 2)/5, 1);
Изменение формальных параметров-значений не влияет на значения соответствующих фактических параметров.
Параметры, перед которыми следует ключевое слово var и за которым следует тип, называются параметрами-переменными. Например, в описании
procedure obr(var s, k: real; var x : integer);
s, k, x – параметры-переменные. Фактический параметр, соответствующий параметру-переменной, может быть только переменной, например:
obr(a, b, k);
где а, b – переменные вещественного типа, а k – целого типа.
Любые изменения в значении формального параметра-переменной отражаются на фактическом параметре.
Параметр-переменная используется в том случае, если значение должно быть передано из процедуры в вызывающий блок.
Пример. Решить два квадратных уравнения и ,
считая, что его дискриминант неотрицателен.
program primer1;
uses crt;
var y1, y2, zl, z2 : real;
{текст процедуры для нахождения корней квадратного уравнения }
procedure sq( a, b, с : real; var xl, x2 : real);
var d : real;
begin
d:=b*b – 4*a*c;
x1:=(–b + sqrt(d))/(2*a);
х2:=(–b – sqrt(d))/(2*a);
end;
{операторы основной программы}
begin clrscr;
sq(5.7, –1.2, –8.3, y1, y2);
sq(2.4, 3.4, –8.4, zl, z2);
writeln(¢корни y1, y2 =¢, yl : 6 : 2, y2 : 6 : 2);
writeln(¢корни zl, z2 =¢, zl : 6 : 2, z2 : 6 : 2);
readkey
end.
Если в процедуру необходимо передать массив, то в этом случае фактическим параметром является имя массива. Обратим внимание на то, что в заголовке процедуры для указания типов формальных параметров могут использоваться только имена типов.
Нельзя (!) записать так:
procedure sum(a : array[l ..5] of real; var s : real);
Как же написать одну процедуру для обработки двух массивов одного типа, имеющих разное число элементов?
Пример. Вычислить z = (s + к)*(s1 + k1), где s, k – сумма и количество отрицательных элементов a(10), s1, k1 – сумма и количество отрицательных элементов массива b(8).
program primer2;
uses crt;
type vect = array [1..10] of real;
{Значение верхней границы индекса равно максимальному числу элементов двух массивов а, b}
var а, b : vect; i, k, k1 : integer; s, s1 : real;
{Процедура для фиктивного массива х с числом элементов п, где п <= 10 вычисляет сумму (sum) и количество (col) отрицательных элементов}
procedure sumcol (x:vect; n:integer; var sum:real;
var col:integer);
var i:integer;
begin sum := 0; col := 0;
for i:=1 to n do
if x[i]< 0 then
begin sum := sum + x[i];
соl:=соl + 1;
end
end;
begin clrscr;
writeln(¢ввeдитe массив а(10)¢);
for i := 1to 10 do read(a[i]);
writeln(¢введите массив b(8)¢);
for i := 1 to 8 do read(b[i]);
{в процедуру передается массив а длиной 10}
sumcol(a, 10, s, к);
{в процедуру передается массив b длиной 8}
sumcol(b, 8, sl, k1);
z := (s + k)*(sl + kl);
writeln(¢z=¢, z : 6 : 2);
readkey
end.
Такой подход можно применить и для двумерных массивов.
Все темы данного раздела:
Алфавит языка Turbo Pascal
Программа в Turbo Pascal записывается в виде последовательности символов, к числу которых относятся:
- латинские буквы: а, b, с, … , z;
- русские буквы: а, б, в,
Переменные
Для обозначения исходных данных и результатов вычислений употребляются переменные.
Переменная – это область памяти (ячейка) компьютера. Переменные могут менять свое
Целые типы данных языка Turbo Pascal
Название
Диапазон значений
Длина в байтах
Byte
0..255
ShortInt
В Turbo Pascal
Запись в математике
Запись в Паскале
Ввод и вывод результатов вычислений
Для ввода исходных данных и вывода результатов вычислений используются процедуры ввода и вывода.
Процедура ввода состоит из идентификатора read (читать) и
Использование и обработка одномерного массива
Переменные, которые мы использовали при составлении программ сих пор, называются простыми переменными. Каждая простая переменная имеет имя, и под каждую такую переменную выделяется ячейка памяти, о
Описание одномерного массива
Общий вид описания одномерного массива:
type имя типа = array [тип индекса] of тип компонент;
var имя массива: имя типа.
Например:
type vectl= аrray [1..12] of r
Часто встречающиеся задачи на одномерный массив
Пусть задан массив а, состоящий из 10 действительных элементов.
Задача 1. Найти сумму элементов массива а.
sum:=0;
for i
Использование и обработка двумерного массива
Двумерный массив, или матрица, является более сложной структурой, чем вектор, так как представляет собой таблицу, состоящую из определенного количества строк и столбцов. При определении элементов м
Часто встречающиеся задачи на двумерный массив
При составлении программ с использованием двумерных массивов некоторые задачи встречаются особенно часто. Ниже приведены фрагменты соответствующих программ.
Пусть для примера дана матрица
Главной или побочной диагонали матрицы
Существует множество задач, в которых необходимо использовать элементы главной или побочной диагонали матрицы (эти понятия имеют смысл только для квадратных матриц!).
Пусть дана матрица
С использованием функций
В алгоритмических языках, в отличии от математического понятия функции, рассматриваются только такие функции, для которых можно задать алгоритм определения их значений. Самостоятельный алгоритм мож
С использованием процедур
Довольно часто, уже на этапе разработки алгоритма программы, можно обнаружить, что некоторые одинаковые или очень похожие действия в программе должны выполняться несколько раз. Текст программы, реа
Текстовые файлы
Файловый тип данных, т. е. файл, является в Турбо Паскале единственным типом, посредством которого данные, обрабатываемые программой, могут быть получены из внешней памяти (например, с жесткого дис
Символьный тип данных
Набор символов в компьютере достаточно велик. Все символы упорядочены, т.е. каждый символ имеет свой порядковый номер (код символа).
Символьная константа (литера) – это си
Особенности работы со строками
1. Строку можно вводить и выводить как единое целое с помощью операторов readln, writeIn, например:
read (st); writeln (¢пример¢);
2. Значением строки может быть
Редактирование строк
Функция
length (s : string):word;
вычисляет текущую длину строки s (количество символов в строке). Строка может быть задана идентификатором или неп
Преобразование строк
Процедура
str (x[:width [:dec]]; var s:string);
служит для преобразования числовых значений в строковые, где х может быть переменной или знач
Для работы с текстовыми файлами
Процедура
assign (f:text;name:string);
связывает файловую переменную f с существующим или вновь создаваемым на винчестере файлом, название ко
Особенности работы с записями
1. Обращение к записи в целом возможно только в операторе присваивания, где слева и справа от знака присваивания используются имена записей одинакового типа, например: b := a;
Типизированные файлы
Типизированные файлы состоят из машинных представлений чисел, символов и структур, из них построенных. Они хранят данные в том же виде, что и память ЭВМ. С помощью типизированных файлов можно осуще
Типизированными файлами
Процедуры
assign ( f : file; name : string );
rewrite ( f : file );
reset ( f : file);
Прямой доступ к элементам файла
Процедура
seek( f : file, n : longint );
позволяет заменить значение текущего указателя, установив его на элемент файла с заданным номером n. Текущи
Новости и инфо для студентов