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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2017, 08:56   #1
weeping angel
 
Регистрация: 15.05.2017
Сообщений: 7
По умолчанию Delphi 7, Составить таблицу значений линейной функции

Составить таблицу значений линейной функции y = ax + b на от-
резке [0, 1] с шагом 0,1.

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    Button1: TButton;
    Edit2: TEdit;
    Edit3: TEdit;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
k,i,j,a,b,x:integer;
begin
for k:= to  do begin
StringGrid1.Cells[]:=IntToStr(k);
StringGrid1.Cells[]:=IntToStr(StrToInt(Edit2.Text)*k+StrToInt(Edit3.Text));
end;
end;
end.
weeping angel вне форума Ответить с цитированием
Старый 15.05.2017, 10:22   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
const step = 0.1;
var x, a, b : double;
   i,k : integer;
begin
  a := StrToFloat(Edit2.Text);
  b := StrToFloat(Edit3.Text);
  k:= trunc((1-0)/step)+1;
  x:= 0;
  StringGrid1.ColCount:=2;
  StringGrid1.RowCount:=k;
  for i:=1 to k do begin
    StringGrid1.Cells[0,k-1]:=IntToStr(k);
    StringGrid1.Cells[1,k-1]:=FloatToStr(a*x+b);
    x := x + step
  end;
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.05.2017, 10:42   #3
weeping angel
 
Регистрация: 15.05.2017
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Код:
procedure TForm1.Button1Click(Sender: TObject);
const step = 0.1;
var x, a, b : double;
   i,k : integer;
begin
  a := StrToFloat(Edit2.Text);
  b := StrToFloat(Edit3.Text);
  k:= trunc((1-0)/step)+1;
  x:= 0;
  StringGrid1.ColCount:=2;
  StringGrid1.RowCount:=k;
  for i:=1 to k do begin
    StringGrid1.Cells[0,k-1]:=IntToStr(k);
    StringGrid1.Cells[1,k-1]:=FloatToStr(a*x+b);
    x := x + step
  end;
end;
результат не выводится даже, если только промотать вниз о.о
кстати почему в const step 0,1 обязательно должна стоять точка?

Последний раз редактировалось weeping angel; 15.05.2017 в 10:50.
weeping angel вне форума Ответить с цитированием
Старый 15.05.2017, 11:00   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от weeping angel Посмотреть сообщение
результат не выводится даже, если только промотать вниз о.о
простите, не понял эту фразу. куда не выводится результат и что нужно промотать?

Цитата:
Сообщение от weeping angel Посмотреть сообщение
кстати почему в const step 0,1 обязательно должна стоять точка?
потому что компилятор Delphi совершенно правильно и однозначно считает, что десятичный разделитель - это точка. А не запятая, тире, подчёркивание и всё, что угодно и принято в некоторой субкультуре данной страны.
с одной стороны, хорошо, конечно, что в настройках локали можно поставить любой подходящий знак в качестве разделителя, но с другой - тут сразу же возникают проблемы с совместимостью и переносом данных.
Рад, что Вы ещё с этими проблемами не сталкивались.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.05.2017, 11:11   #5
weeping angel
 
Регистрация: 15.05.2017
Сообщений: 7
По умолчанию

проверьте пожалуйста
может я напортачил в оформлении формы?
просто по заданиям, компонент StringGrid мне впервые попался, только разбираюсь с ним. Когда запускаю программу, заполняю поля и кликаю "Вычислить" ничего не отображается, пока скролл бар был, там можно было промотать вниз и только там на последней строчке отображалось(интересно почему, если... строк всего 10, почему он вниз то мотает)
Вложения
Тип файла: rar линейная фун-я.rar (189.7 Кб, 9 просмотров)
weeping angel вне форума Ответить с цитированием
Старый 15.05.2017, 11:27   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от weeping angel Посмотреть сообщение
проверьте пожалуйста
Вы издеваетесь?

или Вы реально не видите разницы между тем кодом, что предложил я:

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Код:
procedure TForm1.Button1Click(Sender: TObject);
const step = 0.1;
var x, a, b : double;
   i,k : integer;
begin
  a := StrToFloat(Edit2.Text);
  b := StrToFloat(Edit3.Text);
  k:= trunc((1-0)/step)+1;
  x:= 0;
  StringGrid1.ColCount:=2;
  StringGrid1.RowCount:=k;
  for i:=1 to k do begin
    StringGrid1.Cells[0,k-1]:=IntToStr(k);
    StringGrid1.Cells[1,k-1]:=FloatToStr(a*x+b);
    x := x + step
  end;
end;
и тем кодом, что у Вас?!!!
Цитата:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
k,i,j,a,b,x:integer;
begin
for k:=0 to 1 do begin
StringGrid1.Cells[0,k-0,1]:=IntToStr(k);
StringGrid1.Cells[1,k-0,1]:=IntToStr(StrToInt(Edit2.Text)*k+StrToInt(Edit3.Text));
end;
end;
это при том, что код в модуле вообще НЕ КОМПИЛИРУЕМЫЙ.
Вы что, забыли сохранить проект, перед тем, как в архив запаковать?!

Последний раз редактировалось Serge_Bliznykov; 15.05.2017 в 11:30.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.05.2017, 11:30   #7
weeping angel
 
Регистрация: 15.05.2017
Сообщений: 7
По умолчанию

так, ща проверю, прошу прощения
это старый(очевидно -_-) он не прописан в программе, просто блокнот который забыл удалить, сам проект проще запустить, там отобразится то что вы скинули

Последний раз редактировалось weeping angel; 15.05.2017 в 11:34.
weeping angel вне форума Ответить с цитированием
Старый 15.05.2017, 11:32   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от weeping angel Посмотреть сообщение
так, ща проверю, прошу прощения
когда будете проверять, исправьте ошибку в моём коде:

Код:
  for i:=1 to k do begin
    StringGrid1.Cells[0,i-1]:=FloatToStr(x);
    StringGrid1.Cells[1,i-1]:=FloatToStr(a*x+b);
    x := x + step
  end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.05.2017, 11:39   #9
weeping angel
 
Регистрация: 15.05.2017
Сообщений: 7
По умолчанию

Ура^^ заработало, спасибо большое за помощь, и маленькие просвещения)
weeping angel вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi необходимо вывести на экран таблицу значений функции Vladislav125 Помощь студентам 0 18.04.2017 15:44
Составить программу, выводящую на экран таблицу значений функции Y при целом х, принимающем значения от А Julia_Sv Паскаль, Turbo Pascal, PascalABC.NET 1 18.03.2016 09:19
Delphi. Вывести таблицу значений функции Y (x) и ее разложения в ряд S (x) и точность е Yaroma Помощь студентам 7 30.01.2014 08:40
Задача Составить таблицу значений функции KARTER Помощь студентам 6 23.12.2010 00:06
Delphi вывести на экран таблицу значений функции rager06 Помощь студентам 6 11.09.2010 15:51