Паскаль real что это за программа
В Паскале используется несколько типов представления числовых значений, на начальном этапе будут рассмотрены лишь некоторые из них:
integer – целые числа в интервале от -2147483648 до 2147483647
real – вещественные (реальные) – целые и дробные положительные и отрицательные числа
Описания констант в декларативной части производится перед переменными, и предусматривают определенную форму записи чисел (дополнительно тип константы не оговаривается): если константа записана с точкой, тип константы считается real. При записи значения константы используется знак равенства.
Пример описания констант:
c1=3.14159265; // с1 имеет тип real
с2=2; // c2 имеет тип integer
Переменная – это вид объектов в программе, предназначенный для хранения информации во время выполнения программы. По правилам Паскаля каждая переменная должна быть объявлена, т.е. описана в декларативной части программы.
Переменная не имеет какого-либо конкретного значения до тех пор, пока компьютеру не будет дано точное предписание, поместить что-либо определенное в соответствующую ячейку памяти.
Урок по Pascal. Тип Данных Real.
На Паскале такого рода предписание обычно выражается предложением назначения, имеющим вид:
имя_переменной:=выражение_или_значение
например: a:=25; или rt:=a+b;
Выполнение такого предложения начинается вычислением выражения, стоящего справа от символа назначения (:=). Полученное значение потом помещается в переменную (присваивается ей), указанную слева от =:
Описание переменных следует за описанием констант. В описании переменных после двоеточия указывается тип переменной:
var a,d,c : integer;
В Паскале возможны следующие действия (группы операций записаны в порядке приоритета):
1) Операция возведения в степень (в стандартном Паскале отсутствует) – функция i:=power(x,y), где i — результат, x — основание, y — степень;
2) умножение ( * ), деление ( / ), деление целочисленное (div), получение остатка от целочисленного деления (mod);
3) сложение ( + ), вычитание ( — ).
В пределах одной группы приоритета порядок выполнения операций, если нет скобок, определяется последовательностью записи.
Если хотя бы одна из переменных, используемых в операциях умножения, сложения, вычитания относится к типу real, результат операции будет типа real.
Результат операции деления всегда типа real. Результат операций div и mod — integer.
Пример записи математической операции:
в программе на Паскале это будет выглядеть так:
Примечание. Квадрат числа sqr(c) можно (и проще!) записать как с*с
Обратите внимание на использование знака операции присваивания :=
При проведении математических операций следует учитывать, что вещественные числа (real) представляются с некоторым приближением.
Некоторые стандартные математические функции
При использовании стандартных функций необходимо контролировать тип аргумента (возможные типы указаны в скобках).
PASCAL. Урок 2. Вывод (read/readln). типы данных(integer, real), переменные. ПАСКАЛЬ
a:=random(x) – случайное число (если аргумент не указан, то результат real – число в интервале от 0 до 1, если x целое число от 0 до 65535, то результат случайное целое число в интервале от 0 до х-1;
a:=abs(x) – модуль (абсолютная величина) x (real или integer);
a:=int(x) – целая часть числа x (число real, результат integer), округление не проводится, дробная часть отсекается;
a:=frac(x) – дробная часть числа x (число и результат real),
a:=round(x) – целое число, полученное в результате округления числа x по правилам математики
a:=sqr(x) – квадрат числа x (real, integer);
a:=sqrt(x) – квадратный корень из числа x (real, x>0);
a:=sin(x) – синус x (x задается в радианах, real);
a:=cos(x) – косинус x (x задается в радианах, real);
a:=arctan(x) – арктангенс x (real);
а:=power(x,y) – степень числа
Наберите следующую программу и разберитесь в ее работе:
Вычислить сумму цифр трехзначного числа a, введенного с клавиатуры. В программе каждая цифра определяется как количество сотен, десятков и единиц с помощью арифметических операций.
var a, s, d, e, o : integer;
writeln(‘Сумма цифр трехзначного числа’);
write(‘Введите целое трехзначное число ‘);
writeln(‘Сумма цифр трехзначного числа=’, s+d+e);
writeln(‘Сумма цифр трехзначного числа=’, s+d+e);
Выполните задания с Begin9° по Begin30° по электронному задачнику (стр.11). Открыть его можно в режиме Помощь – Электронный задачник РТ.
Задачи для самостоятельного решения
1. Составить программу, чтобы компьютер по закону Ома для участка цепи, запрашивая с клавиатуры значения напряжения на концах участка и его сопротивления, определял и выводил на экран значение силы тока (I=U/R).
Источник: www.sites.google.com
Тип данных Real.
Тип REAL (вещественный). Число типа REAL занимает три слова (шесть байтов). При работе с вещественными числами нужно помнить, что на любом отрезке вещественной оси существует бесчисленное множество чисел. Поскольку для кодирования вещественного числа отведено всего шесть байтов памяти, то расчеты выполняются всегда с конечной точностью, которая зависит от формата числа.
Вещественное число записывается и хранится в памяти компьютера в виде X=m*B n , где m – мантисса, В – основание представления числа с плавающей точкой, n – порядок (целое число). Имеют место ограничения –M1
Так, для типа REAL основание В равно 10. Размер мантиссы 11—12 десятичных чисел. Диапазон десятичного порядка равен [-39, +38]. Таким образом, на отрезке оси вещественных чисел в заданном диапазоне можно закодировать только конечное число значений, а поскольку на оси таких чисел бессчетное множество, то выбирается интервал, «дискрет», на который этот диапазон (отрезок) делится.
Число таких интервалов конечно. Каждый дискрет ставится в соответствие значению вещественного числа. Конечное множество определенных таким образом представителей вещественных чисел называется континуумом. Результаты вычислений округляются до чисел этого множества, поэтому необходимо говорить о точности вычислений.
Округление результата происходит до ближайшего вещественного числа большего данного по модулю. Следует также отметить, что эти интервалы не являются равными. В соответствии с полулогарифмическим способом своего представления интервалы «растягиваются» с увеличением порядка. Наибольшая точность расчетов достигается в центральной части диапазона изменения вещественного числа X (например, в районе 1.0Е+00 погрешность вычислений 0,00000000001), и наименьшая — на его краях (например, в окрестностях числа 1.0Е+38 погрешность вычисления равна 1000000000000000000000000000).
Существует две формы отображения вещественных чисел (таблица 4): полулогарифмическая (с плавающей точкой) и естественная (с фиксированной точкой).
Над вещественными числами определены операции сложения (+), вычитания (-), умножения (*) и деления (/). Операция возведения в степень не предусмотрена.
Использование типа REAL у начинающего программиста часто вызывает ряд ошибок, приводящих к искажению результата по следующим причинам:
- ошибки ввода — недостаточная точность исходных данных при сборе, подготовке и их вводе в ЭВМ;
- ошибки представления обуславливаются ограниченной точностью внутреннего представления данных в конкретной ЭВМ, используемой для расчетов;
- ошибки вычислений возникают за счет несовершенства математических методов, выбранных для решения задачи. Необходимо оценивать погрешность и держать ее в заданных пределах.
Источник: mojainformatika.ru
#4 Real Вещественный тип данных в Паскаль. Неявное приведение типа. Примеры
Тип Real служит для описания и хранения данных, являющихся вещественными числами.
Переменные типа Real
Переменные типа real могут быть объявлены стандартным способом (подобно integer):
var a, b: real;
Таким переменным можно присваивать литералы вещественных чисел:
var a, b: real; begin a := 2.5; b := 2.0; end.
А также результаты любых арифметических выражений:
var a, b: real; begin a := 2.5; b := a/2 + a*3*2.0; // запоминаем результат выражения end.
Сравнение с Real с Integer
Выражения, возвращающие Integer
Если значение арифметического выражения присваивается переменной типа integer, то в него должны входить только:
- целочисленные литералы
- или целочисленные переменные.
- Над указанными операндами должны выполняться операции (только эти — без операции деления):
- $+$ суммы (сложения)
- $-$ разности (вычитание)
- $*$ произведения (умножение)
Выражения, возвращающие Real
Если результат некоего арифметического выражения присваивается переменной типа real, то в это выражения могут входить любые операнды и целого и вещественного типа и над ними могут выполняться все четыре операции:
- $+$ суммы (сложения)
- $-$ разности (вычитание)
- $*$ произведения (умножение)
- $/$ деление («отношение»)
Можно сказать что тип, который возвращается выражением (тип его результата) определяется двумя моментами:
- типом операций (допустимые перечислены выше)
- типом операндов
Неявное приведение (преобразование) типа
Неявное приведение типа — это процесс преобразования типа без каких-то особо записанных в коде инструкций, которые бы явно указывали на то, что выполняется преобразование.
Когда неявное приведение имеет место быть
Неявное приведение типа возможно в двух случаях:
-
В ходе операции присваивания — когда переменной типа real присваивается любое значение типа integer.
Например:
var a : real; begin a := 7;
О втором случае поговорим подробнее.
Если в арифметическом выражении присутствуют целые числа (переменные, литералы или результаты подвыражений типа integer) и эти числа участвуют в одной операции с типом real, то:
- сначала целые числа будут приведены Паскалем к типу real (так как real может хранить любые данные типа integer, а обратное не верно)
- а затем уже будет вычислен результат арифметической операции, который тоже будет иметь тип real
Пусть у нас есть выражение:
a : real; begin a = 5 + 2.0; // запоминаем результат выражения в переменную
— этом случае вычисления будут проходить так («под капотом» языка Паскаль):
5 + 2.0 = 5.0 + 2.0 = 7.0 // получили число 7, но типа real
— знание этой особенности позволяет правильно определить тип переменной для хранения результата выражения.
Что к чему приводится неявно
Если в арифметических выражениях если неявное приведение типа имеет место быть, то это всегда приведения integer к real как к более широкому и универсальному классу чисел.
Рассмотрим разные выражения и прокомментируем когда происходит неявное приведение типа, а когда нет и почему:
6 + 3.3 < — неявное приведения типа происходит, так как второй операнд имеет вещественный тип, а потому первый будет приведён к 6.0, а только потом вычислится сумма>4 + 8 < — без неявного приведения — оба операнда типа integer, сумма тоже типа integer>10 — 3/7 < — неявное приведения типа происходит, так как второй операнд (результат подвыражения 3/7) имеет вещественный тип (3/7 — это дробь примерно равная 0.4285714. ), а потому первый будет приведён к вещественному типу и станет = 10.0, а только потом вычислится разность>9.0 + 5 3 + 78
Присваивание несовместных типов. Что и чему можно присваивать
В операции присваивания оба операнда, должны , то есть переменная слева от оператора присваивания должна обладать тем же типом, что и значение справа от оператора присваивания (справа при этом, как мы говорили выше, могут быть данные любого вида — литералы, переменные или целые выражения).
Рассмотрим примеры присваивания переменным значений с комментариями, показывающими в каких строках ошибка:
var a,b : integer; begin a := 2; // справа и слева integer a := ‘2’; // ОШИБКА: справа символьный литерал, а слева integer b := 4; // справа и слева integer a := b+5; // справа и слева integer b := ‘123’; // ОШИБКА: справа строковый литерал, а слева integer a := b+5*2; // справа и слева integer a := b+5/2;
Вывод вещественных чисел на экран
Переменные, литералы и результаты выражений типа real можно выводить точно также как и целые числа (их переменные, литералы и выражения).
В некоторых реализациях Паскаля, при выводе на экран может использоваться экспоненциальная форма записи числа, то есть дробное число записывается (две особенности):
- в виде некоторого числа (обычно с одной цифрой в целой части), умноженного на $10$ в какой-то степени (вещественное число всегда подразумевается обладающим дробной частью, просто иногда она равна нулю, тогда число называют целым).
- вместо множителя $10$ используют букву $E$.
Примеры экспоненциальной записи чисел
- Так, например число $125.35$:
$$125.35 = 1.2535 * 100 = 1.2535 * 10^$$
в экспоненциальной форме может выглядеть так:
1.2535E2
5.567E-3
Разбор задач
Пример №1
Пусть есть задача:
Выведите на экран произведение чисел $5$ и $7.3$
Самое простое решение:
begin writeln(5*7.3); // выводим произведение литералов end.
Хотя по хорошему выводить данные с пояснениями, например используя в качестве первого аргумента литерал:
begin writeln(‘5*7.3 = ‘, 5*7.3); // выводим произведение литералов end.
Или пример с выводом произведения переменных:
var a: integer; // используем целый тип, так как 5 целое b: real; // 7.3 — вещественное число, а потому объявляем её тип как real begin a := 5; b := 7.3; writeln(‘otvet =’, a*b); // выводим произведение переменных end.
— тут вторым аргументом процедуры writeln() оказывается арифметическое выражение.
Ну и наконец, если требуется дополнительно записать результат арифметического выражения в переменную и уже потом вывести её значение, то:
var a: integer; // используем целый тип, так как 5 целое b: real; < мы будем записывать сюда 7.3 — вещественное число, а потому объявляем её тип как real >c: real; // для результата begin a := 5; b := 7.3; c := a*b; // сравниваем значения переменных и записываем результат в переменную «с» writeln(‘otvet =’, c); // выводим значение переменной на экран end.
Пример №2
Пусть есть задача:
Присвойте трем переменных значения $34$, $36.7$ и $7.3$, в четвертую переменную запишите разность между произведением первой и второй переменной и суммой второй и третей и выведете её значение на экран.
var a :integer; // для 34 достаточно типа integer b, c : real; // вторая и третья (дробные числа) d : real; // сюда запишем результат begin //для начала выполним присваивания по условию задачи a := 34; b := 36.7; c := 7.3; d := a * b — (b + c); // «разность между произведением первой и второй переменной и суммой второй и третей» writeln(d); // «и выведете её значение на экран» writeln(‘otvet: ‘, d); // то же самое, но c пояснением end.
Для переменной $d$ нам пришлось использовать тип real, так как выражении:
a * b — (b + c)
две переменные были вещественного типа, а значит переменная $a$ тоже была бы неявно приведена к вещественному типу (а её значение 34 к 34.0) и результат выражения имел вещественный тип, а присваивать результат вещественного типа переменной целого типа нельзя (об этому говорилось в этом уроке выше и в предыдущем уроке), как как в этом случае неявное преобразование для присваивания не сработает (см. выше первый случай когда имеет место быть неявное преобразование типов).
Видео-пояснения
Для данного урока есть следующие видео:
Вопросы http://fkn.ktu10.com/?q=node/8533″ target=»_blank»]fkn.ktu10.com[/mask_link]
Язык паскаль онлайн
Типы Переменных в Паскале – Var Real Integer Pascal – Отличие String от boolean и char
-
Browse: Home / Самоучитель паскаль онлайн / Типы Переменных в Паскале – Var Real Integer Pascal – Отличие String от boolean и char
Одно из из самых основных понятий в паскале это понятие переменной . В данном уроке
мы разберем что такое переменная , для чего она нужна и что с ней можно делать.
Для простоты понятия переменной , мы будем представлять её в качестве некой коробки , которая в свою очередь имеет свое имя ( адрес , по которому мы будем ссылаться на неё ) и значение внутри «коробки» ( переменной ). И в дальнейшем свой тип.
В данном случае мы имеем некую переменную с именем «a» , значение которой принимает число 17. В паскале такое выражение записывается так a:= 17;. Обратите внимание на знак := ( двоеточие и равно , означает присвоить ) пробелы между ними и перед ставить не нужно.
Следует заметить , что имена переменных могут состоять из отдельных слов , например age:= 21; или my_age:= 21;. В названии переменных можно использовать латинские буквы , арабские цифры , а также символ подчеркивания _ . Использовать цифры в начале переменной нельзя ! ( 21age:= 21; ).
Переменные name и NaMe совершенно одинаковые , то есть паскаль не обращает внимания на регистр переменных.
Как видно из картинки выше , переменные могут нести в себе не только целые значения ( integer ), но и вещественные и строковые и некоторые другие.
a:= 3.5; — Вещественная переменная real
b:= «Hello»; — Строковая переменная string
Целочисленный тип переменной
Целочисленные переменные это переменные , которые несут в себе значение целых чисел например :
3 , 17 , 10 , — 5 ,
Пример объявления такой переменной ( переменные объявляются в блоке var ) :
x , y : integer ;
Дополнительно о типе integer можно прочесть здесь
Вещественный тип переменной
Вещественные переменные несут в себе нецелые числа . Например 3.5 , 2.7 . 1/2 тоже является вещественным значением и равна 0.5
Пример объявления такой переменной :
x , y : real ;
Подробное описание real здесь
Строковой тип переменной
Строковые переменные несут в себе символы или последовательность символов. Значение такой переменной строго записывается в кавычках. Например b:= «hello»;
Пример объявления такой переменной :
t , t1 : string ;
Читать что такое тип данных string
Существуют ещё два типа переменных . Логический ( boolean ) и символьный ( char ). Их подробное описание есть здесь и здесь .
Переменные логического типа имеют только два значения true и false , а переменные символьного типа несут в себе только один символ. ( Явная схожесть с строковых типом , однако в строковой переменной можно использовать сразу несколько символов , в отличии от символьного , в котором можно использовать только один символ )
Читать Паскаль Обмен значениями двух переменных
Пример объявления символьной переменной :
Пример объявления логической переменной :
f : boolean ;
Переменные имеют свою диапазон значений , к примеру переменная типа integer(целочисленная) не может превышать значение 32767 или быть меньше чем -32768.
Посмотреть таблицы с названием типов и их диапазонами можно здесь .
Все переменные объявляются в блоке var ( между словами var и begin )
Как объявляются переменные ?
Вначале пишем имя своей переменной , например «a» далее следует задать тип нашей переменной . Это зависит от того , какой мы хотим её видеть. Например для хранения вашего имени в переменной , нам понадобится тип string. А для возраста тип integer.
Записывается это так — a:integer; Один и тот же тип можно задать нескольким переменным сразу . Например a,b,c:real;
Следует помнить о том , что каждая переменная до того , как мы присвоим ей какое-либо значение , имеет значение равное 0
Операции с переменными
С каждой переменной можно проводить свои операции . Например складывание , вычитание , деление , возведение в корень и многие другие.
Как видно на картинке , целочисленная переменная «a» имеет значение 10 , а целочисленная переменная «b» имеет значение 7 . Значение переменной «c» равно разнице «a и b» , проще говоря равно 3.
Остальные арифметические операции выполняются аналогично . Умножение заменяется знаком * , а деление / .
При таком взаимодействии переменных, большое внимание следует уделять типам переменных . Так к примеру существуют две переменные «a и b» , «a» равно 1 , «b» равно 2 . Переменная c равна частному «a на b» ( a/b ). В таком случае переменная «c» принимает вещественный тип.
Команды ввода и вывода на экран :
Для того , чтобы вывести переменную на экран нам понадобится команда writeln();.
Для того , чтобы ввести значение некоторой переменной через клавиатуру , нам понадобится команда readln();
Читать Одномерные массивы в Паскале – Pascal Array для чайников
Вывод на экран значения переменной «name» осуществляется так — writeln(name);.
Запись значения переменной с клавиатуры осуществляется так — readln(name);.
Функции и операции в паскаль
В языке программирования Pascal существует множество встроенных стандартных функций и операций. Они предназначены для разных целей , в основном это работа с переменными.
Некоторые из них вы найдете в данной статье.
Операции в Паскале
Где используются операции : прежде всего , операции используются в в работе с переменными ( например их сложение ) , а также в условиях.
Функции в Паскале
Функции используются для обработки некоторых переменных. Например для того , чтобы получить корень из какого-либо числа ( переменной ) , нам понадобится функция sqr(x) где x — это переменная , которая будет возведена в квадрат.
Отличие writeln() от write()
Многие задаются таким вопросом : В чем отличие команды writeln() от команды write(). Отличий совсем немного , но они есть.
Команда writeln() — выводит определенную информация на экран ( текст, переменную и т.п ) и при этом переводит последующий текст на следующую строку ( линию ). Проще говоря , текст внутри writeln() занимает всю строку , а остальной текст будет печататься на следующей строке.
В случае , когда мы используем команду write() , последующий текст не переводится.
Наглядный пример работы данных команд :
program mypascal ;
write ( ‘Привет ‘ ) ;
writeln ( ‘ друг !’ ) ;
write ( ‘Как твои дела ?’ ) ;
На экран будут выведены две строчки. В первой строке будет написано » Привет друг ! «. Во второй строке будет написано «Как твои дела ?».
Отличия команды readln() и read() аналогичны.
Write — писать ; ln ( line ) — линия.
Переменные | Оператор присваивания
Мы научились выводить результаты вычислений; но значительно чаще эти результаты надо хранить в программе для дальнейшего использования. Сохраняются такие результаты в переменных — участках памяти, которые имеют собственные имена в программе. Рассмотрим код
program LinearEquation ;
var a , b , x : real ;
writeln ( ‘Эта программа развязывает линейное уравнение ax=b’ ) ;
writeln ( ‘a =’ , a ) ;
writeln ( ‘b =’ , b ) ;
writeln ( ‘x =’ , x )
Раздел var (от англ. Variable — переменная) провозглашает 3 переменные — a, b и x — действительного типа (real, англ. Действительный).
Переменные действительного типа предназначен для работы с числами, похожих на обычные действительные числа, с определенными ограничениями реализации (они не могут быть больше и меньше определенных значений, и также минимальное расстояние между числами; впрочем, эти ограничения являются достаточно широкими, чтобы в обучении не обращать на них внимания). Альтернативным типом чисел есть целый тип (integer, англ. Цел), числа которого, очевидно, могут приобретать только целых значений. С другими стандартными простыми типами можно ознакомиться в соответствующем разделе .
Читать Тип string (строковый) в паскале – Процедуры и функции для работы со строками
В общем виде раздел var выглядит так:
var идентификатор , идентификатор . . . : тип ,
идентификатор , идентификатор . . . : тип ,
идентификатор , идентификатор . . . : тип ,
Все идентификаторы должны быть уникальными, а вот названия типов могут повторяться. Все идентификаторы с одной строки провозглашаются переменными одного типа — того, что указано после двоеточия в той же строке.
Строка a = 3; содержит оператор присваивания =; этот оператор записывает свой правый операнд (в этом случае, 3) в левый (a). Таким образом, после выполнения этой строки a становится равным 3. Важно понять, что оператор присваивания — не математическое утверждение «a равна 3», как его часто воспринимают новички, а команда «записать в a значение 3»; любая другая команда может изменить это значение. Довольно часто в Паскале используются команды вроде x = x + 1; эта команда не содержит противоречие, как может показаться, а берет текущее значение x, добавляет к нему 1 и записывает снова в переменное x — то есть ее следует воспринимать как «увеличить x на 1».
Команда writeln ( ‘a =’, a); выводит значение переменной a; сразу заметим, что формат числа немного необычный: вместо ожидаемого 3 мы видим 3.000000000E +00. Буква e в этом случае синонимом выражения «10 в степени», то есть это можно записать как 3.0 * 10 0 — что, собственно, равен просто 3. Большинство компиляторов Паскаля типично используют такой формат вывода действительных чисел; позже мы научимся изменять формат вывода.
Строка x = b / a; Как вы уже догадались, вычисляет значение b / a и записывает его в переменную x. Здесь требуется пояснение: компилятор Паскаля не умеет решать уравнения, он только выполняет программу. Поэтому для решения задачи в Паскале надо сначала решить ее математически (получив из уравнения a * x = b выражение x = b / a), и только потом запрограммировать это решение.
Читать Паскаль вывод на экран – Pascal Ввод и вывод
Последняя строка выводит вычисленное значение x. Здесь надо отметить, что последние две строки можно было бы совместить в
Источник: mypascal.ru