Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
kolin2
1 / 1 / 1
Регистрация: 04.10.2015
Сообщений: 32
1

Правильность кода

06.01.2016, 16:26. Просмотров 394. Ответов 2
Метки нет (Все метки)

Интересует Ваше мнение хорошо ли написан этот код или его можно сделать красивее?
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
#include<stdio.h>
#include<locale.h>
#include<math.h>
#undef EXP
#define EXP 2.7182818284590452
int main(void)
{
    setlocale(LC_ALL, "RUS");
    int n, i;
    double СуммаНапрямую900, СуммаНапрямую950, СуммаНапрямую1000;
    double СуммаКохена900, СуммаКохена950, СуммаКохена1000;
    double Разность, cor, Scor, f, fcor;
    СуммаНапрямую900 = 0.0 ;
    printf("\nN=900");
    for (i = 1; i <= 900; i++)
    { 
      СуммаНапрямую900 += pow(EXP, sqrt(i));
    }   
      printf("\t%f", СуммаНапрямую900);
    СуммаКохена900 = 0.0; cor = 0.0; Scor = 0.0;
    for (i = 1; i <= 900; i++)
    {
        f = pow(EXP, sqrt(i));
        fcor = f - cor;
        Scor = СуммаКохена900 + fcor;
        cor = (Scor - СуммаКохена900);
        СуммаКохена900 = Scor;
    }
    printf("\t%e", СуммаКохена900);
    printf("\t%e\n", (СуммаНапрямую900 - СуммаКохена900));
 
    СуммаНапрямую950 = 0.0;
    printf("\nN=950");
    for (i = 1; i <= 950; i++)
    {
        СуммаНапрямую950 += pow(EXP, sqrt(i));
    }
    printf("\t%f", СуммаНапрямую950);
    СуммаКохена950 = 0.0; cor = 0.0; Scor = 0.0;
    for (i = 1; i <= 950; i++)
    {
        f = pow(EXP, sqrt(i));
        fcor = f - cor;
        Scor = СуммаКохена950 + fcor;
        cor = (Scor - СуммаКохена950);
        СуммаКохена950 = Scor;
    }
    printf("\t%e", СуммаКохена950);
    printf("\t%e\n", (СуммаНапрямую950 - СуммаКохена950));
 
    СуммаНапрямую1000 = 0.0;
    printf("\nN=1000");
    for (i = 1; i <= 1000; i++)
    {
        СуммаНапрямую1000 += pow(EXP, sqrt(i));
    }
    printf("\t%f", СуммаНапрямую1000);
    СуммаКохена1000 = 0.0; cor = 0.0; Scor = 0.0;
    for (i = 1; i <= 1000; i++)
    {
        f = pow(EXP, sqrt(i));
        fcor = f - cor;
        Scor = СуммаКохена1000 + fcor;
        cor = (Scor - СуммаКохена1000);
        СуммаКохена1000 = Scor;
    }
    printf("\t%e", СуммаКохена1000);
    printf("\t%e\n", (СуммаНапрямую1000 - СуммаКохена1000));
 
    
    system("PAUSE");
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.01.2016, 16:26
Ответы с готовыми решениями:

Проверить правильность написания кода
Пример:k=45,7-1/4*sin2+(th1/sin5)log 7 (по основанию 5); f=10ln3/ch4*(arcsin1/3+arccos5/6)sec3;...

Вычисление значения по формуле (проверить правильность кода)
написать программу вычисления заданно- го целочисленного выражения для данных в формате 16 битов...

Определить сумму всех трехзначных чисел, которые без остатка делятся на 3 (проверить правильность кода)
Определить сумму всех трехзначных чисел, которые без остатка делятся на 3 Мой код,правильный ли...

Правильность оформления документации
Всем привет. В связи с тем, что общение с преподавателем очень сильно ограничено, а задать...

Проверьте код на правильность
Помогите разобраться где Я допустил ошибку Сама задача: Массив содержит 2n чисел. Из суммы...

2
Jewbacabra
Эксперт PHP
3747 / 3093 / 1361
Регистрация: 24.04.2014
Сообщений: 9,383
06.01.2016, 16:53 2
Цитата Сообщение от kolin2 Посмотреть сообщение
можно сделать красивее?
Дальше русскоязычных имен переменных смотреть не стал. Не C, а 1С какой-то.
Во-первых это постоянное переключение раскладки при наборе кода.
Во-вторых я не уверен что все компиляторы это поддерживают, получаем зависимость от компилятора на пустом месте
В-третьих возможны проблеммы с кодировкой.
0
Байт
Эксперт C
20047 / 12669 / 2662
Регистрация: 24.12.2010
Сообщений: 26,385
06.01.2016, 16:54 3
Цитата Сообщение от kolin2 Посмотреть сообщение
Ваше мнение
На мой вкус плохо уже то, что вычисления у вас повторяются. Так, при вычислении СуммаНапрямую1000 уже было все вычислено до 950 и грех этим не воспользоваться.
Я бы сделал так
C
1
2
3
4
5
6
7
S = 0;
for(i=1; i<1000; i++) {
  S += pow(EXP, sqrt(i));
  if (i==900) S900 = s:
  else if (i==950) S900 = s:
}
S1000=S;
Кроме того, переменные СуммаНапрямую900, СуммаНапрямую950, СуммаНапрямую1000 - однородны. А однородные переменные можно представлять в виде массива. Что сокращает код и упрощает модификацию программы (представьте, что завтра вам придется все это считать не для 3-х, а для 10-ти точек)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.01.2016, 16:54

Проверить правильность ввода числа
Помогите пожалуйста!Срочно нужно Дано число в троичной системе счисления.Проверить правильность...

Проверить блок-схему на правильность
Здравствуйте,с прошлой блок-схемой я разобрался,а вот есть еще одна,прошу проверить на правильность...

Проанализировать правильность расставленных скобок
не компилирует #include &lt;stdio.h&gt; #include &lt;string.h&gt; int main() { char instr, outstr; ...


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

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

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