Я пытаюсь написать базовую программу для своего TI-84, которая находит площадь многоугольников на двумерной плоскости. Для справки, я много раз писал это на питоне, вот что он делает:
x_list,y_list,verts,tot_1,tot_2=[],[],int(input("How many vertices are on the polygon: ")),0,0 //sets vars to defaults and gets num of vertices
for i in range(verts): //gets X and Y values of each point for num. of vertices
x_list.append(float(input("X value of point %s: " % str(i+1)))) //appends x value given to x list
y_list.append(float(input("Y value of point %s: " % str(i+1)))) //appends y value given to y list
for ind in range(verts-1):
tot_1 += (x_list[ind]*y_list[ind+1])-(y_list[ind]*x_list[ind+1])
print(str(abs((tot_1)/2))) //prints area: abs value of total over two
это просто делает очень простой алгоритм, также показанный здесь в обычной математике: .html
теперь, когда я пытаюсь написать то же самое на TI-Basic (используя приложение TI Connect и отправляя на калькулятор), он возвращает синтаксическую ошибку при первом обращении к одному из списков; «Проверить все введенные аргументы». Строка обведена звездочками. комментарии не в самом коде
ClrHome //clears screen
Prompt V //gets number of vertices
0→T //sets total to 0
Disp V //displays vertices, was used for testing
For(N,1,V,1) //runs code for number of vertices
Input "x val: ",X //gets latest x val
Input "y val: ",Y //gets latest y val
**X→L1(1+dim(L1))** //appends x to listand
Y→L2(1+dim(L2)) //y to list
End //end for
For(I,1,P,1)
T+((L1(I)*L2(I+1))-(L2(I)*L1(I+1))→T //adds up total
End
Disp abs(T/2)
при изменении кода на калькуляторе путем замены L1 на символ list1 и L2 на символ list2 все, что он сделал, это вернуло значение 12,5 * количество вершин-2. Мои вопросы:
- Как я могу представить списки в коде на компьютере? Когда я пишу L1 в коде, я думаю, что на самом деле это не встроенная переменная списка, и это вызывает синтаксическую ошибку. Я думаю.
- Нужно ли сбрасывать переменные списка? В самый первый раз, когда я тестировал это, 12.5*vertices-2 работало, поэтому он просто навсегда установил переменные списка на это, и теперь, когда он добавляет что-то в список в более поздних запусках программы, он никогда не достигает этих индексов?
- Есть ли в коде недостатки, из-за которых он вообще не работает? Я совершенно новичок в TI-Basic.