РОБОТА З ТЕКСТОВИМИ ФАЙЛАМИ. СИМВОЛЬНІ ТА РЯДКОВІ ЗМІННІ

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

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

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

Рік:
2011
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Алгоритмічні мови та програмування
Група:
ІБ-13

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” ІКТА кафедра „ЗАХИСТ ІНФОРМАЦІЇ” ЗВІТ до лабораторної роботи №4 З КУРСУ “АЛГОРИТМІЧНІ МОВИ І ПРОГРАМУВАННЯ” на тему: „РОБОТА З ТЕКСТОВИМИ ФАЙЛАМИ. СИМВОЛЬНІ ТА РЯДКОВІ ЗМІННІ” Варіант № 12 2. ПОВНИЙ ТЕКСТ ЗАВДАННЯ Дано текстовий файл, в якому міститься програма мовою Турбо-Паскаль. Скласти блок-схеми алгоритмів та програму мовою Турбо-Паскаль для виведення на екран текстового файлу (Лабораторна робота №3) в якому не зустрічаються слова “for”, “then”, “іf”, “else”. Підрахувати кількість рядків, в яких кількість приголосних літер парна. Для обробки текстового файлу використовувати розроблені процедури та функції для роботи зі стрічками. Оформити виконання одного із завдань у вигляді підпрограми. 3. ОСТАТОЧНА ВЕРСІЯ БЛОК-СХЕМИ АЛГОРИТМУ Функція nPrugol(s)  Підпрограма DelWord(is, s) 4. СПИСОК ІДЕНТИФІКАТОРІВ КОНСТАНТ, ЗМІННИХ, ПРОЦЕДУР І ФУНКЦІЙ, ВИКОРИСТАНИХ У ПРОГРАМІ, ТА ЇХ ПОЯСНЕННЯ gol – константа перелічувального типу яка містить усі голосні літери; all – константа перелічувального типу яка містить усі літери; oper – константа перелічувального типу яка містить символи які можуть зустрічатися в тексті програми перед операторами “for”, “then”, “іf”, “else”; n – змінна типу integer для зберігання даних про поточну кількість рядків у яких кількість приголосних букв є непарним; j, i, count – змінні типу integer для зберігання проміжних значень у процедурах та функціях; str – змінна типу string для зберігання проміжних текстових даних; f – змінна типу text за допомогою якої здійснюється читання текстового файлу з диску; DelWord(s1, s2) – користувацька процедура яка видаляє слово що міститься в стрічковій змінні s1 з стрічкової змінної s2; nPrugol(s) – користувацька функція яка повертає кількість приголосних букв в рядку s; clrscr – процедура очистки екрана яка об’явлена в модулі crt; readkey – процедура яка очікує натискання будь-якої клавіші; writeln – процедура виведення текстових повідомлень і значень змінних на екран чи у файл; readln – процедура яка зчитує дані з клавіатури чи файлу та присвоює відповідне значення змінній; Delete(s, i, j) – процедура яка видаляє з рядка s певну кількість символів j починаючи з i-того символу; Inc(i) – процедура інкременту, яка збільшує числову змінну i на 1; Assign – процедура яка зв’язує ідентифікатор текстової змінної з файлом на диску; reset – процедура яка відкриває файл для читання; close – процедура яка закриває файл; Pos(s1, s2) – функція яка повертає позицію першого символу входження рядка s1 в рядок s2 Length(s) – функція яка повертає довжину рядка s; Eof(f) – функція яка повертає true якщо досягнуто кінець файлу f; mod – операція для знаходження остачі від ділення. 5. ОСТАТОЧНА ВЕРСІЯ ПРОГРАМИ program lab4; uses crt; var f:text; str:string; n:integer; {===================================} procedure DelWord(is:string; var s:string); const oper=[' ',';','(',')','{','}']; var i,j:integer; begin i:=Pos(is,s); j:=Length(is); if (i<>0) and ((i=1) or (s[i-1] in oper)) and ((i+j-1=Length(s)) or (s[i+j] in oper)) then Delete(s,i,j); end; {===================================} function nPrugol(s:string):integer; const gol=['a','e','i','y','o']; all=['a'..'z']; var i,count:integer; begin count:=0; for i:=1 to Length(s) do if (s[i] in all) and not (s[i] in gol) then inc(count); nPrugol:=count; end; {===================================} begin assign(f,'lab3.pas'); reset(f); clrscr; n:=0; while not eof(f) do begin read(f,str); DelWord('for',str); DelWord('then',str); DelWord('if',str); DelWord('else',str); writeln(str); readln(f); if (nPrugol(str) mod 2=1) then inc(n); end; writeln; writeln('Kilkist radkiv z neparnoy kilkisty prugolosnuh:',n:3); close(f); readkey; end. 6. РЕЗУЛЬТАТИ РОБОТИ ПРОГРАМИ program SortMas; uses crt; const n=5; type mas=array [1..n,1..n] of integer; var a:mas; r,s:byte; sum,sg:real; {=============================================} function sGeom(a:mas;i:byte):real; var j:byte; dob,sg:real; begin dob:=1; j:=i+1 to n do dob:=dob*a[i,j]; sg:=exp(1/(n-i)*ln(abs(dob))); (dob<0) and ((n-i) mod 2=1) sg:=-sg; sGeom:=sg; end; {=============================================} procedure PrintMas; var i,j:byte; begin i:=1 to n do begin j:=1 to n do write(a[i,j]:4); writeln; end; end; {=============================================} procedure Sort; var x:integer; k,i,j:byte; begin k:=1 to n do i:=2 to n do j:=n downto i do a[j,k]>a[j-1,k] begin x:=a[j-1,k]; a[j-1,k]:=a[j,k]; a[j,k]:=x; end; end; {=============================================} begin clrscr; writeln('Vvedit matrix A (rozmir ',n,'x',n,'):'); r:=1 to n do s:=1 to n do begin write('a[',r,',',s,']:= '); readln(a[r,s]); end; writeln; Writeln('Vvedeno matrix A:'); PrintMas; Sort; writeln('Rezultatu robotu programu, Matrix A:'); writeln; PrintMas; sum:=0; r:=1 to n-1 do begin sg:=sGeom(a,r); writeln('Seredne geom radka ',r,':',sg:3:2); sum:=sum+sg; end; writeln; writeln('Suma = ',Sum:3:2); readkey; end. Kilkist radkiv z neparnoy kilkisty prugolosnuh: 29
Антиботан аватар за замовчуванням

30.04.2013 23:04-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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