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

Можно ли данную программу перепрограммировать с паскаля на С++? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
HEKPOMAHT
 Аватар для HEKPOMAHT
0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 32
18.11.2011, 17:58     Можно ли данную программу перепрограммировать с паскаля на С++? #1
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
program metod optimisazii;
uses crt;
var
x1, x2, x3, DelX : integer;
Fmin, Xmin, i : integer;
XChert, Zx : real;
function Func(x:integer) : integer;
begin
Func := sqr(x) - 12*x;
end;
begin
clrscr;
Write('Введите значение X1: ');
Readln(x1);
Write('Введите дельто X: ');
Readln(DelX);
x2 := x1 + DelX;
if (Func(x1) > Func(x2)) then x3 := x1 + 2*DelX else x3 := x1 - DelX;
if (Func(x1) > Func(x2)) and (Func(x1) > Func(x3)) then
begin Fmin := Func(x1); Xmin := x1; end;
if (Func(x2) > Func(x1)) and (Func(x2) > Func(x3)) then
begin Fmin := Func(x2); Xmin := x2; end;
if (Func(x3) > Func(x2)) and (Func(x3) > Func(x1)) then
begin Fmin := Func(x3); Xmin := x3; end;
XChert := 0.5*(x1+x2)+( ( (Func(x1)-Func(x2))*(x2-x3)*(x3-x1) )/ ( 2*((x2-x3)*Func(x1)+(x3-x1)*Func(x2)+(x1-x2)*Func(x3)) ) );
if abs(Xmin-XChert) <= 0.001 then Zx := XChert;
writeln('Финальное значение Х', xchert);
writeln('Значение функции в точке Х', Func(xchert));
readln;
end.
Помогите советом пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2011, 17:58     Можно ли данную программу перепрограммировать с паскаля на С++?
Посмотрите здесь:

Можно ли данную прогу переделать в справочную систему компонентов компьютерной техники?!!! C++
C++ Написать программу,которая подсчитывает сколько раз заданный символ входит в данную строку текста
C++ Как данную программу реализовать при помощи классов
C++ как написать данную программу через функцию?
Переписать программу из паскаля в с++ C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
18.11.2011, 18:02     Можно ли данную программу перепрограммировать с паскаля на С++? #2
Цитата Сообщение от HEKPOMAHT Посмотреть сообщение
Можно ли данную программу перепрограммировать с паскаля на С++?
Можно

Цитата Сообщение от HEKPOMAHT Посмотреть сообщение
Помогите советом пожалуйста.
Вам код написать или конкретный вопрос есть?
Nursik77
 Аватар для Nursik77
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
18.11.2011, 18:06     Можно ли данную программу перепрограммировать с паскаля на С++? #3
Цитата Сообщение от HEKPOMAHT Посмотреть сообщение
Помогите советом пожалуйста
begin начало тела, а end соответственно конец. Write - это printf() (cout) с одним аргументом, а writeln с двумя (Например:
C
1
printf("x = %i", x);
), Readln это scanf() (cin). Если еще будут вопросы, пиши.
HEKPOMAHT
 Аватар для HEKPOMAHT
0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 32
18.11.2011, 18:06  [ТС]     Можно ли данную программу перепрограммировать с паскаля на С++? #4
Если можете помогите пожалуйста с кодом.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
18.11.2011, 20:05     Можно ли данную программу перепрограммировать с паскаля на С++? #5
В вашей программе есть ошибки, она не откомпилируется на паскале, я исправил по смыслу
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int x1, x2, x3, DelX,Fmin, Xmin, i;
float XChert, Zx;
 
int Func(int x)
{ return (pow(x,2) - 12*x); }
 
int main ()
{
puts ("Введите значение X1:");
scanf ("%d",x1);
puts ("Введите значение X:");
scanf ("%d", DelX);
x2=x1 + DelX;
if ( (Func(x1) > Func(x2) ) ) 
x3= x1 + 2*DelX ;
else 
x3= x1 - DelX;
if ( (Func(x1) > Func(x2)) && (Func(x1) > Func(x3)) ) 
{ Fmin= Func(x1); Xmin= x1; }
if ( (Func(x2) > Func(x1)) && ( Func(x2) > Func(x3)) )
{ Fmin= Func(x2); Xmin= x2; }
if ( (Func(x3) > Func(x2)) && (Func(x3) > Func(x1)) )
{ Fmin= Func(x3); Xmin= x3; }
XChert= 0.5*(x1+x2)+( ( (Func(x1)-Func(x2))*(x2-x3)*(x3-x1) )/ ( 2*((x2-x3)*Func(x1)+(x3-x1)*Func(x2)+(x1-x2)*Func(x3)) ) );
if  ( abs(Xmin-XChert) <= 0.001)  
Zx= XChert;
 
printf("Финальное значение Х%f", xchert);
printf ("Значение функции в точке Х%d", Func((int)Xchert));
getchar ();
return 0;
}
HEKPOMAHT
 Аватар для HEKPOMAHT
0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 32
18.11.2011, 22:19  [ТС]     Можно ли данную программу перепрограммировать с паскаля на С++? #6
ух, спасибо огромное!!! выручили!!)) огромное спасибо)))

Добавлено через 13 минут
блин, прога не компилируется( выдает такие ошибки:
8 C:\Borland\Program\Прога для методы оптимизации.cpp [Warning] converting to `int' from `double'
28 C:\Borland\Program\Прога для методы оптимизации.cpp [Warning] passing `float' for converting 1 of `int abs(int)'
30 C:\Borland\Program\Прога для методы оптимизации.cpp `xchert' was not declared in this scope
31 C:\Borland\Program\Прога для методы оптимизации.cpp `Xchert' was not declared in this scope

пытаюсь что то сделать но ничего не получается(
Nursik77
 Аватар для Nursik77
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
18.11.2011, 22:43     Можно ли данную программу перепрограммировать с паскаля на С++? #7
go, ошибок понаделал.
HEKPOMAHT, пока держи этот вариант, спать хочу , завтра доделаю если не пральна:
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int x1, x2, x3, DelX,Fmin, Xmin, i;
float XChert, Zx;
 
int Func(int x)
{ return (pow(x,2) - 12*x); }
 
int main ()
{
    int Xchert;
puts ("Ââåäèòå Г§Г*Г*Г·ГҐГ*ГЁГҐ X1:");
scanf ("%d", &x1);
puts ("Ââåäèòå Г§Г*Г*Г·ГҐГ*ГЁГҐ X:");
scanf ("%d", &DelX);
x2=x1 + DelX;
if ( (Func(x1) > Func(x2) ) ) 
x3= x1 + 2*DelX ;
else 
x3= x1 - DelX;
if ( (Func(x1) > Func(x2)) && (Func(x1) > Func(x3)) ) 
{ Fmin= Func(x1); Xmin= x1; }
if ( (Func(x2) > Func(x1)) && ( Func(x2) > Func(x3)) )
{ Fmin= Func(x2); Xmin= x2; }
if ( (Func(x3) > Func(x2)) && (Func(x3) > Func(x1)) )
{ Fmin= Func(x3); Xmin= x3; }
XChert= 0.5*(x1+x2)+( ( (Func(x1)-Func(x2))*(x2-x3)*(x3-x1) )/ ( 2*((x2-x3)*Func(x1)+(x3-x1)*Func(x2)+(x1-x2)*Func(x3)) ) );
if  ( abs(Xmin-XChert) <= 0.001)  
Zx= XChert;
 
printf("ÔèГ*Г*ëüГ*îå Г§Г*Г*Г·ГҐГ*ГЁГҐ Г• %f", Xchert);
printf ("\nГ‡Г*Г*Г·ГҐГ*ГЁГҐ ГґГіГ*êöèè Гў òî÷êå Г• %d", Func((int)Xchert));
system("pause");
return 0;
}
HEKPOMAHT
 Аватар для HEKPOMAHT
0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 32
18.11.2011, 22:44  [ТС]     Можно ли данную программу перепрограммировать с паскаля на С++? #8
Спасибо огромное, буду ждать))
Nursik77
 Аватар для Nursik77
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
18.11.2011, 23:01     Можно ли данную программу перепрограммировать с паскаля на С++? #9
HEKPOMAHT, ты это, задание выложи, а так чужой код разбирать не хотса. Вот кое-что подправил, держи пока-что:
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
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
 
 int Func(int x) { 
    return (pow(x,2) - 12*x); 
    }
 
int main ()
{
    int x1, x2, x3, DelX, Fmin, Xmin, i;
    float XChert, Zx;
    puts("Ââåäèòå Г§Г*Г*Г·ГҐГ*ГЁГҐ X1:");
    scanf ("%d", &x1);
    puts ("Ââåäèòå Г§Г*Г*Г·ГҐГ*ГЁГҐ X:");
    scanf ("%d", &DelX);
    x2 = x1 + DelX;
    if ( (Func(x1) > Func(x2) ) ) 
    x3 = x1 + 2*DelX ;
    else 
    x3= x1 - DelX;
    if ( (Func(x1) > Func(x2)) && (Func(x1) > Func(x3)) ) 
    { Fmin= Func(x1); Xmin= x1; }
    if ( (Func(x2) > Func(x1)) && ( Func(x2) > Func(x3)) )
    { Fmin= Func(x2); Xmin= x2; }
    if ( (Func(x3) > Func(x2)) && (Func(x3) > Func(x1)) )
    { Fmin= Func(x3); Xmin= x3; }
    XChert= 0.5*(x1+x2)+( ( (Func(x1)-Func(x2))*(x2-x3)*(x3-x1) )/ ( 2*((x2-x3)*Func(x1)+(x3-x1)*Func(x2)+(x1-x2)*Func(x3)) ) );
    if  ( abs(Xmin-XChert) <= 0.001)  
    Zx = XChert;
 
printf("ÔèГ*Г*ëüГ*îå Г§Г*Г*Г·ГҐГ*ГЁГҐ Г• = %f", XChert);
printf ("\nГ‡Г*Г*Г·ГҐГ*ГЁГҐ ГґГіГ*êöèè Гў òî÷êå Г• = %f", Func(XChert));
system("pause");
return 0;
}
HEKPOMAHT
 Аватар для HEKPOMAHT
