Реферат: Контрольные по информатике

Контрольные по информатике

автоматически освобождает всю память, отведенную приложению, после того, как оно заканчивает работу. В Windows 3+ некорректно написанные приложения нередко освобождали не всю запрошенную ими память. Время от времени памяти оказыва­лось настолько мало, что единственным выходом оставался переза­пуск системы (а иногда и перезагрузка машины). Такая неприятность носит название «утечка памяти» («memory leak») и случается с про­граммными произведениями даже известнейших фирм. При за­вершении приложения в Windows 95 вся память, занимаемая им, освобождается автоматически, и таких проблем не возникает.

Разумеется, на свете не бывает ничего бесплатного (кроме сыра в мышеловках). За удобства объектно-ориентированного подхода и быстродействие приходится платить огромным размером кода опе­рационной системы (она занимает десятки мегабайт) и временем, затраченным программистами на создание ее компонентов. Кро­ме этого, для большинства используемых приложений должны быть созданы 32-разрядные версии. Только тогда они в полной мере смо­гут использовать преимущества Windows 95.

Новая система оказалась также весьма чувствительной к аппарату­ре, на которой она работает. Хочется верить, что это временные труд­ности, которые в дальнейшем удастся преодолеть. Проблемы вы­бора аппаратных средств подробно рассмотрены в последней гла­ве, а сейчас мы поговорим о совместимости приложений DOS и Windows 3+ с новой операционной системой.


6. Отличительные особенности Windows 95.


Объектно-ориентированный подход реализуется через модель ра­бочего стола. Windows 95 обходится без привычного в Windows 3+ диспетчера программ (program manager). Пользователь работает с задачами и приложениями так же, как с документами на своем письменном столе.

Это удобно для людей, которые первый раз увидели компьютер, но создает некоторые трудности «переходного периода» для тех, кто привык считать программу основой всего сущего в машине.

Итак, одно из главных отличий Windows 95 от Windows 3+ (и от подавляющего большинства других операционных систем) состо­ит в том, что основной упор в ней делается на документ, а програм­ма, задача, приложение или программный код вообще рассматри­ваются только как инструмент для работы с документом.

Другая принципиальная особенность Windows 95 состоит в том, что она, в отличие от Windows 3+, является «настоящей» операци­онной системой (а не операционной оболочкой, выполняемой под управлением MS-DOS). Под словом «настоящая» мы подразумева­ем то, что при включении машины сразу выполняется загрузка Win­dows 95. Для пользователя это оборачивается некоторыми неудоб­ствами. Он должен привыкнуть к тому, что прежде чем выключить машину, нужно корректно завершить работу с Windows 95, пос­кольку новая операционная система создает буфера в оперативной памяти, и их содержимое должно быть сброшено на диск.

Список литературы

  1. А.В. Потапкин. Операционная система Windows 95. М., 1996.

  2. Г.В. Саенко. Курс пользователя ПК. Донецк, 1997.

В. Фигурнов. IBM PC для пользователя. М., 1998.




Задание 1.

(вариант Б)

1.Значение логического типа обозначаются встроенными идентификаторами констант TRUE (истина) и FALSE (ложь). При внутреннем представлении они занимают 1 байт памяти. Справедливо условие: True>FALSE.

Логические выражения имеют значения типа boolean, т.е. TRUE или FALSE.

Для операндов типа boolean определены следующие логические операции:

NOT— логическое НЕ;

AND— логическое И;

OR— логическое ИЛИ;

XOR— логическое исключающее ИЛИ.

Для операндов простых типов данных и строк применимы операции отношения: =,<,<=,>,>=,<>,in.

Примеры логических выражений:

1 3 2

if (i>0) and (j<0) or (i<0 ) and (j>0) then i:=2;

В данном примере проверяется два условия либо одновременно i положительно и j отрицательно, либо наоборот— i отрицательно и j положительно, при истинности одного из этих условий переменной i присваивается значение 2.

1 2

If not a then b:=false;

В данном примере если переменная a имеет значение false переменной b присваивается значение false.

1 2 3

If not a or b then a:=b;

В данном примере переменной а присваивается значение, содержащееся в переменной b, при условии, что а имеет значение false или b true.


2. В языке Паскаль ввод-вывод информации осуществляется через файловые переменные.

