Контрольні питання до лабораторної роботи № 4



1. Що таке масив? Що Ви розумієте під ініціалізацією масиву?

2. Що таке глобальний, автоматичний та статичний масиви? Назвіть їх особливості.

3. Як можна задавати розмір масиву?

4. Що таке покажчик? Який розмір покажчика? Що визначає тип покажчика? Що показує різниця покажчиків?

5. Що таке покажчик-константа? Яка різниця між ім'ям масиву й звичайним покажчиком? Які помилкові конструкції? Чому?

int A[10],X[10]; int*PA,*PB; PA=&A[0]; PB=A; X=PA;

6. Як різними способами звернутися до останнього елементу масиву int A[10]?

7. Визначить та поясніть результат роботи програми:

#include <stdio.h>

Void main()

{int a[5]={5 0 ,3 0 ,2 0 ,6 0 ,8 0 };

 int * p =a;

 printf("%d %d %d \n",* p , *( p +2), * p +2);

 printf("%d \n",*++ p- 1);

 printf("%d %d\n", sizeof(a), sizeof(a[3]));

 printf("%d %d\n", sizeof( p ),sizeof(* p ));}


Лабораторна робота №5

Робота з різноманітними масивами

Мета роботи – вдосконалення навичок роботи з масивами (двовимірними, покажчиків, динамічними) та покажчиками на масиви.

Програма 5.1 Програма обчислює суму значень елементів двовимірного масиву в рядках та стовпцях.

#include <stdio.h>

#include <conio.h>

int arr[4][3]={{2,3,4},{7},{ 1 ,9},{8,4,10}};

Int main()

{clrscr();

int i,j, s1[4], s2[3];

puts(“ Масив arr”);

for(i=0;i< 4 ;i++)

{for(j=0;j< 3 ;j++)

printf("%5d",arr[i][j]);

 printf("\n");}

 printf("Сума елемент i в рядків\n");

 for(i=0;i< 4 ;i++)

{for(j=0;j< 3 ;j++) s 1 [ i ]+=arr[i][j];

printf("s 1 [%d]=%d\n", i ,s 1 [ i ]); }

printf("Сума елемент i в стовц i в\n");

for(j=0;j< 3 ;j++)

{ for(i=0;i< 4 ;i++) s 2 [j]+=arr[i][j];

   printf("s 2 [%d]=%d\n",j,s2[j]); }

getch(); return 0;}

Завдання до програми 5.1

Розробіть програму, що вводить із клавіатури двовимірний масив цілих чисел заданого розміру, виводить його на екран та виконує задані обчислення.

1. Обчисліть суму додатних непарних елементів в стовбцях масиву. Розмір масиву 5 на 4.

2. Обчисліть кількість додатних парних елементів в рядках масиву. Розмір масиву 6 на 3.

3. Обчисліть кількість непарних елементів в стовбцях масиву. Розмір масиву 5 на 3.

4. Обчисліть суму від’ємних елементів в рядках. Розмір масиву 3 на 5.

5. Обчисліть добуток елементів в діапазоні від 1 до 5 в стовбцях. Розмір масиву 4 на 5.

Програма 5.2 В програмі розглядається можливість доступу до елементів двовимірного масиву різними способами.

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

const N=3, M=2;

float A[N][M] , sum ;

Int main()

{clrscr();

 randomize(); //запуск генератора випадкових чисел

Int i,j;

 puts("\nзаповнюємо масив випадковими числами:");

 for(i=0;i<N;i++)

 {for(j=0;j<M;j++)

 {*(*(A+i)+j))=random(1000)*0.1-50. 0 ;

printf("% 8.2f ",*(A[i]+j));}

  printf("\n");}

for(i=0;i<N;i++)

for(j=0;j<M;j++)

if( A[i] [ j ]>0&& A[i] [ j ]<20)

 sum+ = (*(A+i))[j];

printf("Сума додатних непарних ел e мент i в %8.2 f \n", sum );

Getch();

 return 0;}

Завдання до програми 5.2

Розробіть програму, що заповнює двовимірний масив випад­ковими числами заданому у діапазоні, виводить його на екран та виконує задані обчислення, використовуючи різні способи доступу до елементів масиву.

1. Обчисліть кількість чисел в масиві, що більші за 15 . 5. Розмір маси­ву 5 на 4. Діапазон випадкових чисел  від 10 . 0 до 30 . 0.

2. Обчисліть середнє арифметичне додатних елементів. Розмір масиву 6 на 3. Діапазон випадкових чисел  від –25 . 0 до 65 . 0.

3. Обчисліть добуток ненульових елементів масиву. Розмір масиву 4 на 5. Діапазон випадкових чисел  від – 5 . 000 до 5 . 000.

4. Обчисліть кількість чисел, що менші за 20 . 5. Розмір масиву 5 на 3. Діапазон випадкових чисел  від –10 . 5 до +55 . 5.

5. Обчисліть кількість від’ємних чисел в масиві. Розмір масиву 5 на 4. Діапазон випадкових чисел від – 50 . 50 до 20 . 50.

Програма 5. 3 В програмі використовується масив покажчиків.

#include <stdio.h>

#include <conio.h>

#include <st ring .h>

Int main()

{clrscr();

 char *fi[]={"Програмування","Математика","Фiзика" };

 printf(“ %s\n %s\n %s\n”,fi[0],fi[1],fi[2]);

 printf("Розмiр масиву покажчикiв = %d\n", sizeof(fi));

 printf("Розмiр покажчика на 1-й рядок=%d\n",

   sizeof(fi[0]));

 puts("Введіть перший рядок");

 gets(fi[0]);

 puts("Введіть другий рядок");

 scanf("%s",fi[1]);

 fi[2]="Алгебра";

 for(int i=0;i<3;i++)

printf("%s  %d \n", fi[i] , strlen( fi[i] ) );

Getch();

 return 0; }

Завдання до програми 5.3

Розробіть програму, в якій визначається масив покажчиків на три задані рядки. Виведіть рядки на екран, визначте їх розмір та розмір масиву покажчиків. Виконайте задані обчислення.

1. Визначить масив покажчиків на три рядки з прізвищем, ім’ям та по батькові. У першому рядку підрахуйте кількість букв ‘ e ’ .

2. Визначить масив покажчиків на три рядки з назвами країни, міста та вулиці. У третьому рядку підрахуйте кількість букв ‘ о ’.

3. Визначить масив покажчиків на три рядки з назвами університету, факультету, спеціальності. У першому рядку підрахуйте кількість букв ‘і’.

4. Визначить масив покажчиків на три рядки з назвами журналу, статті та автора. У третьому рядку підрахуйте кількість букв ‘ н ’.

5. Визначить масив покажчиків на три рядки з назвами книги, глави та розділу. У другому рядку підрахуйте кількість букв ‘к’.

Програма 5.4 В програмі показано, як створюється динамічний масив для змінних типу int. Розмір масиву вводиться з клавіатури. Значення елементів масиву теж вводяться з клавіатури. На кінці програми пам'ять звільняється.

#include <stdio.h>

#include <conio.h>

#include <alloc.h>

Int main()

{clrscr();

Int n;

 int *ptr; //визначення покажчика на масив чисел типу int

 puts("Введіть розмір масиву");

 scanf("%d",&n);

 //запит пам’яті

 ptr=(int*)malloc(n*sizeof(int)); // ptr=new int[n];

//перевiрка виделення пам’яті

if ( ptr == NULL )

{ puts (“ Error ”);

return -1;}

 puts("Введіть елементи масиву");

 for(int i=0;i<n;i++)

scanf("%d",&ptr[i]);

 puts("Ви ввели масив");

 for(i=0;i<n;i++)

  printf("%d ",*(ptr+i));

 //звільнення пам'яті

 free(ptr); // delete [] ptr;

Getch();

return 0; }

Завдання до програми 5. 4

Розробіть програму, що створює динамічний масив для змінних заданого типу з використанням операції new або функції malloc. Роз­мір масиву введіть з клавіатури. Масив заповніть випадковими числами у заданому діапазон та виведіть його на екран. Звільніть пам’ять.

1. Створіть динамічний масив для змінних типу long з викорис­танням операції new. Масив заповніть випадковими числами у діапазоні від –5000 до +5000.

2. Створіть динамічний масив для змінних типу float з викорис­танням функції malloc. Масив заповніть випадковими числами у діапазоні від  –50 . 25 до +50 . 25.

3. Створіть динамічний масив для змінних типу double з викорис­танням операції new. Масив заповніть випадковими числами у діапазоні від 0 . 000 до 32 . 000.

4. Створіть динамічний масив для змінних типу char з викорис­танням функції malloc. Масив заповніть випадковими числами у діапазоні від 6 0 до 125.

5. Створіть динамічний масив для змінних типу long double з вико­ристанням операції new. Масив заповніть випадковими числами у діапазоні від –15 . 000 до 15 . 000.


Дата добавления: 2019-02-13; просмотров: 273; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!