2013-08-03 2 views
-2

Может ли кто-нибудь помочь мне нарисовать стек времени выполнения из комментария ЗДЕСЬ для следующего кода? Я попытался это сделать, но мне сказали, что это неверно, и мой профессор отказался объяснить это ... Если кто-нибудь может дать мне пример, это будет легко использовать в качестве сравнения для другого фрагмента кода. В частности, я считаю, что я неправильно форматирую стек.Java, рисование стека времени выполнения

Моя попытка:

array a initialized with 3 values 
integer x = 4; 
call method b, passes in array a. 
integer i = 14; 
array x[0] = 4; 
call method e, passes in i - 2 = 12; 
calls method f 12 - 4 = 8; 
int j = 2; 
8 * 2 = 16; 
println "16"; 
println "4 + 0" 

public class RuntimeStack 
{ 
    public static void main (String [] args) 
    { 
    int[] a = new int[3]; 
    int x = 4; 
    b(a); 
    System.out.println(a[0] + “ “ + a[1] + “ “ + x); 
} 
public static void e(int a) 
{ 
f(a-4); 
// HERE! } 
    public static void b(int [] x) 
    { 
    int i = 14; 
    x[0] = 4; 
    e(i-2); 
} 
    public static void f(int i) 
    { 
int j = 2; 
    System.out.println("i * j = " + (i * j)); 
    } 
} // end class RuntimeStack 

Большое спасибо!

+0

Пожалуйста, покажите свои усилия. – rocketboy

+0

Да обновлено. Я особенно смущен, чтобы «правильно форматировать» стек времени выполнения. – andrsnn

+0

Общие парни, я понимаю, что это простой вопрос (отсюда и downvotes), но если кто-то может любезно помочь мне в правильном направлении, я буду еще одним шагом вперед к пониманию java и программирования лучше .... – andrsnn

ответ

1

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

0

Продолжая, где вы остановились:

call method e, passes in 12 
call method f, passes in 8 
integer j = 2 
print "i * j = " + 16 
print 4 + " " + 0 + " " + 4 
+0

Да, я обновил его. Я не был дома рядом с бумагой с моим ответом, поэтому я только что перешел через это снова. Я задал этот вопрос, поскольку мой профессор принимал формат, я предполагал, что в стек был правильный формат пути – andrsnn

Смежные вопросы