Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.57/14: Рейтинг темы: голосов - 14, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 02.02.2011
Сообщений: 4
1

5 м/с и 5 км/ч. Что больше?

02.02.2011, 10:22. Показов 2837. Ответов 22
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
5 м/с и 5 км/ч. что больше? Нужно составить программу С++.

 Комментарий модератора 
Именуйте темы осмысленно. Название темы должно максимально полно отражать ее содержание.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.02.2011, 10:22
Ответы с готовыми решениями:

Когда элемент одного массива больше элемента другого массива, то тот элемент что больше расскладывается на меньшие элементы
ребят не могу подобрать алгоритм ,такой что когда елемент одного массива больше елемента другого...

Больше фруктов. Определить, что весит больше - яблоки или апельсины
Больше фруктов. Одно яблоко весит 100 гр., а один апельсин 150 гр.Вам дают заданное кол-во яблок...

Определить что больше tgx или cos угла на 10 больше
Определить что больше tgx или cos угла на 10 больше !

Найти вероятность того, что произведение будет не больше единицы, а частное не больше двух
3) Наудачу взяты два положительных числа х и у, каждое из которых не превышает двух. Найти...

22
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,722
02.02.2011, 10:30 2
Извиняюсь за оффтоп, но помоему вопрос, заданный в теме, больше в математический форум подходит. Да и попытки сделать чтото как я понимаю не было:\
0
274 / 175 / 12
Регистрация: 14.03.2010
Сообщений: 501
02.02.2011, 11:20 3
zarenta, приведи километры к метрам, а часы — к секундам. Это так сложно?
0
182 / 183 / 55
Регистрация: 08.04.2009
Сообщений: 1,309
02.02.2011, 12:15 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
 
int main()
{
    int v1,v2;
    cout << "Enter v1 km/h ";
    cin >> v1;
    cout << "\nEnter v2 m/s ";
    cin >> v2;
    if( ((v1*1000)/3600) > v2) cout << "\nv1 =  " << v1 << " km/h  >  v2 = " << v2 << " m/s\n";
    else cout << "\nv1 =  " << v1 << " km/h  <  v2 = " << v2 << " m/s\n";
    
    cin.get();
    cin.get();
}
0
0 / 0 / 0
Регистрация: 02.02.2011
Сообщений: 4
02.02.2011, 14:04  [ТС] 5
5 м/с и 5 км/ч. что больше? Нужно составить программу на языке С++.
Попытки были но учитель по информатике сказал что ещё чего то не хватает
Было вот так
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <conio.h>
main()
{
int a,b,max;
scanf (''%d%d'',&a, &b);
if (a>b){
max=a;
}
else{
max=b;
}
printf (''наибольшее число%d'', max);
getch();
}
пожалуйста помогите
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
02.02.2011, 18:59 6
Вводишь два значения скорости - каждое либо в виде m/s (метры в секунду), либо в виде k/h (километры в час). Программа показывает, какое значение из двух наибольшее:
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#include <stdio.h>
#include <stdlib.h>
 
enum units
{
    mps,
    kmph,
    all
};
 
double units_r[all][all] =
{
    {1.0   , 3.6},
    {1./3.6, 1.0}
};
 
double convert(double value, enum units from, enum units to)
{
    if(from == all || to == all)
    {
    fputs("Illegal unit\n", stderr);
    exit(1);
    }
 
    return value * units_r[from][to];
}
 
struct quantity
{
    double value;
    enum units u;
};
 
struct quantity* getQ(struct quantity* q)
{
    char n, d;
    scanf("%lf %c/%c", &(q->value), &n, &d);
    if(n == 'm' && d == 's')
    q->u = mps;
    else if(n == 'k' && d == 'h')
    q->u = kmph;
    else
    return NULL;
    return q;
}
 
void putQ(struct quantity q)
{
    printf("%.2f %s", q.value, (q.u == mps  ? "m/s"  :
                q.u == kmph ? "k/h"  :
                "ERR"));
}
 
int compareQ(struct quantity q1, struct quantity q2)
{
    double val1 = q1.value;
    double val2 = convert(q2.value, q2.u, q1.u);
    if(val1 < val2)
    return -1;
    if(val2 < val1)
    return 1;
    return 0;
}
 
int main()
{
    struct quantity q1, q2;
    int result;
    
    printf("Input speed in the following format:\n"
       "NUM UNIT,\n"
       "where NUM is a number and UNIT has one of the two valid values:\n"
       "\tm/s (which stands for metres per second)\n"
       "\tk/h (which stands for kilometres per hour)\n"
       "e.g., the 3.5 m/s is a correct speed\n");
    
    puts("Input the first speed");
    if(getQ(&q1) == NULL)
    {
    fputs("Illegal unit\n", stderr);
    exit(1);
    }
    puts("Input the second speed");
    if(getQ(&q2) == NULL)
    {
    fputs("Illegal unit\n", stderr);
    exit(1);
    }
    fputs("Let's find out, which speed is the greatest: ", stdout);
    putQ(q1);
    fputs(" or ", stdout);
    putQ(q2);
    fputs("?\n", stdout);
    result = compareQ(q1, q2);
    if(result < 0)
    putQ(q2);
    else if(result > 0)
    putQ(q1);
    else
    fputs("They're equal", stdout);
    putchar('\n');
    
    exit(0);
}

Не по теме:

Цитата Сообщение от zarenta Посмотреть сообщение
5 м/с и 5 км/ч. что больше? Нужно составить программу на языке С++.
Незачем повторять задание по три раза. Одного вполне достаточно

1
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,722
02.02.2011, 19:06 7
Nameless One, Абалдеть, вот это всем решениям решение !)))
0
274 / 175 / 12
Регистрация: 14.03.2010
Сообщений: 501
02.02.2011, 19:11 8
zulkis, не сказал бы. Излишне усложнённое и не вполне корректное.
0
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,722
02.02.2011, 19:28 9
volovzi, Дело в замахе
0
274 / 175 / 12
Регистрация: 14.03.2010
Сообщений: 501
02.02.2011, 19:30 10
zulkis, если ты хотел сказать "в размахе", то нет, не в этом.
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
03.02.2011, 04:17 11
Цитата Сообщение от volovzi Посмотреть сообщение
не вполне корректное
А что некорректного в моем решении?
0
0 / 0 / 0
Регистрация: 02.02.2011
Сообщений: 4
03.02.2011, 09:01  [ТС] 12
--------------------------------------------------------------------------------
5 м/с и 5 км/ч. что больше? Нужно составить программу на языке С++.
Попытки были но учитель по информатике сказал что ещё чего то не хватает
Было вот так
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <conio.h>
main()
{
int a,b,max;
scanf (''%d%d'',&a, &b);
if (a>b){
max=a;
}
else{
max=b;
}
printf (''наибольшее число%d'', max);
getch();
}
люди не надо составлять такие сложные программы нужно к этой которую я написала что то дабавить

 Комментарий модератора 
Исплользуйте теги форматирования кода!
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
03.02.2011, 09:10 13
Цитата Сообщение от zarenta Посмотреть сообщение
люди не надо составлять такие сложные программы нужно к этой которую я написала что то дабавить
тебе в посте #4 написали простое решение.

И вообще, твоя программа хотя бы компилируется?
0
302 / 160 / 62
Регистрация: 27.02.2010
Сообщений: 317
03.02.2011, 09:11 14
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <conio.h>
int main()
{
    int a,b,c,max;
    printf ("Ввtдите 2 числа");
    scanf ("%d%d",&a, &b);
    c=b*1000/3600;
    if (a>b)
        max=a;
    else
    {
        max=b;
        printf ("наибольшее число  в м/с %d", c);
    }
    printf ("наибольшее число%d", max);
    getch();
    return 0;
}
1
1 / 1 / 0
Регистрация: 05.11.2010
Сообщений: 144
03.02.2011, 11:22 15
Nameless One, зачем всё делать настолько громоздко и сложно?)
0
274 / 175 / 12
Регистрация: 14.03.2010
Сообщений: 501
03.02.2011, 11:27 16
Nameless One, завершение с ошибками. Неверно введённая размерность или несуществующий формат не должны приводить к экстренному завершению.
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
03.02.2011, 11:40 17
deeflash, один вариант к моменту моего ответа был уже предложен. Не хотелось его дублировать. А вся "сложность" моего варианта состоит в организации удобного интерфейса с пользователем и в возможности гипотетической "расширяемости" (т.е. более удобного добавления новых размерностей в программу и т.д.). Согласен, в данном случае это вряд ли нужно, но мне так больше нравится.

Цитата Сообщение от volovzi Посмотреть сообщение
Nameless One, завершение с ошибками. Неверно введённая размерность или несуществующий формат не должны приводить к экстренному завершению.
Это легко исправить:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
struct quantity* getQ(struct quantity* q)
{
    char n, d;
    if(scanf("%lf %c/%c", &(q->value), &n, &d) != 3)
    {
    fflush(stdin);
    return NULL;
    }
        
