ЗФ_ОАиП / Laboratornaja_rabota_1 семестр / Laboratornaja_rabota_2_Tipy_dannykh_Konsolnyi_vvod-vyvod
.docЛабораторная работа №2
Типы данных. Консольный ввод-вывод
Цель работы:
Изучить типы данных языка С и наиболее распространенные функции ввода информации с клавиатуры и ее вывода на экран (консольный ввод-вывод):
getchar , getch и putchar (для ввода-вывода символа),
gets и puts (для ввода-вывода строки),
scanf и printf (для форматированного ввода-вывода ), спецификации формата и функцию
fflush очистки буфера stdin.
Задание.
1. Изучить основные типы данных языка С.
2. Изучить функции getchar, putchar, gets, puts, scanf, printf, fflush очистки буфера stdin, спецификации формата.
3. Разобрать и выполнить пример к данной лабораторной работе.
3. Написать и отладить хорошо комментированную программу в среде Borland C++ 3.1, осуществляющую ввод и вывод данных в соответствии с заданием 1 и заданием 2.
4. Вывести текст программы и результаты ее выполнения на принтер.
5. Подготовить отчет, который должен содержать:
-
Название работы
-
Цель работы
-
Задание
-
Таблица соответствия переменных
-
Краткое описание функций ввода и вывода (для чего предназначены и общий вид)
-
Листинг программы и результатов ее выполнения
-
Выводы
Задание 1.
Разработать программу на алгоритмическом языке СИ, которая с помощью операторов ввода-вывода вводит и выводит на экран числовые значения переменных.
Спецификации операторов ввода и вывода выбрать самостоятельно в соответствии со значениями перемнных.
Задание выбрать по порядковому номеру студента в списке журнала группы из таблицы 1.1.
Таблица 1.1
Вариант |
Группа чисел |
||
1 |
2 |
3 |
|
01
|
P= -1084 L= 265 |
M= 28,56 S= 1,83900645 |
Z=0,00001 A=106 |
02
|
A=26,3•103 J= -32 |
B= -0,03375 D=5•102 |
C=3,75•10 -5 H= -0,01 |
03
|
J= -520 K=72800•10 -2 |
N=365,4 E=102 |
L=74,5•104 F= -0,035•10 -2 |
04
|
B=25•102 C=76000•10 -2 |
A=3,25•10 -4 P=3,14 |
E=3,725•104 L=0,025 |
05
|
J= -62 S=8,5•104 |
M=5,6 C=0,042 |
D=72•10 -5 N=4,7•10 -2 |
06
|
A=6,32•103 B= -42 |
D=435•10 -4 F= -0,0054 |
X= -10 -6 Y=4,5•103 |
07
|
K= -67 L=45700•10 -2 |
S=5,601 M=526•10 -2 |
N= -0,00042 P=4 |
08
|
E= -652 C=344 |
K= -3,2 A=526,3•10 -1 |
B=0,1 D=456,3•10 -5 |
09
|
W=3 J= -475 |
I=4•104 D= -7,005 |
F=4,32•10 -6 K= -0,0001 |
10
|
E= -3000 D=750•10 -1 |
Z= -32•10 -3 M=0,001 |
C=64,5•103 Y= -0,005 |
11
|
A=100 B= -0,52•104 |
N=4 D=104 |
Y= -5 X= -0,045•10 -3 |
12
|
L= -457 M=7 |
Z=33,66•10 -3 F=465 |
N= -0,1•104 A=6,7•103 |
13
|
E=104 L= -25 |
K= -4,5 D=42567•10 -2 |
F=4,57•10 -3 M= -56,3 |
14
|
C=17 K= -4500 |
F=752•102 L= -0,0003 |
D= -4,57•10 -2 A= -0,01 |
15
|
X=4 Y= -0,1•103 |
E=256•10 -5 N= -3,5 |
F=4•10 -5 A=106 |
16
|
L= -756 B=62•102 |
C=4,5•10 -3 K= -0,0032 |
X= -4,5•103 Y=3,14 |
17
|
I= -3200 M=654000•10 -2 |
C= -625 N=3,5•10 -4 |
A=462•10 -5 D= -0,0015 |
18
|
N= -75200 D=45 |
E=32,5 P=652,3•10 -4 |
K=10 -4 C=0,01•106 |
19
|
Y= -54 H=35000 |
K=5,6•10 -3 Z= -3,7•104 |
E=10 -3 L= -6•104 |
20
|
E=103 F= -450 |
H=0,005•102 X= -43,562•10 -3 |
I=75600 Y= -0,00036 |
21
|
L=7•103 H= -452 |
X= -3,2•10 -4 Z=653•102 |
E=3,2•10 -3 F= -65486•10 -4 |
22
|
K= -0,015•104 F=365 |
S=1,457 Z=999,99 |
L=105 P= -333,3•102 |
23
|
C= -5 H=425 |
X=3,567 Y= -0,0001 |
N=365000 E= -0,00004 |
24
|
Y= -47 D=6
|
F=7,2•106 S= -64,5•10 -3 |
A=0,0001•103 L=4•10 -2 |
25
|
N=3,25•103 E= -76 |
Y=54,6 C= -0,001•10 -4 |
F= -0,0001 L=456•102 |
26
|
K= -375 E=5 |
S= -3,001•10 -2 N=6,5•102 |
F=104 D= -3,88•10 -3 |
27
|
L= -400 A=105 |
B=4,56•10 -3 M= -52,5•102 |
I=10 -3 E=3,5•10 -4 |
28
|
P= -184 I=6001 |
Z=37,54•10 -3 F= -0,0064 |
K=735000 E=3,5•10 -4 |
29
|
L= -254 S=76000 |
D= -5,5•10 -2 A=103 |
Z=0,000001 F= -37000•10 -4 |
30
|
P= -3 Y=4600 |
N= -62,5 H=4,8•103 |
E= -3,5•10 -3 Y=745000 |
Задание 2.
Разработать программу, которая должна выдавать на экран соответствующие подсказки, вводить перечисленные в условиях данные, а затем печатать введенную информацию с необходимыми пояснениями.
Задание выбрать по порядковому номеру студента в списке журнала группы из таблицы 1.2.
Вариант |
Задание |
01 |
Тип электродвигателя (до 16 символов), номинальная мощность в кВт, номинальная частота обращения в об/мин, отношение пускового момента к номинальному, дата ввода данных, фамилия пользователя программы. |
02 |
Наименование элементов привода (до 80 символов), максимальное и минимальное значение КПД закрытой и открытой передач, дата ввода данных, фамилия пользователя программы. |
03 |
Марка стали (до 8 символов), минимальное и максимальное значение диаметра заготовки в мм, предел прочности материала в Н/м2, дата ввода данных, фамилия пользователя программы. |
04 |
Способ термической или химико-термической обработки зубьев (до 30 символов), диапазон значений средней твердости материала в НРС (два числа), тип стали (до 20 символов), дата ввода данных, фамилия пользователя программы. |
05 |
Тип стали (до 20 символов), диапазон значений средней твердости зубьев в НРС (два числа), предел прочности материала на изгиб в МПа, дата ввода данных, фамилия пользователя программы. |
06 |
Твердость поверхности зубьев в НВ, виды зубьев (до 80 символов), коэффициент учета влияния вида зубчатой передачи, дата ввода данных, фамилия пользователя программы. |
07 |
Степень точности передачи (целое число от 6 до 9), максимальное значение окружной скорости в м/с для прямозубой передачи, тип передачи (до 80 символов), дата ввода данных, фамилия пользователя программы. |
08 |
Мощность на приводном валу в кВт, частота вращения приводимого вала в об/мин, тип редуктора (до 20 символов), окружная скорость на рабочем органе в м/с, дата ввода данных, фамилия пользователя программы. |
09 |
КПД привода (число от 0 до 1), КПД редуктора, КПД открытой передачи, вид открытой передачи (до 20 символов), дата ввода данных, фамилия пользователя программы. |
10 |
Общее передаточное число привода, передаточное число редуктора, передаточное число открытой передачи, тип редуктора (до 20 символов), дата ввода данных, фамилия пользователя программы. |
11 |
Частота вращения вала в об/мин, передаваемая мощность в кВт, расчетная нагрузка в Н/м, наименование вала (до 16 символов), дата ввода данных, фамилия пользователя программы. |
12 |
Вид сопрягаемой детали (до 16 символов), размер детали в мм, номер квалитета (может принимать значения от 5 до 13), значение допуска размера в мкм, дата ввода данных, фамилия пользователя программы. |
13 |
Посадочная поверхность (до 30 символов), класс точности подшипника (одно из чисел 0,4,5,6), параметр шероховатости поверхности подшипника качения в мкм, дата ввода данных, фамилия пользователя программы. |
14 |
Марка материала для изготовления венцов червячных колес (до 10 символов), способ отливки (до 16 символов), скорость скольжения в червячной передаче в м/с, предел текучести в МПа, дата ввода данных, фамилия пользователя программы. |
15 |
Модель устройства телеобработки данных (до 8 символов), назначение (до 20 символов), предельная скорость передачи данных в бит/с , максимальное число каналов, дата ввода данных, фамилия пользователя программы. |
16 |
Модель электронно-лучевого генератора изображений (до 8 символов), страна-разработчик (до 10 символов), размеры рабочего поля в мм ( два числа), разрешение в мкм, дата ввода данных, фамилия пользователя программы. |
17 |
Модель микрофотонаборной установки (до 10 символов), материал и режим набора (до 16 символов), размеры поля перемещений координатного стола в мм (два числа), точность позиционирования в мкм, дата ввода данных, фамилия пользователя программы. |
18 |
Модель спецпроцессора (до 12 символов), назначение (до 20 символов), количество разрядов, максимальное число накопителей, производительность в бит/c, дата ввода данных, фамилия пользователя программы. |
19 |
Модель внешнего запоминающего устройства (до 8 символов), назначение (до 4 символов), скорость обмена в Мбит/с, информационная емкость в Мбайт, дата ввода данных, фамилия пользователя программы. |
20 |
Модель устройства подготовки данных (до 8 символов), назначение (до 10 символов), количество символов, предельная скорость набора в знак/с, дата ввода данных, фамилия пользователя программы. |
21 |
Модель графического дисплея (до 7 символов), тип (до 9 символов), количество адресуемых точек (два числа), размер рабочего поля экрана в мм (два числа), дата ввода данных, фамилия пользователя программы. |
22 |
Модель устройства документирования текста (до 16 символов), назначение (до 20 символов), страна-изготовитель (до 10 символов), производительность в строк/мин или знак/с, дата ввода данных, фамилия пользователя программы. |
23 |
Модель графопостроителя (до 14 символов), тип графопостроителя (до 20 символов), размеры рабочего поля в мм (два числа), максимальная скорость чтения в мм/с, дата ввода данных, фамилия пользователя программы. |
24 |
Модель координатографа (до 12 символов), страна-изготовитель (до 14 символов), точность позиционирования в мм, максимальная скорость в мм/c, максимальная скорость в мм/с, размеры рабочего поля в мм (два числа), дата ввода данных, фамилия пользователя программы. |
25 |
Модель пресса (до 8 символов), номинальное усилие в кН, ширина, длина и толщина заготовки в мм (три числа), дата ввода данных, фамилия пользователя программы. |
26 |
Модель многопозиционного пресса-автомата (до 6 символов), номинальное усилие в кН, число ходов ползуна в дв.ход/мин, число позиций, наибольшая ширина ленты в мм, дата ввода данных, фамилия пользователя программы. |
27 |
Наименование комплекта вытяжных штампов (до 16 символов), технологический диаметр фланца в мм, диаметр заготовки в мм, относительная толщина в %, число переходов, дата ввода данных, фамилия пользователя программы. |
28 |
Номер чертежа детали (до 12 символов), марка материала (до 10 символов), толщина материала в мм, ход раскроя (шестиразрядное число), число рядов, дата ввода данных, фамилия пользователя программы. |
29 |
Вид вытяжки (до 16 символов), диаметр полученной детали в мм, толщина заготовки в мм, предел прочности материала в МПа, дата ввода данных, фамилия пользователя программы. |
30 |
Марка материала (до 8 символов), температура начала штамповки в оС, максимальная и минимальная температура конца штамповки в оС (два числа), дата ввода данных, фамилия пользователя программы. |
Пример
Написать программу ввода и вывода двух целых и четырех вещественных числа, ввода и вывода марки материала (до 8 символов), температуры начала штамповки, минимальной и максимальной температуры конца штамповки, текущей даты и фамилии пользователя.
Решение.
Таблица соответствия
Переменная в задаче |
Имя переменной в программе |
Тип |
Спецификация ввода (для оператора scanf) |
Спецификация вывода |
1-ое целое число |
P |
int |
%d |
%2d |
2-ое целое число |
J |
int |
%d |
% 4d |
1-ое вещественное число |
N |
float |
%f |
%5.2f |
2-ое вещественное число |
H |
float |
%f |
%e |
3-ое вещественное число |
E |
float |
%f |
%e |
4-ое вещественное число |
Y |
float |
%f |
%f |
Марка материала |
M |
char M[8] |
|
%s |
Температура начала штамповки |
T |
int |
%d |
|
Миниальная температуры конца штамповки |
TN |
int |
%d |
|
Максимальную температуры конца штамповки |
TK |
int |
%d |
|
Текущая дата |
D |
char D[10] |
|
%s |
Фамилия |
F |
char F[20] |
|
%s |
Текст программы
/* Пример для лабораторной работы №2 */
#include <stdio.h>
#include <conio.h>
main()
{
int P,J,T,TN,TK; // Переменные целочисленного типа
float N,H,E,Y; //Переменные вещественного типа
char M[8], D[10], F[20]; //Массивы символов (строки)
puts("Введите два целых числа");
scanf("%d %d",&P,&J);
puts("Введите четыре вещественных числа");
scanf("%f %f %f %f",&N,&H,&E,&Y);
printf("Введите марку материала (до 8 символов) ");
fflush(stdin);
gets(M);
fflush(stdin);
puts("Введите температуру начала штамповки");
scanf("%d",&T);
puts("Введите минимальную и максимальную температуры конца штамповки");
scanf("%d %d",&TN,&TK);
fflush(stdin);
puts("Введите текущую дату");
gets(D);
puts("Введите свою фамилию");
gets(F);
puts("Были введены:");
printf("Целые числа P=%2d J=% 4d\n", P,J);
printf("Вещественные числа N= %5.2f H= %e E= %e Y= %f\n", N,H,E,Y);
printf("Марка материала: %s\n", M);
printf("Температура начала штамповки: %d град.C\n", T);
printf("Минимальная и максимальная температуры конца штамповки: %d
град.C % d град.C\n", TN,TK);
printf("Работу выполнил %s %s\n", F,D);
fflush(stdin);
getchar();
return(0);
}
Контрольные вопросы
-
Что определяет тип данных?
-
На какие две группы можно разделить все типы языка C?
-
Какие типы данных относятся к основным типам?
-
Какие типы данных являются составными?
-
Какие ключевые слова определены для описания основных типов данных (целого, символьного, расширенного символьного, логического, вещественного, вещественного с двойной точностью)?
-
Назовите четыре спецификатора типа, уточняющих внутреннее представление и диапазон значений стандартных типов
-
.Объемы занимаемой памяти для основных типов данных?
-
Множество значений типа void?
-
Когда используется тип void?
-
Дать определение переменной.
-
Дать определение именованной константы.
-
Привести общий вид описания переменной.
-
Что понимается под консольным вводом-выводом"
-
Функции ввода и вывода символа?
-
Функции ввода и вывода строки?
-
Функция, предназначенная для вывода форматированной последовательности данных?
-
Функция, предназначенная для ввода данных в заданном формате?.
-
Для чего предназначена форматная строка функций ввода и вывода?
-
Что может содержать форматная строка?
-
Общий вид спецификации преобразования форматной строки?
-
Перечислите спецификации преобразования функции printf.
-
Что такое Еscape-последовательности, для чего они предназначены?
-
Приведите таблицу Еscape-последовательностей.
-
Назначение и примеры использования функций atoi, atol, atof.
-
Назначение и примеры использования функции strtod?