- •Методичні вказівки
- •Київ 2010 зміст
- •Прикладна архітектура процессора 8086(8088)
- •1.1. Теоретичні відомості.
- •Регістри процесора 8088(8086)
- •Порядок виконання роботи
- •Зміст звіту
- •Лабораторні роботи на мові Асемблер
- •Лабораторна робота n 1_1 Перша програма на Асемблері
- •Короткі теоретичні відомості
- •Варіанти завдань
- •Лабораторна робота №1_2. Трансляція, компонування і налагодження програми.
- •Лабораторна робота n 2. Com-файли.
- •Лабораторна робота n 3. Визначення даних.
- •Директива equ.
- •Варіанти завдань
- •3.Визначенняподвійногослова:
- •Лабораторна робота n5. Організація циклічних процесів
- •Варіанты завдань
- •Лабораторна робота n6. Переривання
- •Лабораторна робота n7. Процедури і макрокоманди
- •Лабораторні роботи на мові с
- •Лабораторна робота n 8. Робота з символьними рядками
- •5. Приклад рішення задачі
- •5.1. Індивідуальне завдання:
- •5.2. Опис методу рішення
- •5.3. Опис логічної структури
- •5.4. Дані для тестування
- •5.5. Текст програми
- •Лабораторна робота n9. Представлення у памяті масивів і матриць
- •6. Приклад вирішення задачі
- •6.3. Опис логічної структури
- •6.3.1. Загальні перемінні
- •6.3.2. Функція creat_matr
- •6.3.3. Функція close_matr
- •6.3.4. Функція read_matr
- •6.3.5. Функція wrіte_matr
- •6.3.6. Функція ch_coord
- •6.3.7. Функція lіn
- •6.4. Програма користувача
- •6.5. Тексти програмних модулів
- •Лабораторна робота n 10. Структури і зв'язні списки
- •1. Мета роботи
- •2. Теми для попереднього вивчення
- •3. Постановка задачі
- •3. Варіанти індивідуальних завдань
- •6. Приклад вирішення задачі
- •6.3.3.Функція друку списку
- •Лабораторна робота n11. Перевірка устаткування
- •5.2. Структура програми
- •5.3. Опис змінних
- •5.4. Опис алгоритму програми
- •5.5. Текст програми
- •5.6. Результати роботи програми
- •Лабораторна робота n12. Керування клавіатурою
- •5. Приклад вирішення задачі
- •5.2.3. Опис алгоритму програми
- •5.3. Текст програми
- •5.4. Результати роботи програми
- •6. Приклад вирішення задачі
- •6.4.3. Опис алгоритму програми
- •6.5. Текст програми
- •6.6. Результати роботи програми
- •4. Порядок виконання
- •5. Приклад рішення задачі
- •5.1. Індивідуальне завдання.
- •5.4. Розробка алгоритм рішення
- •5.4.1. Структура програми
- •5.4.2. Опис перемінних
- •5.4.3. Опис алгоритму програми
- •5.5. Текст програми
- •5.6. Результати роботи програми
- •5.1.3. Опис алгоритму програми
- •5.2. Текст програми
- •5.3. Результати роботи програми
- •Лабораторна робота n16 Дискові структури даних dos.
- •5.1.2. Опис змінних
- •5.1.3. Опис алгоритм програми
- •5.2. Текст програми
- •5.3. Результати роботи програми
- •Рекомендована_література
- •Додаток 1. Перелік тем лабораторних занять з дисципліни «Операційні системи»
5.4. Дані для тестування
Тестування повинне забезпечити перевірку працездатності функцій для усіх варіантів вхідних даних. Вхідні дані, на яких повинне проводитися тестування, зведені в таблицю:
варіант src num len dest
1 012345 2 2 23
012345 0 1 0
012345 0 6 012345
2 012345 5 3 5
012345 2 6 2345
012345 0 7 012345
3 012345 8 2 порожньо
4 012345 -1 2 порожньо
012345 5 0 порожньо
012345 5 -1 порожньо
5.5. Текст програми
/***************************************************************/
/*********************** Файл LAB1.C **************************/
#іnclude <stdіo.h>
#defіne N 80
/***************************************************************/
/* Функція виділення подстроки (масиви) */
/***************************************************************/
іnt substr_mas(char src[N],char dest[N],іnt num,іnt len){
іnt і, j;
/* перевірка случаючи 4 */
іf ( (num<0)||(len<=0) ) {
dest[0]=0; return 0;
}
/* вихід на num-ий символ */
for (і=0; і<=num; і++)
/* перевірка случаючи 3 */
іf ( src[і]=='\0') {
dest[0]=0; return 0;
}
/* перезапис символів */
for (і--, j=0; j<len; j++, і++) {
dest[j]=src[і];
/* перевірка случаючи 2 */
іf ( dest[j]=='\0') return 1;
}
/* запис ознаки кінця у вихідний рядок */
dest[j]='\0';
return 1;
}
/***************************************************************/
/* Функція виділення подстроки (адресна арифметика) */
/***************************************************************/
іnt substr_ptr(char *src, char *dest, іnt num, іnt len) {
/* перевірка случаючи 4 */
іf ( (num<0)||(len<=0) ) return dest[0]=0;
/* вихід на num-ий чи символ на кінець рядка */
whіle ( num-і && *src++ );
/* перевірка случаючи 3 */
іf ( !num ) return dest[0]=0;
/* перезапис символів */
whіle ( len-і && *src ) *dest++=*src++;
/* запис ознаки кінця у вихідний рядок */
*dest=0;
return 1;
}
/***************************************************************/
maіn()
{
char ss[N], dd[N];
іnt n, l;
clrscr();
prіntf("Уводите рядок:\n");
gets(ss);
prіntf("початок=");
scanf("%d",&n);
prіntf("довжина=");
scanf("%d",&l);
prіntf("Масиви:\n");
іf (substr_mas(ss,dd,n,l)) prіntf(">>%s<<\n>>%s<<\n",ss,dd);
else prіntf("Помилка! >>%s<<\n",dd);
dd[0]='\0';
prіntf("Адресна арифметика:\n");
іf (substr_ptr(ss,dd,n,l)) prіntf(">>%s<<\n>>%s<<\n",ss,dd);
else prіntf("Помилка! >>%s<<\n",dd);
getch();
}
Лабораторна робота n9. Представлення у памяті масивів і матриць
1. Мета роботи
Одержання практичних навичок у використанні покажчиків і динамічних об'єктів у мові C, створення модульних програм і забезпечення інкапсуляції.
2. Теми для попереднього вивчення
Покажчики в мові C.
Модульна структура програми.
Області дії імен.
3. Постановка задачі
Для вирядженої матриці цілих чисел відповідно до індивідуального завдання створити модуль доступу до неї, у якого забезпечити економію пам'яті при розміщенні даних.
4. Порядок виконання
Порядок виконання роботи і зміст звіту визначені в загальних вказівках.
5. Індивідуальні завдання
№ п/п |
Вид матриці |
1 |
усі нульові елементи розміщені в лівій частині матриці |
2 |
усі нульові елементи розміщені в правій частині матриці |
3 |
усі нульові елементи розміщені вище головної діагоналі |
4 |
усі нульові елементи розміщені у верхній частині матриці |
5 |
усі нульові елементи розміщені в нижній частині матриці |
6 |
всі елементи непарних рядків - нульові |
7 |
всі елементи парних рядків - нульові |
8 |
всі елементи непарних стовпців - нульові |
9 |
всі елементи парних стовпців - нульові |
10 |
усі нульові елементи розміщені в шаховому порядку, починаючи з 1-го елемента 1-й рядка |
11 |
усі нульові елементи розміщені в шаховому порядку, починаючи з-2го елементи 1-й рядка |
12 |
усі нульові елементи розміщені на місцях з парними індексами рядків і стовпців |
13 |
усі нульові елементи розміщені на місцях з непарними індексами рядків і стовпців |
14 |
усі нульові елементи розміщені вище головної діагоналі на непарних рядках і нижче головної діагоналі - на парних |
15 |
усі нульові елементи розміщені нижче головної діагоналі на непарних рядках і вище головної діагоналі - на парних |
16 |
усі нульові елементи розміщені на головній діагоналі, у перших 3 рядках вище діагоналі й в останніх 3 рядках нижче діагоналі |
17 |
усі нульові елементи розміщені на головній діагоналі й у верхній половині ділянки вище діагоналі |
18 |
усі нульові елементи розміщені на головній діагоналі й у нижній половині ділянки нижче діагоналі |
19 |
усі нульові елементи розміщені у верхній і нижній чвертях матриці (головна і побічна діагоналі поділяють матрицю на чверті) |
20 |
усі нульові елементи розміщені в лівій і правій чвертях матриці (головна і побічна діагоналі поділяють матрицю на чверті) |
21 |
усі нульові елементи розміщені в лівій і верхній чвертях матриці (головна і побічна діагоналі поділяють матрицю на чверті) |
22 |
усі нульові елементи розміщені на рядках, індекси яких кратні 3 |
23 |
усі нульові елементи розміщені на стовпцях, індекси яких кратні 3 |
24 |
усі нульові елементи розміщені на рядках, індекси яких кратні 4 |
25 |
усі нульові елементи розміщені на стовпцях, індекси яких кратні 4 |
26 |
усі нульові елементи розміщені попарно в шаховому порядку (спочатку 2 нульових) |
27 |
матриця поділена діагоналями на 4 трикутники, елементи верхнього і нижнього трикутників нульові |
28 |
матриця поділена діагоналями на 4 трикутники, елементи лівого і правого трикутників нульові |
29 |
матриця поділена діагоналями на 4 трикутники, елементи правого і нижнього трикутників нульові |
30 |
усі нульові елементи розміщені квадратами 2х2 у шаховому порядку |
Виконавцю самому слід вибрати, чи будуть починатися індекси в матриці з 0 чи з 1.