Здесь Вы встретите понятия Функция, Процедура, Аргумент.
Разница между ними заключается в том, что значение функции можно передать результат своей работы какой либо переменной
y := sin(x) | Вычисляем синус от Х и заносим результат в Y
Процедура же — просто выполняет некое действие с указанным аргументом не возвращая никому, и ничего. Совсем никаких результатов.
Dec(x) | Просто изменили значение Х.
Теперь что такое аргумент. Аргумент для функции и процедуры — это переменная/переменные которые заключены в скобки .
y := sin(x); х — это аргумент.
Dec(р); р — это аргумент.
Inc(x, n); x,n — это аргументы.
Теперь тип результата:
t := Round (x)
На входе как аргумент Х действительное число. Но в результате работы функции на выходе в t пойдет целое число.
(О чем нужно позаботится в разделе Var x:real;
t:integer)
Таблица математических функций
Математическое выражение
Паскаль Функция
Обьяснение
Тип аргументу
Тип результата
y = | x |
y := abs(x)
Абсолютное значение «x» или модуль «х»
integer, real
integer, real
y = sin x
y := sin(x)
Синус «x» рад
integer, real
real
y = cos x
y := cos(x)
Косинус «x» рад
integer, real
real
y = arctg x
y := arctan(x)
арктангенс «х» ( -Pi/2 < y < td )< 2 Pi>
integer, real
real
Квадратный корень с Х
y := Sqrt(x)
квадратный корень из «х»( x > 0)
integer, real
real
y = х2
y := Sqr(x)
значение «х» в квадрате ( х2 )
integer, real
integer, real
y = ех
y := Exp(x)
значение «е» в степени «х» ( ех, где e= 2. 718282. . . )
integer, real
real
y = Ln x
y := Ln(x)
натуральный логарифм «х» ( х > 0 )
integer, real
real
Дробная часть Х
y := Frac(x)
дробная часть «х»
real
real
Целая часть Х
y := Int(x)
целая часть «х»
real
real
Случайное число
t := Random(x)
случайное число 0 < =y < x )
integer
integer
Округлить Х
t := Round (x)
Округляет Х к целому
real
integer
Отбросить дробную часть Х
t := Trunc(x)
Отбрасывает дробную часть от числа Х
real
integer
Проверка на парность
f := odd(x)
integer
boolean true непарне false парне
Xn
Y := exp(ln(x)*n)
x — выражение
n — степень
Х в степени n
ASCII код символа
Ord(s)
Код символа в ASCII
char
byte
Символ по ASCII коду
Chr(s)
Возвращает символ по его коду
byte
Char
Математические процедуры
Процедура
Тип аргументу
Тип значення
Результат
Inc(x)
Integer
Integer
Увеличивает «х» на 1 (x:=x+1;)
Dec(x)
Integer
Integer
Уменьшает «х» на 1 ( x:=x-1; )
Inc(x, n)
Integer
Integer
Увеличивает «х» на n ( x:=x+n; )
Dec(x, n)
Integer
Integer
Уменьшает «х» на n ( x:=x-n; )
ПРОЦЕДУРЫ ИЗМЕНЕНИЯ ТИПОВ ПЕРЕМЕННЫХ
Str(x, s)
x-Integer или Real
s-символьный
Переводит число «x» в строку «s»
Val(s, v, cod)
s-символьный
v-Integer или Real cod- Integer
Переводит строку цифр «s» в число «v» cod=0 (код ошибки при неудачном преобразовании)
Что касается использования процедур увеличения / уменьшения переменных — я придерживаюсь правила расписывать их в соответствии с результатом.
То есть: вместо команды Dec (x) я часто пишу x: = x-1;
Аналогично для Inc (х) я часто пишу x: = x + 1;
Дело предпочтений =) …. хотя иногда сокращаю …
Пример программы, в которой бы использовались почти все процедуры и функции ....
Програмный код
Результат
Обьяснение
var
x, y : real;
f : boolean;
t : integer;
n : integer;
s : char;
kod : byte;
х, у: для математических расчетов f: логическая переменная для проверки четности t: переменная для преобразований межд утипами Real Integer n: степень s: символьная переменная для ASCII кода kod: переменная, которая получит код значения об ошибке
BEGIN
Write (‘ X= ‘); Readln(x);
Write (‘ Y= ‘); Readln(y);
X= 2.7
Y= 3.2
Запрос значения Х Запрос значения Y
Y:=abs(x);
Writeln(‘Модуль x = ‘, y:2:2);
Модуль x = 2.70
Расчет модуля (абсолютной величины) Вывод на экран результата (2 знака после запятой и 2 знакоместа)
Y:=sin(x);
Writeln(‘Sin ‘, x, ‘ = ‘, y:2:2);
Sin 2.7 = 0.43
Расчет Синуса Вывод на экран результата (2 знака после запятой и 2 знакоместа)
Y:=cos(x);
Writeln(‘Cos ‘, x, ‘ = ‘, y:2:2);
Cos 2.7 = -0.90
Расчет косинус Вывод на экран результата (2 знака после запятой и 2 знакоместа)
Y:=sin(x)/cos(x);
Writeln(‘Tg ‘, x, ‘ = ‘, y:2:2);
Tg 2.7 = -0.47
Расчет тангенса Вывод на экран результата (2 знака после запятой и 2 знакоместа)
Y:=1/y;
Writeln(‘Ctg ‘, x, ‘ = ‘, y:2:2);
Ctg 2.7 = -2.12
Расчет катангенса (обратная функция тангенса) Вывод на экран результата (2 знака после запятой и 2 знакоместа)
Y:=arctan(x);
Writeln(‘Arctg ‘, x, ‘ = ‘, y:2:2);
Arctg 2.7 = 1.22
Расчет арктангенса Вывод на экран результата (2 знака после запятой и 2 знакоместа)
Y:=sqrt(x);
Writeln(‘Корень квадратный из’, x, ‘ = ‘, y:2:2);
Корень квадратный из 2.7 = 1.64
Расчет квадратного корня Вывод на экран результата (2 знака после запятой и 2 знакоместа)
Y:=sqr(x);
Writeln(x, ‘ в квадрате = ‘, y:2:2);
2.7 в квадрате = 7.29
Расчет возведения в квадрат Вывод на экран результата (2 знака после запятой и 2 знакоместа)
Y:=exp(x);
Writeln(‘e в степени ‘, x, ‘ = ‘, y:2:2);
e в степени 2.7 = 14.88
Расчет экспоненты Вывод на экран результата (2 знака после запятой и 2 знакоместа)
Y:=ln(x);
Writeln(‘Ln ‘, x, ‘ = ‘, y:2:2);
Ln 2.7 = 0.99
Расчет логарифма Вывод на экран результата (2 знака после запятой и 2 знакоместа)
Y:=Frac(x);
Writeln(‘Дробная часть ‘, x, ‘ = ‘, y:2:2);
Дробная часть 2.7 = 0.70
Расчет дробной части. Вывод на экран результата (2 знака после запятой и 2 знакоместа)
Y:=Int(x);
Writeln(‘Целая часть ‘, x, ‘ = ‘, y:2:2);
Целая часть 2.7 = 2.00
Расчет целой части числа Вывод на экран результата (2 знака после запятой и 2 знакоместа)
Writeln(‘Случайное число до 10 = ‘,Random(10));
Случайное число до 10 = 7
Расчет случайного числа без использования дополнительной переменной
t:=round(x);
Writeln(‘Округление ‘, t, ‘ = ‘, t:2);
Округление 3 = 3
Расчет округления по математическим правилом.Real->Integer Вывод на экран результата (2 знакоместа)
Расчет-проверка четности Вывод на экран результата true-нечетное/ false-чётное
Write (‘Степень= ‘) ; Readln(n);
Степень = 3
Запрос значения показателя степени
y:=exp(ln(t)*n) ;
Writeln(‘Число ‘,t,’ в степени ‘,n,’ = ‘,y:2:2);
Число 2 в степени 3 = 8
Расчет значения t в степени n (с точностью до двух знаков)
Write (‘ Нажмите клавишу ‘); Readln(s);
kod:=ord(s);
Writeln (‘ASCII код = ‘, kod);
Нажмите клавишу a
ASCII код = 97
Запрос символа для определения ASCII кода расчет ASCII кода введенного символа вывод результата
Writeln(‘По ASCII коду = ‘,kod, ‘ символ = ‘,chr (kod));
По ASCII коду = 97 символ = a
Обратная операция. Есть код символа, нужно определить сам символ.
writeln(‘Press Enter to exit’);
readln;
Press Enter to exit
Ожидание нажатия на Enter
END.
Завершение программы.
Что нужно запомнить:
Что такое функция.
Что такое процедура.
В чем разница между функцией и процедурой.
Что такое аргумент.
Какие функции производят преобразование типов данных.
Выучить таблицу математических функций.
К каждой задачи ответьте на вопрос: Какие переменные будут «входящими», промежуточными, и укажите переменную/переменные, которая содержит результат. Написание программ можно разбавить командами управления цветом символов и фона.
Пример 1.
1. Написать программу, которая рассчитает, за какое время автомобиль проедет S километров двигаясь со скоростью V км/ч. Результат вывести c 2 знаками после запятой.
uses CRT;
Var s,v:real;
t:real;
BEGIN
ClrScr;
Write('Distns S=');Readln(s);
Write('Speed V=');Readln(v);
t:=s/v;
writeln('Time=',t:2:2);
writeln('Press Enter to Exit');
readln;
END.
Комментарий
Подключаем модуль/библиотеку, (используем ClrScr)
Входящие переменные
Переменная результат
НАЧАЛО
Очистка экрана
Запрос расстояния
Запрос скорости
Формула рассчета
Вывод времени (результат)
Сообщение об Enter
Ждем
ФИНАЛ
Для самостоятельного решения
01. Написать программу, которая рассчитает, за какое время автомобиль проедет S километров двигаясь со скоростью V км/ч. Результат вывести c 2 знаками после запятой
02. Два автомобиля выехали навстречу друг другу из городов, расстояние между которыми S километров. Скорость первого автомобиля V1 км / ч, скорость второго V2 км / ч. Рассчитать время, через какое время автомобили встретятся. Результат вывести из 2 знаками после запятой
03. Написать программу, которая по размеру окна АхВ рассчитает общую площадь К окон. Результат вывести с 3-я знаками после запятой
04. Смешали V1 литров воды температуры t1 с V2 литрами воды температуры t2. Написать программу для нахождения объема и температуры образованной смеси.
05. Даны треугольник со сторонами А, В, С. Написать программу для нахождения его периметра.
06. Дано футбольное поле размерами АхВ. Нужно его огородить оградой. Написать программу для нахождения длины ограды.
07. Даны площадка в форме круга радиуса R. На ней находится детская площадка прямоугольной формы АхВ. Гарантируется, что он не выходит за пределы круга. Написать программу для нахождения свободной площади незанятой детской площадкой.
08. Сколько стоит N тетрадей и K дневников, если одна тетрадь стоит C1 грн., а дневник C2 грн. Написать программу для нахождения отдельно суммы для покупки тетрадей и дневников, а также общей суммы денег для покупки. Результаты вывести в новых строках c 2 знаками после запятой.
09. Дано куб со стороной А. Написать программу для нахождения его объема и площади боковой поверхности.
10. Даны 2 числа: А и В. Написать программу для нахождения их среднего арифметического.
11. Даны два целых числа А и В. Написать программу для нахождения их суммы, произведения, разницы и доли. Каждый ответ в новой строке.
12. Дано стороны прямоугольника А и В. Найти его площадь и периметр.
13. Дан радиус окружности Р. Найти длину окружности и её площадь. Результат вывести с точностью до 3 знаков включительно. 14. Дано стороны парелелепипеда А,В,С. Найти его обьем и площадь боковой поверхности.
15. Дано три числа А,В,С. Найти их среднее арифметическое с точностью до 1 знака.
16. Дано значение температуры F в Фаренгейтах. Перевести в градусы Цельсия C по формуле С=(F-32)*5/9.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.