Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: программа на Паскале
Форум программистов > Системное программирование > Delphi и Pascal > Delphi - FAQ
Царапка
математика:
на си:
// 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;
}


аналогичная на паскале:
        // 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 десятых... можете подсказать в чем ошибка? проверяла маткадом - на си - правильно )
Black horse
странно вообще говоря, попробуй тип extended вместо real. Хотя есть подозрение что в паскале функции косинус, синус и т.д. имеют меньшую точность чем в си
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2009 IPS, Inc.