Синтаксическая ошибка missing operator semicolon or near draw


Go to processing


Syntax Error — Missing operator, semicolon, or ‘}’ near ‘draw’? , please help

void setup()

{

size(400,400);

frameRate(2);

//global variables

int width;

int height;

int g = (int)random(255);

background(g);

void draw()

{

int r =(int)random(0,100);

int g =(int)random(0,100);

int b =(int)random(0,100);

int x =(int)random(100,300);

int y =(int)random(100,300);

fill(r,g,b);

ellipse(x,y,50,50);

}

I am getting a syntax error that highlights draw,. I do not know what part of my code is faulty.

Processing Foundation

Loading

Antonio:)))

18 / 18 / 7

Регистрация: 21.01.2010

Сообщений: 58

1

25.04.2010, 12:10. Показов 54238. Ответов 7

Метки нет (Все метки)


Подскажите, почему происходит такая ошибка? [DCC Error] Unit1.pas(67): E2066 Missing operator or semicolon.
Вот код:

Delphi
1
2
NewName:='123.txt';
RenameFile(FName, NewName);// здесь ошибка, компилятор не пропускает

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

0

873 / 544 / 117

Регистрация: 24.11.2009

Сообщений: 1,329

25.04.2010, 12:13

2

Надо бы побольше кода

1

Antonio:)))

18 / 18 / 7

Регистрация: 21.01.2010

Сообщений: 58

25.04.2010, 12:18

 [ТС]

3

Вот весь код:

Delphi
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
var
  Form1: TForm1;
  F: TextFile;
  str, FName,NewName: string;
  priz:boolean;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.CreateFileClick(Sender: TObject);
begin
 FName:='Text1.txt';
 SaveDialog1.FileName:=FName;
 if SaveDialog1.Execute then FName:=SaveDialog1.FileName;
 
 end;
 
procedure TForm1.OpenReadFileClick(Sender: TObject);
 begin
  if (OpenDialog1.Execute) and (FileExists(OpenDialog1.FileName)) then FName:=OpenDialog1.FileName;
   AssignFile(F, FName);
   Reset(F);
   Memo1.Lines.Clear;
  while not Eof(F) do
   begin
    Readln(F, str);
    Memo1.Lines.Add(str) ;
   end;
  CloseFile(F);
 
 end;
 
procedure TForm1.RenameFileClick(Sender: TObject);
begin
 NewName:='123.txt';
 RenameFile(FName, NewName);
end;
 
procedure TForm1.ReWriteFileClick(Sender: TObject);
 begin
  AssignFile(F, FName);
  Append(F);
  Write(F, Memo1.Text);
  CloseFile(F);
 end;
 
procedure TForm1.WriteFileClick(Sender: TObject);
 begin
  AssignFile(F, FName);
  Rewrite(F);
  Write(F, Memo1.Text);
  CloseFile(F);
 end;
 
end.

0

13207 / 6595 / 1041

Регистрация: 10.01.2008

Сообщений: 15,069

25.04.2010, 12:22

4

Ищите, где не хватает ;

Добавлено через 2 минуты
Выглядит правильно.

2

ﻌﺹ ﺦ ﺖﻀ ﺹ ﻙ ﺵﻔ ﺊ ﺘﺝ

607 / 387 / 81

Регистрация: 15.12.2009

Сообщений: 753

25.04.2010, 13:42

5

Antonio)), выложи весь проект или весь код(то что выше VAR тоже выложи)

1

Antonio:)))

18 / 18 / 7

Регистрация: 21.01.2010

Сообщений: 58

25.04.2010, 13:48

 [ТС]

6

ok=)

Delphi
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
81
82
83
84
85
86
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    CreateFile: TButton;
    ReWriteFile: TButton;
    OpenReadFile: TButton;
    RenameFile: TButton;
    DeleteFile: TButton;
    WriteFile: TButton;
    Memo1: TMemo;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    procedure CreateFileClick(Sender: TObject);
    procedure WriteFileClick(Sender: TObject);
    procedure ReWriteFileClick(Sender: TObject);
    procedure OpenReadFileClick(Sender: TObject);
    procedure RenameFileClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  F: TextFile;
  str, FName,NewName: string;
  priz:boolean;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.CreateFileClick(Sender: TObject);
begin
 FName:='Text1.txt';
 SaveDialog1.FileName:=FName;
 if SaveDialog1.Execute then FName:=SaveDialog1.FileName;
 
 end;
 
