Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 31.03.2012, 17:03
Ирина Владимировна Ирина Владимировна вне форума
Прохожий
 
Регистрация: 31.03.2012
Сообщения: 4
Репутация: 10
По умолчанию Сгенерировать алгебраическое выражение

Смысл работы в том, что есть алгебраическое уравнение, которое нужно n раз сгенерировать в xml файл и затем открыть в браузере.
То есть, когда запускаешь проект надо ввести какое количество необходимо сгенерировать и нажать кнопку "сгенерировать".
В принципе программа работает, единственная ошибка в том, что какое бы число не написали выражение генерируется всего один раз.

Помогите, пожалуйста, не могу понять как сделать, чтобы оно генерировалось заданное количество раз.

Заранее спасибо!
Ответить с цитированием
  #2  
Старый 31.03.2012, 17:47
PS11011010 PS11011010 вне форума
Новичок
 
Регистрация: 30.03.2012
Сообщения: 98
Репутация: 282
По умолчанию

Код в студию!
Ответить с цитированием
  #3  
Старый 01.04.2012, 09:17
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
const
  N = 10;
var
  i: Integer;
begin
  for i:=1 to N do
  begin
    //
  end;
end;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #4  
Старый 01.04.2012, 19:12
Ирина Владимировна Ирина Владимировна вне форума
Прохожий
 
Регистрация: 31.03.2012
Сообщения: 4
Репутация: 10
По умолчанию

PS11011010,
Код:
procedure TForm1.Button1Click(Sender: TObject);
var c,d:integer;
    np,fail,i:integer;
    n:byte;
begin
assignfile(f,'4.xml');
rewrite(f);
writeln(f,'<?xml version="1.0" encoding="windows-1251"?>');
writeln(f,'<?xml-stylesheet type="text/xsl" href="http://www.w3.org/Math/XSL/pmathml.xsl"?>');
writeln(f,'<html xmlns="http://www.w3.org/1999/xhtml">');
writeln(f,'<head>');
writeln(f,'<meta http-equiv="Content-Type" content="text/html" />');
writeln(f,'</head>');
writeln(f,'<body>');
if memo1.Text<>'' then
 begin
 val(memo1.Text,np,fail);
 if (fail=0) and (np<>0) then n:=strtoint(memo1.Text)
   else
     begin
       showmessage('Введите число от 1 до 255');
       closefile(f);
       exit;
     end;
 end
else
     begin
       showmessage('Пустое поле ввода');
       closefile(f);
       exit;
     end;

Randomize;
  For i := 1 To n Do
     begin      
        repeat c:=random(11)-5 until (c<>0);
        repeat d:=random(11)-5 until (d<>0);
     end;
writeln(f,'<p>');
writeln(f,'<math xmlns="http://www.w3.org/1998/Math/MathML">');
writeln(f,'<mfrac>');
writeln(f,'<mrow>');
 if d<0 then
     begin
       if d<>-1 then  writeln(f,'	  <mn>'+inttostr(abs(d))+'</mn> ');
     end
else
 begin
   if d<>1 then  writeln(f,'	  <mn>'+inttostr(abs(d))+'</mn> ');
 end;
writeln(f,'<mi>a</mi>');
writeln(f,'<mi>x</mi>');
writeln(f,'<mo>-</mo>');
if c<0 then
     begin
       if c<>-1 then  writeln(f,'	  <mn>'+inttostr(abs(c))+'</mn> ');
     end
else
 begin
   if c<>1 then  writeln(f,'	  <mn>'+inttostr(abs(c))+'</mn> ');
 end;
writeln(f,'<msup>');
writeln(f,'<mi>x</mi>');
writeln(f,'<mn>2</mn>');
writeln(f,'</msup>');
writeln(f,'</mrow>');
writeln(f,'<mrow>');
 if d<0 then
     begin
       if d<>-1 then  writeln(f,'	  <mn>'+inttostr(sqr(d))+'</mn> ');
     end
else
 begin
   if d<>1 then  writeln(f,'	  <mn>'+inttostr(sqr(d))+'</mn> ');
 end;
writeln(f,'<msup>');
writeln(f,'<mi>a</mi>');
writeln(f,'<mn>2</mn>');
writeln(f,'</msup>');
writeln(f,'<mo>-</mo>');
if c<0 then
     begin
       if c<>-1 then  writeln(f,'	  <mn>'+inttostr(sqr(c))+'</mn> ');
     end
else
 begin
   if c<>1 then  writeln(f,'	  <mn>'+inttostr(sqr(c))+'</mn> ');
 end;
writeln(f,'<msup>');
writeln(f,'<mi>x</mi>');
writeln(f,'<mn>2</mn>');
writeln(f,'</msup>');
writeln(f,'</mrow>');
writeln(f,'</mfrac>');
writeln(f,'</math>');
writeln(f,'</p>');
writeln(f,'</body>');
writeln(f,'</html> ');
closefile(f);
     end;
end.
Админ: Пользуемся тегами для оформления кода!

Последний раз редактировалось Admin, 01.04.2012 в 20:23.
Ответить с цитированием
  #5  
Старый 01.04.2012, 19:20
Ирина Владимировна Ирина Владимировна вне форума
Прохожий
 
Регистрация: 31.03.2012
Сообщения: 4
Репутация: 10
По умолчанию

NumLock,
в принципе у меня что-то подобное написано,но почему-то не работает....
Ответить с цитированием
  #6  
Старый 02.04.2012, 09:20
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Ирина Владимировна, у Вас цикл крутит:
Код:
  For i := 1 To n Do
     begin      
        repeat c:=random(11)-5 until (c<>0);
        repeat d:=random(11)-5 until (d<>0);
     end;
Вам нужно перенести красный end на строчку после writeln(f,'</p>');
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #7  
Старый 02.04.2012, 19:26
Ирина Владимировна Ирина Владимировна вне форума
Прохожий
 
Регистрация: 31.03.2012
Сообщения: 4
Репутация: 10
По умолчанию

NumLock,
Огромное спасибо за помощь!!!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:31.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025