Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
11 / 11 / 2
Регистрация: 22.02.2012
Сообщений: 115

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

06.12.2012, 21:09. Показов 1324. Ответов 7

Студворк — интернет-сервис помощи студентам
Ребят помогите поджалуйста с переводом!
Pascal
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
const r=10;
      n=100;
type mas=array[0..r] of byte;
var i,j,a:integer;
p,f,x0,x1,x2,x3,sm,sd:real;
u:array[1..10] of byte;
d:mas;
x:array[1..100] of real;
function ff(xf0,xf1,xf2,af:real) :real;
    var
    rez:real;
      begin
      rez:=abs(sin(af*xf0+xf1-xf0*xf2));
      ff:=rez;
      end;
procedure dz (rp:integer;xp:array [1..n]of real; var dp:mas);
var
kp,ip:integer;
begin
for kp:=0 to rp-1 do
begin
dp[kp]:=0;
write(kp/rp:0:3,'--',(kp+1)/rp);
for ip:=1 to n do
if (x[ip]>=kp/rp) and (x[ip]<(kp+1)/rp) then dp[kp]:=dp[kp]+1;
writeln(d[kp]:3);
end;
end;
 
 
 
 
begin
 
 
 
for a:=0 to 1 do
 
 
begin
x0:=0.025;x1:=0.211;x2:=0.714;
 
for j:=1 to n do
begin
     f:=ff(x0,x1,x2,a);
     for i:=10 downto 1 do
         begin
              f:=f*2;
              u[i]:=trunc(f);
              f:=f-u[i];
         end;
     p:=1;
     x[j]:=0;
     for i:=1 to 10 do
      begin
       p:=p/2;
        x[j]:=x[j]+u[i]*p;
      end;
      x0:=x1;x1:=x2;x2:=x[j];
end;
 
 
dz(r,x,d);
 
 
sm:=0;sd:=0;
for i:=0 to r-1 do
sm:=sm+(2*i+1)/2/r*d[i]/n;
for i:=0 to r-1 do
sd:=sd+sqr((2*i+1)/2/r-sm)*d[i]/n;
writeln('a=',a,' M=',sm,' D=',sd);
writeln;
end;//for a
end.
Замучался совсем! Я синтаксис знаю, но некоторые моменты во мне вызывают ужас.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.12.2012, 21:09
Ответы с готовыми решениями:

Перевод кода с Паскаля (перевод в метры)
var a,b,d:integer; c,e:real; begin writeln('1-дециметр 2-километр'); writeln('3-метр 4-миллиметр'); ...

Перевод из Паскаля в Си
function Fact2(n: integer): real; var anva: integer; begin result := n; anva := n; if (n &lt;&gt; 1) and (n &lt;&gt; 2) then ...

Перевод с Паскаля на c#
Помогите пожалуйста, заранее спасибо) program filer; uses crt; var g,s:real; n,i:integer; begin s:=0; write('n='); ...

7
CEO SOVAZ Corp.
 Аватар для sovaz1997
386 / 232 / 51
Регистрация: 17.12.2011
Сообщений: 822
Записей в блоге: 1
06.12.2012, 21:22
Собственно, что программа должна делать?
0
11 / 11 / 2
Регистрация: 22.02.2012
Сообщений: 115
06.12.2012, 21:49  [ТС]
Эта программа для оценки псевдослучайной последовательности, алгоритм приведенный здесь 100% верный, проверяли уже, просто я плохо знаю паскаль, а с си более менее знаком.
0
06.12.2012, 22:03

Не по теме:

MS24, Си или C++ ?

0
11 / 11 / 2
Регистрация: 22.02.2012
Сообщений: 115
06.12.2012, 22:05  [ТС]
Цитата Сообщение от BumerangSP Посмотреть сообщение
MS24, Си или C++ ?
С++ скорее всего, или можно на чистом си?
0
06.12.2012, 22:14

Не по теме:

MS24, я лишь хотел узнать, в тот ли раздел Вы написали)

0
11 / 11 / 2
Регистрация: 22.02.2012
Сообщений: 115
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;
}
Вот то что у меня получилось, но почему-то значения не те, подскажите?
0
07.12.2012, 19:36
 Комментарий модератора 
Закрыто по причине кросспостинга
https://www.cyberforum.ru/free... 23061.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.12.2012, 19:36
Помогаю со студенческими работами здесь

Перевод с Паскаля на Си++
program PrimesToN; var i, k, n, count: word; begin readln(n); for k := 1 to n do begin count := 0; ...

Перевод с Паскаля
Помогите пожалуйста перевести на Си uses crt; const zn=; var f:text; s:string; i,j:integer; begin clrscr; ...

Перевод с паскаля на с#
Program Insert; const N=10; type Element = integer; Arr = array of Element; var A: Arr; ...

Перевод с паскаля на си
Пожалуйста, помогите перевести код с паскаля на си (не ++). program z13; uses crt; var i,m,k,sum : longint; a :...

Перевод с Паскаля на С++
Не могу ни как перевести полностью вот этот кусок кода на Паскале на си++ function h(var key: TKey): integer; {Вычисление хеш-функции} ...


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

Или воспользуйтесь поиском по форуму:
8
Закрытая тема Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru