230.41K
Категория: ПрограммированиеПрограммирование

Базовые типы данных и ввод-вывод. Лабораторная работа №1

1.

Карагандинский технический университет
Кафедра информационных технологий и безопасности
Лабораторная работа №1
Тема: Базовые типы данных и ввод-вывод
Дисциплина: Основы алгоритмизации и
программирования
Для студентов специальности:
«Системы информационной безопасности»
Автор:
стар. преп. Бартосик Ф.М.

2.

Цель работы
Получение практических навыков в работе с типами данных языка
“C” и в использовании функций стандартного ввода-вывода.
Задачи работы
Освоить следующие темы:
типы данных языка “C”;
объявление переменных;
функции стандартного ввода-вывода.

3.

Содержание работы:
1. Разработать программу, которая вводит фактические данные из
таблицы, представленной в вашем варианте индивидуального задания
и выводит на экран таблицу, подобную той, которая находится в
индивидуальном задании (включая заголовок и примечания);
2. Вывести на печать исходные данные и результат.
Порядок выполнения работы:
1. Ознакомление с теоретической частью;
2. Изучение типового примера;
3. Выполнение индивидуального задания;
4. Ответы на контрольные вопросы;
5. Оформление отчета.

4.

Структура программы
Любая программа, написанная на “С”, состоит из одной или нескольких
функций, являющихся основными модулями, из которых она собирается.
Функция, с которой начинается выполнение программы, всегда носит имя
"main". Пары символов /* и */ используются в качестве открывающей и
закрывающей скобок для комментария,
в
“С” строка комментария
начинается парой символов //. Составные операторы (операторы, состоящие
из нескольких простых) заключаются в фигурные скобки. Открывающая
фигурная скобка также отмечает начало тела функции, закрывающая - его
конец (аналог begin - end).
Одной из особенностей языка “С” является чувствительность к регистру.
Если в языке паскаль идентификаторы elem, Elem, ELEM являются одним и
тем же идентификатором, то в Си это 3 разных идентификатора.
Идентификаторы должны начинаться с буквы или знака подчеркивания и
могут состоять из букв, цифр, _, $. Символ «;» служит концом любого
оператора. Начало и конец в разделе реализации программы или
подпрограммы, а также в начале и конце составного оператора обозначаются
фигурными скобками.

5.

Структура программы (продолжение)
Общая структура программы на языке “С”:
директивы препроцессора;
описание типов;
описание констант;
описание переменных;
прототипы функций;
описание функций.
Функции имеют следующую структуру:
Тип_функции Имя_функции (Параметры)
{
<Локальные описания>;
<Операторы>;
<Возвращаемое значение функции>;
}

6.

Структура программы (заголовочные файлы)
Для
подключения
файлов
заголовка
используют
директивы
препроцессора. Файлы заголовка, называемые также включаемыми файлами,
содержат объявления прототипов библиотечных функций. В них также
находятся определения типов данных и символических имен констант
библиотечных функций, а также глобальные переменные, определяемые
C++ и библиотечными функциями. На следующем слайде приведены
наиболее часто используемые в настоящих лабораторных работах
заголовочные файлы.
Когда препроцессор встречает директиву #include,
#include <имя файла>
#include "имя файла"
он ищет следующее за ней имя файла и включает его в текущий файл.
Угловые скобки сообщают препроцессору о том, что файл следует искать в
одном или нескольких стандартных системных каталогах. Кавычки говорят о
том, что сначала нужно смотреть в каталоге разработки программы, а затем
искать в стандартных.

7.

Структура программы (заголовочные файлы)
conio.h
Объявляет различные функции, используемые при вызове
подпрограмм ввода/вывода с консоли.
Объявляет
подпрограммы
(ввода/вывода)
iostream базового
С++. Прототипы функций cout, cin.
math.h
Объявляет прототипы математических функций
потоков
stdio.h
Определяет типы данных и макросы, необходимые для
пакета стандартного ввода/вывода (Standard I/O Package),
определенного
Керниганом
и
Ритчи.
Определяет
предопределенные потоки стандартного ввода/вывода stdin,
stdout, stdprn и stderr, а также объявляет подпрограммы
ввода/вывода уровня потоков. Содержит прототипы функций
printf, scanf.
string.h
Объявляет несколько подпрограмм строковых манипуляций
и манипуляций с памятью
time.h
Определяет структуру, заполняемую подпрограммами
преобразования времени asctime, localtime и gmtime, а также
тип, используемый подпрограммами ctime, difftime, gmtime,
localtime и stime; также содержит прототипы этих
подпрограмм.

8.