procedure TForm1.OpenReadFileClick(Sender: TObject);
 begin
  if (OpenDialog1.Execute) and (FileExists(OpenDialog1.FileName)) then FName:=OpenDialog1.FileName;
   AssignFile(F, FName);
   Reset(F);
   Memo1.Lines.Clear;
  while not Eof(F) do
   begin
    Readln(F, str);
    Memo1.Lines.Add(str) ;
   end;
  CloseFile(F);
 
 end;
 
procedure TForm1.RenameFileClick(Sender: TObject);
begin
 NewName:='123.txt';
 RenameFile(FName, NewName);
end;
 
procedure TForm1.ReWriteFileClick(Sender: TObject);
 begin
  AssignFile(F, FName);
  Append(F);
  Write(F, Memo1.Text);
  CloseFile(F);
 end;
 
procedure TForm1.WriteFileClick(Sender: TObject);
 begin
  AssignFile(F, FName);
  Rewrite(F);
  Write(F, Memo1.Text);
  CloseFile(F);
 end;
 
end.

0

13207 / 6595 / 1041

Регистрация: 10.01.2008

Сообщений: 15,069

25.04.2010, 14:17

7

Лучший ответ Сообщение было отмечено Joey как решение

Решение

У Вас кнопка RenameFile скрывает функцию RenameFile, которую Вы хотите вызвать. Переименуйте кнопку(-и все)

Добавлено через 38 секунд
Используйте префиксы: btnRenameFile, btnWriteFile

2

18 / 18 / 7

Регистрация: 21.01.2010

Сообщений: 58

25.04.2010, 14:28

 [ТС]

8

Помогло! Спасибо!

0

Asked
7 years, 7 months ago

Viewed
771 times

I’ve got the error message «Missing operator or semicolon» on line 38 of this code:

procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
  case SpinEdit1.Value of
    1: Label6.Caption('rok'); // line 38
  end;
end;

end.

Does somebody know what I am missing?
Thank you.

David Heffernan's user avatar

asked Jun 17, 2015 at 21:34

1

Label6.Caption('rok')

Caption is a property which behaves as a variable does. You treat it as though it is a procedure (which it is not) and hence the compilation error. The parser knows that the only thing that can follow a property name is a semicolon, bracket (if the property is indexed) or an operator like :=, +, = etc.

This code would compile:

Label6.Caption := 'rok';

Perhaps that’s what you meant.

TLama's user avatar

TLama

74.5k17 gold badges207 silver badges380 bronze badges

answered Jun 17, 2015 at 21:41

David Heffernan's user avatar

David HeffernanDavid Heffernan

596k42 gold badges1053 silver badges1470 bronze badges

У меня есть программа, которая генерирует набор фрагментов кода, большинство из которых можно использовать синтаксически, а некоторые нет. Те, которые не могут выглядеть

return 2.0+0.0+pow(2.0),2.0;

Мне не удалось изменить исходный код, чтобы избежать этих проблем, но я полагаю, что это можно исправить каким-либо методом, чтобы проверить, содержит ли строка синтаксически правильный код.

Вот пример моего кода. Весь этот файл будет сохранен из другой программы для последующего запуска.

{
print(myFun());
}

float myFun() {
  return 2.0+0.0+pow(2.0),2.0;
  return 10;
}

В первой строке функции явно есть проблемы с синтаксисом (т. е. недостаточно аргументов в pow() и неуместная запятая), поэтому код не скомпилируется. Я надеюсь, что есть что-то, возможно, похожее на блок trycatch, чтобы просто пропустить эту непригодную строку и перейти к следующей.

Заранее спасибо!

Просто для справки: я использую Processing 4.0 в Windows 10.

2 ответа

Да, насколько мне известно, блок try-catch — ваш лучший выбор. Может быть, кто-то еще, хотя это может знать по-другому


0

BlockManBlue
7 Янв 2022 в 18:24

Предложение: запустите программу, проверьте вывод с помощью javac, посмотрите код выхода. Если не ноль, перезапустите код генерации кода с более строгим выводом, если это возможно.


0

Viktor Mellgren
11 Янв 2022 в 13:41

INTELLIGENT WORK FORUMS
FOR COMPUTER PROFESSIONALS

Contact US

Thanks. We have received your request and will respond promptly.

Log In

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips Forums!

  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It’s Free!

*Tek-Tips’s functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

missing operator or semicolon

(OP)

27 Sep 08 03:32

yes, I know I’m doing something stupid, but I’ve got like 15 of these errors when I’m trying to run and I have no idea what it is wanting.  I’ve tried copying and pasting in lines of code that do work, and it doesn’t help.  

can anyone tell my looking what syntax I might be missing?

     sizeoffile:= IntToStr(FileSize(fileData.InstanceSize));

