Операторы цикла, условия, ветвления

Обсуждение форума и архива форума www.matlab.ru

Модератор: Admin

forum8990100
Пользователь
Сообщения: 1
Зарегистрирован: Пт апр 28, 2017 11:33 am

Операторы цикла, условия, ветвления

Сообщение forum8990100 » Пт апр 28, 2017 11:45 am

Подскажите, пожалуйста, как сделать так, чтобы при вводе определенного значения,например, при i>10 выводилось сообщение "Это сообщение будет показано N раз" и так, пока условие не нарушено, значение N должно уменьшаться на 1 до 0, после чего программа должна завершиться. Но если вводимое число, не удовлетворяет условию, то показывается другое сообщение, при этом число N сохраняет свое предыдущее значение, то есть не уменьшается на 1.

Пока что получается только так:

Код: Выделить всё

n=5;
for n=5:-1:0
i=input('Введите число больше 10: ');
if i>10
    disp(['Это сообщение будет показано ',num2str(n),' раз'])
else
    disp('Введенное число не удовлетворяет условию. Повторите попытку.')
end
end


Результат:
    Введите число больше 10: 1
    Введенное число не удовлетворяет условию. Повторите попытку.
    Введите число больше 10: 2
    Введенное число не удовлетворяет условию. Повторите попытку.
    Введите число больше 10: 11
    Это сообщение будет показано 3 раз
    Введите число больше 10: 12
    Это сообщение будет показано 2 раз
    Введите число больше 10: 1
    Введенное число не удовлетворяет условию. Повторите попытку.
    Введите число больше 10: 13
    Это сообщение будет показано 0 раз

А должно быть:
    Введите число больше 10: 1
    Введенное число не удовлетворяет условию. Повторите попытку.
    Введите число больше 10: 2
    Введенное число не удовлетворяет условию. Повторите попытку.
    Введите число больше 10: 11
    Это сообщение будет показано 5 раз
    Введите число больше 10: 12
    Это сообщение будет показано 4 раз
    Введите число больше 10: 1
    Введенное число не удовлетворяет условию. Повторите попытку.
    Введите число больше 10: 13
    Это сообщение будет показано 3 раз

CrabAlexey
Пользователь
Сообщения: 44
Зарегистрирован: Ср май 23, 2018 4:02 pm

Re: Операторы цикла, условия, ветвления

Сообщение CrabAlexey » Чт май 24, 2018 3:53 pm

Можно добавить счетчик верных попыток t, например так:

Код: Выделить всё

clc;
t=5;%cчетчик верных попыток
while t>=0
i=input('Введите число больше 10: ')
if i>10
    disp(['Это сообщение будет показано ',num2str(t),' раз'])
    t=t-1;
else
    disp('Введенное число не удовлетворяет условию. Повторите попытку.')
end
end
disp(' ')
disp('Выполнение программы завершено')