в Древнем Египте наряду со значками , обозначавшими целые понятия и слова, существовали и другие знаки, обозначавшие слоги и даже отдельные звуки . Потребность в таких знаках очевидна, так как не все можно выразить в виде изображений (прежде всего, это касается личных имен).
В этих случаях египтяне превращали слова иероглифы в буквы иероглифы, из которых и составлялись слова, подлежащие передаче на письме согласно их звучанию. Например иероглиф «хт» — изображение дома — сделался двухбуквенным иероглифом, обозначающим звук [хт], иероглиф «мн» — изображение шахматной доски — стал иероглифом, обозначающим два звука [мн] и т.д. На первых порах значение фонетических иероглифов было вс но со временем их роль все более возрастала, и в последние века существования египетской письменности значение фонетических иероглифов стало господствующим. Но к чисто фонографическому письму (то есть такому, где каждый знак обозначает отдельный звук или букву) египтяне так и не перешли . Это важное усовершенствование было сделано в письме других народов.
p - произведение
s - сумма
i - цикловая переменная
1. Цикл с предусловием While
var
p, s, i : longint; [или integer]
begin
p := 1;
s := 0;
i := 101;
while i < 200 do
begin
if i mod 5 = 0 then
begin
p := p * i;
s := s + i;
end;
i := i + 1; [или ing(i)]
end;
writeln(p);
writeln(c)
end.
2. Цикл с постусловием Repeat
var
p, s, i : longint; [или integer]
begin
p := 1;
s := 0;
i := 101;
repeat
if i mod 5 = 0 then
begin
p := p * i;
s := s + i;
end;
i := i + 1; [или ing(i)]
until i >= 200;
writeln(p);
writeln(c)
end.
3. Цикл For
var
p, s, i : longint; [или integer]
begin
p := 1;
s := 0;
for i := 101 to 199 do
begin
if i mod 5 = 0 then
begin
p := p * i;
s := s + i;
end;
end;
writeln(p);
writeln(c)
end.
Массивы - это совокупности однотипных элементов. Характеризуются они следующим:
каждый компонент массива может быть явно обозначен и к нему имеется прямой доступ;
число компонент массива определяется при его описании и в дальнейшем не меняется.
Для обозначения компонент массива используется имя переменной-массива и так называемые индексы, которые обычно указывают желаемый элемент. Тип индекса может быть только порядковым (кроме longint). Чаще всего используется интервальный тип (диапазон).
Описание типа массива задается следующим образом:
type
имя типа = array[ список индексов ] of тип
Здесь имя типа - правильный идентификатор; список индексов - список одного или нескольких индексных типов, разделенных запятыми; тип - любой тип данных.
Вводить и выводить массивы можно только поэлементно.
Пример 1. Ввод и вывод одномерного массива.
const
n = 5;
type
mas = array[1..n] of integer;
var
a: mas;
i: byte;
begin
writeln('введите элементы массива');
for i:=1 to n do readln(a[i]);
writeln('вывод элементов массива:');
for i:=1 to n do write(a[i]:5);
end.
Определить переменную как массив можно и непосредственно при ее описании, без предварительного описания типа массива, например:
var a,b,c: array[1..10] of integer;
Если массивы a и b описаны как:
var
a = array[1..5] of integer;
b = array[1..5] of integer;
то переменные a и b считаются разных типов. Для обеспечения совместимости применяйте описание переменных через предварительное описание типа.
Если типы массивов идентичны, то в программе один массив может быть присвоен другому. В этом случае значения всех переменных одного массива будет присвоены соответствующим элементам второго массива.
Вместе с тем, над массивами не определены операции отношения. Сравнивать два массива можно только поэлементно.
Так как тип, идущий за ключевым словом of в описании массива, - любой тип Турбо Паскаль, то он может быть и другим массивом. Например:
type
mas = array[1..5] of array[1..10] of integer;
Такую запись можно заменить более компактной:
type
mas = array[1..5, 1..10] of integer;
Таким образом возникает понятие многомерного массива. Глубина вложенности массивов произвольная, поэтому количество элементов в списке индексных типов (размерность массива) не ограничена, однако не может быть более 65520 байт.
Работа с многомерными массивами почти всегда связана с организацией вложенных циклов. Так, чтобы заполнить двумерный массив (матрицу) случайными числами, используют конструкцию вида:
for i:=1 to m do
for j:=1 to n do a[i,j]:=random(10);
Для "красивого" вывода матрицы на экран используйте такой цикл:
for i:=1 to m do begin
for j:=1 to n do write(a[i,j]:5);
writeln;
end;
Объяснение: