Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 11.02.2014
Сообщений: 100

Выбирая нужный пункт выполнить соответствующее действие

11.02.2014, 15:06. Показов 752. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Суть программы такая: выбирая нужный пункт выполнить соответствующее действие. Вот моя программа:
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
uses crt;
label 10,11;
var f:file of string;
    a:string;
    n,i,k:integer;
begin
10: gotoxy (22,5);writeln('1.sodanie');
  gotoxy(22,7);writeln('2.chtenie');
  gotoxy(22,9);writeln('3.redactor');
  gotoxy(22,11);writeln('4.exit');
write('n=');readln(n);
case n of
1: begin
   assign(f,'spisok');
   rewrite(f);
   for i:=1 to 5 do
   begin
    write('a=');readln(a);
    write(f,a);
   end;
  close(f);
  end;
  goto 10;
2: begin
assign(f,'spisok');
  reset(f);
  while not eof(f) do
  begin
   read(f,a);
   writeln(a);
  end;
  close(f);}
  end;
goto 10;
 
3: begin
  assign(f,'spisok');
  reset(f);
  write('k=');readln(k);
  while not eof(f) do
   read(f,a);
   for i:=1 to k do begin
    write('a=');readln(a);
    write(f,a);
   end;
   close(f);
  end;
  goto 10;
4:goto 11;
end; 
11: end.
в 23 строке выдает ошибку: встречено 'goto', а ожидалось выражение. В чем проблема?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.02.2014, 15:06
Ответы с готовыми решениями:

Выполнить действие
Дано действительное а и натуральное n. Вычислить: y = a (a-n) (a-2n) (a-3n) ... (a-n2) Заранее спасибо.

При нажатии на нужный PictureBox, который находится в GroupBox выполнить действие
При нажатии пользователем на нужный PictureBox, находящийся в groupBoxOfBorderColor должно выполняться действие colorIndex = (int) pb.Tag ...

Как сделать, чтобы выбирая определённый пункт из ComboBox, в Edit отображалось заданное значение
Дорогие форумчане! Я весь интернет перерыл. И на этом форуме вроде тоже всё проверил. Опишу что мне необходимо. Пишу программу для...

5
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
11.02.2014, 15:32
Так сначала пиши свое
goto 10;
а после него
end;
А вообще забыл бы про это goto, да еще в связке с case...
1
0 / 0 / 0
Регистрация: 11.02.2014
Сообщений: 100
11.02.2014, 22:05  [ТС]
Спасибо. Такой еще вопрос: как можно заменить первую часть(создание файла) функцией?

Добавлено через 4 часа 23 минуты
Все пишут, что goto лучше не использовать и можно обойтись без него, используя функции. Можете объяснить на этом примере, какой функцией заменить?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33400 / 21510 / 8236
Регистрация: 22.10.2011
Сообщений: 36,907
Записей в блоге: 12
11.02.2014, 22:34
Цитата Сообщение от dark009 Посмотреть сообщение
Можете объяснить на этом примере, какой функцией заменить?
Тут даже функции не нужны. Достаточно одного цикла repeat/until. Вот так:
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
uses
  crt;
 
var
  f: file of shortstring;
  a: shortstring;
  n, i, k: integer;
 
begin
  repeat
    gotoxy(22, 5);writeln('1.sodanie');
    gotoxy(22, 7);writeln('2.chtenie');
    gotoxy(22, 9);writeln('3.redactor');
    gotoxy(22, 11);writeln('4.exit');
    write('n=');readln(n);
    case n of
      1: 
        begin
          assign(f, 'spisok');
          rewrite(f);
          for i := 1 to 5 do
          begin
            write('a=');readln(a);
            write(f, a);
          end;
          close(f);
        end;
      2: 
        begin
          assign(f, 'spisok');
          reset(f);
          while not eof(f) do
          begin
            read(f, a);
            writeln(a);
          end;
          close(f);
        end;
      
      3: 
        begin
          assign(f, 'spisok');
          reset(f);
          write('k=');readln(k);
          while not eof(f) do
            read(f, a);
          for i := 1 to k do 
          begin
            write('a=');readln(a);
            write(f, a);
          end;
          close(f);
        end;
    end; 
  until n = 4; // при n = 4 выйдешь из цикла...
end.
(заодно поправил описания типа файла, file of string компилироваться в PascalABC.NET не будет, это ссылочный тип, нужно использовать ShortString-и)... Это прекрасно компилируется безо всяких goto...
0
0 / 0 / 0
Регистрация: 11.02.2014
Сообщений: 100
11.02.2014, 23:26  [ТС]
Все таки хотелось бы узнать как делать это через вызов функций?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33400 / 21510 / 8236
Регистрация: 22.10.2011
Сообщений: 36,907
Записей в блоге: 12
12.02.2014, 03:27
Самоцель? Говорят же, функции не помогут избавиться от goto.. Можно, конечно, разбить и на несколько подпрограмм, но с тем же успехом я тебе показал, как и без этого можно было сделать. Ну вот, с функциями и процедурами:
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
uses crt;
 
procedure Sozdanie;
var
  f: file of shortstring;
  a: shortstring;
  i: integer;
begin
  assign(f, 'spisok');
  rewrite(f);
  for i := 1 to 5 do
  begin
    write('a=');readln(a);
    write(f, a);
  end;
  close(f);
end;
 
procedure Chtenie;
var
  f: file of shortstring;
  a: shortstring;
begin
  assign(f, 'spisok');
  reset(f);
  while not eof(f) do
  begin
    read(f, a);
    writeln(a);
  end;
  close(f);
end;
 
procedure Redactor;
var
  f: file of shortstring;
  a: shortstring;
  i, k: integer;
begin
  assign(f, 'spisok');
  reset(f);
  write('k=');readln(k);
  while not eof(f) do
    read(f, a);
  for i := 1 to k do 
  begin
    write('a=');readln(a);
    write(f, a);
  end;
  close(f);
end;
 
function menu: integer;
begin
  gotoxy(22, 5);writeln('1.sodanie');
  gotoxy(22, 7);writeln('2.chtenie');
  gotoxy(22, 9);writeln('3.redactor');
  gotoxy(22, 11);writeln('4.exit');
  write('n=');readln(result);
end;
 
var
  n: integer;
 
begin
  repeat
    clrscr;
    n := menu;
    case n of
      1: Sozdanie;
      2: Chtenie;    
      3: Redactor;
    end; 
  until n = 4; // при n = 4 выйдешь из цикла...
end.
И чего? Помогло это тебе?

В общем, с тобой все ясно. Что бы тебе не сделали - всегда всё будет НЕ ТАК. Знаем таких...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.02.2014, 03:27
Помогаю со студенческими работами здесь

Как обработать ситуацию, если пользователь вводит не нужный пункт меню?
Вот мой код: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace...

Действие при нажатии на пункт TTreeView
Здравствуйте, на форме есть компонент TreeView и как пример записанные разделы: Десерт первый второй третий Напитки

Вывести время суток и вывести соответствующее ему действие, на русском языке
Здравствуйте. Пожалуйста помогите составить программу, у меня есть только условие. Условие задачи. Вывести время суток и вывести...

Выполнить действие ID
<a href='http://ru.tankiforum.com/index.php?app=core&module=global&section=login' title='Войти' id='sign_in'>Войти</a> Как...

Выполнить действие по таймеру
Какую функцию нужно использовать, чтобы программа выполнила условие при достижении t. Наподобие ожидания ввода getch(), только со...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru