Задача на паскаль и c++

программирование программы обучение C++ паскаль

Здравствуйте!
Написал, как мне кажется две идентичные задачи на паскале и плюсах, но вот ответы немного отличаются. Пожалуйста подскажите, что не так?

Паскаль:
__________________
program n1;

var x,n: integer; y:real;

begin

writeln('Введите икс');
readln(x);

for n:= 1 to 20 do
begin
y:=sin(n*x) - cos(n/x);
if y>0 then writeln('положительное значение y= ',y);
end;

end.
___________________
результат:
___________________
Введите икс
3
положительное значение y= 0.746011388171492
положительное значение y= 1.52741377828593
положительное значение y= 1.94636842500495
положительное значение y= 1.8651987030435
положительное значение y= 1.33383870324663
положительное значение y= 0.567241339070892
______________________
______________________

C++
__________________
#include <iostream>
#include <math.h>

using namespace std;

void fun ();

void fun ()
{
int n,x;
float y;

cout<<"Write x"<<endl;
cin>>x;

for (n = 1; n <=20; n++)
{
y = sin(n*x)-cos(n/x);
if (y>0) cout<<y<<endl;
}
}

int main ()
{
fun ();
system ("pause");
return 0;
}
__________________
результат:
__________________
write x
3
0.109986
1.2528
1.94637
0.00196987
1.9899
1.61744
0.567241
0.386567
Ответы:
float x;
да и float n; на всякий случай
В программе на Pascal n/x — это вещественное деление.
В программе на C++ n/x — это целочисленное деление, эквивалентно DIV в Pascal.
добавлю, что целочисленным его делает именно то, что оба операнда -- целочиселенные типы. если хотя бы один из них будет вещественным, будет производиться вещественное деление
Можно в С++ сделать явное приведение к вещественному числу:
y = sin(n*x)-cos(float(n)/float(x));


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.