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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2008, 11:10   #1
evrey
Пользователь
 
Регистрация: 31.05.2008
Сообщений: 13
Восклицание Задача на Делфи

Помогите исправит шибку в програме.
Текст программы.Записать в файл последовательного доступа n целых чисел, полученных
с помощью генератора случайных чисел.Найти количество квадратов не четных чисел среди компонентов.

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)

    SaveDialog1: TSaveDialog;
    Button3: TButton;
    Memo1: TMemo;
    Label8: TLabel;
    Label5: TLabel;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Label8Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  f:text;
  FileNameT:string;
   a,k,n:integer;

implementation

{$R *.dfm}




procedure TForm1.FormCreate(Sender: TObject);
begin
Button3.Enabled:=False;
Form1.Caption:='Текстовые файлы';
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
If SaveDialog1.Execute then
begin
FileNameT:=SaveDialog1.FileName;
rewrite(f);
Memo1.Lines.SaveToFile(FileNameT);
closefile(f);
end;
Button3.Enabled:=True;
Application.Terminate;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
i:integer;
a:integer;
begin
randomize;
n:=strtoint(InputBox('','Введите количество элементов в файле',''));
rewrite(f);
for i:=1 to n do
begin
a:=random(65);
memo1.Lines.add(floattostrf(a,fffixed,4,1));
writeln(f,a);
end;
closeFile(f);
reset(f);
k:=0;
while not eof(f) do
begin
readln(f,a);
if (sqr(trunc(sqrt(a)))=a) and (trunc(sqrt(a)) mod 2<>0)
then begin  k:=k+1; writeln(a); end;
end;
label5.Caption:=floattostrf(k,fffixed,1,1);
closeFile(f);
end;

procedure TForm1.Label8Click(Sender: TObject);
begin
If SaveDialog1.Execute then
begin
FileNameT:=SaveDialog1.FileName;
assignfile(f,FileNameT);
rewrite(f);
closefile(f);
Button3.Enabled:=True;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Close;
end;
end.

Последний раз редактировалось Stilet; 09.06.2008 в 09:00.
evrey вне форума Ответить с цитированием
Старый 08.06.2008, 11:32   #2
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

перед rewrite и reset нужно делать assignfile
alexBlack вне форума Ответить с цитированием
Старый 08.06.2008, 11:36   #3
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Цитата:
if (sqr(trunc(sqrt(a)))=a) and (trunc(sqrt(a)) mod 2<>0)
then begin k:=k+1; writeln(a); end;
writeln(a) - эт зачем (выводи как-нибудь подругому, в новый мемо или так application.MessageBox(pchar(floatt ostr(a)),'',0)
Цитата:
procedure TForm1.FormCreate(Sender: TObject);
begin
Button3.Enabled:=False;
Form1.Caption:='Текстовые файлы';
end;
Button3.Enabled:=False; - тоже лишнее
eoln вне форума Ответить с цитированием
Старый 09.06.2008, 09:01   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
evrey
Вопрос: А почему нахождение количества квадратов не делать сразу при генерации чисел?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача по Делфи IGoDoVaN Фриланс 7 12.06.2008 12:42
задача Делфи - поиск нужного и замена Katovski Помощь студентам 8 30.05.2008 21:28
Простенькая задача Делфи Katovski Помощь студентам 18 02.05.2008 20:39
Задача на Делфи по теории голосования Alex2008 Фриланс 4 24.04.2008 20:17
CGI на Делфи AntonK8 PHP 3 12.04.2008 10:44