Використання вказівників для роботи з масивами даних.

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра інформаційних систем та мереж

Інформація про роботу

Рік:
2012
Тип роботи:
Лабораторна робота
Предмет:
Інші
Група:
КН

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА” Кафедра інформаційних систем та мереж Лабораторна робота №7 на тему: Використання вказівників для роботи з масивами даних. Збереження масивів даних у динамічній пам’яті. Львів-2008р. Назва роботи: Використання вказівників для роботи з масивами даних. Збереження масивів даних у динамічній пам’яті. Мета роботи: Освоїти способи звернення до елементів масивів за допомогою вказівників. Навчитись виділяти та використовувати динамічну пам’ять для розміщення масивів даних. Завдання лабораторної роботи: У завданнях першої частини необхідно: Визначити кількість елементів масиву за допомогою макроконстанти директиви #define; Для введення, опрацювання та виведення елементів масивів використати попередньо оголошені вказівники; Введення вхідних даних та виведення результатів супроводжувати відповідними до умови задачі текстовими повідомленнями; Після введення вхідних даних виконувати ехо-виведення їх значень на екран. У завданнях другої частини необхідно: Кількість елементів масиву ввести з клавіатури, після чого виділити необхідний об’єм динамічної пам’яті для розміщення масиву (див. табл. 14); Занести у динамічну пам’ять введені з клавіатури дані; для звернення до елементів масиву перевагу надати використанню вказівників замість індексів; Перед виходом з програми звільнити зайняту динамічну пам’ять. Блок-схема: Програма 1  Програма 2  Текст програми: Програма 1 #include <stdio.h> #include <conio.h> #include <alloc.h> #define N 30 void sw(unsigned n); void main() { unsigned n; textcolor(BLACK); textbackground(WHITE); clrscr(); printf("Введiть число у десятковiй системi числення\n"); scanf("%u",&n); //printf("%u\n\n",n); sw(n); } void sw(unsigned n) { unsigned *a; int d=0,i; a=(unsigned *)malloc(N*sizeof(unsigned)); //printf("%u\n\n",n); while (n>0) { *(a+d)=n%16; n/=16; d++; } printf("\nЧисло у шiстнадцятковiй системi числення:\n"); for (i=d-1;i>-1;i--) printf("%X",*(a+i)); getch(); free(a); }   Програма 2 #include <stdio.h> #include <conio.h> #include <alloc.h> #define N 30 int ZV(int n, int m, int **a); int main() { int **c; int k,n,m,i,j; textbackground(WHITE); textcolor(BLACK); clrscr(); c=(int **) malloc(N*N*sizeof(int)); printf("Введiть розмiр прямокутної матрицi:\n"); printf("n="); scanf("%d",&n); printf("m="); scanf("%d",&m); puts("\nВведiть елементи матрицi:"); for (i=0;i<n;i++) for (j=0;j<m;j++) { printf("a[%d,%d]=",i+1,j+1); scanf("%d",&*(*(c+i)+j)); } k=ZV(n,m,c); printf("Кiлькiсть рiзних елементiв прямокутної матрицi=%d",k); getch(); free(c); } int ZV(int n, int m, int **a) #define true 1 #define false 0 { int y,x,i,j,K=0,z; int *b[N][N]; puts(" "); for (i=0; i<n;i++) for (j=0; j<m;j++) {z=true; for (x=0; x<n;x++) for (y=0; y<m;y++) if ((i!=x||j!=y)&&(x<=i)&&(i>x||j>y)) { if ((*(*(a+i)+j))==(*(*(a+x)+y))) z=false; //printf("K=%d ij[%d,%d] xy[%d,%d] \n",K,i,j,x,y); } if (z==true) K++; } return K; }   Результати виконання програми: Програма 1  Програма 2  Висновки: Я освоїв способи звернення до елементів масивів за допомогою вказівників. Навчився виділяти та використовувати динамічну пам’ять для розміщення масивів даних.
Антиботан аватар за замовчуванням

11.12.2012 20:50

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!