IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Перевод с С++ на Pascal, Перевести код программы на паскаль
Domin9es
сообщение 25.12.2007 13:45
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 32
Пол: Мужской
Реальное имя: Паша

Репутация: -  0  +


Дана задача на С++. Нужно перевести ее на Pascal. Пожалуйста помогите.
#include <stdio.h>

int main() {
float a[] = {2.0, 3.2, 1.2, -12.0, 1.5, 6.2};
float d[] = {-1.0, 2.2, 4.1, 10.1, 1/5, 2.1};
float x, y;
printf("Введите значение x:\t");
scanf("%f", &x);
y = d[0] + (x - a[0])*(d[1] + (x - a[1])*(d[2] +
(x - a[2])*(d[3] + (x - a[3])*(d[4] +
(x - a[4])*(d[5] + (x - a[5]))))));
printf("%f\n", y);
return 0;
}
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 6)
Ozzя
сообщение 25.12.2007 14:03
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


const
a : array [1..6] of real = (2.0, 3.2, 1.2, -12.0, 1.5, 6.2);
d : array [1..6] of real = (-1.0, 2.2, 4.1, 10.1, 1/5, 2.1);
var
x,y : real;
begin
WriteLn('Введите значение x:');
ReadLn(x);
y:=d[1] + (x - a[1])*(d[2] + (x - a[2])*(d[3] +
(x - a[3])*(d[4] + (x - a[4])*(d[5] +
(x - a[5])*(d[6] + (x - a[6]))))));

WriteLn(y);
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Domin9es
сообщение 25.12.2007 15:05
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 32
Пол: Мужской
Реальное имя: Паша

Репутация: -  0  +


Программы дают разный ответ. wacko.gif Не подскажете как это исправить.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 25.12.2007 15:18
Сообщение #4


Гость






Оззя, в С-версии и в Паскаль версии массивы d получились разные, С использует для 4-го элемента целочисленное деление, то есть, описывать массивы в Паскале надо так:

const
a : array [1..6] of real = (2.0, 3.2, 1.2, -12.0, 1.5, 6.2);
d : array [1..6] of real = (-1.0, 2.2, 4.1, 10.1, Trunc(1/5), 2.1);


или (что более вероятно) в С - вот так:
 float a[] = {2.0, 3.2, 1.2, -12.0, 1.5, 6.2};
float d[] = {-1.0, 2.2, 4.1, 10.1, 1.0/5.0, 2.1};

(если это вообще не 1.5, что еще более вероятно)
 К началу страницы 
+ Ответить 
Ozzя
сообщение 25.12.2007 15:19
Сообщение #5


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


А какие разные? Дайте ваши значения.

Добавлено через 1 мин.
Цитата
если это вообще не 1.5, что еще более вероятно)

Именно.
/ там же где и точка.
Автор? Опечатка?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Domin9es
сообщение 25.12.2007 15:31
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 32
Пол: Мужской
Реальное имя: Паша

Репутация: -  0  +


Да!!! yes2.gif
volvo, вариант


float a[] = {2.0, 3.2, 1.2, -12.0, 1.5, 6.2};
float d[] = {-1.0, 2.2, 4.1, 10.1, 1.0/5.0, 2.1};



Спасибо вам!

Ozzя, вам тоже спасибо!!! smile.gif smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
andriano
сообщение 25.12.2007 16:54
Сообщение #7


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Я бы еще порекомендовал использовать нормальную адресацию, начинающуюся с 0, - тогда индексы в Си и Паскале будут совпадать.
И использовать single вместо real (на что есть две причины: 1. Аналог float именно single. 2. Real вообще лучше не использовать НИКОГДА.).
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 2:50
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"