インドネシア語で物理の問題があります:
Dari salah satu bagian gedung yang tingginya 20 m, dua buah batu dijatuhkan secara berurutan. Massa kedua batu masing-masing 1/2 kg dan 5 kg. Bila percepatan gravitasi bumi di tempat itu g = 10 m/s2, tentukan waktu jatuh untuk kedua batu itu (Abaikan gesekan udara)
以下のように英語に翻訳します(Google翻訳から):
20mの高さの建物の1つから、2つの岩が落とされます。2 番目の石の塊はそれぞれ 1/2 kg と 5 kg です。g = 10 m/s2 での重力加速度の場合、2 番目の石に落ちた時間を求めます (空気摩擦は無視します)。
この問題を次の形式に解析したい:
Height = 20 m
Mass A = 1/2 kg
Mass B = 5 kg
Gravity = 10 m/s2
これまで、コードは 2 つの形式しかありませんでした。これは最初です:
#数字だけ取る
{
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
}
}
では、これら 2 つの 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コードを物理的な演習/問題の自動計算の基礎として使用したいので、この基礎は私にとって非常に重要です。なにか提案を?ありがとうございました。