#language PascalScript //Мнемокод скрипта: Расчет_веса_тела_на_разных_планетах Const Земля_Код = 3; //код планеты Земля Var Планета_Код:integer; МассаТела, ВесТелаНаЗемле, ВесТелаНаПланете:extended; Ошибка_Код:integer; function КодПланеты_Определить(НаименованиеПланеты:string):integer; begin Result:=0; НаименованиеПланеты:=trim(НаименованиеПланеты); if НаименованиеПланеты<>'' then begin НаименованиеПланеты := Lowercase(НаименованиеПланеты); if НаименованиеПланеты = 'меркурий' then Result:=1; if НаименованиеПланеты = 'венера' then Result:=2; if НаименованиеПланеты = 'земля' then Result:=Земля_Код; if НаименованиеПланеты = 'марс' then Result:=4; if НаименованиеПланеты = 'юпитер' then Result:=5; if НаименованиеПланеты = 'сатурн' then Result:=6; if НаименованиеПланеты = 'уран' then Result:=7; if НаименованиеПланеты = 'нептун' then Result:=8; if НаименованиеПланеты = 'плутон' then Result:=9; if НаименованиеПланеты = 'луна' then Result:=10; if НаименованиеПланеты = 'солнце' then Result:=11; end; end; function УскорениеСвободногоПадения_Определить(КодПланеты:integer):extended; begin Result := 0.0; { м/сек2 } if КодПланеты>0 then begin if КодПланеты = 1 then Result := 3.7; //Меркурий if КодПланеты = 2 then Result := 8.87; //Венера if КодПланеты = Земля_Код then Result := 9.80665; //Земля if КодПланеты = 4 then Result := 3.771; //Марс if КодПланеты = 5 then Result := 24.79; //Юпитер if КодПланеты = 6 then Result := 10.44; //Сатурн if КодПланеты = 7 then Result := 8.87; //Уран if КодПланеты = 8 then Result := 11.15; //Нептун if КодПланеты = 9 then Result := 0.617; //Плутон if КодПланеты = 10 then Result := 1.62; //Луна if КодПланеты = 11 then Result := 274.0; //Солнце end; end; function Тело_Масса_вычислить(Вес_на_Земле:extended):extended; Var УскорСвобПаден:extended; //на Земле begin Result:=0.0; УскорСвобПаден:=УскорениеСвободногоПадения_Определить(Земля_Код); if УскорСвобПаден>0 then begin Result:=Вес_на_Земле/УскорСвобПаден; end; end; function Тело_Вес_вычислить:extended; Var УскорСвобПаден:extended; //на планете begin Result:=0.0; УскорСвобПаден:=УскорениеСвободногоПадения_Определить(Планета_Код); Result:=МассаТела * УскорСвобПаден; end; BEGIN Ошибка_Код:=0; //--------------------------------------- //Возвращаемые значения Результат_Выполнения:=''; //Возвращаемое значение Масса := '0'; Вес_на_планете := '0'; //--------------------------------------- Планета_Код:=КодПланеты_Определить(Планета); if Планета_Код > 0 then begin ВесТелаНаЗемле:=Строка_в_ВеществЧисло(trim(Вес_на_Земле), 0); if ВесТелаНаЗемле>0 then begin МассаТела := Тело_Масса_вычислить(ВесТелаНаЗемле); ВесТелаНаПланете := Тело_Вес_вычислить; //--------------------------------------- //Возвращаемые значения Результат_Выполнения:='Ok'; Масса := FloatToStr(МассаТела); Вес_на_планете := FloatToStr(RoundTo(ВесТелаНаПланете,1)); //--------------------------------------- end else begin Ошибка_Код:=2; //Возвращаемое значение Результат_Выполнения:='Ошибка! Вес тела на Земле задан НЕ корректно'; end; end else begin Ошибка_Код:=1; //Возвращаемое значение Результат_Выполнения:='Ошибка! Планета задана НЕ корректно'; end; END.