программа на Паскале

Тема в разделе "Delphi - FAQ", создана пользователем -, 31 окт 2007.

Статус темы:
Закрыта.
  1. Гость

    математика:
    на си:
    Код (Text):
    // lab1.cpp лабораторная работа. задание 1.1.1
    // вычисление Y при Хе(0.1;0.6)

    #include "stdafx.h"
    #include "math.h"
    #include "windows.h"
    #define PI 3.141593

    int _tmain(int argc, _TCHAR* argv[])
    {
    char zx[] ="Лабораторная работа, задание 1.1.1\nВычисление Y при Хe(0.1;0.6)\n";
    float x =0.0, y;
    CharToOem(zx, zx);
    printf(zx);
    printf("BBOD :");
    scanf(" %f", &x);
    float m = pow(PI,2) - pow(x,2) + pow(exp(1.0),-1);
    float st = 1/3.0;
    y = pow(m, st) + tan((x-1)+1/7);
    printf("Y=%.4f ", y);
    getchar();
    getchar();
    return 0;
    }
    аналогичная на паскале:
    Код (Text):
            // lab1.cpp лабораторная работа. задание 1.1.1
    // вычисление Y при Хе(0.1;0.6)
    program lab1;
    var x,y,z,c: real; //введены новые переменные для упрощения вычисления
    begin
    writeln('введите Xe(0.1;0.6) x=');
    readln(x);
    z:=(sin((x-1)/x)/cos((x-1)/x)); //вычисление тангенса
    c:=exp((1/3)*ln(sqr(pi)+(1/exp(1)))); //вычисление куб корня
    y:=c+z+(1/7);       //упрощенная формула
    {далее идет распечатка полной формулы уравнения}
    writeln('z =(sin((x-1)/x)/cos((x-1)/x))=',z:4:4);
    writeln('c = exp((1/3)*ln(sqr(pi)+(1/exp(1))))=',c:4:4);
    writeln('y = c+z+1/7=',y:4:4);
    end.
    но выводит неправильный ответ - разница в 0.2 десятых... можете подсказать в чем ошибка? проверяла маткадом - на си - правильно )
     
  2. Black horse

    Black horse Гость

    странно вообще говоря, попробуй тип extended вместо real. Хотя есть подозрение что в паскале функции косинус, синус и т.д. имеют меньшую точность чем в си
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей