1)строение на паскаль. 2) условный оператор 3)цикл с предусловием 4) цикл с параметром 5.оператор ввода 6.оператор вывода 7.оператор выбора 8.цикл с постусловием 9. оператор присваивания.
Оператор присваивания.Как и во всех языках программирования, в Pascal ABC имеется оператор присваивания. В некоторых языках, символом присваивания является знак равенства, однако для того, чтобы не путаться, оператор присваивания в Паскале выглядит так ":= " Он служит для определения или переопределения значения переменной. В случае переопределения, новое значение переменной, записывается в ячейки с именем переопределяемой переменной, а прежнее значение стирается. Например:a:=1000;b:=5;a:=a+b.Исходное значение переменной а – 1000, конечное 1005.
Оператор выбора. Иногда требуется осуществить выбор более чем из двух условий. В этом случае применяется оператор множественного выбора, позволяющий выбрать из списка одно из условий. Оператор выбора выполняет одно действие из нескольких в зависимости от значения некоторого выражения, называемого переключателем. Он имеет следующий вид: case переключатель of список выбора 1: оператор1; ... список выбора N: операторN; else оператор0 end; Переключатель представляет собой выражение порядкового типа (целого, символьного, перечислимого или интервального), а списки выбора содержат константы совместимого типа. Как и в операторе if, ветвь else может отсутствовать. Оператор case (в случае) работает следующим образом. В списке выбора проверяется на совпадение текущее значение переключателя и меток списка, и если найдено совпадение, то выполняется оператор, соответствующий данной строке списка. Если же значение переключателя не найдено ни в одной строке, то выполняется оператор else. В случае, если ветвь else отсутствует, оператор case не выполняет никаких действий, а управление передается внешнему оператору, следующему за конструкцией CASE. Список выбора состоит либо из одной константы, либо из диапазона значений вида a..b (константа a должна быть меньше константы b). Можно также перечислить несколько констант или диапазонов через запятую. В списках выбора диапазоны меток не должны пересекаться. Например, в результате выполнения следующего фрагмента case i of 1,5: write(1); 4..9: write(2); end; программа завершится сообщением об ошибке.
"Паскалей" различных много. Массивы тоже бывают разные. В вопросе ничего не детализировано, поэтому речь пойдет об одномерных массивах. 1. Турбо (Борланд) Паскаль. Массив - статический, в нем последний элемент не нужно определять, поскольку его индекс известен по описанию массива. 2. Borland Delphi, Free Pascal. Статические массивы - все как и в Турбо Паскаль. Но есть и динамические массивы, индексируемые от нуля, поэтому индекс последнего элемента в них равен количеству элементов минус единица. Можно пользоваться функцией Length(a), возвращающей текущее количество элементов в массиве. 3. PascalABC.NET 3.3. Действительно все, что написано выше. И добавочно можно написать a.Length вместо Length(a).
LINQ - технология доступа к данным, разработанная Microsoft для среды .NET. Первоначально применялась при работе с базами данных, позднее была обобщена, позволяя работать с объектами программного кода (LINQ to Objects). В PascalABC.NET 3.х на базе LINQ to Objects реализованы элементы функционального программирования, для понимания работы которых нужно быть знакомым с "лямбдами" - λ-выражениями, λ-функциями и λ-процедурами. Эти элементы могут применяться к объектам программы, которые поддерживают интерфейс IEnumerable из .NET Framework. Говоря проще, к массивам, спискам, стекам, очередям, словарям - любым динамическим объектам, реализованным на базе последовательностей. И, конечно же, к самим последовательностям. Последовательность - это новшество для Паскаля, пришедшее из функционального программирования. Главная особенность последовательности в том, что она не хранится в памяти. Вместо этого хранятся а) программный код, позволяющий вычислить любой элемент последовательности и б) значение текущего элемента последовательности, с которым производится операция. Это позволяет работать с последовательностями любой длины, в том числе, с бесконечными. Операторы LINQ обрабатывают входные данные и на выходе всегда возвращают последовательность. Многие начинающие программисты забывают об этом, что порождает ошибки, временами, с маловразумительной диагностикой. В PascalABC.NET 3.x операции LINQ реализованы в виде расширений соответствующих классов, поэтому в записи используется "точечная форма". В функциональном программировании имеются, в частности, операции проекция, фильтрация и свертка. С их можно просто и наглядно решать достаточно широкий круг задач. Фильтрация Where, примененная к последовательности, пропускает на выход лишь элементы, удовлетворяющие заданному условию (для которых это условие истинно). Условие задается в виде лямбды. Например, a.Where(t->(t>0) and t.IsOdd) породит последовательность из положительных нечетных элементов а (a - массив и т.д.). Проекция Select, примененная к последовательности, преобразует каждый ее элемент к значению по правилу, заданному "лямбдой". Например, a.Select(t->3*sin(t)+5*Cos(2*t)) породит последовательность, каждый член которой будет вычислен как значение функции f(x)=3Sin(x)+5Cos(2x). Свертка Aggregate заменяет оператор цикла, сворачивая последовательность до одного значения. Это разного рода суммы, произведения и т.п. В простейшем случае используются два параметра, первый из которых определяет начальное значение, а второй является лямбдой, задающий операцию между предыдущим и текущим значениями. a.Aggregate(1,(x,y)->x*y) свернет элементы a в произведение, a.Aggregate(0,(x,y)->x+y) свернет элементы a в сумму.
Кроме трех упомянутых операций, LINQ предоставляет также разбиение, объединение, конкатенацию, группировку, упорядочивание и прочее. "Точечная" нотация PascalABC.NET 3.x позволяет стоить из операций длинные цепочки, что повышает эффективность программ из-за отсутствия промежуточных переменных. Пример: SeqGen(15,i->3*i*i-5,10).Where(t->t.IsEven).Select(t->t/10).OrderBy(t->t).Println; Здесь генерируется последовательность из 15 элементов по формуле a = 3i²-5, где i=10,11,12,.. Полученная последовательность фильтруется по правилу, пропускающему только элементы с четными значениями. Результат проецируется на последовательность вещественных элементов путем деления каждого исходного элемента на 10. Полученная последовательность упорядочивается по возрастанию и выводится на монитор: 35.8 50.2 67 86.2 107.8 131.8 158.2
Оператор выбора. Иногда требуется осуществить выбор более чем из двух условий. В этом случае применяется оператор множественного выбора, позволяющий выбрать из списка одно из условий. Оператор выбора выполняет одно действие из нескольких в зависимости от значения некоторого выражения, называемого переключателем. Он имеет следующий вид:
case переключатель of
список выбора 1: оператор1;
...
список выбора N: операторN;
else оператор0
end;
Переключатель представляет собой выражение порядкового типа (целого, символьного, перечислимого или интервального), а списки выбора содержат константы совместимого типа. Как и в операторе if, ветвь else может отсутствовать. Оператор case (в случае) работает следующим образом. В списке выбора проверяется на совпадение текущее значение переключателя и меток списка, и если найдено совпадение, то выполняется оператор, соответствующий данной строке списка. Если же значение переключателя не найдено ни в одной строке, то выполняется оператор else. В случае, если ветвь else отсутствует, оператор case не выполняет никаких действий, а управление передается внешнему оператору, следующему за конструкцией CASE. Список выбора состоит либо из одной константы, либо из диапазона значений вида a..b (константа a должна быть меньше константы b). Можно также перечислить несколько констант или диапазонов через запятую.
В списках выбора диапазоны меток не должны пересекаться. Например, в результате выполнения следующего фрагмента
case i of
1,5: write(1);
4..9: write(2);
end;
программа завершится сообщением об ошибке.