- •Національний технічний університет
- •Мета роботи
- •Оператори введення/виводу
- •Лабораторна робота № 2
- •Приклад виконання завдання
- •Вибір варіанта розрахунку. Використання операторів if, else, else if Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Оператор if
- •Використання оператора else в операторі if
- •Оператор else if
- •Лабораторна робота №4
- •Циклічні алгоритми.
- •Організація циклу за допомогою операторів while і do while
- •Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Циклічний алгоритм. Організація циклу за допомогою оператора for Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Робота з масивами символів. Використання функцій getchar (), putchar () Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Робота з масивами символів. Використання операторів continue, break і функції switch () Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Оператор continue
- •Оператор break
- •Множинний вибір: функція switch ()
- •Робота з рядками Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Лабораторна робота № 9
- •Завдання
- •Вказівки до виконання завдання
- •Робота з одномірними масивами. Обчислення максимуму, мінімуму, кратність елементів
- •Сортування масиву Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Робота з двовимірними масивами. Організація введення / виводу елементів двовимірного масиву Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Лабораторна робота № 13 робота з функціями Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Придбання і закріплення практичних навичок у використанні файлового введення/виводу при складанні програми мовою с.
- •Лабораторна робота № 15
- •Робота з функціямипідпрограмами Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Лабораторна робота № 17 Програмування задач матричної алгебри Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Лабораторна робота № 18 Обчислення визначеного інтегралу Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Лабораторна робота № 19 Робота зі структурами Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Додаток 1 Завдання до лабораторної роботи № 2
- •1. Обчислити значення виразу , якщо ,
- •Додаток 2 Завдання до лабораторної роботи № 3
- •Додаток 3 Завдання до лабораторної роботи № 4
- •Додаток 4 Завдання до лабораторної роботи № 5
- •Додаток 5 Завдання до лабораторної роботи № 6
- •Додаток 6 Завдання до лабораторної роботи № 7
- •Додаток 7 Завдання до лабораторної роботи № 8
- •Додаток 8 Завдання до лабораторної роботи № 9
- •Додаток 9 Завдання до лабораторної роботи № 10
- •Додаток 10 Завдання до лабораторної роботи № 11
- •Додаток 11 Завдання до лабораторної роботи № 12
- •Додаток 12 Завдання до лабораторної роботи № 13
- •Додаток 13
- •Додаток 14
- •Додаток 15
- •Додаток 16
- •Додаток 17
- •Додаток 18
- •Список літератури
Робота з двовимірними масивами. Організація введення / виводу елементів двовимірного масиву Мета роботи
Метою даної лабораторної роботи є придбання навичок обробки двовимірних масивів: уведення/вивід елементів двовимірного масиву, зміна значень елементів масиву, визначення мінімального і максимального значень рядків і стовпців масиву, зміна розташування елементів двовимірного масиву.
Завдання
1. Скласти алгоритм і написати програму обробки двовимірного масиву відповідно до індивідуального завдання. Варіанти завдань надано в додатку 11. Номер варіанта призначається викладачем.
2. Здійснити налагодження програми і її тестування.
3. Скласти звіт про роботу.
Вказівки до виконання завдання
Двовимірний масив являє собою масив масивів. Наприклад, оголошення
double x[5][6];
створює масив х, що має п'ять елементів, кожний з яких є масивом, що складається із шести елементів типу double. Масив х можна представити як масив, що складається з п'яти рядків і шести стовпців. Зміна другого індексу приводить до переміщення уздовж рядка, зміна першого – до переміщення уздовж стовпця.
Для обробки масиву використовується два оператори циклу for, вкладених один в один. Один цикл організовує зміну індексу рядка, інший – стовпця. Наприклад, для введення елементів двовимірного масиву з клавіатури в програмі буде записаний наступний блок операторів:
int і,j;
double x[5][6];
for(і=0;і<5;і++) /* цикл, що змінює індекс рядків */
for(j=0;j<6;j++) /* цикл, що змінює індекс стовпців */
{
printf(“Уведіть x[%d][%d]\n”, і, j);
scanf(“%lf”,&x[i][j]);
}
Цей приклад організовує введення масиву построчно. Для організації введення масиву по стовпцях треба зробити перестановку циклів місцями.
Крім введення елементів двовимірного масиву з клавіатури, можна ініціалізувати масив у програмі. Це можна зробити двома способами: ввести підряд у рядок усі дані, наприклад:
int s[2][3]={5,6,7,8,9,10};
або ввести всі дані, уклавши їх рядками у фігурні дужки, наприклад:
int s[2][3]={
{5,6,7},
{8,9,10}
};
Обидва способи ініціалізують однаковий масив. Розходження між способами ініціалізації необхідно враховувати в тому випадку, якщо вводиться менша кількість значень, чим указано в оголошенні масиву. Наприклад, у випадку такої ініціалізації
int x [2][3]={5,6,7,10};
одержимо масив, у якому в першому рядку будуть знаходитися елементи 5, 6, 7, а в другому – 10, 0, 0. Якщо застосувати другий спосіб:
int x[2][3]={
{5,6},
{7,10}
};
то в першому рядку масиву будуть елементи 5, 6, 0, а в другому – 7, 10, 0.
Способи обробки елементів двовимірного масиву розглянемо на наступних прикладах.
Приклад 1. Дано масив чисел із дробовою частиною а(4,5). Знайти добуток мінімальних елементів стовпців.
#include <stdio.h>
#define I 4
#define J 5
int main ()
{
/* ініціалізація масиву */
double a[4][5]={1.,1.1,1.,1.4,1.,1.6,1.,1.8,1.,1.,1.1,1.3,1.,1.,1.6,1.7,1.8,1.9,1.1,1.2};
double min, pr=1; /* min – мінімальне значення у стовпці */
/* pr добуток мінімальних елементів */
int і,j;
for(j=0;j<J,j++) /* цикл, що змінює індекс стовпця */
{
min=a[0][j]; /* приймаємо, що перший елемент стовпця буде мінімальним */
for(і=0;і<I;і++) /* цикл, що змінює індекс рядків */
if(a[і][j]<min) /* призначаємо мінімальне значення у стовпці */
min=a[i][j];
pr=pr*min;
}
printf (“ Добуток мінімальних значень стовпців pr=%lf.\n”,pr);
return 0;
}
Приклад 2. Дано масив цілих чисел а(5,5). Поміняти рядки і стовпці місцями, подвоївши елементи масиву.
#include <stdio.h>
#define I 5
#define J 5
int main ()
{
int a[5][5]={1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7};
int i, j, k;
for(i=0;i<I;i++)
for(j=i;j<J;j++)
{
k=a[j][і]; /* змінюємо */
a[j][і]=2*a[і][j]; /* елементи */
a[і][j]=2*k; /* місцями */
}
/* роздруківка двовимірного масиву у вигляді матриці */
for(i=0;i<I;i++)
{
for(j=0;j<J;j++)
printf(“ %4d “, a[і][j]; /* роздруківка рядка масиву */
printf (“\n”); /* перехід на інший рядок */
return 0;
}
Коментарі до програми: у циклі for, що змінює індекс стовпця, початковим значенням є індекс рядка. Це дозволяє виключити повторну перестановку елементів масиву.
Звіт про роботу повинний містити стислий опис роботи, алгоритм розв’язання завдання, текст програми і результати її роботи.
