КАТЕГОРИИ: Архитектура-(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 ("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; Просмотров: 349; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |