Добавлен: 30.10.2018
Просмотров: 1052
Скачиваний: 27
ВВЕДЕНИЕ
Настоящие методические указания предназначены для студентов технических специальностей, изучающих курс "Информатика Часть 2".
В ходе выполнения лабораторных работ студенты должны приобрести теоретические знания в области программирования и навыки разработки несложного программного обеспечения на конкретном алгоритмическом языке. В процессе решения задач студенты должны правильно выбирать и описывать типы данных, изучить синтаксис и правильно использовать операторы алгоритмического языка.
В данной части предлагается 3 лабораторных работы, посвященных изучению способа хранения и обработки данных в текстовом файле и разработке подпрограмм-функций двух видов типизированной и нетипизированной на языке Си.
Лабораторная работа № 1
ОБРАБОТКА ТЕКСТОВЫХ ФАЙЛОВ
Цель работы: Получить навыки обработки текстовых файлов средствами языка Cи.
Подготовка к лабораторной работе
-
Повторить основные шаги работы с файлами.
-
Изучить стандартные функции для работы с текстовыми файлами.
-
Разработать схему алгоритма решения задачи согласно варианту задания.
-
Написать программу на языке Си согласно разработанной схеме алгоритма.
-
Используя программу Блокнот создать текстовый файл.
Задание к лабораторной работе
Написать программу на языке Си для обработки текстового файла в соответствии с вариантом задания.
Варианты заданий:
Таблица 1
Вариант
|
Условие задачи
|
1 |
Создать текстовый файл с произвольным числом строк. Из исходного файла, начиная с первой встретившейся буквы 'а', переписать в новый файл все символы до первой встретившейся буквы ' к'. Если буквы «к» не будет, переписать все символы до конца файла. |
2 |
Создать текстовый файл с произвольным числом строк. Переписать в новый файл все символы исходного, удалив все символы пробела. Вывести преобразованный текст и количество удаленных пробелов. |
3 |
Создать текстовый файл с произвольным числом строк. Определить, сколько раз в заданном файле встречается сочетание двух первых его символов.
|
4 |
Создать текстовый файл с произвольным числом строк. В качестве исходного текста задать арифметическое выражение, записанное на языке Си. Проверить, соблюдается ли баланс открывающихся и закрывающихся скобок. Если равенство соблюдается, то вывести соответствующее сообщение, в противном случае вывести количество открывающихся и количество закрывающихся скобок.
|
5 |
Создать файл, содержащий произвольные текстовые строки. Подсчитать количество строк, начинающихся с буквы 'А'. |
6 |
Создать текстовый файл. Создать новый файл, переписав в него гласные буквы исходного. |
7 |
Создать текстовый файл с произвольным числом строк. Найти слово, в котором максимальное количество буквы 'а' . Вывести сколько раз буква 'а' встречается в этом слове.(само слово выводить не надо) |
8 |
Создать текстовый файл. Сформировать новый файл, элементы которого указывают длину каждого слова в исходном файле. |
9 |
Создать файл, содержащий текстовые строки произвольной длины. Создать новый файл, записав в него первые буквы каждого слова исходного файла. |
10 |
Создать текстовый файл с произвольным числом строк. Посчитать, сколько раз первый символ первого слова встречается в исходном файле. |
11 |
Создать текстовый файл с произвольным числом строк. В тексте должны встречаться цифры. Вычислить сумму цифр и добавить ее файл. |
12 |
Создать файл, содержащий произвольные текстовые строки. Подсчитать количество строк, начинающихся с буквы 'Я'. |
13 |
Создать файл. В тексте исходного файла заменить все запятые на «!», переписав в новый файл. Вывести преобразованный текст, а также количество замененных запятых. |
14 |
Создать файл. Заменить начальные буквы всех слов на прописные буквы и записать результирующий текст в новый файл. |
15 |
Создать текстовый файл с произвольным числом строк. Все большие буквы заменить на маленькие, переписав измененный текст в новый файл. |
16 |
Определить количество слов в текстовом файле. Учесть, что слова могут разделяться между собой как одним, так и несколькими пробелами. |
17 |
Разработать программу шифрования текстового файла. Зашифрованный текст записать в новый файл. |
18 |
Сформировать новый файл, в котором поменять местами последнюю букву предыдущего слова с первой буквой следующего слова исходного файла. |
19 |
Сформировать новый файл, элементы которого указывают количество гласных букв в каждом слове исходного файла. |
20 |
Сформировать новый файл, элементы которого указывают количество букв ‘o’ в каждом слове исходного файла. |
Содержание отчета
-
Номер и тема лабораторной работы.
-
Задание к лабораторной работе.
-
Схема алгоритма решения задачи.
-
Программа на языке Cи.
-
Скрины экранов с результатами выполнения программы.
Контрольные вопросы
-
Описание символьных данных и строк на языке Си.
-
Встроенные функции языка Си, используемые для обработки строк.
-
Назначение функции fgets().
-
Назначение функции fgetc().
-
Назначение функции fscanf().
Лабораторная работа № 2
ТИПИЗИРОВЫЕ ПОДПРОГРАММЫ - ФУНКЦИИ
Цель работы: Приобрести навыки разработки и использования функций, разработанных пользователем.
Подготовка к лабораторной работе:
1. Повторить такие понятия языка Си как: функции, структура типизированной функции, списки фактических и формальных параметров, вызов типизированной функции.
2. В соответствии с вариантом задания разработать алгоритм решения задачи, описать его в виде схемы.
Задание к лабораторной работе:
Разработать типизированную функцию для выполнения над массивом А[n] операций в соответствии с вариантом.
В функции main исходный массив сформировать, используя датчик псевдослучайных чисел rand(). На печать вывести исходный массив и после работы функции результат ее работы.
Варианты заданий:
-
Вычисление количества элементов массива, больших 1 и меньших 5.
-
Вычисление среднего арифметического отрицательных элементов массива.
-
Вычисление суммы нечетных элементов массива.
-
Вычисление количества положительных четных элементов массива.
-
Вычисление суммы элементов массива.
-
Вычисление количества отрицательных элементов массива.
-
Вычисление суммы положительных элементов массива.
-
Вычисление количества элементов массива, кратных 5.
-
Определение минимального значения среди положительных элементов массива.
-
Вычисление суммы четных элементов массива.
-
Определение максимального значения среди четных элементов массива.
-
Определение наибольшего из элементов, кратных 3.
-
Определение наименьшего из элементов массива.
-
Вычисление количества нулевых элементов массива.
-
Определение наибольшего из нечетных элементов массива.
-
Вычисление среднего арифметического для элементов массива больших 2 и меньших 5.
-
Определение максимального значения среди отрицательных элементов массива.
-
Вычисление суммы отрицательных элементов массива.
-
Вычисление среднего арифметического положительных элементов массива.
-
Вычисление среднего геометрического положительных элементов массива.
Содержание отчета:
-
Номер, тема лабораторной работы
-
Задание к лабораторной работе.
-
Схема алгоритма.
-
Программа на языке Си.
-
Скрины экрана с результатами работы.
Контрольные вопросы:
-
Типы функции, используемые в программах на языке Си.
-
Структура функции, определенной пользователем.
-
Отличие типовой функции от безтиповой функции.
-
Типы параметров функции.
-
Глобальные и локальные идентификаторы.
БЕЗТИПОВЫЕ ПОДПРОГРАММЫ – ФУНКЦИИ
Цель работы: Приобрести навыки организации программ с использованием безтиповых функций, определенных пользователем.
Подготовка к лабораторной работе.
-
Повторить такие элементы языка Си как: отличие безтиповой функции от типизированной, списки фактических и формальных параметров, вызов безтиповой функции.
-
В соответствии с заданием разработать алгоритм функции, описать его в виде схемы.
-
Составить схему алгоритма программы, использующей разрабатываемую функцию .
Задание к лабораторной работе
Разработать безтиповую функцию для выполнения над матрицей размером 5х5 операций в соответствии с вариантом.
В функции main исходную матрицу сформировать, используя датчик псевдослучайных чисел rand(). На печать вывести исходную и после работы функции преобразованную матрицы.
Варианты заданий:
-
Транспонирование матрицы.
-
Замена отрицательных элементов матрицы нулями.
-
Умножение элементов матрицы на любое случайное число.
-
Замена всех положительных элементов матрицы нулями.
-
Удвоение всех положительных элементов матрицы.
-
Замена нулями всех четных элементов матрицы.
-
Вычитание из каждого элемента матрицы номера строки данного элемента.
-
Вычитание из каждого элемента матрицы суммы значений его индексов.
-
Удвоение всех значений исходной матрицы.
-
Вычитание из элементов четных строк значений соответствующих элементов нечетных строк.
-
Удвоение значений элементов с четными номерами столбцов матрицы.
-
Вычитание из элементов нечетных столбцов значений соответствующих элементов четных столбцов.
-
Деление каждого элемента матрицы на номер строки этого элемента.
-
Удвоение значений тех элементов матрицы, у которых сумма номеров строки и столбца четная.
-
Прибавление к каждому элементу матрицы номера столбца этого элемента.
-
Деление каждого элемента матрицы на номер столбца этого элемента.
-
Вычитание из элементов матрицы скаляра, равного числу нулевых элементов этой матрицы.
-
Поиск максимального элемента матрицы и замена его на нуль.
-
Поменять местами элементы главной и побочной диагоналей матрицы.
Содержание отчета
-
Номер, тема лабораторной работы
-
Задание к лабораторной работе.
-
Схема алгоритма функции.
-
Схема алгоритма программы, использующей эту функцию.
-
Программа на языке Си.
-
Скрины экрана с результатами работы программы.
Контрольные вопросы
-
Для чего используются подпрограммы?
-
Структура безтиповой функции, определенной пользователем.
-
Правила взаимодействия списков фактических и формальных параметров.
-
Отличие параметров-значений от параметров переменных.