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

Программа, которая бы по введенному номеру единицы измерения и массы M выдавала бы соответствующее значение массы в килограммах - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.80
serega1785
0 / 0 / 0
Регистрация: 13.04.2013
Сообщений: 22
14.04.2013, 14:31     Программа, которая бы по введенному номеру единицы измерения и массы M выдавала бы соответствующее значение массы в килограммах #1
Написать программу, которая бы по введенному номеру единицы измерения(1-килограмм, 2-миллиграмм, 3-грамм, 4-тонна, 5-центнер) и масса M выдавала бы соответствующее значение массы в килограммах.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2013, 14:31     Программа, которая бы по введенному номеру единицы измерения и массы M выдавала бы соответствующее значение массы в килограммах
Посмотрите здесь:

C++ Определяет единицы массы в кг
Составить программу, которая бы по введенному числу (до 10) выдавала бы название этой цифры C++
Единицы массы C++
По введенному номеру единицы измерения и пути выдать значение в метрах C++
C++ Написать программу, которая бы по введенному номеру единицы измерения (1-секунды, 2-минуты, 3-часы, 4-сутки) и заданному временному интервалу печатала
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GetVariable
14.04.2013, 14:54
  #2

Не по теме:

как вы собираетесь сдавать экзамен?

serega1785
0 / 0 / 0
Регистрация: 13.04.2013
Сообщений: 22
14.04.2013, 20:50  [ТС]     Программа, которая бы по введенному номеру единицы измерения и массы M выдавала бы соответствующее значение массы в килограммах #3
Цитата Сообщение от GetVariable Посмотреть сообщение

Не по теме:

как вы собираетесь сдавать экзамен?

ну вы мне эти покажете как делать а те будут просто аналогичны)))

Добавлено через 4 часа 43 минуты
=(((

Добавлено через 1 час 9 минут
и с этой помогите пожалуйста
LelMath
15 / 15 / 5
Регистрация: 05.11.2012
Сообщений: 40
14.04.2013, 21:02     Программа, которая бы по введенному номеру единицы измерения и массы M выдавала бы соответствующее значение массы в килограммах #4
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
32
33
34
#include <iostream>
#include <math.h>
 
 
using namespace std;
 
int main()
{
int n = 0;
cin>>n;
double e = 0;
if (n == 1)
{
    cout<<1;
}
if (n == 2)
{
    cout<<0.000001;
}
if (n == 3)
{
    cout<<0.001;
}
if (n == 4)
{
    cout<<1000;
}
 
if (n == 5)
{
    cout<<100;
}
return 0;
}
Учи язык, по аналогии ничего не пишется, нужно понимать как работает программа, если хочешь реально что то писать.
AnyOne697
 Аватар для AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 532
14.04.2013, 23:42     Программа, которая бы по введенному номеру единицы измерения и массы M выдавала бы соответствующее значение массы в килограммах #5
Цитата Сообщение от LelMath Посмотреть сообщение
Учи язык, по аналогии ничего не пишется, нужно понимать как работает программа, если хочешь реально что то писать.
Простите, но мне кажется было бы не плохо вам поучить язык.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <cstdlib>
#include <string>
#include <map>
 
int main ( int argc, char **argv ) {
    //argv[0] - path to excutable file
    //argv[1] - integer number - mass
    //argv[2] - two chars 'mg'/'gr'/'kg'/'hw'/'tn'
    std::map < std::string, float > trans; // create object of class map
    trans[ "mg" ] = 0.000001f; // for key 'mg', that mean milligramms
    trans[ "gr" ] = 0.001f; // like previous, gr = gramm
    trans[ "kg" ] =    1.f; // kg = killogramm
    trans[ "hw" ] =  100.f; // hw = hundredweight
    trans[ "tn" ] = 1000.f; // tn = ton
    
    
    /* Now we just parse first programm argument into integer
       and multiply one with transform factor */
    std::cout << (float)atoi ( argv[ 1 ] )*trans[ argv[ 2 ] ] << std::endl;
}
Почему так лучше? Во-первых, сам код намного проще. Во-вторых, время работы не зависит от пользователя (нередко является суперплюсом). В-третьих, добавить что-то не составит труда.
Хотя и формулировка задачи немного другая, счёл необходим всё же написать этот код и запостить его сюда.
Наконец, язык здесь вообще не причём. Чтобы писать действительно хорошее ПО, требуется 1) очень много времени, 2) желание, 3) немного логики. Впрочем, не все хотят программировать вообще. Не хотят - никто никого не заставляет. Но пощадите людей, которые будут читать Ваш код. Напишите его хотя бы красиво.
LelMath
15 / 15 / 5
Регистрация: 05.11.2012
Сообщений: 40
15.04.2013, 00:04     Программа, которая бы по введенному номеру единицы измерения и массы M выдавала бы соответствующее значение массы в килограммах #6
Я бы не сказал, что ваш код проще. Я считаю, что такой код сейчас давать нелогично, так как по самому вопросу видно, что человек пока что программирует не очень хорошо, а ваш код подходит для продвинутых. Я же написал понятный код на самых основах. Во вторых, в данный момент разница в быстродействии незначительна, так как у нас только 5 вариантов ввода. Так же по вашему мнению
Цитата Сообщение от AnyOne697 Посмотреть сообщение
Чтобы писать действительно хорошее ПО, требуется 1) очень много времени
. 1) Очень много времени на что? Правильно, на изучение языка.

Я согласен, что мне нужно поучить язык.
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
15.04.2013, 00:15     Программа, которая бы по введенному номеру единицы измерения и массы M выдавала бы соответствующее значение массы в килограммах #7
Зачем куча if'ов? Человек возьмёт и будет
Цитата Сообщение от LelMath Посмотреть сообщение
по аналогии
до третьего курса писать...
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
#include <iostream>
 
using namespace std;
 
int main()
{
    int unit;
    cin >> unit;
    switch ( unit ) {
    case 1:
        cout << 1;
        break;
    case 2:
        cout << 0.000001;
        break;
    case 3:
        cout << 0.001;
        break;
    case 4:
        cout << 1000;
        break;
    case 5:
        cout << 100;
        break;
    default:
        cout << "unit not correct";
    }
 
    return 0;
}
LelMath
15 / 15 / 5
Регистрация: 05.11.2012
Сообщений: 40
15.04.2013, 00:24     Программа, которая бы по введенному номеру единицы измерения и массы M выдавала бы соответствующее значение массы в килограммах #8
Я как раз писал, что тупо копировать нельзя. С новым кодом я согласен, он корректнее моего.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2013, 01:57     Программа, которая бы по введенному номеру единицы измерения и массы M выдавала бы соответствующее значение массы в килограммах
Еще ссылки по теме:

Составить программу, которая по введенному номеру месяца и номеру года выводит количество дней в этом месяце(использовать операторы printf и scanf) C++
написать программу, которая по введенному номеру единицы измерения (1-дециметр, 2-километр, 3-метр, 4-миллиметр, 5-сантиметр) и длине отрезка L выдава C++
написать программу, которая по введенному номеру единицы измерения (1-дециметр, 2-километр, 3-метр, 4-миллиметр, 5-сантиметр) и длине отрезка L выдава C++

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

Или воспользуйтесь поиском по форуму:
AnyOne697
 Аватар для AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 532
15.04.2013, 01:57     Программа, которая бы по введенному номеру единицы измерения и массы M выдавала бы соответствующее значение массы в килограммах #9
Цитата Сообщение от LelMath Посмотреть сообщение
Я считаю, что такой код сейчас давать нелогично, так как по самому вопросу видно, что человек пока что программирует не очень хорошо
Что сложного в банальном отображении? Храним значения парами - ключ / пара. Доступ по ключу. В Си++ это сделано очень и очень не плохо (по мне так, лучше чем в Java). Преимущество? Можно использовать позже. Один раз инициализировал - сто раз использовал - удобно и просто.
Почему Си++ считается более сложным языком для обучения, чем, например, Java? Нет, не только из-за работы с памятью. У Java свои проблемы при работе с памятью, более того - куда менее очевидные для новичков, профессионалы порой застревают, ничего не понимая. Зато у Java очень хорошая стандартная платформонезависимая библиотека - за это её и любят. И я её люблю только за это (за остальное ненавижу). У Си++ есть кривоватая и далеко не идеальная стандартная библиотека. Но она есть! Причём там очень много общих алгоритмов, которые многие зачем-то пишут. Причём пишут в разы хуже. Зачем? Не знаю... Поэтому лучше учить язык, включая стандартную библиотеку. Это важно. Java учат сначала азам (арифметика, ветвления, классы, объекты, методы) используя стандартную библиотеку.

P.S. Более того, я даже не понял, почему этот код должен работать. Где там масса задаётся? Или она равна единице?..

P.P.S.
Цитата Сообщение от Olivеr Посмотреть сообщение
Зачем куча if'ов? Человек возьмёт и будет
У Вас не лучше. К сожалению. Можно было хотя бы enum сделать:
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
32
33
34
#include <iostream>
 
using namespace std;
 
enum Unit { kilograms = 1, milligrams, grams, tons, hundredweights };
 
int main()
{
    int unit;
    cin >> unit;
    switch ( unit ) {
    case kilograms:
        cout << 1;
        break;
    case milligrams:
        cout << 0.000001;
        break;
    case grams:
        cout << 0.001;
        break;
    case hundredweights:
        cout << 100;
        break;
    case tons:
        cout << 1000;
        break;
    default:
        cout << "unit not correct";
        break; // it's very important to! 
       // Or hi will took this and remember that in default case break isn't needed...
    }
 
    return 0;
}
Yandex
Объявления
15.04.2013, 01:57     Программа, которая бы по введенному номеру единицы измерения и массы M выдавала бы соответствующее значение массы в килограммах
Ответ Создать тему
Опции темы

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