above, these are declared …
   Form1: TForm1;
   fileName : String;
   myFile : File of Byte;
   fileData : TStringList;
   openDialog : TOpenDialog;
   fileSize, lastsize1 :  Integer;
   sizeoffile: Longint;
   compression1 : Single;

appreciate any offered help.  let me know if this isn’t enough to tell anything and I’ll post up more.  thanks much.

Red Flag Submitted

Thank you for helping keep Tek-Tips Forums free from inappropriate posts.
The Tek-Tips staff will check this out and take appropriate action.

Join Tek-Tips® Today!

Join your peers on the Internet’s largest technical computer professional community.
It’s easy to join and it’s free.

Here’s Why Members Love Tek-Tips Forums:

  • Tek-Tips ForumsTalk To Other Members
  • Notification Of Responses To Questions
  • Favorite Forums One Click Access
  • Keyword Search Of All Posts, And More…

Register now while it’s still free!

Already a member? Close this window and log in.

Join Us             Close

    msm.ru

    Нравится ресурс?

    Помоги проекту!

    Пожалуйста, выделяйте текст программы тегом [сode=pas] … [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.


    Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
    1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
    2. Как «свернуть» программу в трей.
    3. Как «скрыться» от Ctrl + Alt + Del (заблокировать их и т.п.)
    4. Как прочитать список файлов, поддиректорий в директории?
    5. Как запустить программу/файл?
    … (продолжение следует) …


    Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
    Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


    Внимание
    Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
    Повторная попытка — 60 дней. Последующие попытки бан.
    Мат в разделе — бан на три месяца…

    >
    Функция Pos
    , кидается ошибкой «Missing operator or semicolon»

    • Подписаться на тему
    • Сообщить другу
    • Скачать/распечатать тему



    Сообщ.
    #1

    ,
    13.03.05, 09:03

      Вобщем-то в проге юзаю стандартную функцию поиска подстроки в строке, задаю оба параметра. А когда пытаюсь скомпилить, то выкидывается ошибка «Missing operator or semicolon». Как это поправить?


      Snow Silence



      Сообщ.
      #2

      ,
      13.03.05, 09:10

        Full Member

        ***

        Рейтинг (т): 24

        Забыл точку с запятой поставить в предыдущей строке. (скорее всего).
        Если нет, то код покажи — что-то где-то потерял…


        Chess



        Сообщ.
        #3

        ,
        13.03.05, 09:10

          Full Member

          ***

          Рейтинг (т): 6

          По-моему, без кода сложно что-то сказать.
          Покажи проблемный участок кода. Или он секретный?


          MaxxSoft



          Сообщ.
          #4

          ,
          13.03.05, 09:10

            Junior

            *

            Рейтинг (т): 2

            Ну хоть код покажи…


            Chess



            Сообщ.
            #5

            ,
            13.03.05, 09:12

              Full Member

              ***

              Рейтинг (т): 6

              Втроём одновременно добавили посты одного и того же содержания :D

              Master

              jack128



              Сообщ.
              #6

              ,
              13.03.05, 09:18

                Moderator

                ******

                Рейтинг (т): 181

                А я и без кода могу сказать :-)
                У тебя пропущен оператор или точка с запятой


                Anatoly Podgoretsky



                Сообщ.
                #7

                ,
                13.03.05, 09:28

                  ну вы и попросили, это же особоохраняемый секрет.

                  КОД ДАВАЙ!!!

                  Сообщение отредактировано: Anatoly Podgoretsky — 13.03.05, 09:28


                  C¤JIHl/l(:l:)K¤



                  Сообщ.
                  #8

                  ,
                  13.03.05, 15:50

                    ExpandedWrap disabled

                         repeat

                         buf:=s;

                         Delete(buf,1,k-1);

                         Delete(buf,i+1,Length(buf)-i);

                         k:=k+i;

                         t:=Pos(buf,st); — здесь кидается ошибкой

                         Delete(st,t,i);

                         until (k>=Length(s));


                    J. Bravo



                    Сообщ.
                    #9

                    ,
                    13.03.05, 15:58

                      Неплохо было бы ещё показать раздел объявления переменных.


                      s-mike



                      Сообщ.
                      #10

                      ,
                      13.03.05, 16:01

                        Не должен бы…
                        Может в типах данных что-то нахимичено? ;)


                        J. Bravo



                        Сообщ.
                        #11

                        ,
                        13.03.05, 16:06

                          ExpandedWrap disabled

                            var k,i,t: integer;

                                s, buf, st: string;

                          Вот так у меня всё компилируется. У тебя переменные так объявлены?


                          C¤JIHl/l(:l:)K¤



                          Сообщ.
                          #12

                          ,
                          13.03.05, 16:19

                            :wall: :wall: :wall:
                            У меня в var’e была объявлена переменная Pos
                            :wall: :wall: :wall:

                            Добавлено 13.03.05, 16:21
                            J. Bravo спасибо че обратил внимание на var, а то хз скока ещеб пропарился.
                            з.ы. тока переменные расставлены у меня так

                            ExpandedWrap disabled

                              [B]position[/B],k,t:LongWord;

                              st,buf,buf2,res:String;

                              cbuf:Char;

                              bonus:ShortInt;

                            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)

                            0 пользователей:

                            • Предыдущая тема
                            • Delphi: Общие вопросы
                            • Следующая тема

                            Рейтинг@Mail.ru

                            [ Script execution time: 0,0298 ]   [ 16 queries used ]   [ Generated: 31.01.23, 02:09 GMT ]  

                            Я хотел написать простое арифметическое вычисление в делфи.
                            Но выводит ошибку:

                            [Error] Project1.dpr(10): Missing operator or semicolon

                            Вот мой код:

                            program Project1;
                            
                            uses
                              SysUtils;
                            var x,y:real;
                            begin
                            write('x='); readln(x);
                            if(x>1) then y:=cos(x)/(x*x*x+3*sin(x)+8)
                            else y:=x*x*x+3*sin(x)+8
                            writeln('y=', y:0:3);
                            Readln;
                            end.
                            

                            Kromster's user avatar

                            Kromster

                            13.6k12 золотых знаков43 серебряных знака72 бронзовых знака

                            задан 26 мая 2016 в 4:40

                            Erkin  Pardayev's user avatar

                            Не хватает ; после блока else. Чтобы не путаться, запомните — всегда окружайте блоки кода операторными скобками begin и end, даже если это блок из одного вызова:

                            program Project1;
                            
                            uses
                              SysUtils;
                            var x,y:real;
                            begin
                               write('x='); readln(x);
                               if(x>1) then 
                               begin
                                   y:=cos(x)/(x*x*x+3*sin(x)+8);
                               end
                               else 
                               begin
                                   y:=x*x*x+3*sin(x)+8;
                               end;
                              writeln('y=', y:0:3);
                               Readln;
                            end.
                            

                            Оно же на ideone

                            ответ дан 26 мая 2016 в 4:45

                            gbg's user avatar

                            gbggbg

                            22.1k2 золотых знака32 серебряных знака52 бронзовых знака

                            4

                            Вот так будет правильным как с логической точки зрения, так и с точки зрения форматирования:

                            program Project1;
                            
                            {$APPTYPE CONSOLE} // Инструкция для Делфи, что это консольное приложение
                            
                            uses
                              SysUtils;
                            
                            var
                              x, y: real;    
                            begin
                              // Ждем ввода значения Х от пользователя
                              write('x=');
                              readln(x);
                            
                              // Логика программы
                              if (x > 1) then
                                y := cos(x) / (x * x * x + 3 * sin(x) + 8)
                              else
                                y := x * x * x + 3 * sin(x) + 8; // <-- Ошибка была здесь, пропущена ;
                            
                              // Показываем результат
                              writeln('y=', y:0:3);
                              readln;
                            end.
                            

                            Обратите внимание, как правильное форматирование позволяет сразу увидеть всю программу и заметить в ней ошибки.

                            P.S. На всякий случай, тригонометрические функции типа cos ожидают на входе угол в радианах, так что если пользователь вводит число в градусах, вам будет нужно его перевести в радианы.

                            ответ дан 26 мая 2016 в 5:23

                            Kromster's user avatar

                            KromsterKromster

                            13.6k12 золотых знаков43 серебряных знака72 бронзовых знака

                            Description

                            In previous versions of Processing, when mixing active and static modes the error Processing would throw was:

                            It looks like you’re mixing «active» and «static» modes.

                            In Processing 4, the error becomes a lot more cryptic:

                            Syntax Error — Missing operator, semicolon, or ‘}’ near ‘setup’?

                            As this is a mistake a lot of first learners make, it would be really helpful to get the old error message back.

                            Steps to Reproduce

                            size(100, 100);
                            
                            void setup() {
                              
                            }
                            

                          • Синтаксическая ошибка basic переменная sid уже определена
                          • Синтаксико стилистические ошибки это
                          • Синтаксико стилистические ошибки примеры
                          • Синтаксико стилистические ошибки пример
                          • Синоптическая ошибка на андроиде что делать