Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра ІСМ
Лабораторна робота №7
на тему: “ Використання вказівників для роботи з масивами
даних. Збереження масивів даних у динамічній пам’яті. ”
Мета роботи:
Освоїти способи звернення до елементів масивів за допомогою вказівників. Навчитись виділяти та використовувати динамічну пам’ять для розміщення масивів даних.
Варіант 5
Частина1. Використання вказівників для роботи з масивами
Сформувати вектор з усіх простих чисел, що потрапляють у заданий
інтервал[a,b]. Межі інтервалу ввести з клавіатури. Сформований масив
вивести на екран.
Частина2. Збереження масивів у динамічній пам’яті.
Для заданої прямокутної матрицi дiйсних чисел вивести на екранiндекси
усiх її сiдлових точок. Елемент матрицi називається сiдловою точкою, якщовиконується умова: max min a[i][j] = min max a[j][i].
Частина 1. Код програми.
#include<stdio.h>
#include<conio.h>
#include <alloc.h>
int main()
{ clrscr();
int a,b,temp,k=0;
int *p =(int *) malloc (sizeof(int));
int bool=1;
int size = sizeof(int);
printf("a = ");
scanf("%d",&a);
printf("b = ");
scanf("%d",&b);
if(a%2==0){
temp=a+1;
}
else
{
temp =a;
}
do
{
for(int i =3 ; i<temp; i+=2)
{
if(temp%i==0){bool=0; break;}
}
if(bool==1){
p[k]=temp;
realloc(p,size);
k++;
bool=1;
}
temp+=2; bool=1;
}while(temp<=b);
for(int i=0;i<k;i++)
printf("%d ",p[i]);
free (p);
getch();
return 0;
}
Результати виконання програми
/
Рис.1. Виконання завдання 1.
Частина 2. Код програми.
#include<stdio.h>
#include <conio.h>
#include <alloc.h>
int main()
{ clrscr();
int n,m,i=0,j=0,ki=0;
float minj,maxi;
int mi,mj;
float temp;
int bool =1;
printf("n = ");
scanf("%d",&n);
printf("m = ");
scanf("%d",&m);
float **p = (float **) malloc (n*sizeof(float*));
for(i=0; i<n;i++)
p[i] = (float *) malloc(m*sizeof(float));
for( i=0; i<n;i++){
for( j=0; j<m;j++){
scanf("%f",&temp);
p[i][j]=temp;
}
}
mi=0;
mj=0;
while(mj<m)
{
maxi=p[0][mj];
mi=0;
for( i=0; i<n;i++) {
if(maxi<p[i][mj])
{
maxi=p[i][mj];
mi=i;
}
}
minj=p[mi][mj];
for( j=0; j<m;j++)
{ if(minj>p[mi][j])
{
bool = 0; break;
}
}
if(bool==1){printf("\ni=%d\nj=%d",mi,mj); ki++;}
mj++;
bool=1;
}
if(ki==0)printf("Ne maje");
getch();
return 0;
}
Результати виконання програми
/
Рис.2. Виконання завдання 2.
Висновок
На лабораторній роботі я освоїв основи роботи з масивами за допомогою вказівників.