0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 32
18.11.2011, 23:58  [ТС]     Можно ли данную программу перепрограммировать с паскаля на С++? #10
Вот задание, это прога по предмету методы оптимизации:

Программно реализовать на языке программирования процедуру одномерной оптимизации методом параболической аппроксимации:
(Программа должна обеспечить вывод на экран
• Начальных х(в первой степени), дельта Х>0 и e>0
на каждой итерации метода:
• Номер итерации,
• Точек аппроксимации х(степень 1) , х(степень 2) , х(степень 3) и значение функции f в них,
• Точки минимума аппроксимирующего полинома и значение функции х в ней, а затем
• Финальной оценки точки минимума функции f(x)
• Соответствующего точке значения функции f(х)).

С помощью программы оценить точки минимума для следующих текстовых функций:
1.тут формула: (pow(x,2) - 12*x) . Начальная х = -5, 0, 10; дельта Х=1.5 е=0.01

вот задание, а программа на паскале написана, но думаю там немного не правильно(
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
19.11.2011, 00:16     Можно ли данную программу перепрограммировать с паскаля на С++? #11
Цитата Сообщение от Nursik77 Посмотреть сообщение
go, ошибок понаделал.

Не по теме:

Все ошибки автора, только синтаксис изменил, она и в паскале не компилится...

HEKPOMAHT
 Аватар для HEKPOMAHT
0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 32
19.11.2011, 16:47  [ТС]     Можно ли данную программу перепрограммировать с паскаля на С++? #12
Думаю это очень сложно(( наверное думаю лучше где нибудь заказать данную работу(((
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2011, 21:18     Можно ли данную программу перепрограммировать с паскаля на С++?
Еще ссылки по теме:

C++ Перевести программу с Паскаля на Си++
C++ Как скомпилировать данную программу?
Как правильно переделать данную программу используя указатели? C++

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

Или воспользуйтесь поиском по форуму:
Nursik77
 Аватар для Nursik77
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
19.11.2011, 21:18     Можно ли данную программу перепрограммировать с паскаля на С++? #13
По моему все правильно, а какой результат должна возвращать прога?
Проверь для своих значений:
Цитата Сообщение от HEKPOMAHT Посмотреть сообщение
Начальная х = -5, 0, 10; дельта Х=1.5
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
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
 
 int Func(int x) { 
    return (pow(x,2) - 12*x); 
    }
 
int main ()
{
    int x1, x2, x3, Fmin, Xmin, i;
    float XChert, Zx, DelX;
        
    puts("Ââåäèòå Г§Г*Г*Г·ГҐГ*ГЁГҐ X1:");
    scanf ("%d", &x1);
    puts ("Ââåäèòå Г§Г*Г*Г·ГҐГ*ГЁГҐ X:");
    scanf ("%f", &DelX);
    x2 = x1 + DelX;
    if ( (Func(x1) > Func(x2) ) ) 
    x3 = x1 + 2*DelX ;
    else 
    x3= x1 - DelX;
    if ( (Func(x1) > Func(x2)) && (Func(x1) > Func(x3)) ) 
    { Fmin= Func(x1); Xmin= x1; }
    if ( (Func(x2) > Func(x1)) && ( Func(x2) > Func(x3)) )
    { Fmin= Func(x2); Xmin= x2; }
    if ( (Func(x3) > Func(x2)) && (Func(x3) > Func(x1)) )
    { Fmin= Func(x3); Xmin= x3; }
    XChert= 0.5*(x1+x2)+( ( (Func(x1)-Func(x2))*(x2-x3)*(x3-x1) )/ ( 2*((x2-x3)*Func(x1)+(x3-x1)*Func(x2)+(x1-x2)*Func(x3)) ) );
    if  ( abs(Xmin-XChert) <= 0.01)  
    Zx = XChert;
 
printf("ÔèГ*Г*ëüГ*îå Г§Г*Г*Г·ГҐГ*ГЁГҐ Г• = %.12f", XChert);
printf ("\nГ‡Г*Г*Г·ГҐГ*ГЁГҐ ГґГіГ*êöèè Гў òî÷êå Г• = %.12f", Func(XChert));
 
system("pause");
return 0;
}
Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от go Посмотреть сообщение
Все ошибки автора, только синтаксис изменил
ааа, ну извиняй

Yandex
Объявления
19.11.2011, 21:18     Можно ли данную программу перепрограммировать с паскаля на С++?
Ответ Создать тему
Опции темы

Текущее время: 06:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru