小编Alb*_*ssi的帖子

do ... while循环不在main中

我写了一个简单的程序,其中包含一个计算圆的面积的函数.该程序还询问用户是否要再次计算它并且如果输入是'N',则该程序应该停止.

这是缩小的测试用例:

#include<stdio.h>
#include<string.h>

int main(void)
{
    float r;
    char f;  
    do {    
        printf("Type the radius\n");
        scanf("%f", &r);
        printf("Repeat? [Press N for stop]");
        scanf("%c", &f);
    } while(f != 'N');
    getch();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但循环永远不会像预期的那样停止.

你有什么建议吗?

c loops scanf

6
推荐指数
1
解决办法
1892
查看次数

Delphi获取android组合选择项目文本

我有一个组合框,里面有很多项目,我必须在变量中输入所选项目的名称.

var a:string;
begin
 a:=ComboBox1.Text;
end;
Run Code Online (Sandbox Code Playgroud)

这是我用于Delphi VCL应用程序的方式,它可以工作.在这里,我正在使用Firemonkey和Android开发,我没有text属性.

如何在组合框中获取所选项目的文本?

delphi android combobox delphi-xe5

5
推荐指数
2
解决办法
1万
查看次数

化简平方根

假设我要计算 8 的平方根。有两种方法可以显示结果,如下所示:

\n\n

在此输入图像描述

\n\n

我认为获得第二个解决方案的最佳方法是:

\n\n

在此输入图像描述

\n\n

我想尝试在我的 Java 应用程序中显示 2\xe2\x88\x9a2 而不是 2,828427... 所以我想按照这些步骤开发一个类。让我们考虑 8 的平方根。

\n\n
    \n
  1. 获取 8 的质因数 (2*2*2)
  2. \n
  3. 计算指数并尝试导出它们 (2^2 * 2 --> 2\xe2\x88\x9a2)
  4. \n
\n\n

正如您在下面看到的,我开发了一个输出因子的代码。如果输入 8,该方法estraiRadice()将输出2 * 2 * 2,这是正确的。

\n\n
private int b = 2;\n\npublic String estraiRadice(double x) {\n\n  String resRad = "";\n  int[] exponents = new int[100];\n\n  //Scomposizione in fattori primi\n  while (x > 1) {\n\n    if ((x % b) == 0) {\n      x /= b;\n …
Run Code Online (Sandbox Code Playgroud)

java

5
推荐指数
1
解决办法
1494
查看次数

Delphi从TObject继承Create

情况

这个问题可能很容易,但我是Delphi的新手,我现在正在研究它.为了更好地理解类,我做了一个计算二次方程的解.这是代码:

type
 TArrayOfStrings = array of string;

type
 TEqSecGrado = class(TObject) sealed
  private
   a, b, c: double;
   delta: double;
   solutions: TArrayOfStrings;
   function getDelta(vala, valb, valc: double): double; overload;
  public
   constructor Create(a, b, c: double);
   function getDelta: double; overload;
   function getSolutions: TArrayOfStrings; virtual;
 end;
Run Code Online (Sandbox Code Playgroud)

这确实很容易,但我想专注于constructor.


从我正在阅读的书中我知道(即使(TObject)不需要)我的类实际上是TObject的子类.因此,我可以Create默认调用没有参数的构造函数.我的问题是:

constructor TEqSecGrado.Create(a, b, c: double);
begin
 //inherited; -> is it needed?
 Self.a := a;
 Self.b := b;
 Self.c := c;
 delta := 0;
end;
Run Code Online (Sandbox Code Playgroud)

我需要打电话inherited吗?我已经研究过,使用我刚才提到的关键字,我将 …

delphi

5
推荐指数
1
解决办法
1648
查看次数

TA_CENTER不适用于居中对齐StringGrid

我必须在StringGrid(它的单元格)中居中对齐文本,我使用你在这里看到的代码.我在这里找到了另一个答案,我编辑了一些东西.

procedure TForm1.StringGrid1DrawCell(Sender: TObject; aCol, aRow: Integer;
  aRect: TRect; aState: TGridDrawState);
var
  LStrCell: string;
  LRect: TRect;
  qrt:double;
begin
  LStrCell := StringGrid1.Cells[ACol, ARow];
  StringGrid1.Canvas.FillRect(aRect);
  LRect := aRect;
  DrawText(StringGrid1.Canvas.Handle, PChar(LStrCell), Length(LStrCell), LRect, TA_CENTER);

  //other code

end;
Run Code Online (Sandbox Code Playgroud)

我正在使用Lazarus,它给了我一个错误,因为它无法识别TA_CENTER.有解决方案吗

delphi lazarus

4
推荐指数
1
解决办法
2238
查看次数

错误无效的PLATFORM变量"MCD"

我刚刚安装了Delphi XE5,因为我想尝试用android开发.

但我无法编译任何东西,因为我总是收到错误信息.这是我编译时得到的错误:

[错误错误] PLATFORM变量"MCD"无效.PLATFORM必须是以下之一:"Win32","Win64","Android","iOSSimulator","iOSDevice"或"OSX32".如果PLATFORM由您的系统环境定义,则必须在RAD Studio IDE中覆盖它,或者在命令行上显式传递给MSBuild; 例如,/ p:Platform = Win32.

delphi delphi-xe5

4
推荐指数
1
解决办法
7341
查看次数

Delphi XE5中心android布局

我正在使用Delphi XE5开发一个Android应用程序,我有Google Nexus 4布局.例如,a的屏幕尺寸Samsung Galaxy S4与Nexus的屏幕尺寸不同.

我有一个面板,其中包含按钮,编辑和标签等内容.我想对这个面板进行居中对齐,所以每次它都在屏幕中间.

我怎么能这样做?

delphi android delphi-xe5

4
推荐指数
1
解决办法
2148
查看次数

按行和它的整数值对TStringGrid进行排序

我有2列StringGrid:PlayerScores.我必须对这张桌子进行排序,看看球员的得分.

在此输入图像描述

情况就是这样.我尝试过StringGrid3.SortColRow(true, 1);但它只对字符串值进行排序.如果我有像[1,4,12,3]这样的数字,则排序的StringGrid变为[a,12,3,4].

我必须对Integer值进行排序,而不是字符串1.另外,我的问题是我必须用数字移动玩家的名字(如上图所示).

我怎么能这样做?

delphi sorting

4
推荐指数
1
解决办法
7197
查看次数

将数字从基数10转换为N.

这段代码是我必须开发的项目的一部分.我需要编写一个java方法,将一个数字(基数为10)转换为另一个数字n.这是该类的代码:

public class converter {

    public int from_10_to_n(int base, int newbase) {

       int k = 0;
       String res = "";
       String output = "";

       do {                        //Below I explain what I'm doing here
        base /= newbase;   
        k = base % newbase;
        res += String.valueOf(k);
       } while (base != 0);

       for(int i=res.length()-1; i>-1; i--) {
        output += res.charAt(i);
       }

       return Integer.parseInt(output);
    }
Run Code Online (Sandbox Code Playgroud)

我想以这种方式制作节目:

在此输入图像描述

do {} while();环路划分数和在K保存余.然后我创建一个for循环来反转字符串res(它有提醒).

顺便说一句,当我在我的主要方法中调用该方法时,我错过了最后一位数字.我的意思是:

converter k = new converter();
int e = k.from_10_to_n(a /*base …
Run Code Online (Sandbox Code Playgroud)

java

4
推荐指数
1
解决办法
5981
查看次数

Delphi管理免费内存

情况

我正在从Marco Cantu的书中学习Delphi,我已经有了OOP的经验,因为我经常使用Java和PHP.为了更好地理解我正在阅读的内容,我做了这个测试:

type
 TFraction = class
  private
   number: double;
   num, den: integer;
   fraction: string;
   function hcf(x: integer; y: integer): integer;
  public
   constructor Create(numerator: integer; denominator: integer); overload;
   constructor Create(value: string); overload;
   function getFraction: string;
 end;
Run Code Online (Sandbox Code Playgroud)

这是一个超级简单的类,它将十进制数转换为分数.我不包括我定义构造函数和函数的代码的其他部分,因为它们对我的问题没用.我以这种方式创建对象.

var a: TFraction;
begin

 a := TFraction.Create(225, 35);
 ShowMessage(a.getFraction);
 //The output of ^ is 45/7
 a.Free;

end;
Run Code Online (Sandbox Code Playgroud)

据我所知,我知道一旦我使用它就必须摆脱它,事实上我正在使用它Free.通过这种方式,我释放内存,避免内存泄漏.

顺便说一句,我看到我也有可能覆盖一个destructor.我不很了解的行为FreeDestroy.我使用的Free时候我必须摆脱一个我不再需要的物体.当我覆盖析构函数时,我可以释放对象并进行其他操作吗?

简而言之,什么时候使用免费?什么时候我应该更喜欢毁灭?

delphi

4
推荐指数
1
解决办法
1244
查看次数

标签 统计

delphi ×7

delphi-xe5 ×3

android ×2

java ×2

c ×1

combobox ×1

lazarus ×1

loops ×1

scanf ×1

sorting ×1