Програмування мовою Pascal

9 views
Skip to first unread message

Володимир Бондаренко

unread,
Jan 16, 2016, 2:22:19 PM1/16/16
to Комп'ютерний клуб "Вільна антилопа"
Тут можна обговорювати прийоми програмування мовою Pascal

Володимир Бондаренко

unread,
Feb 10, 2016, 4:09:14 AM2/10/16
to antilo...@googlegroups.com
Дуже часто виникає питання про піднесення до якогось ступеня числа у мові Pascal. Або інша проблема - взяти кубічний корінь із числа в п’ятому ступені.
Спосіб, який працює у більшості випадків - прологарифмувати вираз і отримати таку тотожність:

Мовою програмування Pascal це можна записати так:
z:=exp (y *ln(x));

Проте для тих, хто займається програмуванням з учнями середньої ланки потрібно буде ще й пояснювати що таке натуральний логарифм. Можна, звичайно, порадити їм просто взяти на віру та завчити цю тотожність. Але вважаємо, що учні мають розуміти усе, що вони пишуть у вихідному коді.
В такому випадку на озброєння можна взяти підключення модулів. Одним з таких модулів, який згодиться для нашого завдання є модуль Math. Серед багатьох інших математичних функцій у цьому модулі описується функція power, яка і призначена для піднесення довільного дійсного числа у довільний допустимий дійсний ступінь. Використання цього прийому ілюструє наведена нижче простенька програма:
{
   pow2
.pas
   
Copyright 2016 Volodymyr M. Bondarenko <bigteacher@ukr.net>
}
program untitled
;

uses crt
,math;
var x,y:real;

BEGIN
    write
('foundation degree: ');
    read
(x);
    write
('exponent: ');
    read
(y);
    writeln
(x:0:2,'^',y:0:2,'=', power(x,y):0:4);  
END.


Auto Generated Inline Image 1

Володимир Бондаренко

unread,
Feb 10, 2016, 4:32:08 AM2/10/16
to Комп'ютерний клуб "Вільна антилопа"
В олімпіадних завданнях, особливо на ІІІ етапі трапляються завдання на опрацювання текстових рядків, довжина яких більша, ніж 255 символів. Відомо, що стандартний тип string описує рядкові величини не довші, ніж 255 символів. Проте у програміста є можливість обійти це обмеження через використання у своїй програмі директив прекомпілятора. Такою директивою, яка вмикає можливість роботи із довгими рядками є директива {H+}
директиви прекомпілятора вставляються у вихідний код одразу після оголошення заголовку програми та перед використанням будь-яких інших оголошень, наприклад:
program bigtext;
{H+}
uses CRT
;
var big_str:string;
BEGIN
  big_str
:='Very long string.............';
  writeln
(big_str);
END.

У цьому прикладі величина big_str хоч і оголошена стандартним пипом string, але через використану раніше директиву прекомпілятора {H+} буде сприйматися як довга (довжиною більше 255 символів) текстова величина.
Reply all
Reply to author
Forward
0 new messages