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

Командная строка в С++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дана матрица размера 5 x 10. Удалить первый (последний, все) столбцы, содержащие только положительные элементы. http://www.cyberforum.ru/cpp-beginners/thread258844.html
Помогите решить зачачку в с++: Дана матрица размера 5 x 10. Удалить первый (последний, все) столбцы, содержащие только положительные элементы.
C++ Cортировка списка двумя алгоритмами Люди добрые, помогите, пожалуйста, с задачкой... Необходимо разработать программу, в которой выполняется ввод списка записей определенного типа, а затем - сортировка списка двумя алгоритмами (Минимаксным и Шелла). Сначала в программе должен вводиться размер списка (целое число), а сам список создается в виде динамического массива структур (использовать функции malloc, calloc, free). Ввод одной... http://www.cyberforum.ru/cpp-beginners/thread258842.html
C++ Сформируйте массив C[n+m]
1. Дан массив целых чисел. Воспользовавшись указателями, поменяйте местами элементы массива с четными и нечетными индексами (т.е. те элементы массива, которые стоят на четных местах, поменяйте с элементами, которые стоят на нечетных местах). 2. Даны два массива, упорядоченных по возрастанию: А и B. Сформируйте массив C, состоящий из элементов массивов А и В, упорядоченный по возрастанию. 3....
C++ Вывести только те слова сообщения, которые встречаются в нем более n раз
Нужно выполнить эту задчку используя только библиотеки string и iostream. Буду очень благодарен, если вам не трудно. Дано осмысленное текствовое сообщение (т.е. алфавитно-цифровая информация, разделенная пробелами и знаками препинания, в конце которого ставится точка. Вывести только те слова сообщения, которые встречаются в нем более n раз.
C++ Uart + консольное приложение http://www.cyberforum.ru/cpp-beginners/thread258827.html
Здравствуйте, скажите как научить программу принимать и передавать данные по uart?
C++ Выборы На выборах в Государственную думу в избирательные бюллетени внесено N партий. Электронный сканер для считывания информации с бюллетеней передает информацию о каждом бюллетене в следующем формате: если в соответствующей клетке бюллетеня стоит пометка, то сканер передает + (плюс), в противном случае он передает - (минус). Таким образом, он передает последовательность из N символов - плюсов и... подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
5767 / 3416 / 255
Регистрация: 08.02.2010
Сообщений: 7,441
17.03.2011, 14:46     Командная строка в С++
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
 
double pi = acos(-1.);
 
typedef double (*PFUNC)(const double*);
 
void usage();
void errExit(int, const char*, ...);
size_t checkArgumentsCount(const char*, size_t);
PFUNC selectOper(const char*);
int convertArguments(char**, double*, size_t);
 
double cube(const double*);
double ball(const double*);
double parallelepiped(const double*);
double cilinder(const double*);
 
int main(int argc, char* argv[])
{
    PFUNC oper;
    double arguments[3];
    size_t ac;
    
    if(argc == 1)
    errExit(0, "No arguments were specified!.\n"),
        usage(),
        exit(1);
 
    if((oper = selectOper(argv[1])) == NULL)
    errExit(0, "Unknown key: `%s'.\n", argv[1]),
        usage(),
        exit(1);
 
    if((ac = checkArgumentsCount(argv[1], argc - 2)) != 0)
    errExit(0, "Got %u arguments for key `%s' instead of expected %u.\n",
        argc - 2, argv[1], ac),
        usage(),
        exit(1);
 
    if(convertArguments(argv + 2, arguments, argc - 2) == 0)
    errExit(1, "The specified arguments are not positive floating numbers.\n");
 
    printf("%.2f.\n", oper(arguments));
    
    exit(0);
}
 
void usage()
{
    fputs("volume - calculate volume of different geometric shapes.\n"
      "Usage: volume KEY ARGUMENTS\n"
      "\tb R - ball with radius R.\n"
      "\tc S - cube with side S.\n"
      "\tp A B C - parallelepiped with sides A, B, C.\n"
      "\tC R H - cilinder with radius R and height H.\n", stderr);
}
 
void errExit(int code, const char* fmt, ...)
{
    va_list ap;
    va_start(ap, fmt);
    vfprintf(stderr, fmt, ap);
    va_end(ap);
    if(code)
    exit(code);
}
 
size_t checkArgumentsCount(const char* op, size_t n)
{
    if(strcmp(op, "b") == 0 && n != 1)
    return 1;
    if(strcmp(op, "c") == 0 && n != 1)
    return 1;
    if(strcmp(op, "p") == 0 && n != 3)
    return 3;
    if(strcmp(op, "C") == 0 && n != 2)
    return 2;
    return 0;
}
 
PFUNC selectOper(const char* op)
{
    if(strcmp(op, "b") == 0)
    return ball;
    if(strcmp(op, "c") == 0)
    return cube;
    if(strcmp(op, "p") == 0)
    return parallelepiped;
    if(strcmp(op, "C") == 0)
    return cilinder;
    return NULL;
}
 
int convertArguments(char* argv[], double* args, size_t cnt)
{
    char* endptr;
    size_t i;
    for(i = 0; i < cnt; ++i)
    {
    args[i] = strtod(argv[i], &endptr);
    if(endptr == argv[i] || args[i] < 0)
        return 0;
    }
 
    return 1;
}
 
double cube(const double* args)
{
    return args[0] * args[0] * args[0];
}
 
double ball(const double* args)
{
    return 4. / 3. * args[0] * args[0] * args[0] * pi;
}
 
double parallelepiped(const double* args)
{
    return args[0] * args[1] * args[2];
}
 
double cilinder(const double* args)
{
    return pi * args[0] * args[0] * args[1];
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru