ІКТА / КБ-12 / Технології Програмування частина №1 (ТП ч.1) / Лаби (готові) / Варіант №5 / Лабараторна робота № 4 Войтович О.О
.docxМІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
кафедра ЗІ
ЗВІТ
до лабораторної роботи №4
з курсу: «Технології програмування »
на тему: «ОБРОБКА СИМВОЛЬНИХ РЯДКІВ. РОБОТА З ФАЙЛАМИ»
Варіант № 5
Виконав: ст. гр. КБ-12
Войтович О.О.
Прийняв: асистент кафедри
захисту інформації
Крет Т.Б.
Львів - 2017
Мета роботи – вивчити елементи мови Сі, рядки, рядкові константи, принципи потокового вводу-виводу, стандартні файли і функції для роботи з ними.
-
Завдання
Сформувати і вивести на екран текстовий файл, в якому після кожного рядка буде виведена цифра яка міститиме значення кількості літер в рядку. Замінити всі символи “(” і “)” на “[” і “]” відповідно. |
2. Блок-схема алгоритму програми
3. Cписок ідентифікаторів констант, змінних, функцій, використаних у блок-схемі алгоритму і програмі,
та їх пояснення
while - цикл з передумовою;
if – умовний оператор;
main() – головна функція;
FILE – включення файлових потоків в програму;
Switch () - oператор вибору;
fprintf() – функція виводу даних у файл;
fgetc () – функція зчитування символа з файлу;
4. Текст програми
#include <stdio.h> // Підключаємо бібліотеки
#include <stdlib.h>
int main()// Головна програма
{ int s=0; char c; // Заводимо зміні
FILE *fin, *fout; // Підключаємо файлові потоки
fin = fopen("input.txt","r"); //Відкриваємо файл для зчитування
fout = fopen("output.txt","w"); //Відкриваємо файл для виведення
while (c != EOF) // Цикл до кінця файлу
{ c = fgetc(fin); //Зчитуємо символ
if ((((int)c)<=90 && ((int)c)>=65) | (((int)c)<=122 && ((int)c)>=97)) {s+=1;} //Перевіряємо чи є символ літерою
if (c=='(') c='['; if (c==')') c=']'; //Перевіряємо чи це дужки
switch (c) // Оператор вибору
{case '\n': {fprintf(fout," %i",s); s=0;}
default : fprintf(fout,"%c",c);
}
}
fclose(fin);// закриваємо файли
fclose(fout);
return 0;// Кінець головної програми
}
5. Результати роботи програми
#include <stdio.h> 13
0
int vvod[]; 7
int boble[]; 8
int sear_p_sum[]; 11
int vivod[]; 8
0
int mas[100][100],n=0,m=0; 8
float sa[100],s=0; 8
0
int main[] 7
{ 0
scanf ["%i",&n]; 7
scanf ["%i",&m]; 7
0
vvod[]; 4
boble[]; 5
sear_p_sum[]; 8
vivod[]; 5
0
return 0; 6
} 0
0
int vvod [] 7
{ 0
for [int i=0; i<n; i++] 10
for [int j=0; j<m; j++] 10
scanf ["%i",&mas[i][j]]; 11
0
0
return 0; 6
} 0
0
int boble [] 8
{ 0
for [int r=0; r<n; r++] 10
for [int i=0; i<m-1; i++] 10
for[int x=0,j=i+1; j<m; j++] 12
if [mas[r][i]<mas[r][j]] {x=mas[r][i]; mas[r][i]=mas[r][j]; mas[r][j]=x; x=0;} 35
0
return 0; 6
} 0
0
int vivod [] 8
{ 0
for [int i=0; i<n; i++] 10
{for [int j=0; j<m; j++] 10
printf ["%i ",mas[i][j]]; 12
printf ["\n"]; 7
} 0
for [int i=0; i<n; i++] 10
printf ["Seredne arefmetuchne radcka #%i = %lf\n",i+1,sa[i]]; 39
0
printf["Suma serednih znachen = %lf",s]; 28
return 0; 6
} 0
0
int sear_p_sum [] 11
{ 0
for [int i=0; i<n; i++] 10
{for [int j=0; j<m; j++] 10
sa[i]+=mas[i][j]; 8
sa[i]/=m; 4
s+=sa[i]; 4
} 0
return 0; 6
}