Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 13.12.2010
Сообщений: 38
1

Совершенно запуталась с операторными скобками (BEGIN и END). Помогите разобраться

14.03.2014, 16:57. Показов 1681. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Совершенно запуталась с BEGINами и ENDами.. помогите пожалуйста
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
program echo(input,output);
var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o: real;
 label M1,  M2,  M3, M4;
BEGIN
writeln ('1.Есть ли волосяной покров?');
readln(a);
    if a=1 then 
      M1: writeln ('3.Питается мясом?');
      readln (c);
          if c=1 then 
            M3: writeln ('7.окрас желто-коричневый и пигмент темные полосы?');
            readln(g);
                if g=1 then
                  writeln ('16.Тигр!')
                else 
                writeln ('8.окрас желто-коричневый и пигмент темные пятна?');
                readln (h); 
                  if h=1 then  
                  writeln ('17.Гепард!')
                  else 
                  writeln ('18.млекопитающее, хищник. подробнее не удалось') 
          else
          writeln ('4.Есть ли острые зубы и когти?');
          readln (d);
          if d=1 then goto M3;
            else
            writeln ('5.Есть ли копыта?');
            readln (e);
              if e=1 then 
              M4: writeln ('9.Пигмент черные полосы?');
              readln (i);
                if i=1 then
                writeln ('19.Зёбра!');
                else
                writeln ('10.Длинные шея и ноги?');
                readln (j);
                  if j=1 then 
                  writeln ('20. Жираф!');
                  else  
                  writeln ('21.Парнокопытное млекопитающие. подробнее не удалось!');
                 
                  
                    else
                        writeln ('6.Жует ли жвачку?');
                        readln (f);
                        if f=1 then goto M4;
                        else 
                                writeln ('22.Mлекопитающие. подробнее не удалось!');
    else      
    writeln ('2. Есть ли молоко?');
      readln (b);
      if b=1 then goto M1;
        else 
        writeln ('11. Есть ли перья?');
        readln (k);
        if k=1 then
          M2: writeln ('13.Умеет ли хорошо летать?');
          readln (m);
          if m=1 then 
          writeln ('23.Альбатрос!');
            else
            writeln ('14.Умеет ли быстро бегать?');
            readln (n);
            if n=1 then 
            writeln ('24.Страус!');
              else 
              writeln ('15.Окрас черно-белый и живет в антарктиде?');
              readln (o);
                if o=1 then 
                writeln ('25.Пингвин!');
                  else
                  writeln ('26. Птица. подробнее определить не удалось!');
                  
        else
        writeln ('12.Есть ли крылья?');
        readln (l); 
          if l=1 then goto M2; 
          else 
          writeln ('27.Классифицировать не удалось!(((');
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.03.2014, 16:57
Ответы с готовыми решениями:

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

Итераторы begin и end
Привет всем! Возникла проблема с итераторами. Пишу класс, который содержит вектор векторов. Пишу...

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

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

11
102 / 70 / 79
Регистрация: 06.02.2014
Сообщений: 211
14.03.2014, 18:16 2
Цитата Сообщение от nastyanan Посмотреть сообщение
if f=1 then goto M4;
И зачем так делать?!
0
0 / 0 / 0
Регистрация: 13.12.2010
Сообщений: 38
14.03.2014, 19:22  [ТС] 3
без этого программа будет в 2 раза больше..
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7794 / 4617 / 2830
Регистрация: 22.11.2013
Сообщений: 13,112
Записей в блоге: 1
14.03.2014, 19:41 4
Лучший ответ Сообщение было отмечено nastyanan как решение

Решение

Сверьте логику по описанию.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
program echo(input,output);
 
function ask(s: string): boolean;
var a: integer;
begin
  Write(s,' '); ReadLn(a); ask:=a=1;
end;
 
label M1,  M2,  M3, M4;
 
begin
  if ask(' 1. Есть ли волосяной покров?') then
M1:
    if ask(' 3. Питается мясом?') then
M3:
      if ask(' 7. Окрас желто-коричневый и пигмент темные полосы?') then
        writeln ('16. Тигр!')
      else {7}
        if ask(' 8. Окрас желто-коричневый и пигмент темные пятна?') then
          writeln ('17. Гепард!')
        else {8}
          writeln ('18. Млекопитающее, хищник. Подробнее не удалось') 
    else {3}
      if ask(' 4. Есть ли острые зубы и когти?') then goto M3
      else {4}
        if ask(' 5. Есть ли копыта?') then
