Главная страница

Методические указания предназначены для студентов технических специальностей, изучающих курс "Информатика "


Скачать 42.01 Kb.
НазваниеМетодические указания предназначены для студентов технических специальностей, изучающих курс "Информатика "
Дата23.06.2022
Размер42.01 Kb.
Формат файлаdocx
Имя файлаLabs.docx
ТипМетодические указания
#612365

ВВЕДЕНИЕ
Настоящие методические указания предназначены для студентов технических специальностей, изучающих курс "Информатика ".

В ходе выполнения лабораторных работ студенты должны приобрести теоретические знания в области программирования и навыки разработки несложного программного обеспечения на конкретном алгоритмическом языке. В процессе решения задач студенты должны правильно выбирать и описывать типы данных, изучить синтаксис и правильно использовать операторы алгоритмического языка.

В курсе предлагается 3 лабораторных работы, посвященных изучению способа хранения и обработки данных в одномерном массиве, в текстовом файле и разработке подпрограмм-функций двух видов типовой и бестиповой на языке Си.

Лабораторная работа №1

ФОРМИРОВАНИЕ И ОБРАБОТКА ОДНОМЕРНЫХ МАССИВОВ
Цель работы: Приобретение навыков разработки алгоритмов формирования и обработки одномерного массива. Закрепление понятий базовых структур цикл, разветвление.

Подготовка к лабораторной работе
1. Повторить вопросы организации циклических алгоритмов.

2. Повторить следующие вопросы и понятия :

  • массивы данных (размерность массива, обращение к элементу массива, расположение элементов массива в памяти ПК);

  • правила работы с массивами данных на языке программирования Си: описание массива, задание типа и размерности массива;

  • организация циклов для ввода и формирования элементов массива;

  • алгоритм поиска максимального (минимального) элемента одномерного массива;

  • алгоритм поиска суммы элементов одномерного массива;

  • алгоритм подсчета количества элементов одномерного массива, удовлетворяющих поставленному условию;

  • организация вывода элементов массива.


Задание к лабораторной работе

В соответствии с вариантом (таблица 1) разработайте алгоритм обработки элементов массива.

Напишите программу на алгоритмическом языке в соответствии со схемой алгоритма.

Проведите тестирование программы в среде программирования.

Рекомендации: После окончания цикла формирования массива организуйте вывод массива и вывод результатов обработки массива. Результаты, например, могут иметь вид:
ИСХОДНЫЙ МАССИВ А:

15.583 19.287 28.385 45.621 39.728 5.456 -8.087 3.897

ПОЛУЧЕННЫЕ РЕЗУЛЬТАТЫ:

МАХ = 45.621


Варианты заданий

Таблица 1




вар.

Исходные данные

Действия по обработке массива

1

Массив Х[30] нецелых элементов задать датчиком случайных чисел.

Записать в массив Y подряд отрицательные элементы массива Х. Найти их среднее арифметическое.

2

Массив С[15] нецелых элементов вводят с клавиатуры.

В массиве С найти произведение ненулевых элементов, количество элементов, превышающих значение среднего арифметического элементов массива.

3

Массив Х [36] целых элементов задать датчиком случайных чисел.

Переписать подряд в массив Y положительные элементы массива Х. Определить, сколько в массиве Y четных элементов.

4

Массив А[20] целых элементов вводят с клавиатуры.

Определить среднее арифметическое положительных элементов массива. Сформировать новый массив, переписав в него четные числа исходного массива А.

5

Массив Z[15] нецелых элементов вводят с клавиатуры.

Найти сумму положительных элементов и количество отрицательных элементов массива Z. Сформировать новый массив, переписав в него отрицательные числа исходного массива.

6

Массив А[20] нецелых элементов задать датчиком случайных чисел.

Вычислить среднее арифметическое значение положительных элементов и максимальный элемент среди отрицательных элементов массива А. Сформировать новый массив из значений исходного, меньших среднего значения положительных.

7

Массив С[15] нецелых элементов вводят с клавиатуры.

Вычислить минимальный положительный и максимальный отрицательный элементы и их порядковые номера в массиве С. Сформировать новый массив, записав в него найденные значения.

8

Массив Y[10] нецелых элементов вводят с клавиатуры.

Вычислить среднее геометрическое элементов массива и определить наибольший элемент массива. Упорядочить элементы массива по убыванию.

9


Массив D [30] целых элементов задать датчиком случайных чисел.

В массиве D найти минимальный элемент и упорядочить по возрастанию элементы, расположенные до найденного минимального элемента.

10

Массив А[15] сформировать датчиком случайных чисел.

Найти минимальный элемент и сумму отрицательных элементов. Заменить в массиве А минимальный элемент найденной суммой.


11

y=cos (n*x + e)

1<= n <= 30

e =0.5

x вводить с клавиатуры.

Сформировать два новых массива А и В. Записать в массив А те значения n, при которых у<0, в массив В записать те значения n, при которых у>0.

12

Массив Х[20] нецелых элементов вводят с клавиатуры.

Найти минимальный элемент и заменить его суммой элементов, стоящих в массиве после него.

13

Массив A[40] cформировать датчиком случайных чисел.

Найти максимальный элемент и заменить его суммой элементов, предшествующих ему в массиве.

14

Массив Y[25] cформировать вводом с клавиатуры.

найти k1 – количество элементов массива, расположенных после минимального элемента и k2 – количество элементов массива, расположенных после максимального элемента. Сформировать новый массив, переписав в него числа, стоящие в исходном массиве после максимального.

15

Массив Z[15] cформировать датчиком случайных чисел.

Упорядочить массив Z по убыванию, найти k1 – количество положительных, k2 – количество отрицательных, k3 – количество нулевых

элементов массива.

16

Массив Х [14] вводят с клавиатуры.

Найти минимальный элемент массива X и его номер. Заменить его произведением элементов, стоящих в массиве перед ним.

17

Массив B [20] целых элементов задать датчиком случайных чисел..

Переписать в массив Х нечетные элементы массива В, уменьшенные на 2. Найти сумму элементов массива В.

18

Массив С[20] целых элементов вводят с клавиатуры.

Упорядочить массив С по возрастанию модулей элементов, найти сумму и произведение отрицательных элементов массива.

19

Массив Х [16] целых элементов вводят с клавиатуры.

Переписать в массив Y положительные элементы массива Х ,а в массив Z- отрицательные элементы массива Х.

20

Массив А[30] нецелых элементов задать датчиком случайных чисел.

В массиве А найти максимальный элемент и упорядочить по возрастанию все элементы, расположенные после найденного максимального элемента.


Содержание отчета
1.Номер и тема лабораторной работы.

2.Вариант задания.

3.Результаты подготовки:

- схема алгоритма обработки элементов массива,

- программа на заданном алгоритмическом языке.

4.Итоги работы :

- скрины экранов с результатами работы программы.

5. Ответы на контрольные вопросы.
Контрольные вопросы
1.Какие ограничения накладываются на индексы элементов массивов?

2.Способы описания массивов на языке Си. Понятия размерности массива, описание размерности массивов.

3.Задание типов элементов массива. Могут ли элементы массива иметь разный тип?

4.Как располагаются элементы массива в памяти?

5.Чем отличаются алгоритмы поиска максимального и минимального элемента массива.

6. Чем отличаются алгоритмы расчета суммы и подсчета числа элементов массива.
Лабораторная работа № 2

ОБРАБОТКА ТЕКСТОВЫХ ФАЙЛОВ
Цель работы: Получить навыки обработки текстовых файлов средствами языка Cи.

Подготовка к лабораторной работе

  1. Повторить основные шаги работы с файлами.

  2. Изучить стандартные функции для работы с текстовыми файлами.

  3. Разработать схему алгоритма решения задачи согласно варианту задания.

  4. Написать программу на языке Си согласно разработанной схеме алгоритма.

  5. Используя программу Блокнот создать текстовый файл.

Задание к лабораторной работе

Написать программу на языке Си для обработки текстового файла в соответствии с вариантом задания.

Варианты заданий:

Таблица 2

Вариант



Условие задачи


1

Создать текстовый файл с произвольным числом строк. Из исходного файла, начиная с первой встретившейся буквы 'а', переписать в новый файл все символы до первой встретившейся буквы ' к'. Если буквы «к» не будет, переписать все символы до конца файла.

2

Создать текстовый файл с произвольным числом строк. Переписать в новый файл все символы исходного, удалив все символы пробела. Вывести преобразованный текст и количество уда­ленных пробелов.

3

Создать текстовый файл с произвольным числом строк. Определить, сколько раз в заданном файле встречается сочетание двух первых его символов.


