Здавалка
Главная | Обратная связь

Типизированные файлы



Часть I

1)var f: file of integer;

x, y: integer;

Пусть файл содержит для элемента – 3 и 7. Определить значение переменной y после выполнения операторов:

a) reset(f); read(f,y); if not eof(f) then read(f,y); if not eof(f) then read(f,y);   c) reset(f); y:=1; repeat read(f,x); y:=y*x until eof(f); b) reset(f); y:=0; while not eof(f) do begin read(f,x); y:=y+x end;

2)var f: file of integer; i: integer;

Определить содержимое файла после выполнения следующих операторов:

a)rewrite(f); if eof(f) then write(f,1) else write(f,2); if eof(f) then write(f,3) else write(f,4); b)rewrite(f); for i:=3 downto 1 do write(f, sqr(i));

3)type myfile = file of real;

Напишите функцию negative(f), подсчитывающую сумму отрицательных чисел в файле f типа myfile.

4)type myfile = file of integer;

Напишите логическую функцию Up(f), проверяющую, упорядочены ли по возрастанию элементы файла f типа myfile.

5)type myfile = file of char;

Описать логическую функцию Equal(f1,f2), проверяющую файлы f1 и f2 типа myfile на равенство.

Часть II

1)type myfile = file of char; Опишите процедуру:

1. add(f,c), добавляющую литеру с в начало файла f

2. addlast(f,c), добавляющую литеру с в конец файла f

3. replace(f,c), заменяющую последнюю литеру в файле f на литеру с

4. double(f), удваивающие в файле f все цифры

5. next(f), заменяющую в файле f каждую цифру на следующую по величине ('9' заменять на '0')

6. delete(f), удаляющую из файла f все литеры '+' и '-'

7. del(f), удаляющую из файла f предпоследний элемент, если он есть

8. firsts(f), оставляющую в файле f только первые вхождения каждой литеры

9. mid(f,m), присваивающую параметру m средний элемент файла f, если файл нечетной длины и символ '!', если файл четной длины

10. copy(f1,f2), присваивающую файлу f2 содержимое файла f1

11. copychar(f1,f2), присваивающую файлу f2 все латинские буквы файла f1

12. change(f), оставляющую в файле только цифры

13. mid1(f), присваивающую среднему символу файла f значение '1', если файл нечетной длины

14. delsp(f), удаляющую из файла f идущие подряд пробелы, оставляя из них только один

2)type student = record

name: string[10];

group: integer;

marks: array[1..5] of 2..5;

end;

myfile = file of student;

Создайте файл, содержащий записи о 10 студентах из 3 групп.

1. Выведите на экран имена круглых отличников

2. Выведите на экран имена круглых двоечников

3. Выведите на экран номера групп, в которых нет троечников

4. Выведите на экран номера групп, в которых отличников больше, чем двоечников

5. Выведите на экран средний балл по каждому из 5 предметов

6. Выведите на экран средний балл по 1-му предмету в каждой из 3 групп

7. Выведите на экран оценки студента по имени x

(var st: student; st.name := x)

8. Выведите на экран имена студентов, которые сдали 3-ий экзамен на 5

9. Выведите на экран максимальный балл по 2-му предмету в каждой из 3 групп

10. Выведите на экран имена студентов и их оценки из группы 1

11. Выведите на экран номера групп, в которых есть студенты по имени х

12. Выведите на экран средний балл студента по имени х

13. Выведите на экран средний балл студентов по всем группам

14. Выведите на экран номера групп, в которых последний экзамен сдали все студенты

Текстовые файлы

Часть I

1)Эквиваленты ли типы text и file of char? Одинаковы ли длины строк в файле? Допустимы ли пустые строки?

2)var k: integer;

t: text;

Допустимы ли операторы:

read(t, k); write(t, k);

3)Напишите процедуру TypeText(f), выводящую на экран построчно содержимое текстового файла f.

4)Напишите процедуру Compress(f1,f2), переписывающую содержимое файла f1 в f2, но без пустых строк.

5)Напишите функцию Max(f) для нахождения максимального из вещественных чисел, записанных в текстовом файле test.txt.

Часть II

1)Напишите функцию, которая:

1. Находит количество пустых строк в файле

2. Находит максимальную длину строк в файле

3. Находит количество непустых строк в файле

4. Находит количество строк в файле, содержащих четное количество литер

5. Находит количество строк в файле, начинающихся с буквы "v"

6. Находит количество строк в файле, заканчивающихся буквой "d"

7. Находит количество строк в файле, состоящих из одинаковых литер

8. Находит количество строк в файле, начинающихся и заканчивающихся одной и той же литерой

9. Находит минимальную длину строк в файле

10. Определяет, сколько раз в файле встретилось слово "begin"

11. Определяет, сколько раз в файле встретилось слово "end"

12. Определяет, сколько раз в файле встречались пятибуквенные слова

13. Определяет, сколько раз в файле встречались слова – палиандромы

14. Определяет, количество различных цифр, встречающихся в файле

2)Напишите процедуру:

1. AlignLeft(f), которая переформатирует файл f так, что все строки в нем будут выровнены по левому краю

2. AlignRight(f), которая переформатирует файл f так, что все строки в нем будут выровнены по правому краю (ширина строки равна константе Width = 80)

3. AlignCenter(f), которая переформатирует файл f так, что все строки в нем будут выровнены симметрично по центру (ширина строки равна константе Width = 80)

4. Upper(f), которая переформатирует файл f так, что все строки в нем будут содержать только прописные (заглавные) буквы

