Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Задача по Дейтлу, оператор повторения while 
:(
    Опции темы
danilkramatorsk
Дата 5.1.2013, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 22.12.2012

Репутация: нет
Всего: нет



Условие задачи:
Цитата

Водителям небезразличен пробег их автомобилей. Один водитель записал  
данные о нескольких заправках своей машины, записывая пройденные мили и  
число залитых в бак галлонов бензина. Разработайте программу на C++, которая, 
используя оператор while, вводила бы пробег в милях и объем бензина в каждой 
заправке. Программа должна вычислять и выводить на экран число миль на  
галлон для каждой заправки, а также общее значение миль на галлон по всем  
введенным к данному моменту заправкам. 


     Введите пройденный путь (-1, если ввод закончен): 287 
     Введите расход бензина: 13 
     Миль/галлон для этой заправки: 22.076923 
     Суммарное значение миль/галлон: 22.076923 
     Введите пройденный путь (-1, если ввод закончен): 200 
     Введите расход бензина: 10 
     Миль/галлон для этой заправки: 20.000000 
     Суммарное значение миль/галлон: 21.173913 
     Введите пройденный путь (-1, если ввод закончен): 120 
     Введите расход бензина: 5 
     Миль/галлон для этой заправки: 24.000000 
     Суммарное значение миль/галлон: 21.678571 
     Введите расход бензина (-1, если ввод закончен): -1 



код, но не пойму как правильно следует записать

Код

void determineClassAverage() 
 { 
      int proydenniyP; // здесь задал переменную,которая по условию задачи=пройденный путь
      int rasxod; //  здесь задал переменную,которая по условию задачи=расход бензина
      int obshiyP; // здесь задал переменную,которая отвечает за весь пройденный путь
      double mili; // здесь задал переменную,которая по условию задачи=Миль/галлон для этой заправки
      int chisloZapravok; // здесь задал переменную,которая отвечает за количество заправок
      int obshiyR;
                         proydenniyP=0;
                         rasxod=0;
                    
   
      
      while ( proydenniyP != -1,rasxod != -1 ) 
{
     
      
            cout<<"Vvedite proydenniy pyt or enter -1 to quit: ";
            cin >> proydenniyP;
      
    
      }
            
            
            if ( chisloZapravok !=0 )
            {
                
            mili=proydenniyP/rasxod;
            
            cout<<"\nProydenniy pyt:"<<proydenniyP<<endl;
            cout<<"\nRasxod benzina na mili: "<<mili<<endl;
            
                 }
                 
                 else
                 cout << "No grades were entered!!!!" << endl; 
                 }
}


Вообщем как я понял по условию необходимо ввести пройденный путь, по условию 287, расход бензина 13 , и из этих данных получить миль/галлон(т.е.  пройденный путь / расход бензина =
Цитата
Миль/галлон для этой заправки: 22.076923 

Помогите пожалуйста как правильно все следует записать. Заранее спасибо!!!)
PM MAIL   Вверх
bsa
Дата 5.1.2013, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Если ты сам пытаешься писать код, то вопросы следует задавать в разделе "С++ для новичков". В Центре помощи спрашивают те, кто сам писать код не собирается.

Добавлено через 8 минут и 49 секунд
Код
int totalMiles = 0;
int totalGals = 0;
while(true)
{
   int miles = 0;
   std::wcout << L"Введите пройденный путь (-1, если ввод закончен): " << std::flush;
   std::wcin >> miles;
   if (miles < 0)
      break;
   int gals = 0;
   std::wcout << L"Введите расход бензина: " << std::flush;
   std::wcin >> gals;
   totalMiles += miles;
   totalGals += gals;
   std::wcout << L"Миль/галлон для этой заправки: " << (double(miles) / gals) << L'\n'; //double() - это "преобразование" int в double
   std::wcout << L"Суммарное значение миль/галлон: " << (double(totalMiles) / totalGals) << std::endl; //оно необходимо, чтобы деление было не целочисленным.
}


Добавлено через 10 минут
Да, и еще. Чтобы не было проблем с русским языком добавь в начало функции main(): setlocale(LC_ALL, "Russian");
PM   Вверх
danilkramatorsk
Дата 5.1.2013, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 22.12.2012

Репутация: нет
Всего: нет



bsa , спасибо! Получается!
Если не сложно,можешь описать что именно делают переменные.
не пойму для чего нужен 
Код

break;

и при вводе setlocale(LC_ALL, "Russian") вызываются ошибки
пример:
Цитата

 `wcout' is not a member of `std' 


Это сообщение отредактировал(а) danilkramatorsk - 5.1.2013, 14:17
PM MAIL   Вверх
bsa
Дата 6.1.2013, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Добавь в начало cpp-файла: 
Код
#include <iostream>
#include <clocale>


Цитата(danilkramatorsk @  5.1.2013,  14:47 Найти цитируемый пост)
Если не сложно,можешь описать что именно делают переменные.

их имена вполне говорят о назначении. нет?

Цитата(danilkramatorsk @  5.1.2013,  14:47 Найти цитируемый пост)
не пойму для чего нужен break
А ты в словаре перевод посмотри. Ты знаешь, что делает while(true) { ... }? И что по-твоему должен делать break, когда пользователь введет -1?

PM   Вверх
danilkramatorsk
Дата 8.1.2013, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 22.12.2012

Репутация: нет
Всего: нет



Цитата

Ты знаешь, что делает while(true) { ... }? 

как я понял, пока while истинен выполняются след. действия 
Код

int miles = 0;
   std::wcout << L"Введите пройденный путь (-1, если ввод закончен): " << std::flush;
   std::wcin >> miles;
   if (miles < 0)

если ввели -1 действует break, т.е. конец программы
так?

PM MAIL   Вверх
bsa
Дата 8.1.2013, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



danilkramatorsk, да. примерно так. true - всегда истинное условие. Поэтому while(true) выполняется бесконечно. А когда пользователь вводит -1, то срабатывает break и ЦИКЛ (а не программа) завершается.
PM   Вверх
Rodman
Дата 9.1.2013, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122




M
Rodman
Модератор: Название темы должно содержать язык написания!

PM MAIL WWW Skype GTalk YIM MSN   Вверх
Rodman
Дата 21.1.2013, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



В мусорку!
PM MAIL WWW Skype GTalk YIM MSN   Вверх
bsa
Дата 21.1.2013, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196




M
bsa
Тема перемещена в раздел С/С++: для Новичков

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0510 ]   [ Использовано запросов: 23 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.