
Прога отчет2
.docxМИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное учреждение высшего образования
«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ
ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
ИЯТШ ОЯТЦ
Отчет
по лабораторной работе №2
Задание значений переменным и массивам. Форматный ввод-вывод.
Работа с файлом
Выполнил студент группы 0А23
Шевченко А.В.
Проверил преподаватель
Дериглазов А.А.
Томск-2022
Оглавление
Цель работы 3
Задание 4
Теоретическая часть: 6
Описание решения алгоритма задачи: 8
Руководство программиста: 11
Руководство пользователя: 13
Вывод 13
Блок-схема 14
Цель работы
Приобрести начальные навыки программирования на языке Си. Научиться задавать значения переменным и массивам, осуществлять ввод/вывод данных с использованием библиотечных функций.
Задание
Получить номер варианта задания у преподавателя, ведущего лабораторные занятия.
Ознакомиться с заданием к лабораторной работе (файл Задания.doc).
Ознакомиться с учебно-методическими указаниями к лабораторной работе (файл Лаб_2.doc).
Составить блок-схему алгоритма программы.
Набрать текст программы на языке Си с помощью текстового редактора.
Провести трансляцию и компоновку программы.
Выполнить контрольный запуск разработанной программы на исполнение.
Составить отчет по лабораторной работе в соответствии с правилами оформления отчета (файл Общие_указания_к_лабораторным_работам.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). Значение вычисленного результата используется по месту вызова функции;
выражение – комбинация констант, переменных, вызовов функций и операций (“операция” – это уникальный символ для операции, такой как умножение, сложение и т.д.), получающая единственный результат. Иначе – это формула для вычисления значений.
Основные типы данных языка Си
long – целые числа двойной точности;
char – символы (буквы, цифры, и некоторые другие символы);
float – вещественные (действительные) числа;
double – вещественные числа двойной точности.
Файл для нас – это часть памяти для хранения информации, обычно на диске, со своим именем. Язык Си "рассматривает" файл как структуру данных. Эта структура содержится в системном файле stdio.h. Краткое наименование шаблона файла – FILE, которая и будет использоваться далее.
Описание файла:
FILE *переменная;
при этом слово FILE пишется только заглавными буквами.
Открытие файла: функция
переменная = fopen("имя_файла","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 – Блок-схема