Частина тексту файла (без зображень, графіків і формул):
МIНIСТЕРСТВО ОСВIТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА"
Лабораторна робота №7
на тему
Використання вказівників для роботи з масивами даних. Збереження
масивів даних у динамічній пам’яті.
Мета роботи: Освоїти способи звернення до елементів масивів за
допомогою вказівників. Навчитись виділяти та використовувати динамічну
пам’ять для розміщення масивів даних.
Завдання лабораторної роботи:
Варіант №21:
1) Ввести з клавіатури відсортований за спаданням значень масив цілих
чисел. Включити у нього введене з клавіатури ціле число так, щоб не
порушити загальну впорядкованість елементів масиву.
2) Ввести квадратну матрицю цілих чисел. Визначити, чи ця матриця є
симетричною вiдносно головної дiагоналi.
Текс програми:
1)
#include <stdio.h>
#include <conio.h>
#include <alloc.h>
#define n 10
void main()
{ int *p, *a, n, k, *i;
a=(int *)calloc(n+1,sizeof(int));
for(p=a;p<a+n;p++) scanf("%d",p);
for(p=a;p<a+n;p++) printf("%d ",*p);
printf("VvediTb chyslo: ");
scanf("%d",&k);
for(p=a;p<a+n;p++){ if(k>=*p){ i=p; break;}
else i=a+n;}
for(p=a+n+1;p>i;p--) *p=*(p-1);
*i=k;
for(p=a;p<a+n+1;p++) printf("%d ",*p);
free(a);
free(p);
getch();
}
2)
#include <stdio.h>
#include <conio.h>
#include <alloc.h>
void main()
{ int **a,**p,*q,n,i=0,j=0,k=0;
printf("VvediTb rozmir matrytsi: ");
scanf("%d",&n);
a=(int **)calloc(n,sizeof(int *));
for(i=0;i<n;i++) a[i]=(int *)calloc(n,sizeof(int));
for(p=a;p<a+n;p++)
for(q=*p;q<*p+n;q++) scanf("%d",q);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(i==j){ printf("_ "); continue;}
printf("%d ",a[i][j]);
if(a[i][j]==a[j][i]) k++;
}
putchar('\n');}
if(k>=n*n-n) puts("Matrytsja symetrychna!");
else puts("Matrytsja NE symetrychna!");
getch();
for(i=0;i<n;i++) free(a[i]);
free(a);
}
Відлагодження програми:
1)
2)
Висновок: на лабораторній роботі я освоїв основи роботи з масивами за допомогою вказівників.