二、数值常量的例子有123,123.01,123E2,123.01E3,其中第1个为整数,第2个为实数,第3个和第4个为科学记数法表达方式。 (1)写出数值常量的正则表达式(6分); (2)画出所得正则表达式的NFA(6分),再由子集构造法得出 DFA 的状态转换表Dtran,再画出其 DFA 图。(6分)
时间: 2024-03-11 17:46:16 浏览: 14
(1) 数值常量的正则表达式为:
```
^[+-]?\d+(\.\d+)?([Ee][+-]?\d+)?$
```
(2) 数值常量的NFA如下图所示:
![数值常量的NFA](https://i.imgur.com/2y4GJ9F.png)
使用子集构造法得到的DFA的状态转换表如下:
| | 0-9 | . | E/e | + | - |
|---|:-------:|:-:|:---:|:-:|:-:|
|->A| B | | | C | C |
| *B| B | C | D | | |
| C| | | | | |
| *D| E | | | | |
|->E| E | F | G | | H |
| *F| F | | | | H |
| G| H | | | | H |
| *H| H | | | | |
其中,带*的状态为终止状态。DFA的状态转换图如下:
![数值常量的DFA](https://i.imgur.com/fHsfYgC.png)
相关问题
java.io.FileNotFoundException: sdcard/Movies/123.mp4: open failed: EACCES (Permission denied)
这个错误提示是因为你的应用在尝试访问外部存储(sdcard)上的一个文件(123.mp4),但是没有获得相关的读写权限。解决这个问题的方法如下:
1. 在 AndroidManifest.xml 文件中添加读写外部存储的权限声明:
```
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
```
2. 在代码中请求权限:
```
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, REQUEST_CODE);
}
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_CODE);
}
```
其中 REQUEST_CODE 是请求权限时传递的请求码,可以自定义一个整型常量。
3. 处理权限请求的回调:
```
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == REQUEST_CODE) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 权限已授予,可以进行相关操作
} else {
// 权限未授予,无法进行相关操作
}
}
}
```
这样就可以解决访问外部存储的权限问题了。
用c++声名一个常量PI,值为3.1416,再声明一个浮点型变量a,把PI的值赋给a
可以使用const关键字声明一个常量PI,然后使用赋值语句将其值赋给一个浮点型变量a。示例代码如下:
```c++
const double PI = 3.1416; //声名一个常量PI,值为3.1416
double a; //声名一个浮点型变量a
a = PI; //将PI的值赋给a
```
在这个例子中,我们使用了const关键字来声明一个常量PI,其值为3.1416。然后我们声名了一个双精度浮点类型变量a,最后使用赋值语句将PI的值赋给a。这样,a的值就是3.1416了。