DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

С, С++

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

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

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

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

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» Кафедра САПР Звіт до лабораторної роботи №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:32

Коментарі

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

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

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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