Системное программирование >

Системное программирование

2020-2021 учебный год

Практические занятия

Практика 8
Решение задач на двумерные массивы

1. Определить максимальный и минимальный элементы 
двумерного массива и их индексы. 
Вывести массив, найденные элементы, их индексы. 
Двумерный массив задан в виде константы:
#define ROWS 2
#define COLS 3
int m[ROWS][COLS] = {{11, 12, 13},
                     {21, 22, 33}
                    };

2. В последнюю колонку таблицы вывести суммы чисел соответственных строк. 
Модель таблицы - двумерный массив. 
Вывести массив в виде матрицы. 

3. В двумерном массиве произвести поиск. В колонке с нечетным 
номером найти минимальный элемент, а в колонке с четным 
номером - максимальный. Найденные минимумы и максимумы записать 
в соответственные элементы одномерного массива. 
Вывести двумерный и одномерный массивы, разделив их пустой строкой. 

4. Подсчитать сумму элементов над главной диагональю квадратной матрицы 
и под ней. Вывести матрицу и найденные суммы. 

5. Первый массив - двумерный, содержит 3 строки и 5 колонок. 
Три одномерных массива, каждый из 5 элементов, содержат 
различные числа. Записать элементы одномерных массивов 
в соответственные строки двумерного массива. 
Вывести массивы, разделив их пустыми строками.

6. Первый массив - двумерный, содержит 5 строк и 3 колонки. 
Три одномерных массива, каждый из 5 элементов, содержат 
различные числа. Записать элементы одномерных массивов 
в соответственные колонки двумерного массива. 
Вывести массивы, разделив их пустыми строками. 

7. Первый массив - одномерный из 12 элементов заполнен целыми числами. 
Второй массив - двумерный, который содержит 3 строки и 4 колонки.
Заполнить 2-ой массив элементами 1-го массива двумя способами.
Первый способ - построчное заполнение: первые 4 элемента - в 1-ю строку, 
следующие 4 элемента - во 2-ю строку и т.д.
Второй способ - заполнение по колонкам: первые 3 элемента - в 1-ю колонку, 
следующие 3 элемента - во 2-ю колонку и т.д.
Вывести массивы, разделив их пустыми строками. 

8. Первый массив - двумерный, который содержит 5 строк и 4 колонки. 
Пять одномерных массивов, по 4 элемента каждый, заполнить 
элементами 1-го массива, выбирая их построчно. 
Четыре других одномерных массива, по 5 элементов каждый, заполнить 
элементами 1-го массива, выбирая их по колонкам. 
Вывести массивы, разделив их пустыми строками. 

9. Найти для данной матрицы обратную методом Гаусса. 
Исходная матрица заполнена на главной диагонали и над ней единицами, 
а под ней - нулями. 
Вывести исходную матрицу и обратную, разделив их пустой строкой. 


Справка:
Программирование на Си в Linux

1. Запуск Oracle VM VirtualBox.
2. Старт ubuntu2020_113.
3. Запуск Terminal.
4. В папке /home/test создать текстовый файл
в текстовом редакторе mcedit:
mcedit test.c
5. Набрать test.c, сохранить F2, выход из редактора F10.
#include <stdio.h>
int main() {
  printf("Test1 OK");
  return 0;
}

5. В теримнале перейти в папку /home/test:
cd ~/test
6. Проверить по списку файлов в папке наличие файла test.c.
В терминале вывести список файлов:
ls -l
7. В терминале cкомпилировать файл test.c
gcc test.c
8. Проверить по списку файлов, что после компиляции 
в папке test появился новый файл a.out.
В терминале вывести список файлов:
ls -l
9. Запустить на исполнение файл a.out.
В терминале набрать команду:
./a.out

Работа в консоли
1. Переключение в консоль: Ctrl + F3 или Alt + F3.
2. Возвращение в xWindow: Alt + F7

Компиляция в 2 этапа
gcc -c test.c
gcc test.o -o myprog1
./myprog1

Установка коллекции компиляторов GNU Compiler Collection, GCC.
sudo apt update
sudo apt upgrade
sudo apt install build-essential

Установка файлового менеджера Midnight Commander, mc, редактора mcedit
sudo apt update
sudo apt upgrade
sudo apt install mc

  1. PDF stolyarov.info — Программирование: введение в профессию. Том 2: низкоуровневое программирование.
  2. stolyarov.info — Программирование: введение в профессию. Том 2: низкоуровневое программирование.
  3. stolyarov.info — Основы программирования.
  4. stolyarov.info — Основы программирования.