Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
L-i-l-i-t
0 / 0 / 0
Регистрация: 20.11.2013
Сообщений: 8
#1

Необходима проверка кода программы - C++

03.12.2013, 21:59. Просмотров 303. Ответов 9
Метки нет (Все метки)

Добрый вечер! Проверьте, пожалуйста, если можете, правильность написания кода программы для следующей задачи:Спортсмен-лыжник начал тренировки, пробежав в первый день 10 км. Каждый следующий день он увеличивал длину пробега на P процентов от пробега предыдущего дня (P — вещественное, 0 < P < 50). По данному P определить, после какого дня суммарный пробег лыжника за все дни превысит 200 км, и вывести найденное количество дней K (целое) и суммарный пробег S (вещественное число).
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include<cmath> 
using namespace std;
int main() 
{int K,n; 
float p,S,KM; 
cout<<"Sportsmen probezhal v pervyj den 10 km. Kazhdyj sledyushij den on yvelithival dliny probega na p procentov ot pridedyshego dnya. Vvedite p, pri yslovii: 0<p<50->"; 
cin>>p;
S=10; n=1;  
while (S<=200) 
{KM= ((p/100)*S); 
S=S+KM; 
K=n++; } 
cout<<" kolithestvo dnej, za kotoroe probeg prevysel 200 km="<<K<<"\n"; 
cout<<" symarnyj probeg za eti dni="<<S<<"\n"; 
return 0; 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
МаксимТ
 Аватар для МаксимТ
47 / 47 / 4
Регистрация: 17.08.2012
Сообщений: 225
03.12.2013, 22:17     Необходима проверка кода программы #2
если ввести 0 то цикл повиснет
L-i-l-i-t
0 / 0 / 0
Регистрация: 20.11.2013
Сообщений: 8
03.12.2013, 22:20  [ТС]     Необходима проверка кода программы #3
Цитата Сообщение от МаксимТ Посмотреть сообщение
если ввести 0 то цикл повиснет
а причем тут 0?там 0 не входит в промежуток
ВАСИЛЕВС
555 / 478 / 60
Регистрация: 14.02.2012
Сообщений: 1,561
03.12.2013, 22:22     Необходима проверка кода программы #4
Цитата Сообщение от L-i-l-i-t Посмотреть сообщение
а причем тут 0?
"Защита от дурака", знаете такой принцип? Вы должны построить программу так, чтобы дурак(юзер) не мог её разрушить.
L-i-l-i-t
0 / 0 / 0
Регистрация: 20.11.2013
Сообщений: 8
03.12.2013, 22:24  [ТС]     Необходима проверка кода программы #5
Цитата Сообщение от ВАСИЛЕВС Посмотреть сообщение
"Защита от дурака", знаете такой принцип?
безусловно. но я же написала 0 не входит в промежуток,т.е его не нужно вводить.

Добавлено через 41 секунду
Цитата Сообщение от ВАСИЛЕВС Посмотреть сообщение
"Защита от дурака", знаете такой принцип? Вы должны построить программу так, чтобы дурак(юзер) не мог её разрушить.
ну так помоги тогда сделать как-то по-другому.
МаксимТ
 Аватар для МаксимТ
47 / 47 / 4
Регистрация: 17.08.2012
Сообщений: 225
03.12.2013, 22:30     Необходима проверка кода программы #6
Цитата Сообщение от L-i-l-i-t Посмотреть сообщение
безусловно. но я же написала 0 не входит в промежуток,т.е его не нужно вводить
а я какраз не читал описание, а только код.
ВАСИЛЕВС
555 / 478 / 60
Регистрация: 14.02.2012
Сообщений: 1,561
03.12.2013, 23:00     Необходима проверка кода программы #7
Цитата Сообщение от L-i-l-i-t Посмотреть сообщение
его не нужно вводить.
Цитата Сообщение от МаксимТ Посмотреть сообщение
а я какраз не читал описание, а только код.
Вот и пример. Юзер не напрягается насчет валидности данных и, к сожалению, программа должна это делать сама. Вроде так, если с выражением не перепутал.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <cmath> 
 
using namespace std;
 
int main() {
 int K, n; 
 float p, S, KM;
 do { 
  cout << "Sportsmen probezhal v pervyj den 10 km. Kazhdyj sledyushij den on yvelithival dliny probega na p procentov ot pridedyshego dnya. Vvedite p, pri yslovii: 0<p<50->"; 
  cin >> p;
  if ((p < 0) && (p > 50)) {
     cout << "Nepravilnoe znachenie";
     cin.get();
  }
 } while ((p > 0) || (p < 50));
 
 S = 10;
 n = 1;  
 
 while (S <= 200) {
  KM = ((p / 100) * S); 
  S = S + KM; 
  K = n++;
 } 
 
 cout << " kolithestvo dnej, za kotoroe probeg prevysel 200 km=" << K << endl; 
 cout << " symarnyj probeg za eti dni=" << S << endl; 
 
 return 0; 
}
L-i-l-i-t
0 / 0 / 0
Регистрация: 20.11.2013
Сообщений: 8
04.12.2013, 09:56  [ТС]     Необходима проверка кода программы #8
Цитата Сообщение от ВАСИЛЕВС Посмотреть сообщение
Вот и пример. Юзер не напрягается насчет валидности данных и, к сожалению, программа должна это делать сама. Вроде так, если с выражением не перепутал.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <cmath> 
 
using namespace std;
 
int main() {
 int K, n; 
 float p, S, KM;
 do { 
  cout << "Sportsmen probezhal v pervyj den 10 km. Kazhdyj sledyushij den on yvelithival dliny probega na p procentov ot pridedyshego dnya. Vvedite p, pri yslovii: 0<p<50->"; 
  cin >> p;
  if ((p < 0) && (p > 50)) {
     cout << "Nepravilnoe znachenie";
     cin.get();
  }
 } while ((p > 0) || (p < 50));
 
 S = 10;
 n = 1;  
 
 while (S <= 200) {
  KM = ((p / 100) * S); 
  S = S + KM; 
  K = n++;
 } 
 
 cout << " kolithestvo dnej, za kotoroe probeg prevysel 200 km=" << K << endl; 
 cout << " symarnyj probeg za eti dni=" << S << endl; 
 
 return 0; 
}
программа вывод при любом вводимом значение,лишь условие
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2583 / 235
Регистрация: 01.11.2011
Сообщений: 6,391
Завершенные тесты: 1
04.12.2013, 10:00     Необходима проверка кода программы #9
Цитата Сообщение от ВАСИЛЕВС Посмотреть сообщение
Юзер не напрягается насчет валидности данных и
ввел букву...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.12.2013, 19:56     Необходима проверка кода программы
Еще ссылки по теме:

проверка кода, функции C++
C++ Возможна ли проверка кода и его запуск в инете?
C++ Проверка введенных данных; выполнение кода по условию
Проверка XML кода на ошибки C++
Проверка версии программы (перевод кода с C#) C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ВАСИЛЕВС
555 / 478 / 60
Регистрация: 14.02.2012
Сообщений: 1,561
04.12.2013, 19:56     Необходима проверка кода программы #10
Цитата Сообщение от L-i-l-i-t Посмотреть сообщение
программа вывод при любом вводимом значение,лишь условие
Цитата Сообщение от SatanaXIII Посмотреть сообщение
ввел букву...
Облажался по полной... Вот сделал нормально:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <cmath> 
#include <limits> 
 
using namespace std;
 
int main() {
 int K, n; 
 float p, S, KM;
 p = 0;
 cout << "Sportsmen probezhal v pervyj den 10 km. Kazhdyj sledyushij den on yvelithival dliny probega na p procentov ot pridedyshego dnya. Vvedite p, pri yslovii: 0<p<50->";
 while (!(cin >> p) || p < 1 || p > 50) {  
  cin.clear();
  cin.ignore(numeric_limits<streamsize>::max(), '\n');
  cout << "Invalid input.  Try again: ";
 }
 
 S = 10;
 n = 1;  
 
 while (S <= 200) {
  KM = ((p / 100) * S); 
  S = S + KM; 
  K = n++;
 } 
 
 cout << " kolithestvo dnej, za kotoroe probeg prevysel 200 km=" << K << endl; 
 cout << " symarnyj probeg za eti dni=" << S << endl; 
 
 return 0; 
}
Yandex
Объявления
04.12.2013, 19:56     Необходима проверка кода программы
Ответ Создать тему
Опции темы

Текущее время: 06:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru