Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Действия с нетипизированными понятиями с помощью директивы absolute.




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

var {локальная переменная ПП}
<имя>:<тип><директива absolute>

С помощью одной ПП вычислить сумму элементов массивов разного размера.

program Sovmes_Adres;
const
x:array[1..5] of real = (1,2,3,4,5);
y:array[1..3] of real = (6,7,8);
function Sum(var z; n:byte):real;
var {задаем локальный массив большого размера}
w:array[1..Maxit div size of(real)] of real absolute z;
i:byte; {номер компонентов вектора}
s:real; {текущая сумма}
begin
s:=0
for i:=1 to n do s:s+w[i]
sum:=s
end; {sum}
begin
writeln(‘Сумма элементов вектора х= ’ sum(x,5):2:0);
writeln(‘Сумма элементов вектора y= ’ sum(y,3):2:0);
end.

 

 

Цикл со счётчиком

Цикл со счётчиком — цикл, в котором некоторая переменная изменяет своё значение от заданного начального значения до конечного значения с некоторым шагом, и для каждого значения этой переменной тело цикла выполняется один раз. В большинстве процедурных языков программирования реализуется оператором for, в котором указывается счётчик (так называемая «переменная цикла»), требуемое количество проходов (или граничное значение счётчика) и, возможно, шаг, с которым изменяется счётчик

Неоднозначен вопрос о значении переменной по завершении цикла, в котором эта переменная использовалась как счётчик. Например, если в программе на языке Паскаль встретится конструкция вида:

i := 100;for i := 0 to 9 dobegin ... тело циклаend;k := i;

возникает вопрос: какое значение будет в итоге присвоено переменной k: 9, 10, 100, может быть, какое-то другое? А если цикл завершится досрочно? Ответы зависят от того, увеличивается ли значение счётчика после последней итерации и не изменяет ли транслятор это значение дополнительно. Ещё один вопрос: что будет, если внутри цикла счётчику будет явно присвоено новое значение? Различные языки программирования решают данные вопросы по-разному. В некоторых поведение счётчика чётко регламентировано. В других, например, в том же Паскале, стандарт языка не определяет ни конечного значения счётчика, ни последствий его явного изменения в цикле, но не рекомендует изменять счётчик явно и использовать его по завершении цикла без повторной инициализации. Программа на Паскале, игнорирующая эту рекомендацию, может давать разные результаты при выполнении на разных системах и использовании разных трансляторов.

Цикл со счётчиком всегда можно записать как условный цикл, перед началом которого счётчику присваивается начальное значение, а условием выхода является достижение счётчиком конечного значения; к телу цикла при этом добавляется оператор изменения счётчика на заданный шаг. Однако специальные операторы цикла со счётчиком могут эффективнее транслироваться, так как формализованный вид такого цикла позволяет использовать специальные процессорные команды организации циклов.

 

 


Поделиться:

Дата добавления: 2015-04-21; просмотров: 115; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты