Урок 3. Типы данных. Функции. Линейные программы. Учитель: Смирнова Гузэль Хадиевна Гимназия №122, г. Казань
На предыдущем уроке вы познакомились с представителями вещественного и целого типов. На самом деле и тот и другой имеет несколько видов отличающихся диапазоном допустимых значений. В следующей таблице приведены 5 стандартных целых типов Урок №3. тип значение формат SHORTINT -128..127 Знаковый INTEGER -32768..32767 Знаковый LONGINT -2147483648.. –2147483647 Знаковый BYTE 0..255 Беззнаковый WORD 0..65535 Беззнаковый
и 5 стандартных вещественных типов Урок №3. тип значение Число значащих чисел REAL 2.9*10-39..1.7*1038 11..12 SINGLE 1.5*10-45..3.4*1038 7..8 DOUBLE 5.0*10-324..1.7*10308 15..16 EXTENDED 3.4*10-4932..1.1*104932 19..20 COMP -2*1063+1..+2*1063-1 19..20
Арифметические выражения строятся из имен переменных, констант, знаков операций и круглых скобок так, как это принято в математике. При вычислении их значений операции выполняются в порядке приоритета: *, /, DIV, MOD, а затем + и -. Операции одинакового старшинства выполняются слева направо. Наряду с переменными и константами в арифметические выражения можно включать функции. При определении значения выражения прежде всего вычисляются значения входящих в него функций. В Паскале имеются следующие стандартные функции Арифметические выражения
Арифметические функции функция назначение Тип результата ABS(X) Абсолютное значение Х Тип аргумента ARCTAN(X) Арктангенс Х Вещественный COS(X) Косинус Х Вещественный EXP(X) ех Вещественный FRAC (X) Дробная часть Х Вещественный
Арифметические функции INT(X) Целая часть Х, обнуление дробной части Вещественный LN(X) Натуральный логарифм Вещественный PI Значение PI=3.1415926535897932385 Вещественный ROUND(X) Округление до ближайшего целого Целый SIN(X) Синус Х Вещественный SQR(X) Квадрат Х Тип арг-та SQRT(X) Квадратный корень Х Вещественный TRUNC(X) Отбрасывание дробной части Целый
Арифметические операции. В языке Pascal используется 6 арифметических операций. арифметическая операция (а=14,b=4) результат сложение (+) S:=a+b S=18 вычитание (-) S:=a-b S=10 умножение (*) S:=a*b S=56 деление (/) S:=a / b S=3.5 целочисленное деление S:=a div b S=3 остаток от целочисленного деления S:=a mod b S=2 Нет возведения в степень. Если степень целая, её заменяют умножением: а3 ↔ S:=a*a*a Для возведения числа в произвольную степень используется следующее соотношение: xy=exр(y*ln(x))
Задача 1 Заданы два целых числа k и d. Используя только арифметические операции, найдите целую и дробную части от деления k на d.
program zadacha2_5; var a,drobn:real; k,d,cel:integer; Begin writeln('введите два числа'); readln(k,d); cel:=k div d; {целочисленное деление} a:=k/d; {обычное деление} drobn:=a-cel; writeln('целая часть - ',cel); writeln('дробная часть - ',drobn:0:2); Еnd.
Вызвать программу
Можно ли было в данной программе все переменные определить как integer или как real? Попробуйте и проанализируйте. Задача 2 Дано трёхзначное число. Чему равны его цифры?
Вывод Введите число ввод а c1:=a div 100;c2:=(a mod 100) div 10; c3:=a mod 10; Вывод С1,C2,C3 конец Начало Блок – схема программы
program zadacha2_6; var a,с1,с2,с3:integer; Begin writeln('введите трёхзначное число '); readln(a); c1:=a div 100; c2:=(a mod 100) div 10; {илиc2:=(a div 10) mod 10;} c3:=a mod 10; writeln('первая цифра -',c1); writeln('вторая цифра -',c2); writeln('третья цифра -',c3); Еnd. Задача 3
Вызвать программу
Дано действительное число a. Используя только пять операций умножения получить a15. Задача 4 program zadacha2_7; var a,b,c,d,s:longint; Begin writeln('введите число a'); readln(a); b:=a*a; {вторая степень} с:=b*b; {4 степень} d:=c*a; {5 степень} s:=d*d*d; {15 степень} writeln('результат = ',s); Еnd.
Вызвать программу
Задача 5 Заданы a, x, y. Вычислите S=| a | + x+ y 2 program zadacha2_8; var a,x,y,s:real; Begin writeln('введите число x '); readln(x); writeln('введите число y '); readln(y); writeln('введите число a '); readln(a); s:=abs(a)+sqrt(x+sqr(y)); writeln('s =',s); End.
Вывод Введите x,y,a ввод x,y,a s:=abs(a)+sqrt(x+sqr(y)); Вывод s конец Начало Блок – схема программы Задача. Заданы a, x, y. Вычислите S=| a | + x+ y 2
Вызвать программу
Задача 6 Задан радиус (целое число). Вычислить площадь круга и длину окружности. program zadacha2_9; var r:integer; l,s:real;{подумайте, какой тип данных необходимо записать} Begin writeln('введите радиус окружности r '); readln(r); l:=2*pi*r; s:=pi*sqr(r); writeln('площадь круга = ',s,' длина окружности = ',l); End.
Вывод Введите радиус ввод r I:=2*pi*r s:=pi*sqr(r) Вывод S,I конец Начало Блок – схема программы
Вызвать программу
Заменяя в программе функцию int() на функции trunc(), round(), frac() и правильно используя типы данных, заполните таблицу: Задача 7 -3.7 -3.2 -3 3.2 3.7 3 Int(x) Trunc(x) Round(x) Frac(x)
program zadacha2_10; var a:real; d:real; Begin writeln('введите число '); readln(a); d:=int(a); writeln('результат - ',d); End. Задача 7
Вызвать программу
Заданы x, y. Вычислите S = x y. Воспользуемся формулой xy=exр(y*ln(x)) Задача 8 program zadacha2_11; var x,y:integer;s:real; Begin writeln('Введите число');readln(x); writeln('Введите степень');readln(y); s:=exp(y*(ln(x))); writeln(x,' в степени ',y,' = ',s:9:3); End.
Вызвать программу
1. Запишите на Паскале следующие выражения Задания. а) с) e) b) d) f)
2. Найдите значения переменных, если это возможно. Учтите, что число 7.0 является вещественным, т.к. оно имеет дробную часть, хотя и равную нулю. Операции MOD и DIV можно выполнять только над целыми числами (Урок 2): a) A:=21 DIV 5 b) A:= 2 MOD 3 B:= 20 MOD 5 B:= 36.0 MOD 6 C:= 14 DIV 6.0 C:= 81 DIV 0 D:= 14 MOD 0 D:= 38 DIV 6 E:= 5 MOD 13 E:= 3 DIV 2 Задания.
3. Найдите значения переменных, если это возможно: a) A:=SQR(100) b) A:=sqrt(9) B:=sqrt(100) B:=SQR(9) C:=SQR(-10) C:=SQRT(-9) D:=SQRT(-10) D:=SQR(-9) E:=SQR(0.9) E:=SQRT(0.0) F:=SQRT(0) F:=SQR(0.1) Задания.
5. Запишите по правилам языка программирования следующие выражения: 4. Найдите значения переменных, если это возможно: a) A:=ROUND(6.9) b) A:=ROUND(15.39) B:=ROUND(6.48) B:=ROUND(15.8) C:=TRUNC(9.5) C:=TRUNC(-39) D:=FRAC(9.5) D:=FRAC(39) E:=INT(9.5) E:=INT(39) F:=TRUNC(-17) F:=TRUNC(5.6) G:=FRAC(17) G:=FRAC(-0.3) H:=INT(-17) H:=INT(1.25) Задания.
Задания. a) d) g) b) e) h) c) f) i)