Begin end в паскале
Автор Darika задал вопрос в разделе Железо
паскаль. Почему в некоторых местах мы ставим бегин и энд,а некоторых нет и получил лучший ответ
Ответ от Илья Павлов[гуру]
Бегин/Енд заключают в себя составной оператор.
Составной оператор - это набор команд, в котором более одной команды.
Составной оператор требуется условиям IF, CASE, циклам WHILE, FOR, и т. д. , чтобы выделить команды, относящиеся к ним.
Составной оператор ВСЕГДА выделяется с помощью Бегин/Енд. То есть, если вы хотите поместить в тело условия или цикла больше одной команды - вы обязаны выделить их при помощи Бегин/Енд:
IF A > B THEN
BEGIN
A := 0;
B := 0;
END;
Исключение составляет оператор, состоящий только из одной команды. В этом случае он называется простым оператором, и мы НЕ ОБЯЗАНЫ вносить его в Бегин/Енд. Не обязаны - значит мы все равно можем его внести, ошибки не будет, но можем и не вносить:
WHILE A > B DO
A := A + 1;
B := B - 1;
Этот пример особенно инетересен. В нем отсутствует Бегин/Енд после цикла WHILE. А значит Pascal воспринимает этот код так:
WHILE A > B DO // Цикл
A := A + 1; // Код, выполняющийся в цикле (простой оператор, составляющий тело цикла)
B := B - 1; // Код, выполняющийся не в цикле (не имеющий к циклу никакого отношения)
З. Ы. : во избежание путаницы рекомендую вам всегда писать Бегин/Енд. Это не является ошибкой, улучшает, на мой взгляд, читаемость кода и упрощает его дальнейшую модификацию.
бегин и энд - начало и конец программы (то есть в самой программе могут быть маленькие програмки типа циклы, условия)
Задайте этот вопрос на 3 подраздела ниже
begin - end; - операторные скобки
если в операциях (циклах, условиях и проч. ) более одного операнда то ставятся операторные скобки
begin - end
Операторные скобки — скобки или команды, определяющие в языке программирования блок команд, воспринимаемый как единое целое, как одна команда.
Потому что это прихоть Никлауса Вирта (создатель Паскаля) , Страуструпа (создатель С++) и еще многих великих личностей ))
А теперь к делу:
Если у вас в условном операторе, в цикле и др. местах нужно написать несколько операторов, то пишите Бегин... Энд.
Если всего один - конструкция Бегин... Энд не нужна
Вышеупомянутая конструкция нужна в объявлении тела программы (бегин... энд с точкой) , в объявлении подпрограмм (процедуры и функции) и т. д.
как преобразовать real в string в паскаль
Люди, дельфисты! Ну кто, кто вам сказал, что у человека в ПАСКАЛЕ есть такая функция FloatToStr ?
подробнее...
Каковы правила описания и обращения к процедуре в Паскале
идентеф. имя список параметров
procedure PROC1(a, b, c :integer; var s :string);
begin
подробнее...
как написать квадрат в паскале
> как написать квадрат в паскале
program KVADRAT;
begin
WriteLn('квадрат');
подробнее...
Как в Паскале проверить существование файла?!
В Паскале такой встроенной функции нету, вот Вам вариант:
function fileexists(var filename:
подробнее...
Как описать в Паскале "ЦВЕТНОЙ ТЕКСТ" и "МИГАЮЩИЙ" ?? Помогите очень нужно!!!
Цветной текст в паскале устанавливаеццо процедурой textcolor, например:
....
begin
подробнее...
строки в Паскале
Доброго времени суток.
Вот теперь видно, что пытались сделать. Можно делать и так.
подробнее...
В паскале ABC пишен "неизвестный идентификатор detect. Что делать?
Скорее всего, это сообщение означает "Обнаружен неизвестный идентификатор". Это происходит если Вы
подробнее...
Выдаёт ошибку в паскале
У вас слишком много ненужных конструкций begin-end, которые затрудняют понимание кода и в которых
подробнее...
Пожалуйста, объясните мне принцип работы оператора for в паскале и для чего он именно предназначается
В Паскале есть три вида циклов.
Цикл for применяется, если известно количество повторений.
подробнее...
String to array в паскале
"мне нужно каждую цифру в отдельный элемент массива" "типа Integer"
var s:string;
подробнее...
Pascal abc функция рандом очень нужна помощь. как в паскаль abc заполнить массив а случайными числами от -1000 до 1000
var i,n:integer; a:array[1..1000]of integer;
begin
randomize; write(\'n ? \'); readln(n);
подробнее...
Помогите написать программку в Паскале...
Оператора string нет. string - зарезервированное слово - объявление типа "строка".
Можно
подробнее...
Как в паскале реализовать вычисление sqrt(2+sqrt(2+sqrt(2+...+sqrt(2))))
ммм. . в цикле? ) Как один из вариантов:
var n,i:integer; s:real;
begin
подробнее...
Помогите написать программу для нахождения синуса числа в паскале?
Если имеется ввиду, что нельзя использовать стандартную функцию, то
Разложение синуса в ряд
подробнее...