Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2010, 13:48   #1
Lionel Messi
Новичок
Джуниор
 
Регистрация: 23.05.2010
Сообщений: 8
По умолчанию Трансформация программы в язык Delphi

Добрый день. Сделал программу для нахождения корня уравнения методом касательных, но теперь необходимо её написать в языке Delphi. С языком практически не знаком, поэтому прошу о небольшой помощи:
если кто знает хороший электронный учебник по Delphi, можете дать ссылкочку на него; и если не составит труда, эту маленькую программку переделать под язык Delphi Буду премного благодарен
Код:
Program kasateln;
uses crt;
function f(x:real):real;
 begin
  f:=x*x*x*x-3*x*x*x+2*x*x;
 end;
var eps,x0,x1,a,b,f1,f2,dx:real;
begin
clrscr;
  eps:=0.00000001;
  writeln('x0= ',x0);
  readln(x0);
  repeat
    f1:=(f(x0+eps)-f(x0))/eps;
    x1:=x0-(f(x0)/f1);
    dx:=abs(x0-x1);
    x0:=x1;
    writeln('X= ',x0,' f(x)=',f(x0));
  until (abs(f(x0))<=eps) and (dx<=eps);
  writeln('X= ',x0:3:3,' zna4enie funcii f(x)= ',f(x0):3:3);
  readln;
end.
Lionel Messi вне форума Ответить с цитированием
Старый 23.05.2010, 13:58   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

создайте консольный проект в Делфи.
далее выкидываем всего две строчки
Код:
uses crt;
clrscr;
затем вводим все чего не хватает в заготовке(Директиву компилятора обязательно оставляем{$...})

http://programmersforum.ru/showthread.php?t=14054 это насчет книг.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 23.05.2010 в 14:03.
Пепел Феникса вне форума Ответить с цитированием
Старый 23.05.2010, 14:00   #3
Lionel Messi
Новичок
Джуниор
 
Регистрация: 23.05.2010
Сообщений: 8
По умолчанию

Компилятор отказывается воспринимать Function.
Lionel Messi вне форума Ответить с цитированием
Старый 23.05.2010, 14:06   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
program Project1;//имя проекта изменится само при сохранении.

{$APPTYPE CONSOLE}

function f(x:real):real;
 begin
  f:=x*x*x*x-3*x*x*x+2*x*x;
 end;
var eps,x0,x1,a,b,f1,f2,dx:real;
begin
  eps:=0.00000001;
  writeln('x0= ',x0);
  readln(x0);
  repeat
    f1:=(f(x0+eps)-f(x0))/eps;
    x1:=x0-(f(x0)/f1);
    dx:=abs(x0-x1);
    x0:=x1;
    writeln('X= ',x0,' f(x)=',f(x0));
  until (abs(f(x0))<=eps) and (dx<=eps);
  writeln('X= ',x0:3:3,' zna4enie funcii f(x)= ',f(x0):3:3);
  readln;
end.
вот так отлично скомпилировалось
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 23.05.2010, 14:48   #5
Андрей.12
Программист
Пользователь
 
Регистрация: 12.10.2009
Сообщений: 77
По умолчанию

Код:
program Project2;

{$APPTYPE CONSOLE}
uses
  SysUtils;
 var s,a:string;
 i,k:integer;
begin
writeln('vvedite stroky');
readln(s);
writeln('vvedite sinvol');
readln(a);
for i:=1 to length(s) do
if s[i]=a then k:=k+1;
write(k);
readln;
end.
изменил, не верно считает, хотя паскаль верно выдает ответ
Андрей.12 вне форума Ответить с цитированием
Старый 23.05.2010, 15:58   #6
Lionel Messi
Новичок
Джуниор
 
Регистрация: 23.05.2010
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
Код:
program Project1;//имя проекта изменится само при сохранении.

{$APPTYPE CONSOLE}

function f(x:real):real;
 begin
  f:=x*x*x*x-3*x*x*x+2*x*x;
 end;
var eps,x0,x1,a,b,f1,f2,dx:real;
begin
  eps:=0.00000001;
  writeln('x0= ',x0);
  readln(x0);
  repeat
    f1:=(f(x0+eps)-f(x0))/eps;
    x1:=x0-(f(x0)/f1);
    dx:=abs(x0-x1);
    x0:=x1;
    writeln('X= ',x0,' f(x)=',f(x0));
  until (abs(f(x0))<=eps) and (dx<=eps);
  writeln('X= ',x0:3:3,' zna4enie funcii f(x)= ',f(x0):3:3);
  readln;
end.
вот так отлично скомпилировалось
Спасибо, а никаких эелектронных учебников по Delphi не знаете?(бесплатных)
Lionel Messi вне форума Ответить с цитированием
Старый 23.05.2010, 16:34   #7
Lionel Messi
Новичок
Джуниор
 
Регистрация: 23.05.2010
Сообщений: 8
По умолчанию

Выдает ошибку при проверке: Statement expected but 'Function' found
Lionel Messi вне форума Ответить с цитированием
Старый 23.05.2010, 16:38   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
http://programmersforum.ru/showthread.php?t=14054 это насчет книг.
я же вам написал.

какая у вас версия Делфи?

вы точно создали консольное приложение?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 23.05.2010, 17:08   #9
Lionel Messi
Новичок
Джуниор
 
Регистрация: 23.05.2010
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
я же вам написал.

какая у вас версия Делфи?

вы точно создали консольное приложение?
7 версия, борланд. Я вроде немного разобрался что к чему, вот еще вопрос: у меня есть многострочное окно( Memo1) как мне в нем вывести результат вычисления значений x0, f(x)? Вот что я написал пока:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Memo1: TMemo;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
Var eps,x0,x1,a,b,f1,f2,dx,x:real;
function f(x:real):real;
 begin
  f:=x*x*x*x-3*x*x*x+2*x*x;
 end;
begin
  eps:=0.0000001;
  x0:=strtofloat(edit1.text);
  repeat
    f1:=(f(x0+eps)-f(x0))/eps;
    x1:=x0-(f(x0)/f1);
    dx:=abs(x0-x1);
    x0:=x1;
  until (abs(f(x0))<=eps) and (dx<=eps);
  Memo1. ??????


end;
Lionel Messi вне форума Ответить с цитированием
Старый 23.05.2010, 17:12   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

дык вы в окне, это нормально что не работало.
вам нужно IntToStr FloatToStr(и скорее всего наоборот тоже надо)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Язык программы KWN, lnc Общие вопросы Delphi 1 22.01.2010 22:33
Трансформация изображений Артэс Свободное общение 27 14.12.2009 10:27
Трансформация относительных ссылок в абсолютные d-kiselev Microsoft Office Excel 2 18.12.2008 21:27
язык интерфейса программы Balabar Общие вопросы Delphi 9 29.11.2008 20:40