BEGIN
FOR K := 1 TO 9 DO
WRITE (I, '*’, K, '=’, A [I, K],’’);
WRITELN
END;
READLN;
READLN
END.
5. Заглянем в вычислительную математику
Метод половинного деления
Один из методов численного решения уравнений с одним неизвестным. Пусть имеется уравнение Y (x) =0 с непрерывной на отрезке [а, b] функцией Y (х), принимающей на концах отрезка значения разных знаков и имеющей внутри [а, b] единственный корень X. Для приближенного нахождения X отрезок [а, b] делят пополам и вычисляют значение Y (x1) в средней точке x1= (a+b) /2. Если Y (x1) не равна нулю, то из двух отрезков [а, х1] и [х1,b] для последующего деления пополам выбирается тот, на концах которого значения функции различны по знаку. Возникающая в процессе такого дробления последовательность середин отрезков х1, х2, x3, … сходится к корню X. Вычисление прекращается, когда длинна отрезка становится меньше заданной погрешности вычисления.
VAR A, B, E, X, Y, Y1 : REAL;
PROCEDURE FNY;
BEGIN
Y := SQR (X) – 3
END;
BEGIN
WRITELN (‘ВВЕДИТЕ ГРАНИЦЫ ИНТЕРВАЛА И ПОГРЕШНОСТЬ’);
READLN (A, B, E);
X := A;
FNY;
Y1 := Y;
WHILE B – A> = E DO
BEGIN
X := (A + B) /2;
FNY;
IF Y*Y1> = 0
THEN
BEGIN
A := X;
Y1 := Y
END
ELSE B := X
END;
WRITELN (‘X =’, X);
READLN;
READLN
END.
В этой программе используется процедура без параметров. Заменяя в ней функцию можно находить корни других уравнений.
6. Чего ещё не хватает?
Много чего не хватает, а, особенно, денег. Но, в контексте программирования на Паскале, вас не удивляло – почему Николаус Вирт не ввёл в ряд его стандартных функций, довольно распространённый в вычислениях, кубический корень?
Сейчас мы исправим этот недочёт!
Набирайте в разделе описаний, сразу после описаний переменных, следующую функцию и будет вам счастье!
FUNCTION KUBKOR (X: REAL): REAL;
BEGIN
KUBKOR := EXP (1/3 * LN (X))
END;
Для Си это не актуально, поскольку там есть функция вычисляющая любую степень, в том числе, и дробную. А кубический корень числа – это, по другому, число в степени 1/3.
Часть вторая
Язык программирования C
1. Структура программы на языке C
Программа может состоять из одной или нескольких, связанных между собой, функций, главная из которых называется main – именно с нее начинается выполнение программы. Поэтому, наличие функции с таким именем в любой программе обязательно.
Ключевые слова программы записываются только строчными буквами, так как C (в отличии от Pascal) различает регистр букв.
Имя переменной или константы – это последовательность букв и цифр, начинающаяся с буквы. Переменные, как и в Pascal, могут быть глобальными и локальными.
В языке C числа изображаются без знака, но есть операция "-”.
Литеры и строки изображаются в кавычках (“…“), а не в апострофах (’…’), как в Pascal.
Комментарии начинаются с /* и заканчиваются */ – текст между этих скобок игнорируется при исполнении программы.
В начале программы идут строки такого вида:
#include “имя файла”
#include <имя файла>
Такая строчка заменяется файлом с указанным именем. В первом случае, сначала поиск файла ведётся в текущем каталоге, а затем продолжается в стандартном. Во втором случае – сразу в стандартном.
Например:
#include
#include
#include
Эти строки называются директивами препроцессора. Всё что ниже называется блоком описания функции.
Далее следует заголовок функции, например:
int main – где main – имя функции. В скобках (…) могут быть её аргументы, или слово void (ничто) – если аргументов нет. Описание int указывает, что эта функция возвращает целое число.
После чего следует тело функции в фигурных скобках {…}, которое состоит из описаний констант и переменных и последовательности операторов, разделённых точками с запятыми (;). Тело функции определяет последовательность действий, выполняемых данной функцией – логику функции.
Фигурные скобки обрамляют также и составной оператор, аналогично операторным скобкам BEGIN… END в Pascal.
В конце тела функции обычно ставятся следующие команды: