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

Перевод с паскаля на си - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Точка входа должна быть определена http://www.cyberforum.ru/cpp-beginners/thread722021.html
Всем привет. На YouTube нашел видео. Стало интересно. Там был приложен файл исходного кода .срр. Я скачал и попытался скомпилировать и у меня не получилось. Glut подключен. Я это же делал несколько месяцев назад и все получалось. Выкладываю исходный код, который там был приложен. IDE MSVS2010 C++; #include <time.h> #include <stdlib.h> #include <GL/glut.h>
C++ Десятичные числа начинающиеся нулем Кроме C функции printf(); подскажите как вывести число которое начинается с нуля ? Спасибо. http://www.cyberforum.ru/cpp-beginners/thread722015.html
Нужно написать прогу которая создаст в двух текстовых файлах А и В порядок числ до 17 C++
#include "stdafx.h" #include <iostream> #include <stdio.h> using namespace std; int _tmain(int argc, _TCHAR* argv) { double A, B; FILE *a, *b; a=fopen("A.txt.","w");
C++ Не запускается на других машинах
Суть такая. Экзешник не запускается на машине без Visual studio. Пишет что не найдено msvcp100.dll. Что делать? Заранее спасибо.
C++ Сравнение дат и плюсование/минусование времени http://www.cyberforum.ru/cpp-beginners/thread721992.html
Здравствуйте! У меня два вопроса. Первый: имеются две строки(тип AnsiString), они содержат какую-то дату(формат dd.mm.yy), как можно проверить больше ли первая строка(дата) второй? Равны ли они? Меньше? Интересует именно сравнение по дням, месяцам и годам сразу. Т.е. например строка s1="10.12.12" и строка s2="11.11.12", при сравнение строка s2 меньше s1(из-за месяца). Второй: имеются также две...
C++ В какой среде? В какой среде лучше начать осваивать оконное программирование? Консоль уже до дыр затёр хочу перейти к чему нибудь более привлекательному. подробнее

Показать сообщение отдельно
MS24
11 / 11 / 1
Регистрация: 22.02.2012
Сообщений: 115
Завершенные тесты: 1
07.12.2012, 11:21  [ТС]     Перевод с паскаля на си
=) А переписать не поможете? Просто вот процедура dz, я так понимаю мне нужно написать функцию, которая принимает указатель на массив d и меняет его значения? Или мне класс создавать mas в котором будет один объект - массив d и менять значения его элементов?

Добавлено через 13 часов 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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include <stdio.h>
#include <cmath>
#include <iostream>
 
#define sqr(x) x*x
 
const int r=  10;
const int n = 100;
//----------------------------
char array [r];
//----------------------------
char d [r];
char dp [r];
char u [10];
//----------------------------
float x [100];
//----------------------------
int i,j,a;
//----------------------------
float p,f,x0,x1,x2,x3,sm,sd;
//----------------------------
 
float ff (float xf0,float xf1,float xf2,float af)
{
 float rez;
 rez = std::abs(sin(af*xf0+xf1-xf0*xf2));
 return rez;
}
 
void dz(int rp, char* xp, char* dp)
{
    for(int kp = 0; kp <= rp - 1; kp++)
    {
      d[i] = 0;
 
        for(int ip = 1; ip <= n; ip++)
        {
            if((xp[ip] >= kp/rp) && (xp[ip] < (kp + 1) / rp))
            {
                    dp[kp] = dp[i]+1;
            }
        }  
    }
}
 
int main()
{
    for(int a = 0; a <= 1; a++)
    {
        x0 = 0.025;
        x1 = 0.211;
        x2 = 0.714;
        
        for(int j = 0; j <= 99; j++) 
        {
             f = ff(x0, x1, x2, a);
             for(int i = 9; i >= 0; i--)
                 {
                      f = f * 2;
                      u[i] = std::floor(f);
                      f = f - u[i];
                 }
             p = 1;
             x[j] = 0;
             for(int i = 0; i <= 9; i++)
              {
                 p = p / 2;
                 x[j] = x[j] +u [i] * p;
              }
           x0 = x1;
           x1 = x2;
           x2 = x[j];
        }
        
        dz(r, (char*)x, d);
        
        sm = 0; sd = 0;
        
        for(int i = 0; i <= r - 1; i++)
        {
            sm = sm + (2 * i + 1) / 2 / r * d[i] /n;
        }
        
        sm = (sm + (2 * i + 1) / 2 / r * d[i] /n);
        
        for(int i = 0; i <= r - 1; i++)
        {
            sd = sd + sqr((2 * i + 1) / 2 / r - sm) * d[i] / n;
        }
        
        printf("a = %d M = %d D = %d \n", a, sm, sd);
      }
          
    std::cin.get();      
    return 0;
}
Вот то что у меня получилось, но почему-то значения не те, подскажите?
 
Текущее время: 17:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru