Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Andy19
0 / 0 / 0
Регистрация: 06.05.2015
Сообщений: 3
1

Вычислить сумму чисел, передаваемых программе в виде аргументов командной строки

07.05.2015, 14:40. Просмотров 872. Ответов 3
Метки нет (Все метки)

Всем доброго дня! Прошу помочь с решением задачи.

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

Текст программы:
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
int main(int argc, char* argv[])
{
    if (argc <= 1)
    {
        printf("Program calculates sum of its command line arguments.\n");
        return 0;
    }
 
    int sum = 0;
    for (int i = 1; i < argc; ++i)
    {
        bool err;
        int param = StringToInt(argv[i], err);
        if (err)
        {
            printf("Argument #%d is not a number\n.", i);
            return 1;
        }
 
        printf("%d", param);
        sum += param;
        if (i != argc-1)
        {
            printf(" + ");
        }
    }
 
    printf(" = %d", sum);
    return 0;
}

Описание функции StringToInt (Файл StringToInt.h):

C++
1
2
3
4
5
6
7
int StringToInt(const char * str, bool & err)
{
    char * pLastChar = NULL;
    int param = strtol(str, &pLastChar, 10);
    err = ((*str == '') || (*pLastChar != ''));
    return param;
}
Теперь необходимо на основе данной программы разработать программу, вычисляющую результат вычисления арифметического выражения, операции и операнды которого передаются через аргументы командной строки. Вычисление выражения должно осуществляться без учета приоритета операторов, результат выводится с точностью до 3 знаков после запятой. Например, результатом вычисления:

eval.exe 13 + 7 / 8 * 3.8
должно быть число 9.500.

Примечания:

1. eval.exe — название исполняемого файла программы.

2. Для считывания данных из командной строки и преобразования их в числа в формате с плавающей запятой я использовал функцию double strtod(const char * str, char ** pLastChar);
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2015, 14:40
Ответы с готовыми решениями:

Реализовать программу в виде исполняемого файла, запускаемого посредством аргументов командной строки
не могу понять что это означает и как это реализовать: Работа должна быть...

Вывод аргументов командной строки
Доброго времени. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace...

Обработка аргументов командной строки
Не нашел где создать тему, поэтому решил здесь. 1. Интересуют стандарты для...

Использование аргументов командной строки
Всем доброго дня !!! Подскажите пожалуйста как связать этот код программы с...

Ввод аргументов командной строки
Здравствуйте, такой вопрос: как задаются аргументы командной строки в си? нужно...

3
helper
70 / 44 / 24
Регистрация: 11.05.2014
Сообщений: 176
07.05.2015, 15:57 2
Модифицируй алгоритм, используй стэк для вычислений, это самое простое.
0
Andy19
0 / 0 / 0
Регистрация: 06.05.2015
Сообщений: 3
07.05.2015, 16:02  [ТС] 3
Можно расписать поподробнее?!
0
helper
70 / 44 / 24
Регистрация: 11.05.2014
Сообщений: 176
07.05.2015, 16:50 4
https://yandex.ru/yandsearch?clid=21...82%D1%8D%D0%BA

на первой же странице несколько примеров.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2015, 16:50

Передача аргументов командной строки
Здравствуйте. Подскажите пожалуйста, зачем в этом коде &quot;return 1;&quot;? #include...

Разбор аргументов командной строки
Для Unix существуют специальные средства для разбора опций командной строки...

Передача аргументов командной строки функции main()
Добрый день Дана задача: Напишите программу, которая запрашивает пароль,...


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

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

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