МІНІСТЕРСТВО ОСВІТИ І НАУКИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра інформаційних
систем та мереж
Лабораторна робота №6
на тему:
Робота з масивами даних
.
Львів-2008р.
Назва роботи:
Робота з масивами даних
Мета роботи:
Вивчити засоби мови Сі для оголошення масивів даних, звернення до їх елементів за допомогою індексів, введення масивів з клавіатури та виведення на екран.
Завдання лабораторної роботи:
Кожне завдання складається із двох варіантів, розміщених у частинах 1 та 2.
Максимальну кількість елементів масиву оголосити за допомогою макро- константи, визначеної директивою #define. Реальну (не більшу від оголошеної) кількість елементів масиву можна задавати введеним з клавіатури значенням змінної. Верхню межу індексів масиву у циклах задавати за допомогою макроконстант або ідентифікаторів змінних.
Для звернення до елементів масивів використати індекси;
Введення вхідних даних та виведення результатів супроводжувати відповідними до умови задачі текстовими повідомленнями.
Після введення вхідних даних виконувати ехо-виведення їх значень на екран.
Виведення двовимірних масивів здійснювати у формі прямокутних матриць.
Текст програми:
Програма 1
#include <stdio.h>
#include <conio.h>
void error();
void main()
{
int j,i,t,d,n,l=1; int a[9999];
textbackground(WHITE);
textcolor(BLACK);
clrscr();
puts("Введiть кiлькiсть елементiв масиву");
scanf("%d",&n);
puts("\nВведiть вiдсортований по спаданню масив цiлих чисел:");
for (i=0; i<n; i++)
{
printf("a[%d]=",i+1);
scanf("%d",&a[i]);
}
for (j=0; j<n-1; j++)
if (a[j]<=a[j+1])
{l=0; error(); break;}
if (l!=0)
{
n++;
puts("\nВведiть елемент, який треба вставити в масив:");
scanf("%d",&t);
if (t>a[0])
{
for (i=n-1; i!=-1; i--)
a[i+1]=a[i];
a[0]=t;
}
else
if (t<a[n-2]) a[n-1]=t;
else
{
for (i=0; i<n-2; i++)
if (t>a[i+1]&&t<a[i]|t==a[i])
{ d=i;
for (j=n-1; j>d; j--)
a[j+1]=a[j];
break;
}
a[d+1]=t;
}
printf("\nМасив з вставленим елементом:\n");
for (i=0; i<n; i++)
printf("a[%d]=%d\n",i+1,a[i]);
}
getch();
}
void error()
{
clrscr;
printf("\nФ А Т А Л Ь Н А П О М И Л К А ! ! !\n");
printf("Потрiбно вводити посортовний по спаданню масив цiлих чисел.");
}
Програма 2
#include <stdio.h>
#include <conio.h>
void tf(int n, int b, int a[99][99]);
void main()
{
int j,i,n,b; int a[99][99];
textbackground(WHITE);
textcolor(BLACK);
clrscr();
puts("Введiть розмiрнiсть матрицi:");
scanf("%d",&n);
puts("\nВведiть елемнти матрицi:");
for (i=0;i<n;i++)
for (j=0;j<n;j++)
{
printf("a[%d,%d]=",i+1,j+1);
scanf("%d",&a[i][j]);
}
tf(n,0,a);
getch();
}
//----------------------------------
void tf(int n, int b, int a[99][99])
{ int j=0,i;
int si=0; int sj=0;
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
{
si+=a[i][j];
sj+=a[j][i];
if (j==n-1)
{
if (si==sj)
{b=1; } else
{b=0; break;}
//printf("i=%d ",si); printf("j=%d\n",sj);
si=0;sj=0;
}
}
if (b==0) break;
}
if (b==0) puts("\nМАТРИЦЯ НЕ Є МАГIЧНИМ КВАДРАТОМ");
else puts("\nМАТРИЦЯ Є МАГIЧНИМ КВАДРАТОМ");
//printf("%d",b);
}
Результати виконання програми:
Програма 1
Програма 2
Висновки:
Я вивчив засоби мови Сі для оголошення масивів даних, звернення до їх елементів за допомогою індексів, введення масивів з клавіатури та виведення на екран.