    if(n == 'm' && d == 's')
    q->u = mps;
    else if(n == 'k' && d == 'h')
    q->u = kmph;
    else
    return NULL;
    return q;
}
1
274 / 175 / 12
Регистрация: 14.03.2010
Сообщений: 501
03.02.2011, 11:52 18
Nameless One, а это ничего не меняет. Всё равно вылетает с ошибкой там, где можно просто выдать предупреждение.
Ещё, например, если потребовать правильное написание km/h, то программа окажется в тупике.
Да и расширяемость как-то сомнительна. Придётся изменять почти половину программы, если захочется добавить какой-нибудь новый формат.
0
1 / 1 / 0
Регистрация: 05.11.2010
Сообщений: 144
03.02.2011, 11:53 19
Nameless One, понятно, не дорос я ещё до этого, никогда бы не додумался такую задучу через структуры решать =)
0
274 / 175 / 12
Регистрация: 14.03.2010
Сообщений: 501
03.02.2011, 14:01 20
Если опустить все подробности, то расширяемая программа может выглядеть, например, так:
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#include <iostream>
#include <limits>
#include <map>
 
typedef std::map<std::string, double> quantities_table_type;
typedef quantities_table_type::value_type quantity;
 
// ---- Универсальный конвертор -------------------------------------------------------------------
 
class converter {
public:
    // Добавление единицы измерения и её отношения к базовой величине в таблицу.
    void insert (const std::string & units, double value) { m_quantities_table.insert(quantity(units, value)); }
    
    // Если обе единицы измерения "old_units" и "new_units" есть в таблице, то возвращается их
    // отношение. В противном случае возвращается "NaN".
    double convert (const std::string & old_units, const std::string & new_units) const {
        quantities_table_type::const_iterator      source = m_quantities_table.find(old_units);
        quantities_table_type::const_iterator destination = m_quantities_table.find(new_units);
        
        if (source != m_quantities_table.end() && destination != m_quantities_table.end())
            return source->second / destination->second;
            
        return std::numeric_limits<double>::quiet_NaN();
    }
 
private:
    quantities_table_type m_quantities_table;
};
 
// ---- Конвертор расстояний ----------------------------------------------------------------------
 
class distance_converter {
public:
    static double convert (const std::string & old_units, const std::string & new_units) {
        return instance().m_converter.convert(old_units, new_units);
    }
 
private:
    distance_converter () {
        // Базовая единица измерения — метр.
        m_converter.insert("м", 1);
        m_converter.insert("км", 1000);
    }
    
    static distance_converter & instance () {
        static distance_converter converter;
        return converter;
    }
 
private:
    converter m_converter;
};
 
double convert_distance (const std::string & old_units, const std::string & new_units) {
    return distance_converter::convert(old_units, new_units);
}
 
// ---- Конвертор времён --------------------------------------------------------------------------
 
class time_converter {
public:
    static double convert (const std::string & old_units, const std::string & new_units) {
        return instance().m_converter.convert(old_units, new_units);
    }
 
private:
    time_converter () {
        // Базовая единица измерения — секунда.
        m_converter.insert("с", 1);
        m_converter.insert("мин", 60);
        m_converter.insert("ч", 3600);
    }
    
    static time_converter & instance () {
        static time_converter converter;
        return converter;
    }
 
private:
    converter m_converter;
};
 
double convert_time (const std::string & old_units, const std::string & new_units) {
    return time_converter::convert(old_units, new_units);
}
 
// ---- Конвертор скорости ------------------------------------------------------------------------
 
double convert_speed (const std::string & s1, const std::string & s2) {
    size_t pos1 = s1.find('/');
    size_t pos2 = s2.find('/');
    
    return convert_distance(s1.substr(0, pos1), s2.substr(0, pos2)) / convert_time(s1.substr(pos1 + 1), s2.substr(pos2 + 1));
}
 
// ------------------------------------------------------------------------------------------------
 
int main (int argc, char * const argv[]) {
    // Где-то взяли конвертируемые размерности.
    std::string first_dimension("км/ч");
    std::string second_dimension("м/с");
    
    // Где-то раздобыли конвертуремую величину.
    double value = 60;
    
    double result = value * convert_speed(first_dimension, second_dimension);
    std::cout << result << ' ' << second_dimension << std::endl;
 
    return 0;
}
Если нужны дополнительные измерения длины или времени, то добавляется одна строчка в соответствующий конвертор.

И, разумеется, можно конвертировать не только км/ч в м/с, но и любые комбинации доступных величин, например, м/ч в км/мин.
0
03.02.2011, 14:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.02.2011, 14:01
Помогаю со студенческими работами здесь

Найти вероятность ,что сумма двух наудачу взятых дробей не больше a , а модуль их разности не больше b
Найти вероятность того, что сумма двух наудачу взятых положительных правильных дробей не больше a...

Проверить что в textbox цифра и что она больше 0.
Обыскал и перечел несколько русских книг по ASP.Net. К сожалению ни в одной из них не нашел примера...

Front-end и Back-end: что круче, что луче, где больше?
вопрос: какая разница зарплаты в Senior Front-end'a и Senior Back-end'a, в%. Знаю, странные у меня...

Что больше
Что больше? {79}^{\frac{3}{5}}+{1900}^{\frac{3}{5}} или {1979}^{\frac{3}{5}}


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru