Конспекти лекцій та Лабораторні роботи з дисципліни "Алгоритми та структури даних" для III курсу спеціальності 121 "Інженерія програмного забезпечення" ОКР "Фаховий молодший бакалавр" Херсонського політехнічного фахового коледжу Державного університету "Одеська політехніка"
Ознайомитися з можливостями роботи з динамічною засобами мови С++. Отримати навички роботи з динамічними масивами.
Персональний комп’ютер, Visual Studio 2008 або інша середа розробки для мови C++
Покажчики — це змінні, котрі містять адресу пам’яті, розподіленої для об’єкта відповідного типу. Усі змінні, розглянуті до цього, зберігали якісь значення (дані). Ці дані могли бути різних типів: символьного, цілого, дійсного тощо. При оголошенні змінної-покажчика слід вказати тип даних, адресу яких буде містити змінна, та ім’я покажчика з символом «*».
Загальний формат опису покажчика має вигляд:
тип *ім’я;
де тип — тип значень, на який вказує покажчик; ім’я — ім’я змінної-покажчика; «*» — операція над типом, що читається «покажчик на тип».
Наприклад:
int *pn; // покажчик на ціле значення;
float *pf1, *pf2; // два покажчики на дійсні значення.
Покажчики не прив’язують дані до якого-небудь визначеного імені змінної і можуть містити адреси будь-якого неіменованого значення. Існує адресна константа NULL, що означає порожню адресу.
Слід нагадати, що мова C++ налічує лише дві операції, які стосуються адрес змінних, а саме:
«&» — операція взяття адреси («адреса значення»);
«*» — операція розіменування («значення за адресою»).
Операція взяття адреси «&» застосовується разом зі змінною і повертає адресу цієї змінної. Операція розіменування «*» використовується разом з покажчиками і вилучає значення, на яке вказує змінна-покажчик, розташована безпосередньо після символа «*».
Оголошення покажчиків можна здійснити одним з таких способів:
<тип> *ptr;
<тип> *ptr = <змінна-покажчик>;
<тип> *ptr = &<ім’я змінної>;
Наприклад:
int *ptx, b;
float y; // — оголошені змінна-покажчик ptx та змінні b і у;
float *sp = &y; // — покажчику sp присвоюється адреса змінної у;
float *p = sp; // — покажчику р присвоюється значення (адреса значення), яке міститься в змінній sp, тобто адреса змінної у.
Завантажити Visual Studio 2008. Знайдіть на робочому столі ярлик з Visual Studio 2008 або Пуск → Всі програми→ Microsoft → Microsoft Visual Studio 2008.
Створити новий проект «Visual C++ (консольное приложение Win32)». Файл → Cтворити → Проект, тип проекту «Консольное приложение Win32».
Перевірити роботу програми та намалювати блок-схему алгоритму
#include <iostream.h>
#include <conio.h>
int main ( )
{ int x = 10;
int *px (&x); // int *px = &x;
cout << "x =" << x << endl;
cout << "*px =" << *px << endl;
x *= 2; //x=x*2;
cout << "Новое значение *px = " << *px << endl;*
px += 2; // *px=*px + 2;
cout << "Результат *px, т. e. x = " << x << endl;
getch(); //задержка экрана
}
#include <iostream>
#include <clocale>
using namespace std;
int main(){
setlocale(LC_ALL,"Russian");
int n,i,j=1;
cout<<"N= ";
cin>>n;
int *a=new int[n];
for (i=0;i<=n;i++){
*(a+i)=j;
j+=2;
}
cout<<"Массив:\n";
for (i=0;i<=n;i++)
cout<<*(a+i)<<'\n';
system("pause");
return 0;
}
Розв’язати задачу згідно з варіантом. Намалювати блок-схему.