Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Прога отчет2

.docx
Скачиваний:
0
Добавлен:
16.12.2024
Размер:
225.99 Кб
Скачать

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное автономное образовательное учреждение высшего образования

«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ

ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

ИЯТШ ОЯТЦ

Отчет

по лабораторной работе №2

Задание значений переменным и массивам. Форматный ввод-вывод.

Работа с файлом

Выполнил студент группы 0А23

Шевченко А.В.

Проверил преподаватель

Дериглазов А.А.

Томск-2022

Оглавление

Цель работы 3

Задание 4

Теоретическая часть: 6

Описание решения алгоритма задачи: 8

Руководство программиста: 11

Руководство пользователя: 13

Вывод 13

Блок-схема 14

Цель работы

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

Задание

  1. Получить номер варианта задания у преподавателя, ведущего лабораторные занятия.

  2. Ознакомиться с заданием к лабораторной работе (файл Задания.doc).

  3. Ознакомиться с учебно-методическими указаниями к лабораторной работе (файл Лаб_2.doc).

  4. Составить блок-схему алгоритма программы.

  5. Набрать текст программы на языке Си с помощью текстового редактора.

  6. Провести трансляцию и компоновку программы.

  7. Выполнить контрольный запуск разработанной программы на исполнение.

  8. Составить отчет по лабораторной работе в соответствии с правилами оформления отчета (файл Общие_указания_к_лабораторным_работам.doc).

Вариант 19

1) Используя операторы описания и присваивания, присвоить переменным определенных ниже типов значения:

целым – 1.52, 12, 3.1; действительным - 1.12, 2.34, 4.56; символьным – D, I, Yes

2) Вычислить выражения 214*2/2 , 214*(2/2) , 1e10+100. Объяснить результат.

{#include <stepen.h> – добавить в начало;

для вычисления степени использовать функцию st(основание, степень) – например, st(2,14)}

Вывести результаты на экран.

3) Ввести в ЭВМ, используя функции ввода-вывода, матрицу

и переменные 'PRIVET'; -123894.345; 6734

4) Записать введенные данные в файл и выдать их на экран в виде матрицы (бесформатно).

5) Используя форматированный вывод, записать в файл и на экран дисплея: матрицу А с 4 знаками после запятой и с 2 знаками после запятой

Теоретическая часть:

Операторы языка Си состоят из следующих основных компонент:

константа – фиксированное значение, такое как число или символ (символьная строка). Это значение не может быть изменено операторами программы;

переменная – символическое имя, которое представляет значение, размещенное в памяти ЭВМ. Это значение может быть изменены операторами программы в процессе счета и выполнения операций ввода;

вызов функции – имя функции со списком аргументов. Функция – программная единица, осуществляющая выполнение набора определенных действий с использованием аргументов, указанных в вызове функции. (например, для вычисления синуса угла 0,5 рад – функция sin(0.5). Значение вычисленного результата используется по месту вызова функции;

выражение – комбинация констант, переменных, вызовов функций и операций (“операция” – это уникальный символ для операции, такой как умножение, сложение и т.д.), получающая единственный результат. Иначе – это формула для вычисления значений.

Основные типы данных языка Си

int – целые числа;

long – целые числа двойной точности;

char – символы (буквы, цифры, и некоторые другие символы);

float – вещественные (действительные) числа;

double – вещественные числа двойной точности.

Файл для нас – это часть памяти для хранения информации, обычно на диске, со своим именем. Язык Си "рассматривает" файл как структуру данных. Эта структура содержится в системном файле stdio.h. Краткое наименование шаблона файла – FILE, которая и будет использоваться далее.

Описание файла:

FILE *переменная;

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

Открытие файла: функция

переменная = fopen("имя_файла","par");

}

здесь par - параметр, указывающий на то, как должен использоваться файл. Параметр может быть:

"r" – файл нужно считать;

"w" – файл нужно записать; только маленькими буквами!!!

"a" – файл нужно дополнить.

Закрытие файла: функция