Перед тем, как осуществить ввод-вывод, файловая переменная должна быть связана с конкретным внешним файлом с помощью процедуры ASSIGN. Этим файлом может быть файл на магнитном диске, а также устройство вычислительного комплекса. Затем файл должен быть открыт для чтения и/или записи. После этого можно осуществлять организацию ввода-вывода.

После работы с файлом он, как правило, должен быть закрыт с помощью процедуры CLOSE. Это требование обязательно должно соблюдаться для файла, в который производилась запись.

Процедура ASSIGN (Var_file, Road): с помощью этой процедуры вы связываете файловую переменную Var_file с некоторым именем файла, которое хранится в переменной Road.

Var

Var_file: file of integer;

Road: string[14];

...

Road:=’Data.dat’;

Assign (Var_file, Road);

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

Процедура Reset: данная процедура открывает существующий файл данных, имя которого перед этим было связано при помощи процедуры Assign с некоторой файловой переменной, указанной в процедуре Reset как параметр.

Assign (var_file, ‘Data.dat’);

Reset (Var_file);

Данная процедура содержит необязательный параметр Size целого типа, который используется только с файлами без типа и задает размер пересылаемого элемента информации в байтах. По умолчанию этот параметр равен 128. Файл текстового типа может быть открыт либо для чтения процедурой Reset, либо для записи процедурой Rewrite или Append.

Процедура Rewrite: создает новый файл и открывает его для записи или чтения. Если файл с таким именем уже существует, его содержимое стирается, а сам файл открывается заново.

Rewrite (Var_file);

открывает существующий файл, связанный с файловой переменной Var_file.

Процедура Close: закрывает ранее открытый файл, связанный с указанной переменной в качестве параметра файловой переменной.

Close (Var_file);

При попытке закрыть файл, который не был до этого открыт или который уже закрыт, возникает ошибочная ситуация.

Процедура Rename: позволяет переименовать существующий файл, связанный с указанной в качестве параметра файловой переменной. Данная процедура применяется только к закрытым файлам.

Assign (Var_file, ‘Data.dat’);

Rename (Var_file, ‘Text.dat’);

Процедура Erase: стирает существующий файл с диска. При этом файловая переменная должна быть предварительно связана с реально существующим файлом.

Assign (Var_file, ‘Data.dat’);

Erase (Var_file);

Функция EOF: используя данную логическую функцию, в процессе считывания информации Вы можете проверить, достигнут ли конец файла, т.е. находится ли указатель файла за последним элементом или нет.

While not EOF (Var_file) do

read (Var_file, m[i]);

данный фрагмент программы иллюстрирует процесс чтения элементов массива из файла, связанного с переменной Var_file, до тех пор, пока не будет достигнут конец файла.

Функция IOResult: предназначена для поиска ошибок, возникающих при работе с файлами. Эта функция возвращает результат последней операции ввода-вывода, если автоматический контроль за ошибками, возникающими в процессе операций ввода-вывода, отключен с помощью директивы компилятора {$I-}. При безошибочном выполнении операций ввода-вывода данная функция возвращает ноль, если же ошибка имела место, то данная функция возвращает код ошибки.

{$I-}

Reset (‘C:data.dat’);

if IOResult <>0 then writeln (‘ Ошибка при открытии файла’);

{$I+}

Тип файл представляет собой последовательность компонент одного типа, расположенных на внешнем устройстве. Компоненты могут быть любого типа, за исключением типа файл (или содержащего компоненты типа файл) и типа объекта. Число компонент в файле не объявляется.

Для задания типа файл следует использовать зарезервированные слова file и of, после чего указать тип компонент файла.

Type

number = file of integer;

symb = file of ‘A’..’Z’;


Стандартный тип Text определяет тип файла, содержащий символы, объединенные в строки. Следует иметь ввиду, что тип Text в Турбо-Паскале не эквивалентен тину file of char.

Введя файловый тип, можно определять переменные файлового типа:


Var

F1:number;

F2:Text;


В Турбо-Паскале можно использовать файл без типа, при определении которого не указывается тип компонент. В этом случае работа с файлом осуществляется на физическом уровне в соответствии с внутренним форматом его данных. При этом реальные компоненты файла могут иметь и различный тип.

Тип файл можно определять и непосредственно при введении файловых переменных.

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


Задание 2.

(вариант 7)

uses crt;

var x,z:real;

begin

clrscr;

write ('Введите x:');

readln (x);

