Меню

Обратная связь

Сейчас на сайте

•Сейчас• •49 гостей• •онлайн•

Авторизация



Назад...


Изучите стандартные функции.


В данной работе мы рассмотрим примеры программ с использованием этих функций.

При использовании функций нужно внимательно смотреть на тип переменной результата. Например, если переменная x целого типа, то a:=sqrt(x); всегда вещественное число. При делении результат всегда вещественное число.

С помощью функции округления round(x) мы всегда получим целое число.

 

Задача 1. Определите дробную часть действительного числа, введенного с клавиатуры.

Для решения задачи используем функцию определения дробной части числа frac(a).

 

Простейший вид:

Var

a : real;

Begin

readln(a);

writeln(frac(a));

end.

 

Вид результата работы программы:

 

3.6

0.6

Вид с поясняющим текстом:

Var

a : real;

Begin

write('Введите число ');

readln(a);

writeln('Дробная часть числа ',frac(a));

end.

Вид результата работы программы:

 

Введите число 4.5

Дробная часть числа 0.5

 

Задача 2. Вычислите значение выражения x4-3x2+5 при некотором значении переменной x.

Чтвертую степень переменной можно вычислить как x*x*x*x, но с использование функции квадрата можно и так: sqr(sqr(x))

 

Простейший вид:

Var

x,y : real;

Begin

readln(x);

y:=sqr(sqr(x))-3*sqr(x) +5;

writeln(y);

end.

 

Вид результата работы программы:

 

7

2259

Рассмотрим форматный вывод чисел.

Для целых чисел можно определить количество знакомест для вывода.

 

Var

a,b : integer;

Begin

a:=4;

b:=7;

writeln(a,b);

writeln(a:8,b:8);

writeln(a);

writeln(b:5);

end.

Вид результата работы программы:

 

47

4       7

4

7

 

Командой  writeln(b:5); мы определяем для целого числа 5 знакомест.

(разберитесь самостоятельно)

 

Var

a : real;

Begin

a:=344/7;

writeln(a);

writeln(a:8:3);

end.

Вид результата работы программы:

 

49.1428571428571

49.143

 

Командой  writeln(a:8:3); мы определяем для вещественного числа 8 знакомест и 3 знака после запятой. При этом происходит программное округление результата по правилам математики.

(разберитесь самостоятельно)

 

Решение задач с использованием формул.

Правилом хорошего тона считается вычисление значения выражения в промежуточную переменную.

 

Задача 2. Найдите периметр и площадь прямоугольника с известными сторонами a и  b. Периметр вычисляется по формуле P=2(a+b), площадь S=ab.

 

Предлагаю три варианта решения задачи. Какой лучший, решайте сами, но …

 

Простейший вид:

Var

a,b : integer;

Begin

readln(a,b);

writeln(2*(a+b));

writeln(a*b);

end.

Вид результата работы программы:

 

3 7

20

21

Значения переменных ввели с клавиатуры через пробел.

Вид результата работы ничего не поясняет. А если добавить вывод поясняющих сообщений:

 

Простейший вид:

Var

a,b : integer;

Begin

writeln('Введите стороны прямоугольника');

readln(a,b);

writeln('Периметр прямоугольника ',2*(a+b));

writeln('Площадь прямоугольника ',a*b);

end.

Вид результата работы программы:

 

Введите стороны прямоугольника

3 7

Периметр прямоугольника 20

Площадь прямоугольника 21

 

Уже понятно что вводить при работе программы и смысл полученных чисел.

Более красиво использовать переменные для расчетов:

 

Простейший вид:

Var

a,b,p,s : integer;

Begin

writeln('Введите стороны прямоугольника');

readln(a,b);

p:=2*(a+b);

s:=a*b;

writeln('Периметр прямоугольника ',p);

writeln('Площадь прямоугольника ',s);

end.

Вид результата работы программы:

 

Введите стороны прямоугольника

3  7

Периметр прямоугольника 20

Площадь прямоугольника 21

 

В данной программе не экономится память, но для такой простой задачи это не страшно!..

Если зачения старон дробные числа, то тип переменных изменяем с integer на real.

 

Для олимпиадных задач пояснительный текст НЕ НУЖЕН! В них строго ввод данных и вывод оформляем по указанному образцу. Иначе задача не засчитается!!!

 

•Информация о профиле•

Application afterLoad: 0.001 seconds, 0.29 MB
Application afterInitialise: 0.027 seconds, 0.96 MB
Application afterRoute: 0.031 seconds, 1.20 MB
Application afterDispatch: 0.049 seconds, 1.83 MB
Application afterRender: 0.082 seconds, 2.17 MB

•Использование памяти•

2312928

•Зарегистрировано запросов: 22•

  1. SELECT *
      FROM jos_session
      WHERE session_id = 'dntu3n2jipj3698cbo7132nkr7'
  2. DELETE
      FROM jos_session
      WHERE ( time < '1732179119' )
  3. SELECT *
      FROM jos_session
      WHERE session_id = 'dntu3n2jipj3698cbo7132nkr7'
  4. INSERT INTO `jos_session` ( `session_id`,`time`,`username`,`gid`,`guest`,`client_id` )
      VALUES ( 'dntu3n2jipj3698cbo7132nkr7','1732182719','','0','1','0' )
  5. SELECT *
      FROM jos_components
      WHERE parent = 0
  6. SELECT folder AS type, element AS name, params
      FROM jos_plugins
      WHERE published >= 1
      AND access <= 0
      ORDER BY ordering
  7. SELECT *
      FROM jos_migration_backlinks
      WHERE url LIKE '2015-01-05-23-14-32/2015-01-05-23-57-10/208.html%' OR sefurl LIKE '2015-01-05-23-14-32/2015-01-05-23-57-10/208.html%'
  8. SELECT template
      FROM jos_templates_menu
      WHERE client_id = 0
      AND (menuid = 0 OR menuid = 130)
      ORDER BY menuid DESC
      LIMIT 0, 1
  9. SELECT a.*, u.name AS author, u.usertype, cc.title AS category, s.title AS section, CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END AS slug, CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END AS catslug, g.name AS groups, s.published AS sec_pub, cc.published AS cat_pub, s.access AS sec_access, cc.access AS cat_access 
      FROM jos_content AS a
      LEFT JOIN jos_categories AS cc
      ON cc.id = a.catid
      LEFT JOIN jos_sections AS s
      ON s.id = cc.section
      AND s.scope = "content"
      LEFT JOIN jos_users AS u
      ON u.id = a.created_by
      LEFT JOIN jos_groups AS g
      ON a.access = g.id
      WHERE a.id = 208
      AND (  ( a.created_by = 0 )    OR  ( a.state = 1
      AND ( a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '2024-11-21 09:51:59' )
      AND ( a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '2024-11-21 09:51:59' )   )    OR  ( a.state = -1 )  )
  10. UPDATE jos_content
      SET hits = ( hits + 1 )
      WHERE id='208'
  11. SELECT id, title, module, position, content, showtitle, control, params
      FROM jos_modules AS m
      LEFT JOIN jos_modules_menu AS mm
      ON mm.moduleid = m.id
      WHERE m.published = 1
      AND m.access <= 0
      AND m.client_id = 0
      AND ( mm.menuid = 130 OR mm.menuid = 0 )
      ORDER BY position, ordering
  12. SELECT *
                           
      FROM jos_menu
                           
      WHERE menutype='mod_maximenu_CK'
      AND published=1
                           
      ORDER BY sublevel DESC,ordering
                            ;
  13. SELECT *
                           
      FROM jos_modules
                           
      WHERE published=1
                           
      ORDER BY id
                            ;
  14. SELECT *
                           
      FROM jos_menu
                           
      WHERE menutype='uth_proc'
      AND published=1
                           
      ORDER BY sublevel DESC,ordering
                            ;
  15. SELECT *
                           
      FROM jos_modules
                           
      WHERE published=1
                           
      ORDER BY id
                            ;
  16. SELECT *
                           
      FROM jos_menu
                           
      WHERE menutype='Olimp'
      AND published=1
                           
      ORDER BY sublevel DESC,ordering
                            ;
  17. SELECT *
                           
      FROM jos_modules
                           
      WHERE published=1
                           
      ORDER BY id
                            ;
  18. SELECT *
                           
      FROM jos_menu
                           
      WHERE menutype='obr_sv'
      AND published=1
                           
      ORDER BY sublevel DESC,ordering
                            ;
  19. SELECT *
                           
      FROM jos_modules
                           
      WHERE published=1
                           
      ORDER BY id
                            ;
  20. SELECT *
                           
      FROM jos_menu
                           
      WHERE menutype='raznoe'
      AND published=1
                           
      ORDER BY sublevel DESC,ordering
                            ;
  21. SELECT *
                           
      FROM jos_modules
                           
      WHERE published=1
                           
      ORDER BY id
                            ;
  22. SELECT guest, usertype, client_id
      FROM jos_session
      WHERE client_id = 0

•Языковые файлы загружены•

  • /var/www/user13295/data/www/ssa.lel-gimnazia.by/language/ru-RU/ru-RU.ini 1
  • /var/www/user13295/data/www/ssa.lel-gimnazia.by/language/ru-RU/ru-RU.plg_system_debug.ini 1
  • /var/www/user13295/data/www/ssa.lel-gimnazia.by/language/ru-RU/ru-RU.com_content.ini 1
  • /var/www/user13295/data/www/ssa.lel-gimnazia.by/language/ru-RU/ru-RU.plg_content_pagebreak.ini 1
  • /var/www/user13295/data/www/ssa.lel-gimnazia.by/language/ru-RU/ru-RU.tpl_MY_sh.ini
  • /var/www/user13295/data/www/ssa.lel-gimnazia.by/language/en-GB/en-GB.tpl_MY_sh.ini
  • /var/www/user13295/data/www/ssa.lel-gimnazia.by/language/ru-RU/ru-RU.mod_maximenu_CK.ini
  • /var/www/user13295/data/www/ssa.lel-gimnazia.by/language/en-GB/en-GB.mod_maximenu_CK.ini 1
  • /var/www/user13295/data/www/ssa.lel-gimnazia.by/language/ru-RU/ru-RU.mod_whosonline.ini 1
  • /var/www/user13295/data/www/ssa.lel-gimnazia.by/language/ru-RU/ru-RU.mod_login.ini 1
  • /var/www/user13295/data/www/ssa.lel-gimnazia.by/language/ru-RU/ru-RU.mod_breadcrumbs.ini 1

•Диагностика непереведённых строк•

•Нет•

•Дизайнер непереведённых строк•

•Нет•