fclose(переменная);

Закрытие всех открытых файлов: функция

fcloseall();

Вывод в файл: функция

fprintf(переменная, Управляющая строка, аргумент1, аргумент2,...);

Обратите внимание на то, что первым параметром является переменная, связанная с открытым файлом, а остальные параметры – те же, что и в функции printf().

Описание решения алгоритма задачи:

Для решения первой задачи (Используя операторы описания и присваивания, присвоить переменным определенных ниже типов значения) были использованы команды:

Для целых чисел int;

Для действительных чисел float;

Для символьных char;

И далее были вычислены выражения (Рисунок 1)

Рисунок 1 – Программа

Далее программа была скомпилирована и выполнена (Рисунок 2)

Рисунок 2 - Результат

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

Для решения третьей задачи был создан FILE *g и ему были присвоены название и параметры с помощью команды fopen g=fopen("rez.dat", "w"). И с помощь команды fprintf все данные выводились в файле.

Для решения четвертой задачи при записи команды fprintf(g, "%f ", M[i][j]), после % записывалось 1.4 и 1.2, то есть то количество нулей то количество нулей, которое необходимо по заданию.

Рисунок 3 – Программа

Рисунок 4 – Программа

Рисунок 5 - Результат

Руководство программиста:

Для написания данной программы программисту надо знать:

#include <stdio.h> – включение (“вставка” на этапе компиляции) содержимого другого файла. Эта строка указывает компилятору, что нужно включить информацию, содержащуюся в файле stdio.h (в этом файле содержится информация о функциях ввода и вывода и т.д.).

main() – имя главной (и, в данном случае, единственной) функции. В круглых скобках в общем случае содержится информация, передаваемая этой функции. В данном примере передача информации отсутствует и, следовательно, в скобках ничего не содержится. При написании программы старайтесь не пропускать скобок!!! void – "пустой" тип, т.е. функция main() в данном примере не возвращает операционной системе никакого значения.

Фигурные скобки { } (и только они) применяются для того, чтобы объединить несколько операторов программы в сегмент или "блок", а так как функция состоит из блока операторов, то такие скобки, соответственно, отмечают начало и конец тела функции (в Паскале аналогичную функцию выполняет пара "begin – end"). Для этой цели не используются ни круглые ( ), ни квадратные [ ] скобки.

Круглые скобки ( ) используются:

1) в арифметических и логических выражениях для изменения порядка вычислений;

2) в операторах (ветвления, циклов);

3) при обращении или описании функций – в заголовках, после имени функции.

Квадратные скобки [ ] используются при работе с массивами (и только с ними!) – при описании и при обращении к отдельным элементам.

num = 1; – это оператор присваивания; переменной num присваивается значение 1 (другими словами, в “ящичек” с именем num помещается число 1). 1 – это числовая константа, num – это переменная.

printf("..."); – функция, осуществляющая вывод строки "..." на терминал. Символ \n является управляющим символом "новая строка", т.е. с помощью этого символа осуществляются те же функции, что и с помощью клавиши [ввод] ([Enter]), имеющейся на обычной клавиатуре. Все то (за исключением комбинаций символов, начинающихся с символа %), что написано в пределах строки "...", выведется на экран точно в таком же виде, как написано в Вашей программе.

float – “вещественные числа” (или в математике – "действительные" числа) – это десятичные дроби и, в частности, целые числа, записанные в виде десятичных дробей; вместо запятой, отделяющей целую часть от дробной, используется точка.

char - символ (размер в памяти – 1 байт). Этот тип определяет целые числа без знака в диапазоне от 0 до 255, что обычно соответствует кодам символов.

Функция scanf() использует практически тот же набор символов спецификации преобразования, что и функция printf().

Руководство пользователя:

Для удобного пользования данной программой пользователю надо знать:

Хотя бы отчасти понимать, как работает программа, которую он собирается использовать;

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

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

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

Вывод

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

Блок-схема

Рисунок 6 – Блок-схема