Основные типы языка
Язык Си имеет следующие основные простые типы:
► числовые;
► логические;
► символьные;
► указатели.
Числовые типы в свою очередь подразделяются на целочисленные и
вещественные. Каждому из целочисленных типов может быть добавлена
директива unsigned (без знака) :
Название типа
Кол-во байт
Диапазон значений
char
1
-127 … 128
short, short int
2
-32768 … +32767
int, long
4
-2 147 483 648 …. +2 147 483 647
unsigned char
1
0 … 255
unsigned short, unsigned
short int
2
0 … 65535
unsigned int, unsigned
long
4
0 … 4 294 967 295

9.

Основные типы языка (продолжение)
Вещественные типы (с плавающей точкой):
Название типа
Кол-во Диапазон значений
байт
float
4
(±) (3.4 * 10-38 … 3.4*1038)
double
8
(±) (1.7 * 10-308 … 1.7*10308)
Типы float и double представляют числа
соответственно одинарной и двойной точности.
с
плавающей
точкой
Выражения в которых требуются логические значения интерпретируют
значение 0 – false, а все другие отличные от 0 значения – true.

10.

Определение строки
Так как в “С” не существует встроенного строкового типа данных, то для
создания переменных строкового типа необходимо создать массив символов.
Причем последним элементом этого массива всегда будет нуль-символ '\0'.
Он используется для того, чтобы отмечать конец строки. Наличие нульсимвола означает, что количество ячеек массива должно быть по крайней
мере на одну больше, чем число символов, которые необходимо размещать в
памяти. Инициализация строк может производиться следующим образом:
char m1[] = "Строка символов";
char m[44] = "Новая строка символов";

11.

Операторы ввода/вывода
Функция printf, вывода на экран, требует подключения файла stdio.h.
Имеет простой и гибкий формат.
printf ("Строка формата", объект 1 , объект 2, …, объект N);
Строка формата – строка, которая начинается и заканчивается двойными
кавычками и выводится на экран. Кроме того, в строке формата могут
присутствовать спецификации формата, которые указывают как необходимо
выводить объект.
Например:
printf("Сумма=%d\n ",sum);
Все спецификации формата начинаются с символа % и обычно
сопровождаются одной буквой, обозначающей тип данных и способ их
преобразования. Для каждого объекта необходимо иметь только одну
соответствующую ему спецификацию формата.
В примере объектом является переменная sum, ей соответствует
спецификация формата %d. Спецификатор %d используемый в программе
говорит о том, что переменная sum будет выведена как целое число.

12.

Операторы ввода/вывода (спецификаторы)
Ниже приведены некоторые спецификации формата.
Спецификатор Значение
%d
целое число
%p
значение указателя
%f
вещественное число
%e
вещественное число в экспонентной форме
%s
строка
%x
целое число в шестнадцатеричном формате

13.

Операторы ввода/вывода
(спецификаторы, продолжение)
Можно также задать ширину выводимого поля, помещая её между знаком
% и буквой. Например, поле шириной 4 задается %4d. Ширина поля с
плавающей точкой задается следующим образом %6.2f.
Например:
printf(" %6.2f ",r);
В примере ширина 6 символов, и 2 знака после запятой.
Если требуется выравнивание содержимого поля по левому краю (по
умолчанию правое выравнивание), можно использовать знак “минус”.
printf(" %-4d ",n);
Обратный слеш (\) – это не спецификация формата, а управляющий
символ и представляет собой специальный символ, вставленный в строку.
Управляющий
символ
\t
Значение
\n
символ перевода курсора на новую строку
\r
возврат к началу строки
символ табуляции

14.

Операторы ввода/вывода (продолжение)
Парная предыдущей функции функция scanf – функция ввода следующий формат:
scanf("Строка формата", адрес1, адрес2, …);
имеет
Строка формата имеет тот же вид, что и строка формата функции printf.
Объекты же, следующие за строкой, должны быть адресами, а не значениями.
Например:
int a,b;
scanf("%d %d",&a,&b);
Этот вызов сообщает программе, что она должна ожидать ввода двух
целых чисел, разделенных пробелом (табуляцией, символом перевода
строки). Первое из введенных чисел будет присвоено переменной а, а второе
переменной b.

15.

Разбор типового варианта
Разработать программу, которая вводит фактические данные из таблицы,
представленной в вашем варианте индивидуального задания и выводит на
экран таблицу, подобную той, которая находится в индивидуальном задании
(включая заголовок и примечания, жирный шрифт присутствует только на
слайде для наглядности).
Скорость звука в жидкостях
Вещество
Тип
Скорость (м/сек)
Ч
Температура
(град.С)
20
Анилин
Ртуть
Ч
20
1451,27
Кедровое
М
29
1406,75
Тип жидкости: Ч - чистое вещество, М - масло
1656,25

16.

