Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра ІСМ
Лабораторна робота №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.
Висновок
На лабораторній роботі я освоїв основи роботи з масивами за допомогою вказівників.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!