0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 32
1

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

18.11.2011, 17:58. Показов 1458. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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.
Помогите советом пожалуйста.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.11.2011, 17:58
Ответы с готовыми решениями:

Как переписать данную программу с паскаля на C#?
var n,i,cislo:integer; s:boolean; p:array of array of integer; begin for i:=1 to 1000 do ...

можно сделать данную программу проще?как можно примитивней
Var F,x: real; Function ArcCos(z:Real):Real; begin if Round(z*10000000)=10000000 then...

Как можно оптимизировать данную программу?
program lab5; {$APPTYPE CONSOLE} uses SysUtils; var a,b,h,x,f:real; ...

Можно ли данную программу записать по другому
Мне нужно записать данную по другому, но не меняя при этом значений Данная программа решает...

12
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
18.11.2011, 18:02 2
Цитата Сообщение от HEKPOMAHT Посмотреть сообщение
Можно ли данную программу перепрограммировать с паскаля на С++?
Можно

Цитата Сообщение от HEKPOMAHT Посмотреть сообщение
Помогите советом пожалуйста.
Вам код написать или конкретный вопрос есть?
0
В вечном поиске...
275 / 235 / 30
Регистрация: 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). Если еще будут вопросы, пиши.
0
0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 32
18.11.2011, 18:06  [ТС] 4
Если можете помогите пожалуйста с кодом.
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
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;
}
1
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

пытаюсь что то сделать но ничего не получается(
0
В вечном поиске...
275 / 235 / 30
Регистрация: 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;
}
0
0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 32
18.11.2011, 22:44  [ТС] 8
Спасибо огромное, буду ждать))
0
В вечном поиске...
275 / 235 / 30
Регистрация: 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;
}
0
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

вот задание, а программа на паскале написана, но думаю там немного не правильно(
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
19.11.2011, 00:16 11
Цитата Сообщение от Nursik77 Посмотреть сообщение
go, ошибок понаделал.

Не по теме:

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

0
0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 32
19.11.2011, 16:47  [ТС] 12
Думаю это очень сложно(( наверное думаю лучше где нибудь заказать данную работу(((
0
В вечном поиске...
275 / 235 / 30
Регистрация: 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 Посмотреть сообщение
Все ошибки автора, только синтаксис изменил
ааа, ну извиняй:)

1
19.11.2011, 21:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.11.2011, 21:18
Помогаю со студенческими работами здесь

Можно ли написать данную программу на языке php?
У друга есть сайт по соревнованиям в области логических задачек. Он решил немного автоматизировать...

Можно ли перепрограммировать смартфон?
братцы помогите, удобно пользоваться сенсорным смартфоном, но мне нужно только его использовать...

Как можно составить программу треугольник паскаля
составить программу треугольник Паскал


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru