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

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

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

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

Практика 6
Решение задач на одномерные массивы
1. Создайте одномерный массив, состоящий из 20 элементов.
Запишите в массив последовательность Фибоначчи:
F_0 = 1, 
F_1 = 1, 
F_n = F_(n-1) + F_(n-2),
например, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...

2. В программе объявлены 2 массива. В 1-м массиве содержится 
40 первых элементов последовательности Фибоначчи. 
Во 2-й массив нужно записать отношения соседних элементов, 
т.е. F_n/F_(n-1). Сколько должно быть элементов во 2-м массиве? 
Какого типа должен быть этот массив?

3. В программе объявлены 3 массива. В 1-м массиве содержится 
40 первых элементов последовательности Фибоначчи. 
Во 2-м массиве записаны отношения соседних элементов, т.е. F_n/F_(n-1). 
В 3-й массив нужно записать разности соседних элементов 2-го массива, 
т.е. b_n - b_(n-1).
Сколько должно быть элементов во 3-м массиве? 
Какого типа должен быть этот массив?

4. В массиве содержится 20 элементов. Сдвинуть элементы на 1 место 
в начало массива. Последний элемент заменить нулем.

5. В массиве содержится 20 элементов. Сдвинуть элементы на 1 место 
в конец массива. Первый элемент заменить нулем.

6. Программа принимает из потока, например, с клавиатуры по одному числу. 
Буфер, массив элементов, ограничен 10 элементами. Запись нового элемента происходит 
по принципу очереди: сначала все элементы сдвигаются на одни к началу, 
а новый записывается в конец массива.

Справка:
Программирование на Си в 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 — Основы программирования.