Цитата:
Сообщение от Dram
function X2np(X:Extended; n:WORD):Extended; что мы сделали вот этой строчкой,
WriteLn('S= ',S:7:5); и что в этой строке означает вот это S:7:5 я так понимаю это сокрашение результата. Но как это работает я что то не очень понемаю.
И еще вот дали задачку : Создать программу типа лазерного резака. Т.е нам дан квадрат 1000х1000. В нем нужно вырезать два квадрата, но так чтобы они не соприкасались друг стругом и не выходили за пределы б.квадрата(в противном случаее программа нам сообщала что чтото не так). Координаты малых квадратов задаются 2 точками левой нижней и правой верхней.
Язык паскаль
без графики только вычесления.
Подскажите хотя бы в какаю сторону начинать думать. И как реализовать в прграмме Поле(те. Б.квадрат 1000х1000).
|
Отвечаю.
1. Зачем в вопросе приведен заголовок функции - не понял.
2. Насчет WriteLn('S= ',S:7:5);. Этой строчкой мы вывели на экран значение числа S в заданном формате. Пара слов о формате вывода ВЕЩЕСТВЕННЫХ чисел. Пусть, для примера, S=0.1543799876544376578. Если формат не указать и применить оператор WriteLn('S= ',S);, то на экране появится:
S= 1.543799876544376578E-0001
Некрасиво. Если задать формат в виде одного числа, то это число будет воспринято, как полное количество значащих цифр в выводе результата. Т.е. в результате команды WriteLn('S= ',S:12); на экране будет:
S= 1.5438E-0001
А вот если задать формат, как сделано в программе, т.е. с двумя числами, то тогда это будет так: результат отобразится в виде десятичной дроби (без всяких Е-0001), причем первое число - это полное количество значащих цифр, а второе - количество цифр после десятичной точки. Т.е. в данном случае WriteLn('S= ',S:7:5); приведет к:
S= 0.15438 .
3. А о размерах малых квадратов ничего не говорится? Они одинаковые или могут быть разные?
P.S. Между прочим, это можно было и в старой теме. Я просил не создавать постов с НОВЫМИ задачками. А тему потому и не закрываю, что еще могут возникнуть вопросы по старым. Но, впрочем, новая так новая.