Разбор типового варианта (листинг)
#include <iostream> // подключаем директивы препроцессора
#include <conio.h>
using namespace std;
int main () // главная функция
{
char vesh[3][10], type[3]; // объявление переменных
int temp[3]; float speed[3];
for (int i=0; i<3; i++) // ввод данных с помощью цикла
{
cout<<"Введите вещество "<<i+1<<" "; // сообщение
cin>>vesh[i];
// ввод
cout<<"Введите тип "<<i+1<<" ";
cin>>type[i];
cout<<"Введите температуру "<<i+1<<" ";
cin>>temp[i];
cout<<"Введите скорость "<<i+1<<" ";
cin>>speed[i];
cout<<"-------------\n";
}

17.

Разбор типового варианта (листинг, продолжение)
printf("|------------------------------------------------------|\n");
printf("| Скорость звука в жидкостях
|\n");
printf("|------------------------------------------------------|\n");
/*выводим шапку таблицы*/
printf("| Вещество | Тип | Температура | Скорость |\n");
printf("|------------------------------------------------------|\n");
/* вывод данных через циклический оператор*/
for (int i=0; i<3; i++)
{
/* выводим и выравниваем данные
с учетом ширины полей каждого столбца в шапке
и типов данных */
printf("|%-13s|%-8c|%12d|%9.2f|\n",vesh[i],type[i],temp[i],speed[i]);
printf("|------------------------------------------------------|\n");
}
getch(); // задержка для нажатия клавиши
return 0; // функция возвращает 0, программа завершилась правильно
}

18.

Правила отчетности студента
Отчет должен содержать:
1. Титульный лист;
2. Цель работы;
3. Постановка задачи;
4. Текст программы (с комментариями);
5. Результат выполнения программы;
6. Ответы на контрольные вопросы.

19.

Контрольные вопросы:
1. Перечислить основные типы данных. Как описываются данные в
программе: константы, переменные, массивы?
2. Как описываются символьные строки?
3. Назначение препроцессора, назвать основные
препроцессора и указать правила их использования.
4. Функции ввода и вывода, отличие их друг от друга.
директивы

20.

Задания (варианты 1-2):
Вариант 1
Некоторые виды антилоп
Численность
популяции
Джейран
A
Азия
30000
Гну
B
Африка
560000
Бейза
H
Африка
2500
Группа: А - настоящие антилопы, B - коровьи антилопы, H - лошадиные
антилопы
Название
Группа
Место обитания
Вариант 2
Фирмы - производители СКБД
Фирма
Количество.
продуктов
Годовой объем продажи Часть рынка
($)
(%)
Oracle
1
2488000000
31.1
IBM
3
2392000000
29.9
Microsoft
2
1048000000
13.1
Примечание: по данным Gartner Group за 1999г

21.

Задания (продолжение, варианты 3-4):
Вариант 3
Отдел кадров
Фамилия
Иванов
Петренко
Паниковский
Инициалы
И.И.
П.П.
М.С.
Год рожд
1975
1956
1967
Оклад
517.50
219.10
300.00
Примечание: оклад установлен по состоянию на 1 января 2000 года
Вариант 4
Ведомость деталей
Наименование
Тип
Количество
Вес 1 детали (г)
Фланец
З
3
450
Переходник
П
8
74
Станина
О
1
117050
Примечание: принято такое кодирование типов: О - оригинальная, П покупная, З - заимствованная

22.

Задания (продолжение, варианты 5-6):
Вариант 5
Характеристики ПЭВМ
Процессор
Частота (Mgz)
Pentium-III
233
C
AMD-К6
166
C
PowerPC-620
2000
R
RAM (Mb)
Тип
Тип: C - CISC-процессор, R - RISC-процессор
Вариант 6
Каталог библиотеки
Автор книги
Название
Год выпуска
Группа
Сенкевич
Потоп
1978
Х
Ландау
Механика
1989
У
Дойль
Сумчатые
1990
C
Примечание: Х - художественная литература; У - учебная литература; С справочная литература

23.

Задания (продолжение, варианты 7-8):
Вариант 7
Ведомость комплектующих
Обозначение
Тип
Номинал
Количество
RT-11-24
R
100000
12
RT-11-24
R
50000
10
CGU-12K
C
17.5
3
Примечание: R - резистор; C - конденсатор
Вариант 8
Проекты поиска внеземных сигналов
Научный
Диаметр антенны Рабочая частота
Год
руководитель
(м)
(МГц)
1960
Дрейк
26
1420
1970
Троицкий
14
1875
1978
Хоровиц
300
1665
Примечание: наблюдались объекты от 2 звезд до нескольких галактик

24.

Задания (продолжение, варианты 9-10):
Вариант 9
Офисные пакеты
Количество
Цена ($)
сост.частей
Office
Microsoft
4
870
SmartSute
Lotus
5
1020
StarOffice
Sun
4
9
Примечание: возможно бесплатно получить продукт StarOffice через
Internet
Наименование
Производитель
Вариант 10
Сельскохозяйственные культуры
Наименование Тип
Посевная площадь (га)
Соя
Б
13000
Чумиза
З
8000
Рис
З
25650
Примечание: З - зерновые, Б - бобовые
Урожайность (ц/га)
45
17
24

25.

Задания (продолжение, варианты 11-12):
Вариант 11
Ведомость спортивных состязаний
Фамилия участника Код команды
Количество балов
Баландин
С
123.7
Шишков
Ш
79.98
Кравченко
Д
134.8
Примечание: Д - "Динамо", С - "Спартак", Ш - "Шахтер"
Место в итоге
2
3
1
Вариант 12
Ведомость общественного транспорта
Вид
Вид
Протяженность маршрута Время в дороге
транспорта маршрута
(км)
(мин)
Тр
12
27.55
75
Т-с
17
13.6
57
А
12а
57.3
117
Примечание: Тр - трамвай, Тс - троллейбус, А - автобус

26.

Задания (продолжение, варианты 13-14):
Вариант 13
Приблизительное количество звезд разных спектральных классов в
Галактике
Спектральный Приблизительная масса
Часть %
Численность
класс
(отн.Солнца)
O
32
0.00002
55000
F
1.25
2.9
12000000000
M
0.2
73.2
293000000000
Примечание: не показаны данные для классов: B, A, G, K
Вариант 14
Время выполнения некоторых программ, которые применяют
параллельные алгоритмы
Название
Количество
Время исп. на SGI Время исп. на SGI
прграммы
строк кода
Callenge (cек)
Indy (cек)
OCEAN
1917
8.70
18.2
DYFESM
3386
6.95
22
TRFD
417
1.05
2.98
Примечание: SGI Callenge - ЦП R1000 196 MHz, 1.024 MB RAM SGI Indy
- ЦП MIPS R4600 134 MHz, 64 MB RAM

27.

Задания (продолжение, варианты 15-16):
Вариант 15
Конфигурация программных средств информационных систем
Операционн СУБД Мин. объем
Мин.объем
Приблизитель
ая система
внешней памяти оперативной
ная цена ($)
(MB)
памяти (MB
OS/2
DB2 130
22
3343
SQLSe
Windows/NT
230
24
2685
rver
SCO/Unix Oracle 110
48
3745
Примечание: принималась цена лицензии на 8 пользователей
Вариант 16
Сельскохозяйственные предприятия
Вид
Площадь земли
Название
Кол. работников
собственности
(га)
Заря
Д
300
120
Росинка
К
174
27
Петренко
Ч
56
6
Вид собственности: Д - государственная, Ч - частная, К - кооперативная

28.

Задания (продолжение, варианты 17-18):
Вариант 17
Прайс-лист
Наименование Тип
Цена за 1 шт
Минимальное количество в
товара
товара (грн)
партии
Папка
К
4.75
4
Бумага
К
13.90
10
Калькулятор
О
411.00
1
Примечание: К - канцтовары, О - оргтехника
Вариант 18
Вязкость металлов в жидком состоянии
Атомный
Вещество
Температура (град.С) Вязкость (кг/м*сек)
номер
Алюминий 13
700
2.90
Висмут
83
304
1.65
Свинец
82
441
2.11
Примечание: данные даны для температуры плавления

29.

Задания (продолжение, варианты 19-20):
Вариант 19
Коэффициенты теплопроводимости материалов
Вещество
Тип
Влажность (%)
Коэффициент
Алюминий
М
0-100
209.3
Стекловата
Т
0-100
0.035
Глина
Д
15-20
0.73
Примечание: М - металлы, Т - термоизоляционные материалы, Д другие материалы
Вариант 20
Скорость звука в жидкостях
Вещество
Тип
Температура (град.С)
Анилин
Ч
20
Ртуть
Ч
20
Кедровое
М
29
Тип жидкости: Ч - чистое вещество, М - масло
Скорость (м/сек)
1656
1451
1406

30.

Список литературы:
1. Липачёв Е.К. Технология программирования. Базовые
конструкции C/C++: учебно–справочное пособие / Е.К. Липачёв. –
Казань: Казан. ун-т, 2012. - 142 с.
2. Сидорина, Татьяна Самоучитель Microsoft Visual Studio C++ и MFC /
Татьяна Сидорина. - М.: "БХВ-Петербург", 2014. - 848 c.
3. Довбуш, Галина Visual C++ на примерах / Галина Довбуш,
Анатолий Хомоненко. - М.: БХВ-Петербург, 2012. - 528 c.
4. Панюкова, Т. А. Языки и методы программирования. Создание
простых GUI-приложений с помощью Visual С++. Учебное пособие /
Т.А. Панюкова, А.В. Панюков. - Москва: Мир, 2015. - 144 c.

31.

Спасибо за внимание!
Можно приступать
к выполнению работы
English     Русский Правила