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


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



ЗНАЕТЕ ЛИ ВЫ?

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



 

Дано описание: 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.

 

Динамическая память (первый шаг к современному программированию)

Лабораторная работа 17.1 (линейные однонаправленные списки – не так трудно, как кажется)

 

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

Type

list = ^node;

node = record

K: integer;

next: List;

end;

 

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

 

1.Функция добавляет El в голову списка.   Function ToHead(l:list; El:integer):list;
2. Функция добавляет 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;

 


 

Краткий справочник

 

Герона формула.

Герон – выдающийся греческий инженер и математик, живший в г.Александрия в первом веке до н.э. Дал систематическое изложение основных достижений древности в области прикладной механики. Математические работы Герона являются энциклопедией античной прикладной математики.

Формула Герона позволяет вычислить площадь треугольника по трем его сторонам:

P = Ö (P*(P-a)*(P-b)*(P-c)),

где: a, b и c – стороны треугольника,

P – полупериметр (P=(a+b+c)/2).

 

Евклида алгоритм.

Евклид –древнегреческий математик, живший в г.Александрия в третьем веке до н.э. Важнейший труд Евклида «Начала», содержащий изложение планиметрии, стереометрии и некоторых вопросов теории чисел, оказал огромное влияние на развитие математики.

Алгоритм Евклида нахождения наибольшего общего делителя (НОД) неотрицательных целых чисел основан на следующих свойствах этой величины. Пусть m и n – одновременно не равные нулю целые неотрицательные числа и пусть.m³n Тогда, если n=0, то НОД(m,n)=m, а если n¹0, то для чисел m, n и r, где r – остаток от деления m на n, выполняется равенство НОД(m,n)=НОД(n,r). Например, НОД(15,6)=НОД(6,3)=НОД(3,0)=3.

Натуральное число.

Числа 1, 2, 3 и т.д., использующиеся для счета предметов, т.е. це­лые положительные числа, называются натуральными.

 

Палиндром.

Палиндром – это число, которое читается одинаково справа налево и слева направо. Например, числа 1221, 343, 66 – палиндромы.

Понятие палиндром применимо и к тексту. Например, слово «ша­лаш» это тоже палиндром.

 

Прогрессия арифметическая.

Последовательность, каждый член которой, начиная со второго, получен сложением предыдущего члена с некоторым постоянным числом D, называется арифметической прогрессией. Число D – разность прогрессии.

 

Прогрессия геометрическая.

Последовательность, первый член которой отличен от нуля и каж­дый член, начиная со второго, получен умножением предыдущего члена на некоторое постоянное число Q ¹ 0, называется геометрической прогрессией. Число Q – знаменатель прогрессии.

 

Простое число.

Простым называется число, которое делится только на единицу и на само себя.

 

Совершенное число.

Совершенным называется число, которое равно сумме своих де­лителей (конечно, за исключением себя самого). Например, число 6 – совершенное, т.к. 6 = 1 + 2 + 3.

 

Среднее арифметическое.

Среднее арифметическое чисел a1, a2, a3, …,an это сумма этих чи­сел, деленная на их количество (n).

 

Среднее геометрическое.

Среднее геометрическое чисел a1, a2, a3, …,an – это корень n–ой степени из произведения этих чисел.

Факториал.

Факториалом натурального числа n называется произведение натуральных чисел от 1 до n. Обозначается n!.

Фибоначчи числа.

Фибоначчи Леонардо – итальянский математик из г.Пиза (иначе его звали Леонардо Пизанский), живший в XII-XIII веке. Путешествуя по Востоку, Леонардо познакомился с достижениями арабской математики, и его труды способствовали передаче этих знаний на Запад.

Фибоначчи описал интересную последовательность чисел: пер­вые два числа равны единице, а каждое следующее равно сумме двух предыдущих (1, 1, 2, 3, 5, 8, 13, …).

 

Эратосфена решето.

Эратосфен жил в третьем веке до н.э.; родился он в Африке, учился в Александрии и Афинах. Эратосфен был очень разносторонним человеком: он занимался наукой (астрономией, географией, математикой), а также филологией, музыкой и поэзией.

Эратосфен предложил алгоритм, с помощью которого можно оп­ределить все простые числа в заданном диапазоне. Суть алгоритма в следующем: выписываются все натуральные числа от 2 до границы заданного диапазона; выбирается первое из них (это 2, простое число) и вычеркиваются все кратные ему числа, кроме него самого; затем берется следующее из невычеркнутых чисел (это 3, также простое число) и опять вычеркиваются кратные ему числа и т. д. В конце концов, останутся только простые числа, на­чиная с 2.

 

 

Литература.

1. С.А.Абрамов, Г.Г.Гнездилова, Е.Н.Капустина, М.И.Селюн Задачи по програм­мированию. – М.: «Наука», 1988.

2. В.Н.Пильщиков Сборник упражнений по языку Паскаль. – М.: «Наука», 1989.

3. Е.Андреева, И.Фалина Системы счисления и компьютерная арифметика. – М.: «Лаборатория базовых знаний», 2000

4. О.П.Зеленяк Практикум по программированию на TUBO PASCAL.- Киев: «Диа­Софт», 2001

5. Д.М.Златопольский Я иду на урок информатики. – М.: «Первое сентября», 2001



Поделиться:


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

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