5. Lower(f), которая переформатирует файл f так, что все строки в нем будут содержать только строчные буквы

6. SeekConstant(f), которая находит в файле, содержащем текст программы на Паскале, идентификаторы констант

7. SeekVar(f), которая находит в файле, содержащем текст программы на Паскале, идентификаторы переменных

Ссылочные типы

Часть

1)type ref = ^integer;

var p, q: ref;

Пусть переменные p и q имеют значения, показанные на рисунке. Ответить на следующие вопросы:

a)Что является значением переменной p: ссылка на объект (переменную) целого типа или сам этот объект?

b)Что обозначает переменная p^: ссылку на объект целого типа, сам этот объект или число 5?

c)Каковы типы переменных p и p^?

d)Что будет выведено на печать в результате выполнения следующих операторов?

p^:=q^;

if p=q then p:=nil else if p^=q^ then q:=p;

if p=q then q^:=4;

WriteLn(p^,q^);

2)type D = record

a: boolean;

b,c: ^real;

end;

var r: ^D;

Пусть переменная r имеет значение, показанное на рисунке Нарисовать структуру значения переменной r после выполнения следующих операторов:
 
 

if r^.b<>nil then r^.c:=r^.b;

r^.b^:=r^.c^-1.4;

r^.a:=r^.b=r^.c;

3)var p,q: ^integer;

r: ^char;

Какие из следующих операторов неправильные и почему?

a)p:=q; b)q:=p^; c)if r<>nil then r^:=nil^;
d)q:=r; e)p^:=nil; f)if q>nil then q^:=p^;
g)p:=nil; h)r^:=p^; i)if q=p then write(q);
j)r:=nil; k)q^:=ord(r^); l)if q<>r then read(r^);

4)type A = ^char;

B = record

f1: char;

f2 : A;

end;

var p: ^B;

q: A;

Нарисовать структуру значений переменных p и q после выполнения следующих операторов:

new(q); q^:='7';

new(p); p^.f1:=succ(q^); p^.f2:=q;

5)type chain = ^elem;

elem = record

data : integer;

link : chain;

end;

var p, q: chain;

Нарисовать структуру значений переменной p после выполнения операторов:

a)new(p); p^.data:=4; p^.link:=nil;

b)new(p); p^.data:=7; p^.link:=p;

c)new(q); q^.data:=2; q^.link:=nil;

new(p); p^.data:=1; p^.link:=q;

d)new(p); p^.data:=6; new(p^.link); p^.link^:=p^;

6)Описать переменную p (и, если надо, вспомогательные переменные) и выписать операторы, присваивающие ей указанные значения

a)

 
 

b)

7)Выписать операторы, которые преобразуют значение переменной p следующим образом.

 
 

Исходное состояние:

a)

 
 

b) c)

8)type ref = ^real;

vector = array[1..10] of ref;

Напишите процедуру Input(x), считывающую числа с устройства Con и помещающую их в кучу (адреса будут хранится в элементах вектора x). Напишите процедуру Output(x), выводящую на устройство Con числа, которые расположены по адресам, хранящимся в элементах вектора x.

Часть II

1)type ref = ^real;

vector = array[1..10] of ref;

1. Описать функция max(x) для нахождения наибольшего из чисел, на которые ссылаются элементы вектора x

2. Описать функция min(x) для нахождения наименьшего из чисел, на которые ссылаются элементы вектора x

3. Описать функция sum(x) для нахождения суммы всех чисел, на которые ссылаются элементы вектора x

4. Описать функцию average(x), значением которой является среднее арифметическое всех чисел, на которые ссылаются элементы вектора x

5. Описать функцию neg1(x), значением которой является первый из элементов вектора x, ссылающихся на отрицательные числа, или nil, если таких элементов нет

6. Описать функцию zero1(x), значением которой является первый из элементов вектора x, ссылающихся на число 0, или nil, если таких элементов нет

7. Описать логическую функцию ifzero(x), которая проверяет, есть ли в векторе x хотя бы одна ссылка на число 0

8. Описать логическую функцию ifodd1(x), которая проверяет, есть ли в векторе x хотя бы одна ссылка на нечетное число

9. Описать логическую функцию ifodd(x), которая проверяет, все ли числа, на которые ссылаются элементы вектора x, нечетные

10. Описать логическую функцию same(x), которая проверяет, есть ли в векторе x хотя бы две одинаковые ссылки

11. Описать процедуру unique(x), которая в векторе x все элементы, ссылающиеся на равные числа, заменяет на первый из этих элементов

12. Описать процедуру unique0(x), которая в векторе x все элементы, ссылающиеся на равные числа, заменяет на 0

13. Описать логическую функцию ifsort(x), которая проверяет, все ли числа, на которые ссылаются элементы вектора x расположены в порядке возрастания

14. Описать логическую функцию ifsort1(x), которая проверяет, все ли числа, на которые ссылаются элементы вектора x расположены в порядке убывания

2)type Link = ^Node;

Node = record

X : integer;

Next: Link;

end;

var L: Link;

Найти среднее арифметическое элементов непустого списка L.

 

 

Подписано в печать __.__.2011. Формат 60х90 1/16. Усл. печ. л. 2.

Тираж ___ экз. Заказ № ___.

 

 

Издательство федерального государственного бюджетного образовательного учреждения высшего профессионального образования

«Тюменский государственный нефтегазовый университет».

625000, Тюмень, ул. Володарского, 38.

 

Отдел оперативной полиграфии издательства.

625039, Тюмень, ул. Киевская, 52







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.