我使用pascal,你可以将此代码语句转换为大小写吗?帕斯卡? 这是关于pascal的我的程序,if if to case of。
非常感谢
TYPE
MHS = record
nama1,nama2:string;
ipk1,ipk2:longint;
nim1,nim2:integer;
end;
var
DataMhs : MHS;
Begin
clrscr;
write('Masukan Nama Mahasiswa 1 : ');
readln(DataMhs.nama1);
write('Masukan NIM Mahasiswa 1 : ');
readln(DataMhs.nim1);
write('Masukan IPK Mahasiswa 1 : ');
readln(DataMhs.ipk1);
write('Masukan Nama Mahasiswa 2 : ');
readln(DataMhs.nama2);
write('Masukan NIM Mahasiswa 2 : ');
readln(DataMhs.nim2);
write('Masukan IPK Mahasiswa 2 : ');
readln(DataMhs.ipk2);
if DataMhs.ipk1 > DataMhs.ipk2 then
write('IPK ',DataMhs.nama1,'Lebih besar')
else if DataMhs.ipk2 > DataMhs.ipk1 then
write('IPK ',DataMhs.nama2,'Lebih besar')
else
write('IPK ',DataMhs.nama1,' dengan ',DataMhs.ipk2,' SAMA');
readln;
end.
我不知道如何转换它,请帮忙。哈哈
答案 0 :(得分:1)
如果您想让代码更好看,那么您可以使用 - >
with DataMhs do
begin
if ipk1 > ipk2 then write('IPK ',DataMhs.nama1,'Lebih besar');
else if ipk1 < ipk2 then write('IPK ',DataMhs.nama2,'Lebih besar');
else write('IPK ',DataMhs.nama1,' dengan ',DataMhs.ipk2,' SAMA');
end;
但我不认为案例
对此很有用。因为案例用于已知值,例如:
case a of
1: Writeln(' Some code here') ;
2: Writeln(' Some code here') ;
3: Writeln(' Some code here') ;
4: Writeln(' Some code here') ;
else Writeln(' That is used for other values. ');
end;
案例不能用于此类问题。
答案 1 :(得分:0)
我怀疑您的想法可能如下所示:
type
TCompareResult = (cmpLeftGreater, cmpRightGreater, cmpEqual);
case CompareInts(DataMhs.ipk1, DataMhs.ipk2) of
cmpLeftGreater:
write('IPK ', DataMhs.nama1, 'Lebih besar');
cmpRightGreater:
write('IPK ', DataMhs.nama2, 'Lebih besar');
else {cmpEqual}
write('IPK ', DataMhs.nama1, ' dengan ', DataMhs.ipk2, ' SAMA');
end;
但是,您仍需要实现此CompareInts
函数,并且仍需要使用原始代码中已有的相同条件结构:
function CompareInts(left, right: Integer): TCompareResult;
begin
if left > right then
Result := cmpLeftGreater
else if right > left then
Result := cmpRightGreater
else
Result := cmpEqual;
end;
因此,这个功能并没有给你带来太大的好处。