4

Создать текстовый файл с произвольным числом строк. В качестве исходного текста задать арифметическое

выражение, записанное на языке Си.

Проверить, соблюдается ли баланс открывающихся и закрывающихся скобок. Если равенство соблюдается, то вывести соответствующее сообщение, в противном случае вывести количество открывающихся и количество закрывающихся скобок.


5

Создать файл, содержащий произвольные текстовые строки. Подсчитать количество строк, начинающихся с буквы 'А' или ‘a’.

6

Создать текстовый файл. Создать новый файл, переписав в него гласные буквы исходного.

7

Создать текстовый файл с произвольным числом строк. Найти слово, в котором максимальное количество буквы 'а' . Вывести сколько раз буква 'а' встречается в этом слове.(само слово выводить не надо)

8

Создать текстовый файл. Сформировать новый файл,элементы которо­го указывают длину каждого слова в исходном файле.

9

Создать файл, содержащий текстовые строки произвольной длины. Создать новый файл, записав в него первые буквы каждого слова исходного файла.

10

Создать текстовый файл с произвольным числом строк. Посчитать, сколько раз первый символ первого слова встречается в исходном файле.

11

Создать текстовый файл с произвольным числом строк. В тексте должны встречаться цифры. Вычислить сумму цифр и добавить ее файл.

12

Создать файл, содержащий произвольные текстовые строки. Подсчитать количество строк, начинающихся с буквы 'Я'.

13

Создать файл. В тексте исходного файла заменить все запятые на «!», переписав в новый файл. Вывести преобразованный текст, а также количество замененных запятых.

14

Создать файл. Заменить начальные буквы всех слов на прописные буквы и записать результирующий текст в новый файл.

15

Создать текстовый файл с произвольным числом строк. Все большие буквы заменить на маленькие, переписав измененный текст в новый файл.

16

Определить количество слов в текстовом файле. Учесть, что слова могут разделяться между собой как одним, так и несколькими пробелами.

17

Разработать программу шифрования текстового файла. Зашифрованный текст записать в новый файл.

18

Сформировать новый файл, в котором поменять местами последнюю букву предыдущего слова с первой буквой следующего слова исходного файла.

19

Сформировать новый файл, элементы которо­го указывают количество гласных букв в каждом слове исходного файла.

20

Сформировать новый файл, элементы которо­го указывают количество букв ‘o’ в каждом слове исходного файла.



Содержание отчета


  1. Номер и тема лабораторной работы.

  2. Задание к лабораторной работе.

  3. Схема алгоритма решения задачи.

  4. Программа на языке Cи.

  5. Скрины экранов с результатами выполнения программы.

  6. Ответы на контрольные вопросы.


Контрольные вопросы


  1. Описание символьных данных и строк на языке Си.

  2. Встроенные функции языка Си, используемые для обработки строк.

  3. Назначение функции fgets().

  4. Назначение функции fgetc().

  5. Назначение функции fscanf().


Лабораторная работа № 3

ТИПОВЫЕ и БЕСТИПОВЫЕ ПОДПРОГРАММЫ - ФУНКЦИИ



Цель работы: Приобрести навыки разработки и использования функций, разработанных пользователем.
Подготовка к лабораторной работе:

1. Повторить такие понятия языка Си как: функции, структура типовой функции, структура бестиповой функции, списки фактических и формальных параметров, вызов типовой функции, обращение к бестиповой функции.

2. В соответствии с вариантом задания разработать алгоритм решения задачи, описать его в виде схемы.


Задание к лабораторной работе

В соответствии с индивидуальным заданием, номер которого совпадает с двумя последними цифрами вашего пароля, разработать алгоритмы и программу на языке Си с использованием разработанных автором функций.

Варианты заданий:

ВАРИАНТ №1

  1. Для каждого пункта задания написать подпрограмму-функцию

- сформировать целочисленную матрицу А(NхN);

-вывести на экран значения матрицы, расположив каждую строку матрицы на строку экрана;

- найти в матрице количество отрицательных чисел;

- вычислить суммы диагональных элементов( главной и побочной ) отдельно, но в одной функции.

Написать функцию (main), вызывающую разработанные вами функции.

ВАРИАНТ №2

  1. Для каждого пункта задания написать подпрограмму-функцию

- сформировать матрицу А(NхN).

