Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
INFORMATIKA.doc
Скачиваний:
52
Добавлен:
31.05.2015
Размер:
343.04 Кб
Скачать

Вопрос 28: Двоичная система исчисления. Правила арифметических вычислений в ней.

Двоичная система используется для представления чисел внутри ЗВМ. Все числа представляются двумя цифрами – 0 и 1.Число записывается последовательностью этих цифр и трактуется как сумма соответствующих степеней двойки.

Правила действий в двоичной системе.

Арифметические операции в данной системе выполняются так же, как и в десятичной системе, при этом нужно помнить максимально возможную цифру данной системы, т.е 1.

0+0=0;0+1=1;1+1=10

Вопрос 29: Множества в Паскале. Значение типа множество.

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

Type

Имя = setofбазовый тип;

В качестве базового типа может выступать порядковый с числом элементов не больше 256.

Пример: type latcher=set of ‘A’..’Z’;

Var vowels:latcher;

Begin

…..

Vowels=[‘a’,’l’,’I’,’u’,’y’];

Над переменными типа множества допустимы следующее операции: проверки на принадлежность, не равенств, подмнжество, надмножество, пересечение, объединение, вычитание. Использование множеств в ряде случае позволяет упростить выполнение задачи.

Пример: Найти все простые числа из [1..100] по методу решета Эрмофена.

Const n=100;

Var s:set of 2..n;

I,k:integer;

Begin

S:=[2..n];

For i:=1 to n do

If I in s then begin

Writeln(i);

For k:=1 to (n div i) do

S:=s – [k*i];

End;

End.

Вопрос 31: Динамические переменные в Паскале. Динамические переменные и указатели.

Все переменные, описанные в предложении VAR, различаются в памяти пред выполнением программы и находятся до окончания работы. Это статические переменные. Имеется возможность во время выполнения программы размещать в памяти новые переменные и освобождать после них память, когда они не будут нужны, это динамические переменные. Для обращения к динамическим переменным нужно знать адрес той область памяти, в которой размещена переменная. Эти адреса хранятся в переменных особого типа – указателях. Указатель это переменная, значением которой является адрес другой переменной. Указатели могут быть на любой тип данных, и описываться следующим образом:

TYPE

Тип указателя = ^базовы тип;

VAR

Имя : ^базовый тип;

Перед использованием динамической переменной необходимо выделить для нее память процедурой:

NEW(указтель);

Выделяется в памяти место достаточное для хранения значений требуемого базового типа и помещается адрес в указатель.

Процедура:

DISPOSE() освобождает память. Для обращения к динамической переменной используется имя указателя дополненной с право символом ^. Это называется разыменованием указателя. Существует так же специальная константа указателяnil, которая обозначает пустой адрес, т.е. не куда не указывает. Однотипные указатели можно сравнивать и присваивать.Nilможно присваивать любому указателю.

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

Пример: vari:integer;

PInt:integer;

Begin

…..

Pint:=@I;

…..

Имеется также предопределенный тип POINTER, который представляет собой указатель, способный ссылаться на переменные любого типа. Называется без типовым указателем. Этот указатель может присваиваться и сравниваться с указателями любого типа, но он не может быть разименован, и, следовательно, не может быть использован для доступа к значениям динамических переменных.

Const MaxIten=1000;

Type PString=^string;

TMas=array[1..MaxItem] of Pstring

Var

P:TMas;

I:integer;

Begin for i:=1 to MaxItem do new(p[i]0;

Соседние файлы в предмете Информатика