- •Т.В. Панова основы информатики и программирования на языке высокого уровня си Лабораторный практикум
- •Лабораторная работа №1. Организация компьютерной системы. Операционная система. Оболочка операционной системы………………………………………..…………5
- •Лабораторная работа №1
- •Организация компьютерной системы. Операционная система. Оболочка операционной системы
- •I. Теоретические сведения.
- •1. Основные блоки фон-неймановской кс
- •Общая функциональная схему кс
- •Цп управ.
- •2. Программное обеспечение
- •2.1. Системное по.
- •Функциональные уровни в составе спо
- •2.2. Прикладное по.
- •2.3. Инструментальное по.
- •3. Операционная система
- •3.2. Файл – объект файловой системы.
- •3.3. Логический диск и каталоги.
- •3.4. Организация файловой структуры ос и доступ к файлу.
- •3.5. Дерево каталогов.
- •3.6. Группы файлов.
- •4. Оболочка операционной системы
- •4.1. Функциональные клавиши оболочки ос.
- •III. Практическая часть.
- •1.2. Операционная среда.
- •2. Состав Windows
- •3. Файловые системы Windows
- •3.1. Файловая система fat (File Allocation Table).
- •3.2. Файловая система ntfs (New Technology File System).
- •4. Объекты Windows
- •4.1. Логические объекты Windows.
- •4.2. Физические объекты Windows.
- •II. Контрольные вопросы.
- •III. Практическая часть.
- •2.2. Перемещение файла.
- •IV. Требования к защите
- •2. Текстовый процессор Microsoft Word
- •2.1. Элементы окна Word.
- •II. Контрольные вопросы.
- •III. Практическая часть.
- •IV. Требования к защите
- •1.2. Описание алгоритмов с помощью блок-схем.
- •Основные символы блок-схем алгоритмов
- •1 (Да)0 (нет)
- •II. Контрольные вопросы.
- •3. Блок-схема алгоритма задачи:
- •2. Выполнение индивидуального задания.
- •IV. Требования к защите индивидуальных заданий.
- •V. Варианты индивидуальных заданий.
- •Лабораторная работа №5
- •3.Тип данных
- •4. Базовые типы данных языка Си
- •6. Операции и выражения
- •6.1. Знаки операций.
- •6.2. Операции присваивания.
- •6.3. Арифметические операции.
- •6.4. Операции сравнения и логические операции.
- •6.5. Условная операция.
- •6.6. Операция явного преобразования типа.
- •7. Логика алгоритма и операторы
- •8. Операторы простой последовательности действий
- •8.1. Функции форматного ввода/вывода данных.
- •Функция форматного ввода данных
- •Функция форматного вывода данных
- •Пример организации форматного ввода/вывода данных
- •8.2. Основные стандартные функции. Стандартные функции консольного ввода/вывода
- •Стандартные математические функции
- •II. Контрольные вопросы.
- •III. Практическая часть.
- •2. Математическая модель и описательный алгоритм задачи:
- •Лабораторная работа №6
- •Условные конструкции: операторы ветвления
- •I. Теоретические сведения.
- •1. Условный оператор
- •2. Оператор множественного выбора (переключатель)
- •II. Контрольные вопросы.
- •2. Математическая модель и описательный алгоритм задачи:
- •Лабораторная работа №7
- •Циклические конструкции: операторы цикла
- •I. Теоретические сведения.
- •1. Оператор цикла с параметром (счетчиком)
- •2. Итерационные циклы
- •2.1. Оператор цикла с предусловием.
- •2.2. Оператор цикла с постусловием.
- •II. Контрольные вопросы.
- •III. Практическая часть.
- •1. Выполнение общего задания.
- •2. Математическая модель и описательный алгоритм задачи:
- •3. Блок-схема алгоритма задачи:
- •4. Текст программы:
- •5. Тестирование:
- •2. Математическая модель и описательный алгоритм задачи:
- •3. Блок-схема алгоритма задачи:
- •4. Текст программы:
- •5. Тестирование:
- •2. Математическая модель и описательный алгоритм задачи:
- •3. Блок-схема алгоритма задачи:
- •4. Текст программы:
- •5. Тестирование:
- •2. Математическая модель и описательный алгоритм задачи:
- •Лабораторная работа №8
- •Указатели и одномерные массивы данных
- •I. Теоретические сведения.
- •1. Указатели
- •1. Объявление переменных:
- •2. Операции присваивания объявленным переменным:
- •3. Использование косвенного обращения:
- •2. Массив как статическая структура данных
- •Одномерный массив данных
- •3. Адресная арифметика
- •4. Линейный поиск и сортировка в массивах данных
- •4.1. Признаки порядка.
- •4.2. Способы сортировки в массивах данных.
- •II. Контрольные вопросы.
- •III. Практическая часть.
- •1. Выполнение общего задания.
- •3. Блок-схема алгоритма программы:
- •4. Текст программы:
- •3. Блок-схема алгоритма программы:
- •4. Текст программы:
- •5. Тестирование:
- •3. Блок-схема алгоритма программы:
- •4. Текст программы:
- •5. Тестирование:
- •3. Блок-схема алгоритма программы:
- •4. Текст программы:
- •5. Тестирование:
Лабораторная работа №8
Тема
Указатели и одномерные массивы данных
Цель: получение практических навыков решения задач обработки массивов с использованием указателей.
I. Теоретические сведения.
1. Указатели
Переменная в программе – объект, имеющий имя и значение. По имени можно обратиться к переменной и получить ее значение. Имя переменной соответствует адресу участка памяти, выделенного для переменной, и явно не связано с адресом. Значение переменной соответствует содержимому участка памяти. Чтобы получить адрес в явном виде, используется унарная операция взятие адреса (&), которая применима только к объектам, имеющим имя и размещенным в памяти.
Адреса имеют целочисленные беззнаковые значения, поэтому их можно обрабатывать как целочисленные величины, для этого используются переменные типа указатель, обеспечивающие непосредственную взаимосвязь данных и возможность изменения этих связей. Указатель – переменная, содержащая информацию о расположении в памяти другой переменной, т.е. адрес объекта конкретного типа (адрес другой переменной). Значением указателя может быть также нулевой адрес, для обозначения которого в ряде заголовочных файлов (stdio.h) определена специальная константа null.
Структура объявления указателя:
<тип_указуемых_данных> *<имя_указателя>;
Символ «*» – знак унарной операции косвенной адресации (разыменования), являющейся операцией раскрытия ссылки (обращения по адресу), результатом которой является объект, адресуемый указателем.
Например,
char *z; // указатель на объект символьного типа
int *k; // указатель на объекты целого типа
float *f; // указатель на объект вещественного типа
Переменные z, k, f являются указателями. *z обозначает объект типа char, на который указывает z. Обозначения *z, *k, *f имеют права переменных соответствующих типов. Оператор *z=’ ‘ засылает символ пробел в тот участок памяти, адрес которого определяет указатель z.
Указатель может ссылаться на объекты того типа, который присутствует в объявлении указателя. Исключением являются указатели, в объявлении которых использован тип void, т.е. отсутствие значения. Такие указатели могут ссылаться на объекты любого типа, однако к ним нельзя применять операцию разыменования.
Например,
1. Объявление переменных:
int a,x; // целые переменные
int *p; // переменная – указатель на другую целую переменную (объявление переменной, при косвенном обращении к которой получается значение переменной целого типа)
2. Операции присваивания объявленным переменным:
a=2000;
p=&a; // указатель содержит адрес переменной a (присваивание переменной p адреса переменной a – назначение указателя p на переменную a)
3. Использование косвенного обращения:
x=x+*p; // при косвенном обращении по указателю p берется значение переменной a, что эквивалентно: x=x+a
2. Массив как статическая структура данных
Статическая (фундаментальная) структура данных – совокупность фиксированного количества данных постоянной размерности с неизменным характером связей между ними.
Переменные статических структур могут изменять только свое значение, а их структура и множество допустимых значений остаются неизменными; размер памяти, занимаемой такими переменными, остается постоянным.
К статическим структурам, в частности, относится массив данных, который представляет собой упорядоченную последовательность данных одного и того же типа, имеющих общее имя; доступ к элементам массива осуществляется при помощи индексов, являющихся порядковыми номерами элементов в последовательности. На этапе компиляции под элементы массива выделяется фиксированный объем памяти, который не меняется в процессе выполнения программы. В памяти элементы массива размещаются последовательно в соответствии с ростом индекса.