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

Лабораторная работа 39.(текстовые файлы – незаменимый инструмент для отладки программ с большим количеством исходных данных)

Дано описание: var T : text;

Написать процедуры ввода и вывода текстового файла T, а также одну из следующих процедур:

  1. DEL_pred_Last_Str(T) - удаляет из текста предпоследнюю строку, если она есть.

  2. DOUBLE_Str_with_Digit(T) - удваивает в тексте каждую строку, содержащую цифры.

  3. PRINT_Elem_N(T,N) - выводит на экран N-ый элемент текста, если он есть.

  4. DEL_pred_Last_Elem(T) - удаляет из текста предпоследний элемент, если он есть.

  5. DEL_1word_Str(T) - удаляет из текста строки, состоящие из одного слова (слова в строке разделены одним или несколькими пробелами).

  6. ROTATE_Str(T) – переворачивает в тексте все строки.

  7. PRINT_Max_LINE(T) - выводит на экран самую длинную строку.

  8. REPLACE_Last_Str_to_C(T,C) - заменяет последнюю строку текста на строку C.

  9. REPLACE_N_Str_to_C(T,N,C)- заменяет N-ую строку текста (если она есть) на строку C.

  10. MOVE_Last_Str_to_Begin(T) - переносит последнюю строку в начало текста.

  11. Del_Palindr_Str(T) – удаляет из текста все строки, являющиеся палиндромами.

  12. COUNT_Str(T) – считает количество строк в тексте.

  13. PRINT_Min_LINE(T) - выводит на экран самую короткую строку.

  14. DEL_Empty_Str(T) – удаляет из текста все пустые строки.

  15. CHANGE_Words_Str(T) – меняет местами первое и последнее слово в каждой строке текста.

  16. REPLACE_First_Str_to_C(T,C) - заменяет первую строку текста на строку C.

  1. Динамическая память (первый шаг к современному программированию) Лабораторная работа 40.(линейные однонаправленные списки – не так трудно, как кажется)

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

Type

list = ^node;

node = record

K : integer;

next : List;

end;

Написать следующие функции (L – указатель на голову списка, а El – пе­ременная типа integer).

1.Функция добавляет El в голову списка.

Function ToHead(l:list; El:integer):list;

  1. Функция добавляет El в хвост непустого списка.

Function ToTail(l:list; El:integer):list;

3. Функция определяет длину списка.

Function Length_List(l:list):integer;

4. Функция возвращает число вхождений El в список.

Function Count_El(l:list;El:integer):integer;

5. Функция возвращает ссылку на минимальный элемент списка.

Function Min_List(l:list):list;

6. Функция возвращает ссылку на максимальный элемент списка.

Function Max_List(l:list):list;

7. Функция возвращает значение true, если в списке есть отрица-тельные элементы.

Function Is_Neg(l:list):boolean;

8. Функция возвращает ссылку на элемент, равный El.

Function Find_El(l:list; El:integer):list;

9. Функция удаляет все вхожде-ния El из непустого списка.

Function Del_All_El(l:list; El:integer):list;

10. Функция удаляет все отрица-тельные элементы из непустого списка.

Function Del_All_Neg(l:list):list;

11. Функция возвращает значение true, если список упорядочен по возрастанию.

Function Is_Vozr(l:list):boolean;

12. Функция вставляет El в упоря-доченный по возрастанию список (не нарушая порядка).

Function El_into_VList(l:list; El:integer):list;

13. Функция вставляет El в упоря-доченный по убыванию список (не нарушая порядка).

Function El_into_UList(l:list; El:integer):list;

14. Функция удваивает все эле-менты, равные El (удваивает – т.е. вставляет новый элемент со значением El).

Function Double(l:list; El:integer):list;

15. Функция возвращает значение true, если в списке есть повторя-ющиеся элементы.

Function Is_Double(l:list):boolean;