z:=sqrt(abs(x*cos(x))+sin(x/2)*sqr(sin(x/2)));

clrscr;

writeln ('x=',x:5:2,' z=',z:5:2);

end.


Задание 3а.

(вариант 6)

uses crt;

var x:array[1..10] of integer;

y:array[1..10] of boolean;

z:real;

i:integer;

begin

clrscr;

for i:=1 to 10 do

begin

y[i]:=false;

x[i]:=random(100);

end;

for i:=1 to 10 do

if frac(x[i]/2)=0 then y[i]:=true;

for i:=1 to 10 do write (x[i]:4,';');

writeln;

for i:=1 to 10 do

if y[i]=true then write (i:4);


end.


Задание 4.

(вариант 7)

uses crt;

type traz=record

city:string[50];

dat:string[8];

tor:string[5];

dr:integer;

price:real;

end;

var f1:file of traz;

f2:text;

raz:traz;

n:char;

flag:boolean;

function chek(s:string):boolean;

var i:integer;

begin

chek:=true;

for i:=1 to 5 do

if not((s[i] in ['0'..'9']) or (s[i]=':')) then chek:=false;

end;

begin

clrscr;

assign (f1,'1.dat');

assign (f2,'1.txt');

rewrite (f1);

append (f2);

repeat

clrscr;

write ('Введите город:');

readln(raz.city);

write (' Введите дату разговора:');

readln(raz.dat);

write (' Введите время разговора');

repeat

readln (raz.tor);

flag:=chek(raz.tor);

if flag=false then writeln ('Ошибка!!! Повторите ввод:');

until flag;

write(' Введите длительность разговора:');

readln (raz.dr);

write ('Введите стоимость:');

readln (raz.price);

write ('Продолжить? «*»- закончить ввод!');

readln (n);

write (f1,raz);

until n='*';

reset (f1);

while not eof(f1) do

begin

read (f1,raz);

if raz.city='Санкт-Петербург' then write (f2,raz.dat:9,raz.tor:6,raz.dr:5,raz.price:6:2);

end;

close (f1);

close (f2);

end.

Список литературы

  1. А.М. Епанешников. Программирование в среде Turbo Pascal 7.0. М., 1997.

  2. Турбо паскаль 7.0. Киев, 1996.

  3. В.В. Качала. Основы программирования на языке Турбо-паскаль. Мурманск, 1994.


Задание 1.

Вариант П.

1. Операторы цикла позволяют многократно выполнять отдельный оператор или последовательность операторов, причет при этом нет необходимости записывать в тексте программы одинаковые операторы несколько раз.

Оператор цикла REPEAT организует выполнение цикла, состоящего из любого числа операторов, с неизвестным заранее числом повторений. Тело цикла выполняется хотя бы один раз. Выход из цикла осуществляется при истинности некоторого логического выражения. Структура этого оператора:

repeat

operator1;

operator2;

operator3;

. . .

operatorN

until S;

В этой структуре:

operator1..N - выполняемые операторы, составляющие тело цикла;

S - логическое выражение, истинность которого проверяется в конце каждой итерации.

Так как слова repeat и until являются своеобразными операторными скобками, точку с запятой перед словом until ставить необязательно.

Оператор цикла WHILE организует выполнение одного оператора неизвестное заранее число раз. Выход из цикла осуществляется, если некоторое логическое выражение окажется ложным. Так как истинность логического выражение проверяется в начале каждой итерации, тело цикла может не выполняться ни разу. Структура данного оператора цикла имеет вид:

while S do

operator;

В данной структуре:

S - логическое выражение, истинность которого проверяется в начале каждой итерации;

operator - выполняемы оператор цикла.

Между конструкциями REPEAT ... UNTIL и WHILE ... DO имеются три существенных отличия.

  1. В конструкции WHILE ... DO проверка условия выхода выполняется в начале, а не в конце цикла, поэтому, если условие не удовлетворяется до начала выполнения цикла, то тело цикла игнорируется и выполняется оператор, стоящий сразу же после окончания тела цикла.

  2. В конструкции WHILE ... DO условие выхода из цикла удовлетворяется, если выражение, определяющее условие выхода, ложно, а в конструкции REPEAT ... UNTIL — если это выражение истинно.

  3. Между зарезервированными словами REPEAT и UNTIL может размещаться несколько инструкций, в то время как конструкция WHILE ... DO может содержать максимум одну инструкцию.


Примеры использования операторов цикла:

WHILE ... DO

REPEAT ... UNTIL

1) нахождение суммы чисел от 1 до 50

...

sum:=0;

i:=0;

while i<50 do

begin

i:=i+1;

sum: = sum + i;

end;

....

1) нахождение суммы чисел от 1 до 50

...

sum:=0;

i:=0;

repeat

i:=i+1;

sum: = sum + i;

until i=50;

...


  1. вывод на экран информации из файла

...

while not eof(f) do

begin

read (f,i);

writeln (i);

end;

...

  1. вывод на экран информации из файла

...

repeat

read (f,i);

writeln (i);

until eof(f);

...

  1. ввод массива

...

i:=0;

while c<>’*’ do

begin

i:= i+1;

read (c[i]);

end;

...

  1. ввод массива

...

i:=0;

repeat

i:=i+1;

read(c[i]);

until c=’*’;

...


2. В языке Паскаль ввод-вывод информации осуществляется через файловые переменные.

Перед тем, как осуществить ввод-вывод, файловая переменная должна быть связана с конкретным внешним файлом с помощью процедуры ASSIGN. Этим файлом может быть файл на магнитном диске, а также устройство вычислительного комплекса. Затем файл должен быть открыт для чтения и/или записи. После этого можно осуществлять организацию ввода-вывода.

После работы с файлом он, как правило, должен быть закрыт с помощью процедуры CLOSE. Это требование обязательно должно соблюдаться для файла, в который производилась запись.

Процедура ASSIGN (Var_file, Road): с помощью этой процедуры вы связываете файловую переменную Var_file с некоторым именем файла, которое хранится в переменной Road.

Var

Var_file: file of integer;

Road: string[14];

...

Road:=’Data.dat’;

Assign (Var_file, Road);

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

Процедура Reset: данная процедура открывает существующий файл данных, имя которого перед этим было связано при помощи процедуры Assign с некоторой файловой переменной, указанной в процедуре Reset как параметр.

Assign (var_file, ‘Data.dat’);

Reset (Var_file);

Данная процедура содержит необязательный параметр Size целого типа, который используется только с файлами без типа и задает размер пересылаемого элемента информации в байтах. По умолчанию этот параметр равен 128. Файл текстового типа может быть открыт либо для чтения процедурой Reset, либо для записи процедурой Rewrite или Append.

Процедура Rewrite: создает новый файл и открывает его для записи или чтения. Если файл с таким именем уже существует, его содержимое стирается, а сам файл открывается заново.

Rewrite (Var_file);

открывает существующий файл, связанный с файловой переменной Var_file.

Процедура Close: закрывает ранее открытый файл, связанный с указанной переменной в качестве параметра файловой переменной.

Close (Var_file);

При попытке закрыть файл, который не был до этого открыт или который уже закрыт, возникает ошибочная ситуация.

Процедура Rename: позволяет переименовать существующий файл, связанный с указанной в качестве параметра файловой переменной. Данная процедура применяется только к закрытым файлам.

Assign (Var_file, ‘Data.dat’);

Rename (Var_file, ‘Text.dat’);

Процедура Erase: стирает существующий файл с диска. При этом файловая переменная должна быть предварительно связана с реально существующим файлом.

Assign (Var_file, ‘Data.dat’);

Erase (Var_file);

Функция EOF: используя данную логическую функцию, в процессе считывания информации Вы можете проверить, достигнут ли конец файла, т.е. находится ли указатель файла за последним элементом или нет.

While not EOF (Var_file) do

read (Var_file, m[i]);

данный фрагмент программы иллюстрирует процесс чтения элементов массива из файла, связанного с переменной Var_file, до тех пор, пока не будет достигнут конец файла.

Функция IOResult: предназначена для поиска ошибок, возникающих при работе с файлами. Эта функция возвращает результат последней операции ввода-вывода, если автоматический контроль за ошибками, возникающими в процессе операций ввода-вывода, отключен с помощью директивы компилятора {$I-}. При безошибочном выполнении операций ввода-вывода данная функция возвращает ноль, если же ошибка имела место, то данная функция возвращает код ошибки.

{$I-}

Reset (‘C:data.dat’);

if IOResult <>0 then writeln (‘ Ошибка при открытии файла’);

{$I+}


Задание 2.

3.

Var

a,b,x,y:real;

Begin

write (‘Введите значение a’);

readln (a);

write (‘Введите значение b’);

readln (b);

write (‘Введите значение x’);

readln (x);

y:=(a+b)/(sqr(x)*sqr(x)*x+round(sqr(x)*x));

writeln (‘y=’,y:7:2);

End.


Задание 3а.

2.

Var

a:array[1..20] of integer;

i,n,b:integer;

m:real;

Begin

for i:=1 to 20 do

begin

readln (a[i]);

m:=m+a[i];

end;

m:=m/20;

b:=a[1];

for i:=1 to 20 do

if a[i]

begin

n:=i;

break;

end;

for i:=1 to 20 do write (a[i]);

writeln (‘Среднее арифмитическое равно ’,m);

writeln (‘Номер элемента-’,n);

End.


Задание 4.

3.

Uses crt;

Type

tch=record

num:string[5];

name:string[50];

adress:string[80];

am:byte;

end;

Var

ch:tch;

f1:file of tch;

f2:text;

m:char;

Begin

clrscr;

assign (f1,’1.dat’);

assign (f2,’2.dat’);

rewrite (f1);

rewrite (f2);

repeat

clrscr;

write(‘Введите номер читательского билета:’);

readln (ch.num);

write(‘Введите фамилию:’);

readln (ch.name);

write(‘Введите адрес:’);

readln (ch.adress);

write(‘Введите количество книг на руках:’);

readln (ch.am);

write (f1,ch);

write (‘Для прекращения ввода нажмите *’);

readln (m);

until m=’*’;

close (f1);

reset (f1);

while not eof(f1) do

begin

read (f1,ch);

if ch.am>5 then write (f2,ch.num,ch.name,ch.adress,ch.am);

end;

close (f1);

close (f2);

End.


Задание 1.

Вариант П.

1. Операторы цикла позволяют многократно выполнять отдельный оператор или последовательность операторов, причет при этом нет необходимости записывать в тексте программы одинаковые операторы несколько раз.

Оператор цикла REPEAT организует выполнение цикла, состоящего из любого числа операторов, с неизвестным заранее числом повторений. Тело цикла выполняется хотя бы один раз. Выход из цикла осуществляется при истинности некоторого логического выражения. Структура этого оператора:

repeat

operator1;

operator2;

operator3;

. . .

operatorN

until S;

В этой структуре:

operator1..N - выполняемые операторы, составляющие тело цикла;

S - логическое выражение, истинность которого проверяется в конце каждой итерации.

Так как слова repeat и until являются своеобразными операторными скобками, точку с запятой перед словом until ставить необязательно.

Оператор цикла WHILE организует выполнение одного оператора неизвестное заранее число раз. Выход из цикла осуществляется, если некоторое логическое выражение окажется ложным. Так как истинность логического выражение проверяется в начале каждой итерации, тело цикла может не выполняться ни разу. Структура данного оператора цикла имеет вид:

while S do

operator;

В данной структуре:

S - логическое выражение, истинность которого проверяется в начале каждой итерации;

operator - выполняемы оператор цикла.

Между конструкциями REPEAT ... UNTIL и WHILE ... DO имеются три существенных отличия.

  1. В конструкции WHILE ... DO проверка условия выхода выполняется в начале, а не в конце цикла, поэтому, если условие не удовлетворяется до начала выполнения цикла, то тело цикла игнорируется и выполняется оператор, стоящий сразу же после окончания тела цикла.

  2. В конструкции WHILE ... DO условие выхода из цикла удовлетворяется, если выражение, определяющее условие выхода, ложно, а в конструкции REPEAT ... UNTIL — если это выражение истинно.

  3. Между зарезервированными словами REPEAT и UNTIL может размещаться несколько инструкций, в то время как конструкция WHILE ... DO может содержать максимум одну инструкцию.


Примеры использования операторов цикла:

WHILE ... DO

REPEAT ... UNTIL

1) нахождение суммы чисел от 1 до 50

...

sum:=0;

i:=0;

while i<50 do

begin

i:=i+1;

sum: = sum + i;

end;

....

1) нахождение суммы чисел от 1 до 50

...

sum:=0;

i:=0;

repeat

i:=i+1;

sum: = sum + i;

until i=50;

...


  1. вывод на экран информации из файла

...

while not eof(f) do

begin

read (f,i);

writeln (i);

end;

...

  1. вывод на экран информации из файла

...

repeat

read (f,i);