-вывести на экран значения матрицы, расположив каждую строку матрицы на строку экрана;

- найти в матрице количество положительных чисел;

- посчитать количество отрицательных элементов на главной и побочной диагоналях отдельно, но в одной функции.

Написать функцию (main), вызывающую разработанные вами функции.

ВАРИАНТ №3

  1. Для каждого пункта задания написать подпрограмму-функцию

- сформировать матрицу А(NхN).

-вывести на экран значения матрицы, расположив каждую строку матрицы на строку экрана;

- найти в матрице количество нулевых элементов;

- найти максимальные элементы на главной и побочной диагоналях одной функцией.

Написать функцию (main), вызывающую разработанные вами функции.

ВАРИАНТ №4

  1. Для каждого пункта задания написать подпрограмму-функцию

- сформировать матрицу А(NхN);

-вывести на экран значения матрицы, расположив каждую строку матрицы на строку экрана;

- найти в матрице сумму отрицательных чисел;

- найти максимальный элемент матрицы и его порядковый номер.

Написать функцию (main), вызывающую разработанные вами функции.

ВАРИАНТ №5

  1. Для каждого пункта задания написать подпрограмму-функцию

- сформировать матрицу А(NхМ);

-вывести на экран значения матрицы, расположив каждую строку матрицы на строку экрана;

- найти в матрице сумму положительных чисел;

- вычислить количество отрицательных и положительных элементов отдельно, но в одной функции.

Написать функцию (main), вызывающую разработанные вами функции.

ВАРИАНТ №6

  1. Для каждого пункта задания написать подпрограмму-функцию

- сформировать матрицу А(NхM);

-вывести на экран значения матрицы, расположив каждую строку матрицы на строку экрана;

- найти в матрице минимальное отрицательное число;

- вычислить суммы отрицательных и положительных элементов отдельно, но в одной функции.

Написать функцию (main), вызывающую разработанные вами функции.

ВАРИАНТ №7

  1. Для каждого пункта задания написать подпрограмму-функцию

- сформировать матрицу А(NхM);

-вывести на экран значения матрицы, расположив каждую строку матрицы на строку экрана;

- найти в матрице минимальное положительное число и его индекс;

- определить, сколько в матрице элементов, равных минимальному.

Написать функцию (main), вызывающую разработанные вами функции.

ВАРИАНТ №8

  1. Для каждого пункта задания написать подпрограмму-функцию

- сформировать матрицу А(NхN);

-вывести на экран значения матрицы, расположив каждую строку матрицы на строку экрана;

- найти в матрице максимальное отрицательное число и его порядковый номер;

- определить, сколько в матрице чисел, равных максимальному.

Написать функцию (main), вызывающую разработанные вами функции.

ВАРИАНТ №9

  1. Для каждого пункта задания написать подпрограмму-функцию

- сформировать матрицу А(NхN);

-вывести на экран значения матрицы, расположив каждую строку матрицы на строку экрана;

- найти в матрице максимальное положительное число и максимальное отрицательное числа одной функцией;

- уменьшить элементы побочной диагонали на максимальное отрицательное число.

Написать функцию (main), вызывающую разработанные вами функции.

ВАРИАНТ №10

  1. Для каждого пункта задания написать подпрограмму-функцию

- сформировать матрицу А(NхN);

-вывести на экран значения матрицы, расположив каждую строку матрицы на строку экрана;

- найти сумму минимального и максимального чисел матрицы;

- посчитать количество отрицательных чисел на побочной диагонали и количество положительных чисел на главной одной функцией.

Написать функцию (main), вызывающую разработанные вами функции.

ВАРИАНТ №11

  1. Для каждого пункта задания написать подпрограмму-функцию

- сформировать матрицу А(NхN);

-вывести на экран значения матрицы, расположив каждую строку матрицы на строку экрана;

- найти в матрице сумму элементов главной диагонали;

- посчитать, сколько элементов матрицы превышаю эту сумму и сколько меньше этой суммы (одной функцией).

Написать функцию (main), вызывающую разработанные вами функции.

ВАРИАНТ №12

  1. Для каждого пункта задания написать подпрограмму-функцию

- сформировать матрицу А(NхN);

-вывести на экран значения матрицы, расположив каждую строку матрицы на строку экрана;

- найти в матрице количество отрицательных чисел над побочной диагональю и под побочной диагональю отдельно, но одной функцией;

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