M4: 
          if ask(' 9. Пигмент черные полосы?') then
            writeln ('19. Зёбра!')
          else {9}
            if ask('10. Длинные шея и ноги?') then
              writeln ('20. Жираф!')
            else {10}
              writeln ('21. Парнокопытное млекопитающие. Подробнее не удалось!')
        else {5}
          if ask(' 6. Жует ли жвачку?') then goto M4
          else {6}
            writeln ('22. Mлекопитающие. подробнее не удалось!')
  else {1}
    if ask(' 2. Есть ли молоко?') then goto M1
    else {2}
      if ask('11. Есть ли перья?') then
M2:
        if ask('13. Умеет ли хорошо летать?') then 
          writeln ('23. Альбатрос!')
        else {13}
          if ask('14. Умеет ли быстро бегать?') then 
            writeln('24. Страус!')
          else {14}
            if ask('15. Окрас черно-белый и живет в антарктиде?') then 
              writeln ('25. Пингвин!')
            else {15}
              writeln ('26. Птица. подробнее определить не удалось!')
      else {11}
        if ask('12. Есть ли крылья?') then goto M2
        else {12}
          writeln ('27. Классифицировать не удалось!(((');
end.
1
0 / 0 / 0
Регистрация: 13.12.2010
Сообщений: 38
14.03.2014, 19:44  [ТС] 5
Program1.pas(24,54): Переход внутрь составного оператора на метку M3 невозможен
выдает вот такую ошибку
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7794 / 4617 / 2830
Регистрация: 22.11.2013
Сообщений: 13,112
Записей в блоге: 1
14.03.2014, 19:56 6
Хм, tp71 собирает без проблем. Чем собираете вы?

Добавлено через 8 минут
Free Pascal 2.6 собирает без проблем.

PascalABC.net не позволяет делать метки внутри составных операторов, судя по тексту ошибки.
1
0 / 0 / 0
Регистрация: 13.12.2010
Сообщений: 38
14.03.2014, 19:58  [ТС] 7
именно PascalABC.net и не работает. сейчас попробую другой скачать
0
ildwine
14.03.2014, 20:06
  #8

Не по теме:

Цитата Сообщение от bormant Посмотреть сообщение
PascalABC.net не позволяет делать метки внутри составных операторов, судя по тексту ошибки.
Лучше бы вообще не разрешал делать метки... :D

0
0 / 0 / 0
Регистрация: 13.12.2010
Сообщений: 38
14.03.2014, 20:09  [ТС] 9
и Free Pascal 2.6 не открывает..
что сделать, чтоб работал в PascalABC.net?
0
Супер-модератор
6197 / 2945 / 1300
Регистрация: 04.03.2013
Сообщений: 5,790
Записей в блоге: 1
14.03.2014, 20:13 10
nastyanan, FPC (Free Pascal) прекрасно компилирует...
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7794 / 4617 / 2830
Регистрация: 22.11.2013
Сообщений: 13,112
Записей в блоге: 1
14.03.2014, 20:15 11
Лучший ответ Сообщение было отмечено ildwine как решение

Решение

Цитата Сообщение от nastyanan Посмотреть сообщение
Free Pascal 2.6 не открывает
Что значит "не открывает"?
Код
>C:\FPC\2.6.2\bin\i386-win32\fpc.exe t.pas
Free Pascal Compiler version 2.6.2 [2013/02/12] for i386
Copyright (c) 1993-2012 by Florian Klaempfl and others
Target OS: Win32 for i386
Compiling t.pas
Linking t.exe
57 lines compiled, 0.5 sec , 27296 bytes code, 2460 bytes data
Добавлено через 1 минуту
Ну и функцию запроса можно сделать чуть дружелюбнее:
Pascal
1
2
3
4
5
function ask(s: string): boolean;
var a: char;
begin
  Write(s,' '); ReadLn(a); ask:=a in ['1','y','Y','д','Д'];
end;
1
0 / 0 / 0
Регистрация: 13.12.2010
Сообщений: 38
14.03.2014, 20:18  [ТС] 12
спасибо большое! все работает!
0
14.03.2014, 20:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.03.2014, 20:18
Помогаю со студенческими работами здесь

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

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

Расставить begin end
procedure TForm3.sButton5Click(Sender: TObject); begin try if (Trim(sedit1.Text)='') //...

Ошибка в begin и end
Ошибка в begin и end.Что убрать? procedure TForm1.Button1Click(Sender: TObject); var...

Встречено 'end', а ожидалось begin
uses Crt; Const MaxRec = 4; Type String11 = String; String25 = String; ...

Встречено 'end', а ожидалось begin
Не могу найти ошибку. uses GraphABC, ABCObjects; var a: ABCObjects.PictureABC; b:...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru