ТЕКСТОВІ ФАЙЛИ

Інформація про навчальний заклад

ВУЗ:
Національний технічний університет України Київський політехнічний інститут
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2010
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Основи програмування та алгоритмічні мови

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний технічний університет України “Київський політехнічний інститут” Кафедра ОТ ЗВІТ про виконання лабораторної роботи № 9.2 з дисципліни “Основи програмування та алгоритмічні мови” Тема: ТЕКСТОВІ ФАЙЛИ Варіант 28 Постановка задачі Створити текстовий файл, вводячи рядки з клавіатури. Сформувати новий файл, що складається зі слів вхідного файлу, які зустрічаються у ньому більше N раз. Розмістити ці слова в новому файлі в порядку зростання їхньої довжини. Вивести вміст вхідного і створеного файлів. Аналітичні викладки Створити текстовий файл, зчитати слова з нього в масив, відсортувати масив за довжиною і алфавітом, записати слова, що повторюються більше N раз у новий файл. Блок-схема алгоритму розв’язання задачі   Текст програми program lab_9_2; uses crt; const max = 100; type str = string[15]; mas = array[1..max] of str; var m,r:mas; {Масиви даних} _N, {параметр N} n,v:word; {лічильники слів} a,b:string; k:char; {Створення} procedure create(const a:string); var st:string; s1, s2:char; f : text; begin Assign (f, a); Rewrite (f); Writeln ('input text (right arrow to end): '); REPEAT s1 := readkey; s2 := readkey; if (s1 = #0) and (s2 = #77) then break; write (s1, s2); ReadLn (st); st := s1 + s2 + st; Writeln (f, st); UNTIL False; Close (f); end; procedure blank(var s:string); begin while (s[1] = ' ') do Delete (s, 1, 1); while Pos (' ', s) <> 0 do Delete (s, Pos (' ', s), 1); if s[Length (s)] <> ' ' then s := s + ' '; end; {Формування масиву} procedure form(var m:mas; st:string; var n:word); begin while Pos (' ', st) <> 0 do begin n := n + 1; m[n] := Copy (st, 1, Pos (' ', st) - 1); Delete (st, 1, Pos (' ', st)); end; end; {Зчитування файлу} procedure readf(const a:string; var m:mas; var n:word); var f:text; st:string; begin Assign (f, a); reset (f); n := 1; while not Eof(f) do begin readln(f,st); blank(st); form(m, st, n); end; close (f); end; {Запис файлу} procedure writef(const a:string; const m:mas; n:word); var i:word; f:text; begin Assign (f, a); rewrite (f); for i := 1 to n do writeln (f, m[i], ' '); close(f); end; {Виведення файлу} procedure outf(const a:string); var st:string; f:text; begin Assign(f, a); reset(f); writeln ('This is ',a); while not Eof(f) do begin readln(f, st); writeln(st); end; close(f); end; procedure swap (var a,b:str); var k:string; begin k:=a; a:=b; b:=k; end; {Сортування масиву} procedure sort (var m:mas; i:word); var k,j,l:word; begin For k:=1 to i-1 do for j := 1 to i-k do if (length(m[j]) > length(m[j+1])) or ((length(m[j]) = length(m[j+1])) and (m[j] > m[j+1])) then swap(m[j],m[j+1]); end; {Створення масиву слів, що задовольняють умові} procedure filter (const m:mas; n:word; var r:mas; var v:word); var i, k:word; begin i := 1; k := 1; v := 1; for i := 1 to n do if m[i+1] = m[i] then k := k + 1 else if k >= _N then begin r[v] := m[i]; v := v + 1; k := 1; end; v := v - 1; end; begin TextColor(0); TextBackGround(7); clrscr; a := '9_2in.txt'; b := '9_2out.txt'; create(a); outf(a); Write ('Vvedite N: '); Readln(_N); readf(a, m, n); sort(m, n); filter(m,n,r,v); writef(b, r, v); outf(b); readkey; end. Результати виконання програми / Висновок Під час виконання лабораторної роботи я вивчив особливості створення і обробки текстових файлів. Програма працює правильно: записує в файл ті слова, що зустрічаються в даному файлі більше N раз.
Антиботан аватар за замовчуванням

01.03.2013 19:03-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!