Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
L-i-l-i-t
0 / 0 / 0
Регистрация: 20.11.2013
Сообщений: 8
1

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

03.12.2013, 21:59. Просмотров 353. Ответов 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; 
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2013, 21:59
Ответы с готовыми решениями:

Проверка кода программы
Добрый вечер всем. Программу вроде бы написал правильно, вот только она не...

Проверка версии программы (перевод кода с C#)
Всем привет,подскажите как перевести данный код с C# на с++? try { ...

проверка кода, функции
Задание: Создать программу, которая определяет и инициализирует двумерный...

Проверка и доработка кода.
Написал программу попробовал откомпилировать в Visual Studio 2010. Стало...

Проверка кода на правильность
В общем, выполняю работу, перед проверкой хочется спросить у вас всё ли...

9
МаксимТ
47 / 47 / 10
Регистрация: 17.08.2012
Сообщений: 225
03.12.2013, 22:17 2
если ввести 0 то цикл повиснет
0
L-i-l-i-t
0 / 0 / 0
Регистрация: 20.11.2013
Сообщений: 8
03.12.2013, 22:20  [ТС] 3
Цитата Сообщение от МаксимТ Посмотреть сообщение
если ввести 0 то цикл повиснет
а причем тут 0?там 0 не входит в промежуток
0
ВАСИЛЕВС
557 / 480 / 168
Регистрация: 14.02.2012
Сообщений: 1,561
03.12.2013, 22:22 4
Цитата Сообщение от L-i-l-i-t Посмотреть сообщение
а причем тут 0?
"Защита от дурака", знаете такой принцип? Вы должны построить программу так, чтобы дурак(юзер) не мог её разрушить.
0
L-i-l-i-t
0 / 0 / 0
Регистрация: 20.11.2013
Сообщений: 8
03.12.2013, 22:24  [ТС] 5
Цитата Сообщение от ВАСИЛЕВС Посмотреть сообщение
"Защита от дурака", знаете такой принцип?
безусловно. но я же написала 0 не входит в промежуток,т.е его не нужно вводить.

Добавлено через 41 секунду
Цитата Сообщение от ВАСИЛЕВС Посмотреть сообщение
"Защита от дурака", знаете такой принцип? Вы должны построить программу так, чтобы дурак(юзер) не мог её разрушить.
ну так помоги тогда сделать как-то по-другому.
0
МаксимТ
47 / 47 / 10
Регистрация: 17.08.2012
Сообщений: 225
03.12.2013, 22:30 6
Цитата Сообщение от L-i-l-i-t Посмотреть сообщение
безусловно. но я же написала 0 не входит в промежуток,т.е его не нужно вводить
а я какраз не читал описание, а только код.
0
ВАСИЛЕВС
557 / 480 / 168
Регистрация: 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; 
}
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; 
}
программа вывод при любом вводимом значение,лишь условие
0
SatanaXIII
Почетный модератор
Эксперт С++
5777 / 2775 / 380
Регистрация: 01.11.2011
Сообщений: 6,755
Завершенные тесты: 1
04.12.2013, 10:00 9
Цитата Сообщение от ВАСИЛЕВС Посмотреть сообщение
Юзер не напрягается насчет валидности данных и
ввел букву...
0
ВАСИЛЕВС
557 / 480 / 168
Регистрация: 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; 
}
1
04.12.2013, 19:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.12.2013, 19:56

проверка кода на правильность
Используя оператор цикла while с условием и постусловием, решить следующие...

Экстремумы проверка кода
#include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace...

Проверка на правильность кода
// C++ 6.6 I.12.cpp : Defines the entry point for the console application. //...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru