【发布时间】:2013-06-23 03:15:57
【问题描述】:
我有一道印尼物理题:
Dari salah satu bagian gedung yang tingginya 20 m, dua buah batu dijatuhkan secara berurutan。 Massa kedua batu masing-masing 1/2 公斤丹 5公斤。 Bila percepatan gravitasi bumi di tempat itu g = 10 m/s2, tentukan waktu jatuh untuk kedua batu itu (Abaikan gesekan udara)
英文翻译如下(来自Google Translate):
从一栋 20 m 高的建筑物中掉落了两块石头。 第二块石料各1/2公斤和5公斤。如果加速度 g = 10 m/s2 处的重力,确定它下降到秒的时间 石头(忽略空气摩擦)
我想把这个问题解析成这种形式:
Height = 20 m
Mass A = 1/2 kg
Mass B = 5 kg
Gravity = 10 m/s2
到目前为止,我只有两种形式的代码。这是第一个:
#只取数字
{
for(i=1; i<=NF; i++){
if($i ~ /^[[:digit:]]+/)
print $i
}
}
#只取单位
{
for(i=1; i<=NF; i++){
if(($i ~ /^m\/s2/) || ($i ~ /^kg$/) || ($i ~ /^m$/))
print $i
}
}
现在,如何加入这两个 awk 代码?我做了这样的联合:
BEGIN { FS = "[, ]+" }
#taking units
{
for(i=1; i<=NF; i++){
if(($i ~ /^m\/s2/) || ($i ~ /^kg$/) || ($i ~ /^m$/))
print $i
}
}
#taking numbers
{
for(i=1; i<=NF; i++){
if($i ~ /^[[:digit:]]+/)
print $i
}
}
但是上面的代码会产生这个输出:
master@master:~/Dokumen/Pelajaran/Semester 4/Pak Anom$ awk -f plasma.awk soal1
m
20
kg
m/s2
1/2
5
10
master@master:~/Dokumen/Pelajaran/Semester 4/Pak Anom$
至少,我希望结果是这样的:
20 m
1/2 kg
5 kg
10 m/s2
我想使用这个 awk 代码作为体育锻炼/问题自动计算的基础,所以这个基础对我来说非常重要。有什么建议吗?谢谢你。
【问题讨论】: