Действительный (вещественный) тип данных в Turbo Pascal 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Действительный (вещественный) тип данных в Turbo Pascal



Данные действительного (вещественного) типа необходимы тогда, когда числовые значения могут содержать дробные части. Действительный тип данных используется для описания действительных переменных, т.е. таких переменных, значением которых может быть действительное или целое число.

В Turbo Pascal константа действительного типа может быть представлена в двух видах:

1. Числом с фиксированной точкой.

2. Числом с плавающей точкой.

Число с фиксированной точкой изображается десятичным числом с дробной частью (она может быть и нулевой). Дробная часть отделяется от целой с помощью точки. Например: 19.56; 0.05; -376.18; Следует обратить внимание на то, что в записи действительных чисел вместо десятичной запятой, как принято в математике, используется ДЕСЯТИЧНАЯ ТОЧКА!

Очень большие и очень маленькие числа в математике принято записывать в виде чисел с порядком, т.е. в виде умножения значащих цифр на степень числа 10. В Turbo Pascal такая запись называется записью числа с плавающей точкой. Число с плавающей точкой записывается в виде: mEp, где m - мантисса числа, p - порядок числа.

Операции над действительными числами: сложение +, вычитание -, умножение *, деление /. Одно из двух данных при этом может быть целого типа, но результат операции будет действительным числом.

К действительным числам можно применять встроенные функции:

· sin(x);

· cos(x);

· exp(x);

· ln(x);

· sqr(x);

· sqrt(x);

· arctan(x);

· abs(x);

· pi=3.14159...;

· int(x) - целая часть числа;

· frac(x) - дробная часть числа; random(x) - случайное число (от 0 до 1).

 

Вывод действительных данных возможен с форматом и без формата. Если формат отсутствует, то число выводится с плавающей точкой с мантиссой и порядком, при этом на изображение числа отводится 17 позиций. В целой части мантиссы присутствует только 1 значащая цифра, в дробной части 10 цифр, а на порядок с учетом знака отводится 3 позиции.

Пример: -3.2648375386Е-01.

Для наглядности выводимых результатов предусмотрены форматы.

Формат указывается в операторе вывода write вслед за выводимым данным через двоеточие: R:m:n, где R - выводимое данное действительного типа, m - общее поле выводимого числа (включая знак числа, целую часть, точку и дробную часть), n - поле дробной части.

В качестве m и n могут быть целые константы, переменные, выражения. Чаще всего это целые числа. При использовании форматов число выводится с фиксированной точкой. Пример: Для вывода числа R:=-0.18 достаточно указать в операторе write(R:5:2); Если формат указан больше, чем необходимо, то перед целой частью располагаются избыточные пробелы, а после дробной части - нули.

 


24. Типовые алгоритмы обработки массивов. Поиск элементов, удовлетворяющих определенным условиям.

Нахождение количества элементов массива, удовлетворяющих некоторому условию

Известны результаты экзамена 22 студентов одной группы по информатике. Определить, сколько студентов сдали экзамен на 4 и 5.

Один из вариантов решения поставленной задачи имеет следующий вид:

Program pr3;

Label 1;

Type INF=array[1..22] of integer;

Var stud:INF;

i,p:integer;

begin

p:=0;

for i:=1 to 22 do

begin

1: writeln(‘Введите оценку ',i,'-го студента');

readln(stud[i]);

if (stud[i]<1) or (stud[i]>5) then goto 1;

if stud[i]>3 then p:=p+1;

end;

writeln(‘На 4 и 5 сдали экзамен ',p:2,' студентов');

end.

В данной программе для обозначения списка оценок по информатике использовался тип массива INF, для обозначения оценок конкретных студентов - переменная stud. Программа предусматривает проверку корректности вводимых данных: при попытке ввода несуществующей по пятибалльной системе оценки, программа повторяет ее ввод. Для этого используется оператор перехода GOTO, где имя метки, к которой осуществляется переход (в данном случае 1), описывается в разделе описания меток LABEL.


25. Типизированные файлы. Пример поиска в файле

Типизированный файл – это файл, в котором содержатся однотипные данные. Типизированный файл задается с помощью 2-х ключевых слов «file of». После слова «of» указывается тип файла, например integer, real, char, string и т.д. Тип файла может быть любым за исключением файлового типа (не может быть файла файлов) и комбинированного типа, один из компонентов которого имеет файловый тип.

В отличие от текстовых файлов, в типизированном файле информация хранится в двоичном представлении (в текстовом файле информация хранится в виде цепочки символов). Данный факт позволяет производить чтение и запись в файл более быстрым способом, т.к. отсутствует необходимость в преобразовании данных. Кроме того, в типизированном файле возможен прямой доступ к записям файла (в текстовом файле возможен только последовательный доступ).

Напишем программу, которая создаст своеобразную базу данных, хранящей сведения о студентах: их именах, номерах курса и групп.

Типизированные файлы в Паскаль.

Program file11;

uses crt;

Type Student = record

fio: string [20];

kurs, group: integer;

end;

var zap: student;

f: file of student;

name: string;

begin

clrscr;

Writeln ('Задайте имя файла');

Readln (name);

Assign (f, name);

Rewrite (f);

Writeln ('Введите фамилию и инициалы студента');

Readln (zap.fio);

While zap.fio <> ' ' do

Begin

Writeln ('Введите номер курса и группы');

Readln (zap.kurs, zap.group);

Write (f, zap);

Writeln ('Введите фамилию и инициалы следующего студента ');

Readln (zap.fio);

End;

Close(f);

Writeln ('Файл создан');

readln

End.


26. Переменные и константы строкового типа. Основные процедуры и функции для работы с ними.

В качестве значения строковой константы может выступать любая последовательность символов. Эта последовательность заключается в апострофы. Строковая константа отличается от символьной константы тем, что здесь в качестве значения константы можно использовать не один символ, а несколько.

view source

print?

01.Program number25;

02.Uses Crt;

03.Const hello = 'Привет, ';

04.Var name: string;

05.Begin

06.ClrScr;

07.Write('Введите имя: ');

08.Readln(name);

09.Write(hello, name, '!');

10.ReadLn

11.End.

 

Строки в Паскале – это данные типа string. Они используются для хранения последовательностей символов. В Паскале длина стандартной строки ограничена 255 символами. Под каждый символ отводится по одному байту, в котором хранится код символа. Кроме того, каждая строка содержит еще дополнительный байт, в котором хранится длина строки.

Если заранее известно, что длина строки будет меньше 255 символов, то программист может сам задать максимальную длину строки.

Примеры описания строк:

type str_type = string [12]; const n = 50; var s1: string; s2, s3: str_type; s4: string [n]; s5, s6, s7: string [7];…

Длина строки хранится в первом ее байте, индекс которого равен 0.
Объявление типизированной константы для типа string осуществляется так:

const s: string = 'FreePascal'…

Существует понятие пустой строки, т.е. строки, которая не имеет элементов. Пустая строка обозначается двумя рядом стоящими апострофами (например, st:= '').

Операции над строками

Строки можно присваивать друг другу. Если максимальная длина переменной слева меньше длины присваиваемой строки, то лишние символы справа отбрасываются.

…s1:= 'this is text';s2:= s1;…

Строки можно объединять с помощью операции конкатенации, которая обозначается знаком +.

…s1:= 'John';s2:= 'Black';s1:= s1 + ' ' + s2;…

Строки можно сравнивать друг с другом с помощью операций отношения. При сравнении строки рассматриваются посимвольно слева направо, при этом сравниваются коды соответствующих пар символов. Строки равны, если они имеют одинаковую длину и посимвольно эквивалентны. В строках разной длины существующий символ всегда больше соответствующего ему отсутствующего символа. Меньшей будет та строка, у которой меньше код первого несовпадающего символа (вне зависимости от максимальных и текущих длин сравниваемых строк).

'abc' > 'ab' (true)'abc' = 'abc' (true)'abc' < 'abc ' (false)

Имя строки может использоваться в процедурах ввода-вывода. При вводе в строку считывается из входного потока количество символов, равное длине строки или меньшее, если символ перевода строки (который вводится нажатием клавиши Enter) встретится раньше. При выводе под строку отводится количество позиций, равное ее фактической длине.

…readln (s1); write (s1);…

К отдельному символу строки можно обращаться как к элементу массива символов, например s1[3]. Символ строки совместим с типом char, их можно использовать в выражениях одновременно, например:

…s1[3]:= 'h'; writeln (s2[3] + 'r');…

Можно осуществлять коррекцию любого символа строковой переменной, для чего в соответствующем операторе достаточно указать имя переменной типа string, вслед за которым в квадратных скобках задается номер ее элемента (например, str[3]:='j').

Элементы строки нумеруются с единицы, т.к. в каждой строковой переменной имеется элемент с номером 0, в котором в виде символа хранится длина текущей строки. Чтобы узнать текущую длину, достаточно применить функцию ord к нулевому элементу строки. Например:

…writeln(ord(st[0]))…

Нулевой элемент строковой переменной можно корректировать. При этом будет изменяться текущая длина строки. Например, выражениеstr[0]:=#50 устанавливает текущую длину равной 50.

 


27. Логический тип данных в языке Турбо-Паскаль.



Поделиться:


Последнее изменение этой страницы: 2016-08-15; просмотров: 1061; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.138.118.250 (0.019 с.)