С, С++

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

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

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

Рік:
2011
Тип роботи:
Лабораторна робота
Предмет:
Алгоритмічні мови та програмування

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» Кафедра САПР Звіт до лабораторної роботи №4 на тему «МАСИВИ І ФАЙЛИ В МОВІ ПРОГРАМУВАННЯ С» з курсу «Проблемно-орієнтовані мови програмування» ЛЬВІВ 2011 Мета роботи Навчитися використовувати масиви та користуватися файлами при розв’язанні задач векторного типу. Теоретичні відомості Масив - це послідовно розміщені у пам’яті елементи одного типу. Кожен масив має ім’я. Доступ до окремих елементів масиву відбувається по імені масиву та індексу (порядковому номеру) елемента. Основні властивості масивів: всі елементи масиву мають однаковий тип; всі елементи масиву розміщені у пам’яті послідовно - один за одним; індекс першого елемента рівний нулю; ім’я масиву є вказівником-константою, рівною адресі першого елемента масиву. Ознакою масиву при описі є наявність парних квадратних дужок [ ]. Константа або константний вираз у квадратних дужках задає число елементів масиву. Загальний вигляд стрічки оголошення одномірного масиву наступний: тип ім’я_масиву[розмірність]; Наприклад: int x[10]; float y[20]; char name[18]; С дозволяє використовувати багатомірні масиви. Найпростіший варіант - двомірний масив. Для оголошення двомірного масиву типу integer twodim розмірністю 10 на 20 потрібно описати його наступним чином: int twodim[10][20]; Будьте уважні, на відміну від інших мов програмування розмірності масиву відокремлені одна від одної квадратними дужками. Отже, для доступу до елемента з індексами 3, 5 масиву twodim служить наступний запис twodim[3][5]. Наступний приклад демонструє роботу з двомірним масивом, а саме, присвоєння кожному елементу цього масиву суму відповідних індексів: main() { int t, i, num[3][4]; for(t = 0; t < 3; t++) for(i = 0; i < 4; i++) num[t][i] = i + t; } Загальний вигляд оголошення багатомірного масиву наступний: тип ім’я[розмірність1][розмірність2]...[розмірність N] Для прикладу покажемо, як оголосити масив цілого типу розмірністю 4 х 10 х 5 : int three[4][10][5]; А створення чотирьохмірного масиву 4 х 10 х 5 х 7: int four[4][10][5][7]; Файл — це іменований об'єкт, що зберігає дані (програма або будь-яка інша інформація) на якому-небудь носії (дискета, вінчестер, CD). Файл, як і масив, - це сукупність даних, тому вони трохи схожі. Однак, вони мають також істотні розбіжності: файли, на відміну від масивів, розташовуються не в оперативній пам'яті, а на жорстких дисках або на зовнішніх носіях, хоча файл може розташовуватися на так званому електронному диску (в оперативній пам'яті); файл не має фіксованої довжини, тобто може збільшуватися й зменшуватися; перед роботою з файлом його необхідно відкрити, а після роботи - закрити. Говорячи про файли, слід сказати про файлову систему. Файлова система - це сукупність файлів і керуючої інформації на диску для доступу до файлів. Або по-іншому - це сукупність програмних засобів для доступу до файлів. Існує досить багато файлових систем, ми будемо говорити про одну з них - про файлову систему MS-DOS. У файловій системі MS-DOS імена файлів складаються із двох частин, розділених крапкою: ім'я файлу й розширення. Поле ім'я файлу може містити не більше 8 довільних символів з набору дозволених для використання в імені файлу. Поле ж розширення може містити не більше 3 символів з того ж набору. Розширення звичайно вказує на тип збереженої інформації або на структуру файлу, і може взагалі бути відсутнім. Приклади найпоширеніших розширень: exe, com, bat, txt, doc, mp3, htm і ін. Файли зберігаються в каталогах. Каталоги можуть називатися по тій же системі, що й файли. Допускаються вкладені каталоги (підкаталоги). Розрізняють два види файлів: текстові й бінарні. Текстові файли можуть бути переглянуті й відредаговані із клавіатури будь-яким текстовим редактором і мають дуже просту структуру: послідовність ASCII-символів. Ця послідовність символів розбивається на рядки, кожна з яких закінчується двома кодами: 13, 10 (0xD, 0хА). Приклади відомих текстових файлів: *.bat, *.c, *.asm. Бінарні файли - це файли, які не мають структури текстових файлів. Кожна програма для своїх бінарних файлів визначає власну структуру. Бібліотека мови С містить функції для роботи як з текстовими, так і з бінарними файлами. Файлова система С спроектована для роботи з великою кількістью пристроїв: моніторами, дисководами, CD-ROM, принтерами, тощо. Незважаючи на те, що кожний з цих пристроїв має свої особливості, файлова система С трансформує їх в логічний пристрій. Таку абстракцію називають потоком. Всі потоки однакові за поведінкою, але аналогічно до файлів, розрізняють два типи потоків - бінарні і текстові. Текстовий потік - послідовність ASCII-символів, бінарний - послідовність байтів. Індивідуальне завдання 6. Прочитати з файлу F1 матрицю А(12,14) переставити рядки матриці таким чином, щоб кількість ненульових елементів зростала від першого рядка до останнього. Текст програми #include <stdio.h> #include <conio.h> int main() { int a[12][14],i,j,z[12],c,v,n; FILE *fp1; fp1=fopen("f.txt","r+"); for(i=0;i<12;i++) for(j=0;j<14;j++) fscanf(fp1,"%i",&a[i][j]); printf ("Zadana matrycya: \n"); for(i=0;i<12;i++) { for(j=0;j<14;j++) { printf("%d ",a[i][j]," "); } printf ("\n"); } for(i=0;i<12;i++) { z[i]=0; for(j=0;j<14;j++) if(a[i][j]==0) z[i]++; } for(i=0;i<13;i++) for(j=0;j<14;j++) if(z[j+1]<z[j]) {c=z[j]; z[j]=z[j+1]; z[j+1]=c; n=j; for(j=0;j<14;j++) { v=a[n][j]; a[n][j]=a[n+1][j]; a[n+1][j]=v; } } printf("\n"); printf("Vporyadkovan masiv:\n"); for(i=0;i<12;i++) { for(j=0;j<14;j++) { printf("%d ",a[i][j]," "); } printf ("\n"); } fclose (fp1); return 0; } Результати обчислень  Висновок: Я навчився використовувати масиви та користуватися файлами при розв’язанні задач векторного типу.
Антиботан аватар за замовчуванням

29.05.2013 13:05-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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