Мне нравится эта идея. Однако я думаю, что могло бы быть трудно сделать, так как это потребует, чтобы у кандидата было некоторое знание проекта, на котором Вы соединились бы с ним. Кроме того, 4 - 5 часов кажется немного длинным. Что, если Вы сразу видите, что это не собирается удаваться, Вы собираетесь сидеть через целую встречу с кандидатом?
Хороший вопрос все же. Материал для размышления о.
Список можно найти в википедии .
ALGOL 68
APL
AWK
CFML
COBOL
Fortran
FoxPro
Julia
Lua
Mathematica
MATLAB
PL/I
Ring
RPG
Sass
Smalltalk
Wolfram Language
XPath/XQuery
Although C is by design 0 indexed, it is possible to arrange for an array in C to be accessed as if it were 1 (or any other value) indexed. Not something you would expect a normal C coder to do often, but it sometimes helps.
Example:
#include <stdio.h>
int main(){
int zero_based[10];
int* one_based;
int i;
one_based=zero_based-1;
for (i=1;i<=10;i++) one_based[i]=i;
for(i=10;i>=1;i--) printf("one_based[%d] = %d\n", i, one_based[i]);
return 0;
}
FoxPro использовал массивы, начинающиеся с индекса 1.
I see that the knowledge of fortran here is still on the '66 version.
Fortran has variable both the lower and the upper bounds of an array.
Meaning, if you declare an array like:
real, dimension (90) :: x
then 1 will be the lower bound (by default).
If you declare it like
real, dimension(0,89) :: x
then however, it will have a lower bound of 0.
If on the other hand you declare it like
real, allocatable :: x(:,:)
then you can allocate it to whatever you like. For example
allocate(x(0:np,0:np))
means the array will have the elements
x(0, 0), x(0, 1), x(0, 2 .... np)
x(1, 0), x(1, 1), ...
.
.
.
x(np, 0) ...
There are also some more interesting combinations possible:
real, dimension(:, :, 0:) :: d
real, dimension(9, 0:99, -99:99) :: iii
which are left as homework for the interested reader :)
These are just the ones I remembered off the top of my head. Since one of fortran's main strengths are array handling capabilities, it is clear that there are lot of other in&outs not mentioned here.
Все Visual FoxPro, FoxPro и Clipper используют массивы, где элемент 1 является первым элементом массива ... Я предполагаю, что это то, что вы подразумеваете под 1-индексированным.
Довольно большой список языков находится в Википедии в разделе Сравнение языков программирования (массив) в таблице «Список перекрестных ссылок системы массивов» (столбец базового индекса по умолчанию)
В этом есть хорошее обсуждение 1- и 0-индексированных и подписок в целом
Цитата из блога:
EWD831, автор EW Dijkstra, 1982.
При работе с последовательностью длины N, элементы которой мы хотите выделить индексом, следующий неприятный вопрос - какой индекс значение, присвоенное его началу элемент. Соблюдение соглашения а) дает, начиная с нижнего индекса 1, диапазон нижнего индекса 1 ≤ i
Примечание :: Многие языки программирования были разработаны без должного внимание к этой детали. В ФОРТРАНЕ индексы всегда начинаются с 1; в АЛГОЛ 60 и в ПАСКАЛЕ соглашение c) имеет был принят; более поздний SASL имеет вернулся к соглашению FORTRAN: последовательность в SASL одновременно функция от натуральных чисел. Жалко! (Конец замечания.)