Извините, если эта проблема очевидна, но я просто не могу понять, что не так с моим кодом. Объяснение ниже, вот код:
#include <iostream>
#include <cmath>
#include <complex>
using namespace std;
int main(){
//Variables:
complex<double> c; //Coordinate
complex<double> zn;
complex<double> znp1;
double iteration; //Iteration counter
double limit = 1.0e3; //zn must exceed limit
double resolution = 50.0; //Points/pixels per axis
double realrangeplus =5.0; //Coordinate system
double realrangeminus = -5.0;
double realsubdiv = (realrangeplus - realrangeminus)/resolution;
double imagrangeplus = 5.0;
double imagrangeminus = -5.0;
double imagsubdiv = (imagrangeplus - imagrangeminus)/resolution;
//cycle through real axis with c
for(real(c) = realrangeminus; real(c) <= realrangeplus; real(c) = real(c) + realsubdiv){
//cycle through imaginary axis with c
for(imag(c) = imagrangeminus; imag(c) <= imagrangeplus; imag(c) = imag(c) + imagsubdiv){
//==========================================
iteration = 0.0; //reset
zn = (0.0, 0.0);
znp1 = (0.0, 0.0);
//Start iterating:
do{
iteration = iteration + 1.0; //count iterations
zn = znp1;
znp1 = zn*zn + c;
}while(abs(zn)<=limit);
cout << real(c) << " " << imag(c) << " " << real(zn) << " " << imag(zn) << " " << iteration << endl;
//==========================================
}
}
return 0;
}
А вот ошибка при компиляции с g++ mandelbrot_skript.cpp
в терминале Ubuntu или в затмении:
mandelbrot_skript.cpp: In function ‘int main()’:
mandelbrot_skript.cpp:32:17: error: lvalue required as left operand of assignment
for(real(c) = realrangeminus; real(c) <= realrangeplus; real(c) = real(c) + realsubdiv){
^~~~~~~~~~~~~~
mandelbrot_skript.cpp:32:79: error: lvalue required as left operand of assignment
for(real(c) = realrangeminus; real(c) <= realrangeplus; real(c) = real(c) + realsubdiv){
^~~~~~~~~~
mandelbrot_skript.cpp:35:19: error: lvalue required as left operand of assignment
for(imag(c) = imagrangeminus; imag(c) <= imagrangeplus; imag(c) = imag(c) + imagsubdiv){
^~~~~~~~~~~~~~
mandelbrot_skript.cpp:35:81: error: lvalue required as left operand of assignment
for(imag(c) = imagrangeminus; imag(c) <= imagrangeplus; imag(c) = imag(c) + imagsubdiv){
^~~~~~~~~~
Я пытаюсьсоздайте образ множества Мандельброта, и код может быть совершенно неправильным, но это не главное.
Я не понимаю, почему появляется сообщение об ошибке. Насколько я вижу, ошибок в правописании нет, все переменные имеют правильный тип данных (я думаю), и я успешно попытался добавить и умножить действительную и мнимую части на нормальные двойные переменные. Эта ошибка появляется только тогда, когда я делаю это внутри функции for()
. Странно тот же самый код выполняется без проблем внутри приложения для Android под названием «CPP N-IDE».
Итак, что же я не так делаю?