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

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

Восстановить пароль Регистрация
 
L-i-l-i-t
0 / 0 / 0
Регистрация: 20.11.2013
Сообщений: 8
03.12.2013, 21:59     Необходима проверка кода программы #1
Добрый вечер! Проверьте, пожалуйста, если можете, правильность написания кода программы для следующей задачи:Спортсмен-лыжник начал тренировки, пробежав в первый день 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; 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2013, 21:59     Необходима проверка кода программы
Посмотрите здесь:

Экстремумы проверка кода C++
Проверка правильности кода программы. C++
Проверка и доработка кода. C++
C++ проверка кода на правильность
C++ Проверка на правильность кода
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
МаксимТ
 Аватар для МаксимТ
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
5547 / 2561 / 233
Регистрация: 01.11.2011
Сообщений: 6,330
Завершенные тесты: 1
04.12.2013, 10:00     Необходима проверка кода программы #9
Цитата Сообщение от ВАСИЛЕВС Посмотреть сообщение
Юзер не напрягается насчет валидности данных и
ввел букву...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.12.2013, 19:56     Необходима проверка кода программы
Еще ссылки по теме:

C++ Проверка кода программы
проверка кода, функции C++
Проверка XML кода на ошибки 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     Необходима проверка кода программы
Ответ Создать тему
Опции темы

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