2016-10-31 5 views
0

Я пытаюсь написать код, который «оценивает» приемники NFL на основе статистики. Это относительно простая программа, которую я делаю для проекта класса, и, возможно, уйду с ошибкой, которую я получаю в Matlab (она не проходит мимо цикла while. В основном, она отображает YPC, но останавливается, в то время как цикл). Тем не менее, я хотел бы иметь рабочий код. Пожалуйста, укажите, где я делаю ошибку! СпасибоГде в этом коде matlab я испортил?

yards = input('Yards per game/season: '); 
rec = input('Receptions per game/season: '); 
long = input('Longest reception per game/season: '); 
TD = input('Touchdowns per game/season: '); 

YPC = (yards/rec); 
display('Average Yards per Catch (YPC): '); 
display(YPC); 

grade = 0; 

while YPC >= 1 
    if YPC >= 5.7 %NFL Average YPC 
     grade = grade + 50; %Gives Reciever a 50 baseline rating if above average YPC 
    else 
     grade = grade + 25; %Gives Reciever a 25 baseline rating if below average YPC 

     if long >= 67.4 %NFL Average Longest Reception 
      grade = grade + (long/8); %Adds the longest reception divided by 8 to the grade if above average Long 
     else 
      grade = grade - (long/16); %Subtracts the longest reception in 16 games from the grade if below average Long 

      if TD >= 7.75 %NFL Average TD/Recievers 
       grade = grade + ((TD * 10)/16); %Adds the number of touchdowns times 10, divided by 16 games if above average TDs 
      else 
       grade = grade + ((TD * 7)/16); %Adds the number of touchdows times 7, divided by 16 games if below average TDs 
      end 
     end 
    end 
end 

display(grade); 
+0

YPC никогда не меняется внутри, поэтому один раз в нем никогда не выйдет. Возможно, вы хотите переместить команды ввода внутри цикла while, чтобы запросить новые входы. –

+0

Если вы получили сообщение об ошибке или предупреждении, всегда включайте его в свой вопрос. – Bernhard

ответ

1

Может быть, это то, что вы ищете:

YPC = 2; 

while YPC >= 1 

    yards = input('Yards per game/season: '); 
    rec = input('Receptions per game/season: '); 
    long = input('Longest reception per game/season: '); 
    TD = input('Touchdowns per game/season: '); 

    YPC = (yards/rec); 
    display('Average Yards per Catch (YPC): '); 
    display(YPC); 

    grade = 0; 

    if YPC >= 5.7 %NFL Average YPC 
     grade = grade + 50; %Gives Reciever a 50 baseline rating if above average YPC 
    else 
     grade = grade + 25; %Gives Reciever a 25 baseline rating if below average YPC 

     if long >= 67.4 %NFL Average Longest Reception 
      grade = grade + (long/8); %Adds the longest reception divided by 8 to the grade if above average Long 
     else 
      grade = grade - (long/16); %Subtracts the longest reception in 16 games from the grade if below average Long 

      if TD >= 7.75 %NFL Average TD/Recievers 
       grade = grade + ((TD * 10)/16); %Adds the number of touchdowns times 10, divided by 16 games if above average TDs 
      else 
       grade = grade + ((TD * 7)/16); %Adds the number of touchdows times 7, divided by 16 games if below average TDs 
      end 
     end 
    end 
    display(grade); 
end 

Это позволит вычислить новый класс для новых входных значений. Новые значения будут заданы в начале цикла, чтобы выйти, просто дайте ярдам за игру значение 0.

+0

Спасибо, это сработало отлично – Yanny

+0

@Yanny, пожалуйста, примите ответ. –