МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра ICM
Лабораторна робота №3
з дисципліни “Алгоритми і структури даних”
“ Інтегровані структури даних, запису.”
Виконав:
студент гр. КН-2
Львів 2007
Мета виконання лабораторної роботи: придбання і закріплення навиків в роботі із записами, в інтергациі даних, в модульному програмуванні.
Завдання на роботу:
Для заданої прикладної області розробити опис об'єктів цієї області. Розробити процедури, що реалізуюють базові операції над цими об'єктами, зокрема:
текстове введення-виведення (консольний і файловий);
присвоювання;
задання константних значень;
порівняння (не менше 2-х типів).
Підготувати файл початкових даних, що містять не менше 10 значень конкретних об'єктів.
Використовуючи процедури і описи модуля типу даних, розробити програму, що забезпечує введення початкових даних з першого файлу даних в пам'ять і зберігання їх в масиві, сортування масиву по алфавітному і по числовому параметру.
Варіанти індивідуальних завдань
Для кожної області перераховані параметри об'єкту. Серед параметрів обов'язково є ключове алфавітне поле (наприклад, прізвище), яке ідентифікує об'єкт, у кожного об'єкту є також одне або декілька числових полів, по яким вірогідні звернення до об'єкту. Набір характеристик може бути розширений і ускладнений по розсуду виконавця.
Хід виконання завдання
#include<stdio.h>
#include<conio.h>
#include<string.h>
#define n 3
struct ChK
{char vyd[10];
char rid[10];
char simeystvo[15];
char gytlo[15];
int chysel;
}d;
struct ChK dani[n];
int i,j;
void main()
{clrscr();
puts("Vvedit dani do chervonoi knygy:");
for(i=0;i<n;i++)
scanf("%s%s%s%s%d",&dani[i].vyd,&dani[i].rid,&dani[i].simeystvo, &dani[i].gytlo,&dani[i].chysel);
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strcmp(dani[i].vyd,dani[j].vyd)>=0)
if(strcmp(dani[i].vyd,dani[j].vyd)>0)
{d=dani[i];
dani[i]=dani[j];
dani[j]=d;}
else
if(strcmp(dani[i].rid,dani[j].rid)>=0)
if(strcmp(dani[i].rid,dani[j].rid)>0)
{d=dani[i];
dani[i]=dani[j];
dani[j]=d;}
else
if(strcmp(dani[i].simeystvo,dani[j].simeystvo)>=0)
if(strcmp(dani[i].simeystvo,dani[j].simeystvo)>0)
{d=dani[i];
dani[i]=dani[j];
dani[j]=d;}
else
if(strcmp(dani[i].gytlo,dani[j].gytlo)>0)
{d=dani[i];
dani[i]=dani[j];
dani[j]=d;}
puts("\n");
puts("VPORYADKOVANI DANI\n");
for(i=0;i<n;i++)
printf("%s %s %s %s %d\n",dani[i].vyd, dani[i].rid, dani[i].simeystvo, dani[i].gytlo, dani[i].chysel);
}
Результати виконання:
Висновок: на цій лабораторній роботі я придбав і закріпив навики в роботі із записами, в інтергациі даних, в модульному програмуванні.