11 / 11 / 2
Регистрация: 17.02.2014
Сообщений: 947
1

Оператор for. Для чего в коде дополнительные begin-end

16.07.2014, 12:51. Показов 1707. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
Program DimanRu;
Var name, surname: string;
i:integer;
Begin;
Writeln('Введите имя...');
Readln(name);
Writeln('Введите фамилию...');
Readln(surname);
FOR i:=1 TO 10 DO
Begin;
Writeln(surname,' ', name);
End;
End.
Почему после цикла есть begin-end? Это потому что имя и фамилия выводятся 10 раз и поэтому 10 операторов?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.07.2014, 12:51
Ответы с готовыми решениями:

Дан массив строк. Напишите программу, проверяющую правильность вложения операторных скобок begin . end — каждому begin должен соответствовать end
Дан массив строк, представляющий собой фрагмент программы на языке Pascal. Напишите программу,...

Оператор условия не открывает ветвь then begin end, несмотря, на то, что условие выполняется
Учусь по самоучителю "Песни о Паскале". Код программы предложенный автором не кидать, и ваши коды...

Реализовать итераторы begin() и end() для списка
Есть список. и операции для него 1)разыменование 2)инкремент (префиксный и постфиксный) 3) ==...

Перегрузка begin() end() для своего динамического класса
Begin(),end() чтобы работало с algorithm

4
Эксперт Pascal/Delphi
6807 / 4565 / 4818
Регистрация: 05.06.2014
Сообщений: 22,438
16.07.2014, 13:04 2
Лучший ответ Сообщение было отмечено ildwine как решение

Решение

В данном конкретном случае begin end не обязательны. Они ставятся в том случае, если повторяется блок операторов.
1
Супер-модератор
6163 / 2906 / 1299
Регистрация: 04.03.2013
Сообщений: 5,768
Записей в блоге: 1
16.07.2014, 19:36 3
в цикле выполняется 1 оператор Writeln(surname,' ', name); поэтому begin ... end здесь лишние, но не приводящие к неверной работе программы. Вообще, мое мнение - точка с запятой перед end и until, а также лишние операторные скобки - путь к быдлокоду

Добавлено через 10 минут
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
for i := 1 to 10 do
begin
  1_оператор;
  2_оператор;
  if условие then {весь if-then = 3_оператор}
  begin
    1_оператор;
    2_оператор;
    ...
    n_оператор {без точки с запятой}
  end {без точки с запятой}
end;
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7539 / 4399 / 2785
Регистрация: 22.11.2013
Сообщений: 12,605
Записей в блоге: 1
16.07.2014, 20:36 4
Цитата Сообщение от ildwine Посмотреть сообщение
мое мнение - точка с запятой перед end и until, а также лишние операторные скобки - путь к быдлокоду
Вынужден с вами не согласиться. Во-первых, вреда от лишнего пустого простого ( ; ) или составного (begin end) оператора нет совершенно никакого. Во-вторых, зачастую наличие указанных элементов продиктовано желанием упростить внесение в код изменений, избавить от необходимости бегать в предыдущую строку, чтобы поставить (или убрать) ";", что частенько может быть забыто. Ради такого случая даже предлагалось выносить ";" перед операторами на уровень вложенности:
Pascal
1
2
3
4
5
6
  for i:=1 to 10 do begin
  ;  оператор_1
  ;  оператор_2
  ;  оператор_n
  end
end.
что не избавляло от лишней ";", но теперь после begin.

На самом деле вопрос по важности примерно на уровне того, с какой стороны разбивать яйцо, с тупой или острой.
1
Супер-модератор
6163 / 2906 / 1299
Регистрация: 04.03.2013
Сообщений: 5,768
Записей в блоге: 1
16.07.2014, 20:49 5
bormant, спасибо за мнение, моё забыл добавить не является догмой... Чисто ИМХО с которым не все согласны - это нормально...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.07.2014, 20:49
Помогаю со студенческими работами здесь

Теория BEGIN..END;
Снова здрасьте! Довольно часто я встречаю примеры кода, подобные этому var F: TextFile; ...

Баланс BEGIN-END
Баланс BEGIN-END. Дан текстовый файл, содержащий программу на языке Паскаль. Проверить в нем...

Количество Begin и End
Составить программу, которая читает текст, считает число ключевых слов ‘begin’ и число ключевых...

begin...end тупик!
Здравствуйте!Сново тупик у меня!При решение ax^4+bx^2+c=0 у меня программа бежит сразу в низ!В чём...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru