- •Т.В. Панова основы информатики и программирования на языке высокого уровня си Лабораторный практикум
- •Лабораторная работа №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. Тестирование:
III. Практическая часть.
1. Выполнение общего задания.
Задача 1.
1. Постановка задачи: разработать алгоритм создания массива данных из положительных элементов введенного массива, состоящего из n элементов, с последующим выводом созданного массива. Написать программу, реализующую разработанный алгоритм.
Вариант 1 (используется обращение к элементам массива по имени)
2. Математическая модель и описательный алгоритм: для введенного (входного) массива данных: 1 -5 0 -9 5 7 0 -2 4 0, выходной массив: 1 5 7 4.
Объявить входной массив, размерность которого задать константой с: int mas[c];
выходной массив может состоять из такого же количества элементов, как входной (если все элементы положительные), поэтому объявить: int mas_new[c];
в цикле с постусловием n≤0 или n>c ввести количество элементов массива 0<n≤с;
в цикле с параметром 0≤i<n ввести элементы входного массива mas[i];
переменная j=0 – счетчик количества элементов выходного массива;
в цикле с параметром 0≤i<n для каждого элемента mas[i] проверять условие: если mas[i]>0, то mas_new[j]=mas[i] и j=j+1;
если j≠0, то во входном массиве есть положительные элементы, значит, выходной массив создан, тогда в цикле с параметром 0≤i<n вывести элементы mas_new[i]; иначе вывести «нет элементов>0».
3. Блок-схема алгоритма программы:
4. Текст программы:
#include <stdio.h>
#include <conio.h>
int main()
{
const c=15;
int n,j=0,mas[c],mas_new[c];
do
{
printf(“\n input n=”);
scanf(“%d”,&n); // ввод количества элементов входного массива
}
while (n<=0 || n>c);
printf(“\n input massiv:\n”);
for (int i=0;i<n;i++)
scanf(“%d”,&mas[i]); // ввод элементов входного массива
printf(“\n output massiv:\n”);
for (i=0;i<n;i++)
printf(“%d “,mas[i]); // вывод элементов входного массива
for (i=0;i<n;i++)
if (mas[i]>0)
{
mas_new[j]=mas[i]; // создание выходного массива
j++;
}
if (j!=0)
{
printf(“\n output massiv:\n”);
for (i=0; i<j; i++)
printf(“%d “,mas_new[i]); // вывод элементов выходного массива
}
else printf(“\n there are no elements>0\n”);
getch();
return 0;
}
Вариант 2 (используется обращение к элементам массива по адресу)
2. Математическая модель и описательный алгоритм: входной массив элементов: 1 -5 0 -9 5 7 0 -2 4 0, выходной массив: 1 5 7 4.
Объявить массивы, размерность которых задать константой c: int mas[c], mas_new[c];
в цикле с постусловием n≤0 или n>c ввести количество элементов массива 0<n≤с;
установить указатели на первые элементы массивов: p=&mas[0], p_new=&mas_new[0];
в цикле с параметром 0≤i<n ввести значения элементов входного массива по адресу p, устанавливая после каждого прохода цикла указатель на следующий элемент: p= p+1;
j=0 (счетчик элементов выходного массива), установить указатель снова на первый элемент входного массива: p=p-n;
в цикле с параметром 0≤i<n проверять условие: если *p>0, то *p_new=*p, j=j+1 и p_new=p_new+1; p=p+1;
если j≠0, то выходной массив создан, тогда установить указатель на первый элемент выходного массива: p_new=p_new-j, в цикле с параметром 0≤i<n вывести значения элементов выходного массива *p_new; иначе вывести «there are no elements>0».