Написать функцию (main), вызывающую разработанные вами функции.

ВАРИАНТ №13

  1. Для каждого пункта задания написать подпрограмму-функцию

- сформировать матрицу А(NхN);

-вывести на экран значения матрицы, расположив каждую строку матрицы на строку экрана;

- найти в матрице количество нулей на побочной диагонали матрицы;

- посчитать средние арифметические значения положительных и отрицательных значений матрицы отдельно, но одной функцией.

Написать функцию (main), вызывающую разработанные вами функции.

ВАРИАНТ №14

  1. Для каждого пункта задания написать подпрограмму-функцию

- сформировать матрицу А(NхN)

-вывести на экран значения матрицы, расположив каждую строку матрицы на строку экрана;

- найти в матрице количество отрицательных чисел на главной диагонали матрицы;

- найти значения индексов максимального и минимального элементов матрицы, разработав одну функцию.

Написать функцию (main), вызывающую разработанные вами функции.

ВАРИАНТ №15

  1. Для каждого пункта задания написать подпрограмму-функцию

- сформировать матрицу А(NхN)

-вывести на экран значения матрицы, расположив каждую строку матрицы на строку экрана;

- найти в матрице количество четных чисел над главной диагональю матрицы;

- найти значения максимального на главной диагонали и минимального элемента матрицы на побочной диагонали , разработав одну функцию.

Написать функцию (main), вызывающую разработанные вами функции.

ВАРИАНТ №16

  1. Для каждого пункта задания написать подпрограмму-функцию

- сформировать матрицу А(NхN)

-вывести на экран значения матрицы, расположив каждую строку матрицы на строку экрана;

- найти в матрице количество нечетных чисел под главной диагональю матрицы;

- уменьшить все отрицательные значения матрицы на число, полученное в предыдущем пункте задания.

Написать функцию (main), вызывающую разработанные вами функции.

ВАРИАНТ №17

  1. Для каждого пункта задания написать подпрограмму-функцию

- сформировать матрицу А(NхN)

-вывести на экран значения матрицы, расположив каждую строку матрицы на строку экрана;

- найти в матрице количество четных чисел на главной диагонали матрицы;

- уменьшить значения элементов матрицы, стоящих под побочной диагональю на число, полученное в предыдущем пункте задания.

Написать функцию (main), вызывающую разработанные вами функции.

ВАРИАНТ №18

  1. Для каждого пункта задания написать подпрограмму-функцию

- сформировать матрицу А(NхN)

-вывести на экран значения матрицы, расположив каждую строку матрицы на строку экрана;

- найти в матрице количество отрицательных чисел на главной диагонали и на побочной диагонали матрицы отдельно, разработав одну функцию;

- увеличить элементы матрицы на наименьшее число, полученное в предыдущем пункте задания.

Написать функцию (main), вызывающую разработанные вами функции.

ВАРИАНТ №19

  1. Для каждого пункта задания написать подпрограмму-функцию

- сформировать матрицу А(NхN)

-вывести на экран значения матрицы, расположив каждую строку матрицы на строку экрана;

- найти в матрице количество отрицательных и количество положительных чисел матрицы, разработав одну функцию;

- уменьшить все значения матрицы на наибольшее число, полученное в предыдущем пункте задания.

Написать функцию (main), вызывающую разработанные вами функции.

ВАРИАНТ №20

  1. Для каждого пункта задания написать подпрограмму-функцию

- сформировать матрицу А(NхN)

-вывести на экран значения матрицы, расположив каждую строку матрицы на строку экрана;

- найти в матрице количество четных и количество нечетных чисел матрицы, разработав одну функцию;

- уменьшить значения диагональных (главной и побочной) элементов матрицы на наименьшее число, полученное в предыдущем пункте задания.

Написать функцию (main), вызывающую разработанные вами функции.

Содержание отчета:

  1. Номер, тема лабораторной работы

  2. Задание к лабораторной работе.

  3. Схема алгоритма.

  4. Программа на языке Си.

  5. Скрины экрана с результатами работы.

  6. Ответы на контрольные вопросы.


Контрольные вопросы:

  1. Типы функции, используемые в программах на языке Си.

  2. Структура функции, определенной пользователем.

  3. Отличие типовой функции от бестиповой функции.

  4. Типы параметров функции.

  5. Глобальные и локальные идентификаторы.


написать администратору сайта