Лабораторная работа №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
Вариант | Группа чисел | ||
P= -1084 L= 265 | M= 28,56 S= 1,83900645 | Z=0,00001 A=106 | |
A=26,3•103 J= -32 | B= -0,03375 D=5•102 | C=3,75•10 -5 H= -0,01 | |
J= -520 K=72800•10 -2 | N=365,4 E=102 | L=74,5•104 F= -0,035•10 -2 | |
B=25•102 C=76000•10 -2 | A=3,25•10 -4 P=3,14 | E=3,725•104 L=0,025 | |
J= -62 S=8,5•104 | M=5,6 C=0,042 | D=72•10 -5 N=4,7•10 -2 | |
A=6,32•103 B= -42 | D=435•10 -4 F= -0,0054 | X= -10 -6 Y=4,5•103 | |
K= -67 L=45700•10 -2 | S=5,601 M=526•10 -2 | N= -0,00042 P=4 | |
E= -652 C=344 | K= -3,2 A=526,3•10 -1 | B=0,1 D=456,3•10 -5 | |
W=3 J= -475 | I=4•104 D= -7,005 | F=4,32•10 -6 K= -0,0001 | |
E= -3000 D=750•10 -1 | Z= -32•10 -3 M=0,001 | C=64,5•103 Y= -0,005 | |
A=100 B= -0,52•104 | N=4 D=104 | Y= -5 X= -0,045•10 -3 | |
L= -457 M=7 | Z=33,66•10 -3 F=465 | N= -0,1•104 A=6,7•103 | |
E=104 L= -25 | K= -4,5 D=42567•10 -2 | F=4,57•10 -3 M= -56,3 | |
C=17 K= -4500 | F=752•102 L= -0,0003 | D= -4,57•10 -2 A= -0,01 | |
X=4 Y= -0,1•103 | E=256•10 -5 N= -3,5 | F=4•10 -5 A=106 | |
L= -756 B=62•102 | C=4,5•10 -3 K= -0,0032 | X= -4,5•103 Y=3,14 | |
I= -3200 M=654000•10 -2 | C= -625 N=3,5•10 -4 | A=462•10 -5 D= -0,0015 | |
N= -75200 D=45 | E=32,5 P=652,3•10 -4 | K=10 -4 C=0,01•106 | |
Y= -54 H=35000 | K=5,6•10 -3 Z= -3,7•104 | E=10 -3 L= -6•104 | |
E=103 F= -450 | H=0,005•102 X= -43,562•10 -3 | I=75600 Y= -0,00036 | |
L=7•103 H= -452 | X= -3,2•10 -4 Z=653•102 | E=3,2•10 -3 F= -65486•10 -4 | |
K= -0,015•104 F=365 | S=1,457 Z=999,99 | L=105 P= -333,3•102 | |
C= -5 H=425 | X=3,567 Y= -0,0001 | N=365000 E= -0,00004 | |
Y= -47 D=6 | F=7,2•106 S= -64,5•10 -3 | A=0,0001•103 L=4•10 -2 | |
N=3,25•103 E= -76 | Y=54,6 C= -0,001•10 -4 | F= -0,0001 L=456•102 | |
K= -375 E=5 | S= -3,001•10 -2 N=6,5•102 | F=104 D= -3,88•10 -3 | |
L= -400 A=105 | B=4,56•10 -3 M= -52,5•102 | I=10 -3 E=3,5•10 -4 | |
P= -184 I=6001 | Z=37,54•10 -3 F= -0,0064 | K=735000 E=3,5•10 -4 | |
L= -254 S=76000 | D= -5,5•10 -2 A=103 | Z=0,000001 F= -37000•10 -4 | |
P= -3 Y=4600 | N= -62,5 H=4,8•103 | E= -3,5•10 -3 Y=745000 |
Задание 2.
Разработать программу, которая должна выдавать на экран соответствующие подсказки, вводить перечисленные в условиях данные, а затем печатать введенную информацию с необходимыми пояснениями.
Задание выбрать по порядковому номеру студента в списке журнала группы из таблицы 1.2.
Вариант | Задание |
Тип электродвигателя (до 16 символов), номинальная мощность в кВт, номинальная частота обращения в об/мин, отношение пускового момента к номинальному, дата ввода данных, фамилия пользователя программы. | |
Наименование элементов привода (до 80 символов), максимальное и минимальное значение КПД закрытой и открытой передач, дата ввода данных, фамилия пользователя программы. | |
Марка стали (до 8 символов), минимальное и максимальное значение диаметра заготовки в мм, предел прочности материала в Н/м2, дата ввода данных, фамилия пользователя программы. | |
Способ термической или химико-термической обработки зубьев (до 30 символов), диапазон значений средней твердости материала в НРС (два числа), тип стали (до 20 символов), дата ввода данных, фамилия пользователя программы. | |
Тип стали (до 20 символов), диапазон значений средней твердости зубьев в НРС (два числа), предел прочности материала на изгиб в МПа, дата ввода данных, фамилия пользователя программы. | |
Твердость поверхности зубьев в НВ, виды зубьев (до 80 символов), коэффициент учета влияния вида зубчатой передачи, дата ввода данных, фамилия пользователя программы. | |
Степень точности передачи (целое число от 6 до 9), максимальное значение окружной скорости в м/с для прямозубой передачи, тип передачи (до 80 символов), дата ввода данных, фамилия пользователя программы. | |
Мощность на приводном валу в кВт, частота вращения приводимого вала в об/мин, тип редуктора (до 20 символов), окружная скорость на рабочем органе в м/с, дата ввода данных, фамилия пользователя программы. | |
КПД привода (число от 0 до 1), КПД редуктора, КПД открытой передачи, вид открытой передачи (до 20 символов), дата ввода данных, фамилия пользователя программы. | |
Общее передаточное число привода, передаточное число редуктора, передаточное число открытой передачи, тип редуктора (до 20 символов), дата ввода данных, фамилия пользователя программы. | |
Частота вращения вала в об/мин, передаваемая мощность в кВт, расчетная нагрузка в Н/м, наименование вала (до 16 символов), дата ввода данных, фамилия пользователя программы. | |
Вид сопрягаемой детали (до 16 символов), размер детали в мм, номер квалитета (может принимать значения от 5 до 13), значение допуска размера в мкм, дата ввода данных, фамилия пользователя программы. | |
Посадочная поверхность (до 30 символов), класс точности подшипника (одно из чисел 0,4,5,6), параметр шероховатости поверхности подшипника качения в мкм, дата ввода данных, фамилия пользователя программы. | |
Марка материала для изготовления венцов червячных колес (до 10 символов), способ отливки (до 16 символов), скорость скольжения в червячной передаче в м/с, предел текучести в МПа, дата ввода данных, фамилия пользователя программы. | |
Модель устройства телеобработки данных (до 8 символов), назначение (до 20 символов), предельная скорость передачи данных в бит/с, максимальное число каналов, дата ввода данных, фамилия пользователя программы. | |
Модель электронно-лучевого генератора изображений (до 8 символов), страна-разработчик (до 10 символов), размеры рабочего поля в мм (два числа), разрешение в мкм, дата ввода данных, фамилия пользователя программы. | |
Модель микрофотонаборной установки (до 10 символов), материал и режим набора (до 16 символов), размеры поля перемещений координатного стола в мм (два числа), точность позиционирования в мкм, дата ввода данных, фамилия пользователя программы. | |
Модель спецпроцессора (до 12 символов), назначение (до 20 символов), количество разрядов, максимальное число накопителей, производительность в бит/c, дата ввода данных, фамилия пользователя программы. | |
Модель внешнего запоминающего устройства (до 8 символов), назначение (до 4 символов), скорость обмена в Мбит/с, информационная емкость в Мбайт, дата ввода данных, фамилия пользователя программы. | |
Модель устройства подготовки данных (до 8 символов), назначение (до 10 символов), количество символов, предельная скорость набора в знак/с, дата ввода данных, фамилия пользователя программы. | |
Модель графического дисплея (до 7 символов), тип (до 9 символов), количество адресуемых точек (два числа), размер рабочего поля экрана в мм (два числа), дата ввода данных, фамилия пользователя программы. | |
Модель устройства документирования текста (до 16 символов), назначение (до 20 символов), страна-изготовитель (до 10 символов), производительность в строк/мин или знак/с, дата ввода данных, фамилия пользователя программы. | |
Модель графопостроителя (до 14 символов), тип графопостроителя (до 20 символов), размеры рабочего поля в мм (два числа), максимальная скорость чтения в мм/с, дата ввода данных, фамилия пользователя программы. | |
Модель координатографа (до 12 символов), страна-изготовитель (до 14 символов), точность позиционирования в мм, максимальная скорость в мм/c, максимальная скорость в мм/с, размеры рабочего поля в мм (два числа), дата ввода данных, фамилия пользователя программы. | |
Модель пресса (до 8 символов), номинальное усилие в кН, ширина, длина и толщина заготовки в мм (три числа), дата ввода данных, фамилия пользователя программы. | |
Модель многопозиционного пресса-автомата (до 6 символов), номинальное усилие в кН, число ходов ползуна в дв.ход/мин, число позиций, наибольшая ширина ленты в мм, дата ввода данных, фамилия пользователя программы. | |
Наименование комплекта вытяжных штампов (до 16 символов), технологический диаметр фланца в мм, диаметр заготовки в мм, относительная толщина в %, число переходов, дата ввода данных, фамилия пользователя программы. | |
Номер чертежа детали (до 12 символов), марка материала (до 10 символов), толщина материала в мм, ход раскроя (шестиразрядное число), число рядов, дата ввода данных, фамилия пользователя программы. | |
Вид вытяжки (до 16 символов), диаметр полученной детали в мм, толщина заготовки в мм, предел прочности материала в МПа, дата ввода данных, фамилия пользователя программы. | |
Марка материала (до 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?