На занятии будет объяснен алгоритм работы с функциями на Паскале, рассмотрены стандартные функции. Будут разобраны примеры использования функций с параметрами и без параметров.
Содержание:
- Стандартные функции языка Pascal
- Арифметические функции (основные)
- Функции преобразования типов
- Пользовательские функции Pascal
- Самостоятельная работа
Арифметические функции (основные)
Функция | Назначение | Тип результата |
---|---|---|
abs (x) | абсолютное значение аргумента | совпадает с типом аргумента |
sqr (x) | квадрат аргумента | совпадает с типом аргумента |
sqrt (x) | квадратный корень аргумента | вещественный |
cos (x) | косинус аргумента | вещественный |
sin (x) | синус аргумента | вещественный |
arctan (x) | арктангенс аргумента | вещественный |
exp (x) | ex | вещественный |
ln (x) | натуральный логарифм | вещественный |
int (x) | целая часть числа | вещественный |
frac (x) | дробная часть числа | вещественный |
Функции преобразования типов
round (x) | — округляет вещественное число до ближайшего целого. |
trunc (x) | — выдает целую часть вещественного числа, отбрасывая дробную. |
Пользовательские функции Pascal
Функция в Паскале — это подпрограмма, которая в отличие от процедуры всегда возвращает какое-либо значение. Для этого в теле функции её имени присваивается вычисленное значение — результат, который она возвращает.
- Функция – это подпрограмма, результатом работы которой является определенное значение.
- Функции используются для:
- выполнения одинаковых расчетов в различных местах программы;
- для создания общедоступных библиотек функций.
- Синтаксис:
- заголовок начинается служебным словом
function
- описание формальных параметров (тех, значения которых передаются из основной программы в функцию):
- параметры-переменные — параметры, значения которых становятся доступны и в основной программе (возвращаются в программу)
- тип возвращаемого функцией результата описывается в конце заголовка функции через двоеточие:
- Вызывается функция в теле основной программы, только если ее имя фигурирует в каком-либо выражении. В отличие от процедуры, которая вызывается отдельно.
- Внутри функции можно объявлять и использовать локальные переменные:
- значение, которое является результатом, записывается в переменную, имя которой совпадает с названием функции; объявлять ее НЕ НАДО:
Рассмотрим синтаксис:
var …;{объявление глобальных переменных} function название (параметры): тип результата; var…; {объявление локальных переменных} begin … {тело функции} название:=результат; {результат вычислений всегда присваивается функции} end; begin … {тело основной программы} end.
Пример: написать функцию, которая вычисляет наибольшее из заданных двух значений
Решение:
Вызов функции:
PascalABC.NET
:
Правила описания функции:
1. Мы должны написать тип значения, которое возвращает функция.
2. Переменная Result
хранит результат функции.
function f(x: real): real; begin Result := x * x + 1; end;
Вызов функции стоит в выражении:
// основная программа begin var x := 5; var r := Sqrt(x) + f(x); end.
Задача function 0. Написать функцию, которая вычисляет наибольшее из заданных трех значений. Функция с тремя параметрами.
✍ Пример результата:
Введите три числа: 4 1 6 наибольшее = 6
Пример: Написать функцию на Паскале, которая складывает два любых числа
✍ Пример результата:
первое число: 2 второе число: 5 сумма = 7
✍ Решение:
1 2 3 4 5 6 7 8 9 10 11 12 |
var x,y:integer; function f(a,b:integer):integer; begin f:= a+b; end; begin writeln('первое число:'); readln(x); writeln('второе число:'); readln(y); writeln('сумма= ',f(x,y)); end. |
В рассмотренном примере использования функции в Паскале: функция f
имеет два целочисленных параметра — a
и b
. Через двоеточие в заголовке функции (строка 2) указано, что значение, вычисляемое функцией, будет тоже целочисленным. В теле функции вычисляемая сумма присваивается имени функции. А в основной программе вызов функции осуществляется в качестве параметра оператора writeln
.
Таким образом, главное отличие функции от процедуры — это то, что функция производит какие-либо вычисления и выдает в программу результат в виде значения, в то время как процедура чаще всего выполняет какие-либо действия с результатом, например, выводит его на экран (функция этого делать не может).
Задача function 1. При помощи функции найти среднее арифметическое двух чисел (функция с двумя параметрами).
✍ Пример результата:
Введите два числа: 4 7 среднее арифметическое = 5,5
Пример: Составить программу с функцией для вычисления факториала числа.
Показать решение:
Pascal | PascalABC.NET | ||||
|
|
В рассмотренном примере функция имеет один параметр — a
. Вычисляемое функцией значение имеет целочисленный тип, это указывается в заголовке функции (строка 2). В теле функции в цикле for
вычисляется факториал числа. Результат вычисления присваивается имени функции (строка 9). В теле программы для вывода результата функции она вызывается в операторе writeln
(строка 14), который и выводит результат на экран.
PascalABC.NET
:
Короткое определение функции:
function Sq(x: real) := x * x + 1; begin var x := 10; var r := Sq(x) + Sq(2) end.
Короткая запись
Если тело функции состоит только из одного оператора, PascalABC.NET позволяет использовать при описании сокращенный синтаксис, без ключевых слов begin
и end
:
1 2 3 4 5 6 |
## function SumXY(x,y: real) := x + y; // основная программа begin Print (SumXY(9,2)); //11 end; |
Задача function 2. Составить функцию, которая определяет сумму всех чисел от 1 до N и привести пример ее использования. N — параметр функции.
Пример:
Введите число: 100 сумма = 5050
Задача function 3. Составить функцию, которая определяет, сколько зерен попросил положить на N-ую клетку изобретатель шахмат (на 1-ую – 1 зерно, на 2-ую – 2 зерна (в два раза больше предыдущего результата), на 3-ю – 4 зерна, на 4-ю – 8 зерен…). N
— параметр функции.
Пример:
Введите номер клетки: 28 На 28-ой клетке 134217728 зерен.
Задача function 4. Описать функцию IsDigit(A)
, которая возвращает истину, если целое число A
представляет цифру (то есть A
лежит в диапазоне 0–9). В основной программе вывести значение этой функции для N
(N ≥ 0) данных чисел.
Пример:
Введите N: 3 Введите число: 2 >>> true Введите число: 34 >>> false Введите число: 4 >>> true
Задача function 5. Вычисление степени числа с помощью функции на языке Паскаль.
Пример:
Введите число: 3 Введите степень числа: 2 Результат 3^2 = 9
Задача function 6. Описать функцию Calc(A, B, Operation)
вещественного типа, выполняющую над ненулевыми вещественными числами A
и B
одну из арифметических операций и возвращающую ее результат. Вид операции определяется целым параметром Operation
: 1
— вычитание, 2
— умножение, 3
— деление, остальные значения — сложение. С помощью Calc
выполнить для данных A
и B
операции, определяемые данными целыми N1
, N2
, N3
.
Пример:
Введите два числа: 5 7 Введите номер операции (1 — вычитание, 2 — умножение, 3 — деление, остальные значения — сложение): 2 Результат 5*7 = 35
* Из задачника М. Э. Абрамян (Proc22)
Самостоятельная работа
1 вариант: Описать функцию CircleS(R)
вещественного типа, находящую площадь круга радиуса R
(R
— вещественное). С помощью этой функции найти площади трех кругов с данными радиусами. Площадь круга радиуса R вычисляется по формуле S=π∗R2
. В качестве значения Пи использовать 3.14
.
* Из задачника М. Э. Абрамян (Proc18)
Пример:
Введите радиус: 5.2 Площадь круга = 16,328 ___ Введите радиус: 6.3 Площадь круга = 19,782 ___ Введите радиус: 7.1 Площадь круга = 22,294
2 вариант: Описать функцию TriangleP(a, h)
, находящую периметр равнобедренного треугольника по его основанию a
и высоте h
, проведенной к основанию (a
и h
— вещественные). С помощью этой функции найти периметры трех треугольников, для которых даны основания и высоты (периметр = сумме длин всех сторон). Для нахождения боковой стороны b
треугольника использовать теорему Пифагора: b2=(a/2)2+h2
.
* Из задачника М. Э. Абрамян (Proc20)
Пример:
Введите основание треугольника: 6 Введите высоту треугольника: 5 Периметр треугольника = 17,83095 ___ Введите основание треугольника: ... Введите высоту треугольника: ... Периметр треугольника = ... ___ Введите основание треугольника: ... Введите высоту треугольника: ... Периметр треугольника = ...
Потренируйтесь в решении задач по теме, щелкнув по пиктограмме:
Напишем программу, которая будет вычислять площадь и периметр прямоугольника со сторонами (5) см и (8) см.
Входные данные в задаче:
(a=5) см;
(b=8) см.
На выходе мы должны получить:
(S) — площадь прямоугольника;
(P) — периметр прямоугольника.
Для вычислений будем использовать формулы из курса математики:
S=a×b,P=2×(a+b)
.
Напишем программу:
С помощью данной программы мы найдем площадь и периметр прямоугольника.
В окне вывода увидим следующее:
Данная программа не универсальна для некоторого класса задач, а это противоречит свойствам алгоритма. Программа работает только для одного конкретного прямоугольника со сторонами (5) см и (8) см. Для того, чтобы программа могла находить площадь и периметр для любого прямоугольника, необходимо добавить в неё оператора ввода.
Итак, день добрый, товарищи! Во первых хочу сразу предупредить что я не этот ваш математик, поэтому я буду называть данное математическое выражение уравнением. Удобнее мне так.
У нас поставлена задача: решить данное уравнение, и похоже это первая действительно интересная задача, после всяких там HelloWorld’ов. В этом руководстве я буду показывать написание программы последовательно, а так же в конце выложу ее целиком для того чтобы можно было сравнить ее с написанным вами кодом.
Если вдруг вы искали решения квадратных уравнений и дискриминантов – ссылка на статью будет внизу этой публикации!
Начнем же писать
Для начала определимся с переменными. Данное выше уравнение можно отобразить таким образом:
X^2 + Y^2 / √X * Y
Соответственно первые две наших переменных это Х и У. Переменные chs и znm являются соответственно числителем и знаменателем данного примера, ну а переменная answ, как, думаю, понятно из названия это answer, ответ.
Тип данных для этих переменных мы выберем real, число с плавающей точкой. Потому что очень сомневаюсь что ответ мы получим в виде целого числа при делении одного рандомного числа на другое. Подробнее об основных типах данных я писал в предыдущей публикации, вот на всякий случай ссылка:
Усложняем HelloWorld на Pascal. Введение в переменные
После объявления переменных стартует программа (c begin конечно) и здесь мы видим нечто новое: зеленую надпись – комментарий. Комментарии необходимы для записей важной (или любой другой) информации для разработчика, и никак на работу программы не влияют. Видит их только тот кто читает или пишет код. В Pascal комментарии начинаются с двух слешей //.
В данном блоке кода мы предлагаем пользователю ввести две переменные с клавиатуры, а далее приступим к их решению.
Команда sqr() это всего – навсего возведение в квадрат, того же самого можно добиться так: x * x.
Команда sqrt() это почти то же самое, только квадратный корень, а команда round() – округление до указанного количества знаков после запятой. В данном случае я выбрал три.
А теперь еще раз: chs присваивается числитель дроби, тоесть x в степени 2 плюс y в степени 2
а переменной znm присваивается знаменатель: квадратный корень х на у, а чтобы не получилось огромного количества знаков после запятой, то все это обернуто округляющей функцией. Можно и без нее, попробуйте, но получится не так красиво.
Вот и ответ. Снова используем функцию round() для отсечения всякого лишнего – ненужного и выводим получившиеся значения.
В предпоследней строчке используем конкатенацию для соединения частей строки между собой. Название страшное, но на деле ничего сложного, мы просто присоединяем наши переменные в строку и склеиваем все между собой.
Не забываем end. в конце. Посмотрим на то что получилось на выходе:
1)
2)
Итак, мы нашли решение уравнения, 5 нам по математике. В целом вместо этого уравнения можно решить таким же способом множество других внеся изменения лишь в пару строчек. На сегодня на этом все!
Вот, как обещал, ссылка на статью с решением квадратных уравнений на Паскале:
Квадратные уравнения на Pascal. Находим дискриминант.
Данный человек всегда открыт для обсуждения контента и общения с подписчиками, если найдутся какие либо вопросы то я обязательно постараюсь ответить на них.
По возможности я попросил бы подписаться. Сейчас это критически важно для развития канала. Так то!
Доброго вам всем здоровьица в эти трудные времена!
Практическая
работа 4
Тема:
Запись
математических выражений на языке
Pascal
Цель:
Научиться записывать математические
выражения на языке Pascal.
Теория
Выражение
– это правило вычисления значения. В
выражении участвуют операнды,
объединенные знаками
операций. Операндами
могут быть константы, переменные и
вызовы функций. Операции выполняются
в определенном порядке в соответствии
с приоритетами.
Порядок
выполнения операций изменяется круглыми
скобками.
Правила
записи математических выражений:
-
все
символы пишутся в одну строку; -
нельзя
пропускать знаки действий; два подряд
идущих знака разделяют скобками; -
приоритет:
-
унарные
операции (смена знака), вычисление
значения функции; -
*,
/, div,
mod; -
+,
-;
-
-
целая
и дробная часть числа разделяются
точкой; -
Аргументы
функций записываем в круглых скобках; -
в
тригонометрических функциях углы
записываются в радианах.
Математическая |
Запись |
=3,14159… |
Pi |
cos |
Cos |
sin |
Sin |
tg |
Sin |
ctg |
Cos |
arctg |
Acrtan |
– |
Abs |
Дробная |
Frac |
– |
Int |
Ln |
Ln |
Lg |
0.4*Ln(x) |
Ln(a)/Ln(b) |
|
Генератор |
Random |
Генератор |
Random |
x2 |
Sqr |
|
Sqrt |
ex |
Exp |
|
Exp |
|
Exp(a |
Перевод |
x |
Пример:
Записать
на языке Паскаль выражения:
1);
2)
Для
проверки синтаксиса программы наберите
программу, вычисляющую значение z
и f.
Например,
вычислим сумму и произведение чисел x
и y.
program
a1;{название программы}
var
x,y,z,f:real;{раздел описания переменных}
begin
{начало}
writeln
(‘Vvedite x,y’); {сообщение о том, значения
каких переменных нужно ввести}
readln(x,y);
{ввод значений}
z:=x+y;{вычисление
z}
f:=x*y;{вычисление
f}
writeln(‘z=’,z:4:2,’
‘,’f=’,f:4:2);{вывод значений на экран}
end.
{конец}
Для
x
= 12.355, y
= 2.3 получим z
= 14.66 и f=28.42.
Ввод чисел через пробел и завершить
нажатием клавиши «Enter»
или нажатием клавиши «Enter»
после записи каждого числа.
№ варианта |
Задание |
Задание |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Подсказка
program
a1;{название программы}
var
x,y,z,f:real;{раздел описания переменных, вы
берете переменные из вашего задания}
begin
{начало}
writeln
(‘Vvedite x,y’); {меняете на свои переменные}
readln(x,y);
{перечисляем имена своих переменных}
z:=x+y;{вычисление
z
– записываем свою формулу}
f:=x*y;{вычисление
f
– записываем свою формулу}
writeln(‘z=’,z:4:2,’
‘,’f=’,f:4:2);{вывод значений на экран не
изменяем}
end.
{конец}
Для
запуска
программы
нажимаем клавишу F10,
клавишами движения курсора переходим
на команду меню «RUN»,
нажимаем дважды «Enter».
Для
просмотра
– Alt
+ F5.
Контрольные
вопросы:
1)
Что такое выражение?
2)
Перечислите правила записи математических
выражений.
Практическая
работа 5
Тема:
Составление
линейных программ. Вычисление по формулам
Цель:
Научиться решать линейные задачи,
применяя вычисления по формуле.
Теория
Пример.
Найти решение значения функции
,
еслии,
гдеa=
1, b=2,
c=3.
1.
Математическая модель:
Чтобы
найти z,
нужно выполнить
вычисления в
следующей
последовательности:
-
Ввести
значения a,
b,
c; -
Вычислить
x; -
Вычислить
y; -
Вычислить
z; -
Вывести
значение z
на экран
2.
Алгоритмический язык:
алг
a1
арг
a,
b,
c
(вещ)
рез
x,
y,
z
(вещ)
нач
ввод
a, b, c
вывод
z
кон
-
Блок-
схема.
4.
Программа:
program
a1;
uses
crt; {модуль
работы с экраном}
var
a,b,c,x,y,z: real; {описание
переменных}
begin
writeln(‘Введите
a,b,c’); {сообщение
о том, какие переменные вводить}
readln
(a,b,c);
x:=2*a+3*b+c;
y:=1/x;
z:=sqrt
(abs(y+x));
writeln(‘z=’,z:6:2);
readkey;
{позволяет
просмотреть результат, ждет нажатия
любой клавиши на клавиатуре}
end.
Задание.
Запишите математическую модель, алгоритм
на языке блок-схем, на алгоритмическом
языке и на языке программирования
решение задачи нахождения значения z
, если известны значения a,
b,
c
и зависимости переменных x
и y
.
Вариант
1
,
,
,
гдеa=2,1,
b=0,3,
c=1,02.
Вариант
2
,
,
, где
a=2,6,
b=5,1,
c=0,3.
Вариант
3
, , ,
где a=2,6, b=7,21, c=0,25.
Вариант
4
,
,
, где a=4,3, b=1,2, c=0,4.
Вариант
5
,
,
,
где a=4,03,
b=1,32,
c=0,06.
Вариант
6
, , ,
где a=1,2,
b=3,2,
c=0.
Вариант
7
,
,
,
где a=4,02, b=0,1, c=2,05.
Вариант
8
,
,
,
где a=2,04, b=0,5, c=4.
Вариант
9
,
,
,
где a=5,5, b=0,4, c=3,02.
Вариант
10
,
,
,
где a=0,7, b=2, c=1.
Вариант
11
,
,
,
где a=0,3, b=4,5, c=0,2.
Вариант
12
,
,,
гдеa=2,1,
b=0,6,
c=1.
Вариант
13
,
, ,
где a=0,5,
b=6,
c=0,3.
Вариант
14
,
,
,
где a=1,2,
b=5,1,
c=2.
Вариант
15
,
,
,
где a=2,3,
b=5,3,
c=0,4.
Вариант
16
,
,
,
где a=1,3,
b=5,1,
c=0,3.
Вариант
17
,
,
,
где a=2,4,
b=0,1,
c=2,3.
Вариант
18
,
,
,
где a=1,8,
b=9,1,
c=3.
Вариант
19
,
,
где a=4,2,
b=0,3,
c=1,5.
Вариант
20
,
,
где a=0,5,
b=4,7,
c=0,2.
Вариант
21
,
,
,
где a=4,5,
b=7,
c=3,2.
Вариант
22
,
,
,
где a=0,25,
b=1,7,
c=9.
Вариант
23
,
,
,
где a=0,5,
b=3,2,
c=4,1.
Вариант
24
,
,
,
где a=7,1,
b=0,8,
c=3,2.
Вариант
25
,
,
,
где a=1,1,
b=2,5,
c=3,1.
Вариант
26
,
,
,
где a=5,6,
b=3,7,
c=0,1.
Вариант
27
,
,
,
где a=1,3,
b=4,8,
c=1,2.
Вариант
28
,
,
,
где a=5,6,
b=2,
c=3,2.
Вариант
29
,
,
,
где a=1,2,
b=3,02,
c=0,2.
Вариант
30
,
,
,
где a=0,4,
b=5,1,
c=2.
Вариант
31
,
,
,
где a=2,1,
b=3,5,
c=2,8.
Вариант
32
, ,
,
где a=4,8,
b=0,5,
c=3,2.
Вариант
33
,
, ,
где a=2,4,
b=1,2,
c=3,4.
Вариант
34
, , ,
где a=0,8,
b=0,5,
c=0,4.
Вариант
35
, ,
,
где a=1,2,
b=3,5,
c=1,7.
Контрольные
вопросы: 1) Назовите формат операторов
ввода, вывода и присвоения.
2)Как
записываются математические выражения
на языке Паскаль?
Практическая
работа 6
Тема:
Составление
линейных программ в математических
задачах
Цель:
Изучить
операторы ввода, вывода и присваивания,научиться
создавать, вводить в компьютер, выполнять
программы, реализующие линейные
алгоритмы.
Теория
ЛИНЕЙНЫМИ
АЛГОРИТМАМИ
называются
алгоритмы, в которых все этапы решения
задачи выполняются строго последовательно
н
Program
название;
Var
список
переменных : тип;
Begin
Операторы;
End.
ач
действие
1
действие
2
…
действие
n
кон
Пример:
Определить расстояние на плоскости
между двумя точками с заданными
координатами M1(x1,y1) и M2(x2,y2)
Этапы
решения задачи:
-
Математическая
модель:
расстояние на плоскости между двумя
точками M1(x1,y1) и M2(x2,y2) высчитывается по
формуле
-
Составим
блок-схему
алгоритма
Переведем
блок-схему наязык
Паскаль.
program
a1;
var
x1, x2, y1, y2: integer;
d:real;
begin
write(‘x1=
‘); readln(x1);
write(‘y1= ‘);readln(y1);
write(‘x2= ‘);readln(x2);
write(‘y2=
‘);readln(y2);
d:=Sqrt(Sqr(x2-x1)+Sqr(y2-y1));
writeln(‘d=’,d);
end.
Алгоритмический
язык
алг
а1
арг
x1,x2,y1,y2
(цел)
рез
d
(вещ)
нач
ввод
x1,
x2,
y1,
y2
вывод
d
кон
Индивидуальное
задание
Будем
считать, что решение задач есть (не
рассматривать ветвление). Написать
математическую модель, блок – схему
решения задачи, алгоритм и программу.
Вариант
1
-
Вычислить
длину окружности и площадь круга одного
и того же заданного радиуса R. -
Найти
синус одного из углов треугольника со
сторонами а, b, с.
Вариант
2
1.
Заданы координаты трех вершин треугольника
(х1 , у1,), (х2 , y2), (х3, У3). Найти его периметр.
2.
Даны два действительных числа х и у.
Вычислить их сумму, разность, произведение
и частное.
Вариант
3
-
Написать
программу, которая выводит на экран
первые четыре степени числа . -
Вычислить
периметр и площадь прямоугольного
треугольника по длинам а и b двух катетов.
Вариант
4
1.
Дана длина ребра куба. Найти площадь
грани, площадь полной поверхности и
объем этого куба.
2.
Три сопротивления R1 , R2 , R3 соединены
параллельно. Найдите сопротивление
соединения.
Вариант
5
1.
Дана сторона равностороннего треугольника.
Найти площадь этого треугольника,
его
высоту, радиусы вписанной и описанной
окружностей.
2.
Известна длина окружности. Найти площадь
круга, ограниченного этой окружностью.
Вариант
6
1.
Составить программу для вычисления
пути, пройденного лодкой, если ее скорость
в
стоячей воде V
км/ч, скорость течения реки V1
км/ч, время движения по озеру t1 ч, а
против течения реки — t2 ч.
2.
Найти радиус основания конуса, если
даны высота и объем конуса.
Вариант
7
1.
Найти площадь кольца, внутренний радиус
которого равен r, а внешний — R (R> r).
2.
Треугольник задан величинами своих
углов (в градусах) и радиусом описанной
окружности. Найти стороны треугольника.
Вариант
8
1.Найти
площадь равнобедренной трапеции с
основаниями а, b и углом
при большем основании а.
2.
Вычислить корни квадратного уравнения
ах2+
bх + с = 0 с заданными коэффициентами a, b
и с (предполагается, что а ≠ 0 и что
дискриминант уравнения неотрицателен).
Вариант
9
-
Вычислить
высоты треугольника со сторонами а, b,
с. Высоты можно выразить из формулы:
,
где -
Составить
программу вычисления объема цилиндра
и конуса, которые имеют одинаковую
высоту Н и одинаковый радиус основания
R.
Вариант
10
1.
Дано действительное число х. Не пользуясь
никакими другими арифметическими
операциями, кроме умножения, сложения
и вычитания, вычислить за минимальное
число операций
2х4-3x3
+ 4х2-5х
+6.
2.
Найти сумму членов арифметической
прогрессии, если известны ее первый
член, знаменатель и число членов
прогрессии.
Вариант
11
1.
Составить программу вычисления объема
цилиндра и конуса, которые имеют
одинаковую высоту Н и одинаковый радиус
основания R.
2.
Дано значение х. Получить значения
выражения 2x + 3x2
– 4х3
и 1 + 2х + 3х2
+ 4х3.
Позаботиться об экономии операций.
Вариант
12
1.
Найти площадь треугольника, две стороны
которого равны а и b, а угол между этими
сторонами с.
2.
Дана величина А, выражающая объем
информации в байтах. Перевести А в более
крупные единицы измерения информации.
Вариант
13
1.
Дано значение х. Получить значения
выражения 5x – 2x2
– 6х3
и 1 + 2х + 2х2
+ 6х3.
Позаботиться об экономии операций.
2.
Найти синус угла треугольника, две
стороны которого равны а и b, а площадь
равна S.
Вариант
14
-
Дана
величина А, выражающая объем информации
в битах. Перевести А в байты, в килобайты,
в мегабайты. -
Дано
значение а, не используя никаких функций
и никаких операций, кроме умножения,
получить а8
за три операции.
Вариант
15
1.
Дано значение а, не используя никаких
функций и никаких операций, кроме
умножения, получить а10
за четыре операции.
2.
Найти площадь круга, вписанного в
треугольник с заданными сторонами.
Вариант
16
1.Составить
программу вычисления объема усеченного
конуса, если известны радиусы оснований
R
и r,
высота усеченного конуса h.
2.
Найти радиус вписанной в треугольник
окружности, если даны стороны треугольника.
Вариант
17
1.Три
сопротивления R1, R2, R3 соединены параллельно.
Найти сопротивление соединения.
2.
Вычислить площадь поверхности куба и
его объем по стороне а.
Вариант
18
-
Вычислить
радиус окружности и площадь круга, если
известна длина окружности. -
Известен
синус одного из углов треугольника и
стороны а, b, образующие этот угол. Найти
третью сторону треугольника.
Вариант
19
1.
Заданы координаты трех вершин треугольника
(х1 , у1,), (х2 , y2), (х3, У3). Найти площадь
треугольника.
2.
Даны два действительных числа х и у.
Вычислить значение выражения 3x+4y2-5.
Вариант
20
-
Написать
программу, которая выводит на экран
значение объема куба, если известна
площадь полной поверхности куба. -
Вычислить
площадь прямоугольного треугольника
по длинам катета а и гипотенузы с.
Вариант
21
1.
Дана площадь грани куба. Найти площадь
полной поверхности и объем этого куба.
2.
Три сопротивления R1 , R2 , R3 соединены
параллельно. Найдите сопротивление R3,
если известны сопротивления R1, R2 и общее
сопротивление R.
Вариант
22
1.
Дана площадь равностороннего треугольника.
Найти сторону этого треугольника,
его
высоту, радиусы вписанной и описанной
окружностей.
2.
Найти длину окружности, если известна
площадь круга.
Вариант
23
1.
Три сопротивления R1 , R2 , R3 соединены
последовательно. Найдите сопротивление
R3, если известны сопротивления R1, R2 и
общее сопротивление R.
2.
Дан радиус основания и объем конуса,
найти высоту конуса.
Вариант
24
1.
Найти внутренний радиус кольца R1, если
известны внешний радиус R2 (R2 > R1) и
площадь кольца.
2.
Дана высота и объем конуса, найти радиус
основания конуса.
Вариант
25
1.
Дана равнобедренная трапеция с основаниями
a и b. Найти угол
при большем основании а, если известны
площадь и длины оснований.
2.
Вычислить корни уравнения ах2+
bх = 0 с заданными коэффициентами a и b
(предполагается, что а ≠ 0 и что уравнение
имеет решение).
Вариант
26
-
Вычислить
высоты треугольника со сторонами а, b,
с. Высоты можно выразить из формулы:
,
где -
Составить
программу вычисления объема цилиндра
и конуса, которые имеют одинаковую
высоту Н и одинаковый радиус основания
R.
Вариант
27
-
Дано
действительное число х. Не пользуясь
никакими другими арифметическими
операциями, кроме умножения, сложения
и вычитания, вычислить за минимальное
число операций
2х5 – 3×3 + 2х2 – 3х + 2. -
Найти
n – число членов арифметической прогрессии,
если известны ее первый член – a1,
знаменатель q и сумма n членов прогрессии.
Вариант
28
-
Составить
программу вычисления объема конуса,
если известны объем цилиндра и радиус.
Цилиндр имеет одинаковую высоту Н и
одинаковый радиус основания R с конусом. -
Дано
значение х. Получить значения выражения
4x + 3x2
– 7х3
и 1 + 4х + 3х2
+ 7х3.
Позаботиться об экономии операций.
Вариант
29
1.
Найти площадь треугольника, две стороны
которого равны а и b, а угол между этими
сторонами 300.
2.
Дана величина А, выражающая объем
информации в байтах. Перевести А в
гигабайты и мегабайты.
Вариант
30
1.
Дано значение х. Получить значения
выражения 3x – 8x2
– 9х3
и 1 + 3х + 8х2
+ 9х3.
Позаботиться об экономии операций.
2.
Найти синус угла треугольника, две
стороны которого равны а, b и с.
Вариант
31
-
Дана
величина А, выражающая объем информации
в битах. Перевести А в гигабайты. -
Дано
значение а, не используя никаких функций
и никаких операций, кроме умножения,
получить а7
за четыре операции.
Вариант
32
1.
Дано значение а, не используя никаких
функций и никаких операций, кроме
умножения, получить а12
за четыре операции.
2.
Найти площадь круга, вписанного в квадрат
с заданной стороной.
Вариант
33
1.Составить
программу вычисления объема усеченного
конуса, если известны радиусы оснований
R1
и R2
и объем цилиндра с основанием равным
радиусу R1.
2.
Найти радиус вписанной в треугольник
окружности, если даны стороны треугольника.
Вариант
34
1.
Найти площадь круга, описанного около
квадрата с заданной стороной.
2.
Дано значение х. Получить значения
выражения 5x – 3x2
– 9х3
и 1 + 5х + 3х2
+ 9х3.
Позаботиться об экономии операций.
Вариант
35
1.
Дано значение а, не используя никаких
функций и никаких операций, кроме
умножения, получить а14
за пять операций.
2.
Найти площадь круга, описанного около
правильного треугольника с заданной
стороной.
Формулы
Теорема
косинусов:
Теорема
синусов:
Cокр=2r
Sкруга
=r2
,
где
,
где
,
где r
– радиус вписанной окружности, R
– радиус описанной окружности, p
– полупериметр.
–
для параллельного соединения
R=R1+R2+R3
– для последовательного соединения
Равносторонний
треугольник:
,
,,.
–
скорость
,
,
Контрольные
вопросы:
-
Как
запустить программу на трансляцию и
выполнение? -
Как
записываются операторы начала и конца
программы? -
Из
каких разделов состоит программа на
языке Pascal? -
В
какой последовательности должны быть
записаны разделы программы на языке
Pascal? -
Как
записываются операторы вывода на экран
в Pascal?
Практическая
работа 7
Тема:
Составление линейных программ. Описание
графической области логическими
выражениями
Цель
работы: научиться
использовать логические отношения при
решении математических задач.
Теоретическая
часть
Логические
операции
выполняются над операндами булева типа.
Имеются четыре логические операции:
Not
— отрицание; And
—
логическое умножение (конъюнкция); Оr
— логическое сложение (дизъюнкция).
Кроме этих трех обязательных операций
в Турбо Паскале имеется еще операция
— исключающее
ИЛИ. Ее
знак — служебное слово Хоr.
Это двухместная операция, которая в
результате дает значение истина,
если оба операнда имеют разные логические
значения.
В
Паскале логические значения обозначаются
служебными словами false
(ложь) и true
(истина), а идентификатор логического
типа — boolean.
Кроме величин (констант и переменных)
типа boolean
логические значения false,
true
принимают результаты операций отношения.
Операции
отношения имеют самый низкий приоритет.
Поэтому если операндами логической
операции являются отношения, то их
следует заключать в круглые скобки.
Например, математическому неравенству
1 ≤ х
≤
50
соответствует следующее логическое
выражение: (1<=Х) And
(X<=50)
Логическое
выражение есть
логическая формула, записанная на языке
программирования. Логическое выражение
состоит из логических операндов,
связанных логическими операциями и
круглыми скобками. Результатом
вычисления логического выражения
является булева величина (false
или true).
Пример.
Для
данной области составить программу,
которая печатает true,
если точка с координатами (x,
y)
принадлежит закрашенной области, и
false
– в противном случае.
Решение:
Для
того чтобы решить данную задачу, нужно
описать закрашенную область с помощью
неравенств. Для этого найдем для всех
линий на рисунке уравнения. Будем
считать, что границы области входят в
закрашенную часть.
-
Найдём
уравнение прямой AB.
Точки A(5;
7) и B(-6;
-5) выбираем сами по рисунку. Используем
формулу уравнения прямой, проходящей
через две точки:
.
Получим,
т. е.,
следовательно.
Получаем уравнение:. -
Найдём
уравнение прямой CD.
Точки C(7;
1) и D(-4;
-5) выбираем сами по рисунку. Составим
уравнение:
.
Получаем уравнение. -
Найдем
уравнение окружности по формуле:
,
где (x0;
y0)
– центр окружности, R
– радиус окружности. В нашем случае
центр – (0; 0), радиус равен 5. Получаем
. -
Закрашенная
область находиться ниже прямой AB,
значит, точки области удовлетворяют
условию:
.
Закрашенная область выше прямойCD,
значит, точки области удовлетворяют
условию:
.
Кроме того, искомая область находится
внутри окружности, значит. -
Э
Алгоритм
решения задачи сводится к следующему:-
Вводим
координаты точки (x,
y). -
Проверяем
выполнение системы неравенств. -
В
случае положительного результата
выводим сообщение true,
в противном случае – false.
ти условия должны выполняться
одновременно, т. е. должна выполняться
система неравенств: -
Программа
program
a1;
var
x, y:real; z: boolean;
begin
writeln
(‘Введите
x, y’);
readln
(x,y);
z:=(y<=12/11*x+17/11)
and (y>=6/11*x-31/11) and (sqrt(sqr(x)+sqr(y))<=5);
writeln
(z);
readln
end.
Задание
Для данной
области составить программу, которая
печатает true,
если точка с координатами (x,
y)
принадлежит закрашенной области, и
false
– в противном случае.
Вариант
1 Вариант 2 Вариант 3
Вариант
4 Вариант 5 Вариант 6
Вариант
7 Вариант 8 Вариант 9
Вариант
10 Вариант 11 Вариант 12
Вариант
13 Вариант 14 Вариант 15
Вариант
16 Вариант 17 Вариант 18
Вариант
19 Вариант 20 Вариант 21
Вариант
22 Вариант 23 Вариант 24
Вариант
25 Вариант 26 Вариант 27
Вариант
28 Вариант 29 Вариант 30
Вариант
31 Вариант 32 Вариант 33
Вариант
34
Контрольные
вопросы:
-
Как записать
уравнение окружности и прямой? -
Какие логические
операции применяются в логических
выражениях? -
Какие значения
принимают логические выражения?
Практическая
работа 8
Тема:
Составление разветвляющихся программ.
Вычисление значения функции
Цель
работы:
научиться правильно использовать
условный оператор if, научиться составлять
программы решения задач на разветвляющиеся
алгоритмы.
Общие
сведения
Разветвляющимися
алгоритмами
называются алгоритмы, в которых выбирается
один из нескольких возможных путей
(вариантов) вычислительного процесса.
Каждый подобный путь называется ветвью
алгоритма
П
если
условие
то
серия команд
кв
если
условие
то
серия команд1
иначе
серия команд 2
кв
олная форма ветвления
Сокращенная
форма ветвления
Условный
оператор
IF
условие
THEN
оператор1
ELSE
оператор2;
(если
условие, то
оператор1,
иначе
оператор2)
Если
в качестве оператора должна выполнятся
серия операторов, то они объединяются
в операторные скобки Begin
– End.
Пример
№ 1 Даны
два числа а и в. Найти наибольшее из них
и вывести на экран.
Программа
Program
primer1; {название
программы}
Var
a,
b:
real; {описание
переменных: вещ.}
Begin {начало}
Writeln
(‘Введите
числа А и В’); {вывод текста}
Readln
(a,
b); {ввод
чисел через пробел}
If
a>b
then
writeln
(a) else
if
A=B
then writeln
(‘A=B’) else
writeln
(b); {сравнение
и
вывод
наибольшего}
End. {конец
программы}
Пример
№ 2 Написать
программу для вычисления значений
значение функции
паскаль
программирование
Бурмистрова Валентина Ивановна- учитель информатики средней специализированной школы №6 г. Ащхабада
Составление простейших программ ,
содержащих вычисления по формулам
Алгоритм в виде блок-схем
Начало программы
Раздел переменных
Начало раздела операторов
Ввод данных
Команда присваивания
Запись на алгоритмическом языке
Математические функции Паскаля
Вывод данных
Конец программы
Задания
начало
ввод
Присваивание,
вычисление
вывод
конец
Program P1;
Имя программы должно состоять из одного слова, не совпадающего ни с одним из слов программы.
Var a1,a2,…,aN: Integer;
Именем переменной в Паскале может служить любая последовательность цифр, латинских букв и знака подчеркивания, не начинающаяся с цифры.
b
n
i
е
g
После этого слова не ставят никаких знаков препинания.
ReadLn и Read
ReadLn читается “рид’лайн”, переводится “читай строку”. Он приказывает компьютеру остановиться и ждать, когда человек введет с клавиатуры определенную информацию, после чего продолжить работу. В частности, ReadLn (a,b) будет ждать ввода двух целых чисел
:=
Оператор присваивания состоит из знака присваивания := , слева от которого пишется переменная, а справа – число, переменная или выражение. При выполнении оператора присваивания компьютер “в уме” (то есть ничего не показывая на мониторе) вычисляет правую часть и присваивает вычисленное значение переменной, стоящей в левой части.
ДЕЙСТВИЕ
2 + 3
РЕЗУЛЬТАТ
5
4 – 1
СМЫСЛ
3
2 * 3
плюс
6
минус
10 / 5
17 div 5
умножить
2
3
17 mod 5
разделить
2
целочисленное деление
остаток от целочисленного деления
ДЕЙСТВИЕ
Sqr (5)
РЕЗУЛЬТАТ
25
Sqrt (25)
СМЫСЛ
5
Pi
возведение в квадрат
3.1415…
Frac (23.192)
корень квадратный
Int (3.98)
0.192
число пи
3.0
Round (5.8)
дробная часть числа
6
Abs ( -20)
целая часть числа
Random
20
округление
0.73088
абсолютная величина (модуль) числа
Random (200)
случайное число из диапазона (0 – 1)
106
случайное целое число из диапазона (0 – 199)
Write WriteLn
Оператор WriteLn – читается “райт ‘лайн” , переводится – ПИШИ СТРОКУ. Правила его записи и выполнения те же, что и у Write, с одним исключением – после выполнения оператора Write следующий оператор Write или WriteLn печатает свою информацию в той же строке, а после выполнения оператора WriteLn – с начала следующей.
d
е
n
З адания для написания программ с использованием линейного алгоритма
треугольник
2 круга
формула Герона3
Значение функции
Значение функции 2
Радианы – градусы
градусы – радианы
Цельсий – Фарренгейт
Дано значение угла в градусах.
Найти его знcачение в радианах
Найти значение функции
Фарренгейт – Цедьсий
Роменять местами значения переменных
Даны катеты прямоугольного треугольника.
Найти гипотенузу и периметр этого треугольника
Даны два круга с общим центром и радиусами R1и R2.
Найти площадь кольца, образованного этими кругами.
Даны координаты трёх вершин треугольника:(x1,y1),(x2,y2),(x3,y3).
Найти его площадь и периметр по формуле Герона.
Найти значение функции
Найти значение функции
Дано значение угла в градусах.
Найти его значение в радианах
Дано значение угла в радианах.
Найти его значение в градусах.
Дано значение температуры в градусах Цельсия.
Найти значение в градусах Фаренгейта.
Дано значение температуры в градусах Фаренгейта.
Найти значение в градусах Цельсия.
Поменяйте местами значения переменных a и b
var a,b,c:integer;
var a,b,c:integer;
begin
begin
writeln(‘a=’);
writeln(‘a=’);
read(a);
read(a);
writeln(‘b=’);
b:=a;
writeln(‘b=’,b);
read(b);
writeln(‘b=’);
c:=a;
a:=b;
read(b);
b:=c;
a:=b;
writeln(‘a=’,a,’, b=’,b)
writeln(‘a=’,a)
end.
end.