Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Приклад виконання лабораторної роботи. Короткі теоретичні відомості




Короткі теоретичні відомості

В мові С всі операції вводу-виводу, в тому числі з файлів та у файли, виконуються за допомогою потоків. Функції для роботи з потоками вводу-виводу містяться у файлі заголовків stdio.h. Для початку роботи з файлом необхідно створити відповідний потік і явно асоціювати його з конкретним файлом на диску.

FILE *infile, *outfile;

Процес у результаті якого створюється потік ввводу чи виводу, який асоційований з файлом називається відкриванням файлу. Для цього використовується бібліотечна функція fopen(), наприклад:

f1 = fopen(“шлях до файла”,”режим доступу”);

де f1 – вказівник на потік типу FILE, режим доступу вказує на режим відкривання файлу: b – файл двійковий; t – текстовий; w – файл відкривається для запису, якщо файлу не існує, то він створюється, якщо існує – то його вміст очищається; r - файл відкривається тільки для читання; a - файл відкривається для додавання даних у кінець файлу. Наприклад, f1=fopen(“d:/student/data.txt”,”tw”);

Запис або читання даних з файлу здійснюють трьома способами: за допомогою форматованого вводу-виводу, символьного вводу-виводу та блочного вводу-виводу. Для кожного із способів є свій набір функцій.

Форматований ввід вивід – використовується для роботи з даними, які організовані специфічним чином. Форматований вивід здійснюється функцією fprintf(), а ввід - fscanf(). Формати цих функцій наступні:

fprintf(потік, „рядок формату”, об’єкт1...об’єктN);

fscanf(потік, „рядок формату”, &об’єкт1...&об’єктN);

Наприклад, fprintf(f1, „x=%d y=%f\n”, x1[i], yw[i]); - запис у файл елементів масивів x1 та yw, fscanf(f2, „%s%f”, &name,&price); - читання з файлу.

Крім цих функцій вводу-виводу в мові С є функції запису і читання символів, блоків даних тощо. Функції для роботи з файлами приведено в додатку Д.

 

Постановка задачі. Написати програму, яка знаходить суму квадратів від’ємних елементів масиву. Вхідний масив програма повинна прочитати з файлу. Результат опрацювання масиву потрібно вивести у інший файл.

Граф-схема алгоритму програми

Блок 1 – початок алгоритму

Блок 2 – ввід елементів масиву із файла на диску

Блоки 3-8 – сортування елементів списку

Блок 9 – вивід елементів відсортованого масиву у файл і на екран

Блок 10 – закінчення алгоритму

Код програми мовою С

# include <stdio.h>

# include <stdlib.h>

# define n 9

intmain (int argc, char *argv[])

{

FILE *infile,*outfile;

int i,mas[n],a,symkv,elem;

puts ("Klymenko Oleksandr, grupa KIm-31");

puts ("Laboratorna robota 11\n\n\n\n");

puts ("Press any key to continue");

if ((infile= fopen ("d:/wer.txt","r"))== NULL)

puts ("Fail ne vdalosya vidkrutu!");

outfile= fopen ("d:/werr.txt","w");

for (i=0;i<n;i++)

{ fscanf (infile,"%d",&a);

mas[i]=a;

printf ("%d-element masuvy %d\n",i,mas[i]);

}

symkv=0;

for (i=0;i<n;i++)

if (mas[i]<0)

symkv=symkv+mas[i]* mas[i];

printf ("\n Syama kvadrativ vidjemnux elementiv = %d",symkv);

fprintf (outfile,"\n Syama kvadrativ vidjemnux elementiv = %d",symkv);

fclose (infile);

fclose (outfile);

puts ("\n\n\n");

puts ("Programa zavershyla robotu");

system ("PAUSE");

return 0;

}

Тестовий приклад

В файлі: 2 -1 3 2 -2 -1 3 9 -3

Результат роботи програми

Сума квадратів = 15

 




Поделиться с друзьями:


Дата добавления: 2015-05-24; Просмотров: 326; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.