- •1) Принципы фон Неймана
- •2) Общая схема устройства компьютера
- •5) Структура программы на Паскале. Используемые в языке символы. Идентификаторы, ключевые слова, комментарии.
- •12) Массивы
- •15) Назначение параметров
- •16. Локальные, глобальные переменные. Время жизни и область видимости переменных;
- •18 Cтруктуры в си
- •19. Основные директивы препроцессора. Компиляция, линковка;
- •4.2.2. Директива define
- •20. Стандартная библиотека с:
12) Массивы
Массив — упорядоченный набор данных, для хранения данных одного типа, идентифицируемых с помощью одного или нескольких индексов. В простейшем случае массив имеет постоянную длину и хранит единицы данных одного и того же типа.
Количество используемых индексов массива может быть различным. Массивы с одним индексом называют одномерными, с двумя — двумерными и т. д. Одномерный массив нестрого соответствует вектору в математике, двумерный — матрице. Чаще всего применяются массивы с одним или двумя индексами, реже — с тремя, ещё большее количество индексов встречается крайне редко.
Пример статического массива на языке Паскаль
a: array [1..n] of Integer;
Пример статического массива на С/С++
int Array[10]; // Одномерный массив целых чисел размера 10
// Нумерация элементов от 0 до 9
double Array[12][15]; // Двумерный массив вещественных чисел двойной точности
// размера 12 на 15.
// Нумерация по столбцам от 0 то 11, по строкам от 0 до 14
13) Цикл — разновидность управляющей конструкции в высокоуровневых языках программирования, предназначенная для организации многократного исполнения набора инструкций. Также циклом может называться любая многократно исполняемая последовательность инструкций, организованная любым способом (например, с помощью условного перехода).
Безусловные циклы
Иногда в программах используются циклы, выход из которых не предусмотрен логикой программы. Такие циклы называются безусловными, или бесконечными. Специальных синтаксических средств для создания бесконечных циклов, ввиду их нетипичности, языки программирования не предусматривают, поэтому такие циклы создаются с помощью конструкций, предназначенных для создания обычных (или условных) циклов. Для обеспечения бесконечного повторения проверка условия в таком цикле либо отсутствует (если позволяет синтаксис, как, например, в цикле LOOP…END LOOP языка Ада), либо заменяется константным значением (while true do … в Паскале).
Цикл с предусловием
Цикл с предусловием — цикл, который выполняется пока истинно некоторое условие, указанное перед его началом. Это условие проверяется до выполнения тела цикла, поэтому тело может быть не выполнено ни разу (если условие с самого начала ложно). В большинстве процедурных языков программирования реализуется оператором while, отсюда его второе название — while-цикл. На языке Pascal цикл с предусловием имеет следующий вид:
while <условие> do
begin
<тело цикла>
end;
На языке Си:
while(<условие>)
{
<тело цикла>
}
Цикл с постусловием
Цикл с постусловием — цикл, в котором условие проверяется после выполнения тела цикла. Отсюда следует, что тело всегда выполняется хотя бы один раз. В языке Паскаль этот цикл реализует оператор repeat..until; в Си — do…while. На языке Pascal цикл с постусловием имеет следующий вид::
repeat
<тело цикла>
until <условие выхода>
На языке Си:
do
{
<тело цикла>
}
while(<условие продолжения цикла>)
14) Подпрограмма (англ. subroutine) — поименованная или иным образом идентифицированная часть компьютерной программы, содержащая описание определённого набора действий. Подпрограмма может быть многократно вызвана из разных частей программы. В языках программирования для оформления и использования подпрограмм существуют специальные синтаксические средства.
Процедуры и функции
В Паскале подпрограммы делятся на процедуры и функции:
Синтаксически процедуры и функции состоят из заголовка (содержащего ключевое слово procedure или function, имени, за которым может следовать описание передаваемых параметров в скобках, тип возвращаемого значения через символ двоеточия для функций и точки с запятой для процедур), после заголовка следует тело, после которого ставится символ ;.
program mine(output);
var i : integer;
procedure print(var j: integer);
function next(k: integer): integer;
begin
next := k + 1
end;
begin
writeln('Всего: ', j);
j := next(j)
end;
begin
i := 1;
while i <= 10 do
print(i)
end.
Тело процедуры, как и программы, в свою очередь может содержать описания процедур и функций. Таким образом, процедуры и функции могут быть вложены друг в друга как угодно глубоко, при этом тело программы — самое верхнее в цепочке.
Причём содержимое секций описания переменных, типов, констант, внешнего тела (процедуры, функции, программы), расположенных перед описанием процедуры/функции, доступны внутри неё. Также, в большинстве диалектов из процедуры можно обращаться к параметрам внешней процедуры.
Вслед за заголовком процедур/функций вместо тела может помещаться ключевое слово forward, это делается в том случае, если описание процедуры/функции располагается в программе после её вызова, и связано с поддерживаемой в Паскале возможностью компиляции программы за один проход.
Процедуры отличаются от функций тем, что функции возвращают какое-либо значение, а процедуры — нет.
В языке Си для возврата пользовательских значений вызвавшему коду используется оператор return, либо значение по умолчанию при автоматическом завершении работы функции после её закрывающей фигурной скобки.
Прототипом функции в языке Си или C++ называется объявление функции, которое не содержит тело функции, но указывает имя функции, арность, типы аргументов и возвращаемый тип данных. В то время как определение функции описывает, что именно делает функция, прототип функции может восприниматься как описание её интерфейса.
