Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаба 7 / Лабораторная_работа_№7_Токарев_0421.docx
Скачиваний:
0
Добавлен:
26.06.2025
Размер:
363.02 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра Электротехнологической и преобразовательной техники

отчет

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

по дисциплине «Информационные технологии»

Тема: Форматное преобразование данных

Студент гр. 0421

Токарев А.А.

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

Чмиленко Ф.В.

Санкт-Петербург

2021

Цель работы: Исследование библиотечных функций для ввода/вывода и преобразования данных языка С.

Задания:

  1. Преобразование целых чисел

  2. Преобразование чисел с плавающей точкой

  3. Преобразование символов и строк

  4. Форматированный вывод в строку

  5. Форматированный ввод из строки

  6. Форматирование таблицы строк из данных разных типов

  7. Функции преобразования данных

Дополнительные задания:

  1. Форматирование потокового вывода языка С++

Ход работы:

Задание 1.

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

#include <stdio.h>

#include <iostream>

using namespace std;

void number(int a) // функция, выводящее целое число в четырех разных форматах

{

cout << "Введенное число в десятичном беззнаковом формате: ";

printf("%u\n", a); // вывод числа в десятичном беззнаковом формате, перенос строки

cout << "Введенное число в десятичном знаковом формате: ";

printf("%d\n", a); // вывод числа в десятичном знаковом формате, перенос строки

cout << "Введенное число в восьмеричном беззнаковом формате: ";

printf("%o\n", a); // вывод числа в восьмеричном беззнаковом формате, перенос строки

cout << " Введенное число в шестнадцатеричном беззнаковом формате: ";

printf("%x\n", a); // вывод числа в шестнадцатеричном беззнаковом формате, перенос строки

}

int main()

{

int a, b, c, d;

system("chcp 1251");

system("cls");

cout << "Введите число в десятичном беззнаковом формате: " << endl;

scanf("%d", &a);

number(a);

cout << "Введите число в десятичном знаковом формате: " << endl;

scanf("%d", &b);

number(b);

cout << "Введите число в восмеричном беззнаковом формате: " << endl;

scanf("%o", &c);

number(c);

cout << "Введите число в шестнадцатеричном беззнаковом формате: " << endl;

scanf("%x", &d);

number(d);

system("pause");

return 0;

}

Рисунок 1 – Результат работы программы по вводу/выводу целых чисел в различных форматах

Немного переработаем программу так, чтобы при выводе числа в десятичном формате без знака она выводила как минимум 6 знаков, в случае если в числе знаков меньше, остальные знаки будут заполняться пробелами. Также, при выводе числа в десятичном виде со знаком сделаем так, чтобы обязательно выводился плюс перед положительными числами, при выводе числа в восьмеричном формате сделаем так, чтобы перед числом, если оно меньше, чем четыре знака, выводились нули. При выводе числа в шестнадцатеричном виде, сделаем так, чтобы она выводила как минимум 8 знаков, в случае если в числе знаков меньше, остальные знаки будут заполняться пробелами и, чтобы число было представлено в альтернативной форме:

#include <stdio.h>

#include <iostream>

using namespace std;

Void number(int a) // функция, выводящее целое число в четырех разных форматах

{

cout << "Введенное число в десятичном беззнаковом формате: ";

printf("%6u\n", a); // вывод числа в десятичном беззнаковом формате, перенос строки, 6 знаков, если знаков меньше – остальное - пробелы

cout << "Введенное число в десятичном знаковом формате: ";

printf("+%d\n", a); // вывод числа в десятичном знаковом формате, перенос строки, всегда знак «+», если число положительное

cout << "Введенное число в восьмеричном беззнаковом формате: ";

printf("%04o\n", a); // вывод числа в восьмеричном беззнаковом формате, перенос строки, если число меньше, чем четыре знака – заполнить нулями все место до 4-х знаков

cout << " Введенное число в шестнадцатеричном беззнаковом формате: ";

printf("%#8x\n", a); // вывод числа в шестнадцатеричном беззнаковом формате, перенос строки, 8 знаков, если знаков меньше – остальное – пробелы, число в альтернативном виде (перед числом 0х)

}

int main()

{

int a, b, c, d;

system("chcp 1251");

system("cls");

cout << "Введите число в десятичном беззнаковом формате: " << endl;

scanf("%d", &a);

number(a);

cout << "Введите число в десятичном знаковом формате: " << endl;

scanf("%d", &b);

number(b);

cout << "Введите число в восмеричном беззнаковом формате: " << endl;

scanf("%o", &c);

number(c);

cout << "Введите число в шестнадцатеричном беззнаковом формате: " << endl;

scanf("%x", &d);

number(d);

system("pause");

return 0;

}

Рисунок 2 – Результат работы программы по вводу/выводы целых чисел с дополнительным форматированием

Задание 2.

Разработаем программу, в которой реализуем ввод с клавиатуры и вывод на экран вещественных чисел в обычном и экспоненциальном форматах:

#include <stdio.h>

#include <iostream>

using namespace std;