Лабораторная работа 1. Типы данных и основные операторы языка C
Более подробно изучить существующие алгоритмические конструкции можно на следущем электронном ресурсе: Основы алгоритмизации [Электронный ресурс]. – Режим доступа:http://teacher.dn-ua.com/CPP/cpp.html – Загл. с экрана.
http://teacher.dn-ua.com/CPP/cpp.html
Все данные, используемые в программе, можно разделить на две группы: константы и переменные. К первой группе относятся данные, не изменяющие своего значения в ходе выполнения программы, данные второй группы могут изменять свое значение.
Как константы, так и переменные могут быть различных типов, которые определяют их структуру, набор допустимых значений, правила использования и способ представления в компьютере. Иерархию типов данных можно представить следующей схемой.
Переменная простого (скалярного) типа в любой момент времени хранит только одно значение. В отличие от простых переменных, переменные составного (структурированного) типа одновременно хранят несколько значений.
Типы данных |
Простые (скалярные) |
Составные (структурированные) |
· целые, · вещественные, · символьные, · указатели, · перечислимый тип. |
· массив, · структура, · объединение. |
Целые и вещественные переменные предназначены для хранения чисел, символьные переменные – это также числовые переменные, они хранят ASCII коды символов.Указатель – это переменная, значением которой является адрес объекта (обычно другой переменной) в памяти компьютера. Таким образом, если одна переменная содержит адрес другой переменной, то говорят, что первая переменная указывает (ссылается) на вторую.
Массив – это группа элементов одинакового типа (double, float, int и т. п.). Из объявления массива компилятор должен получить информацию о типе элементов массива и их количестве.
Структура – это совокупность элементов, объединенных под одним именем. Структура представляет собой составной объект, в который могут входить элементы различных типов. Для каждого элемента выделяется своя область памяти.
Перечислимый тип представляет собой набор целочисленных констант, используемых обычно для организаций разветвлений в программе.
Объединение – это совокупность переменных различных типов, использующих одну и ту же область памяти. Объединение подобно структуре, однако в каждый момент времени объединение может хранить значение только одного из элементов объединения. Хотя доступ к этой области памяти возможен с использованием любого из элементов, элемент для этой цели должен выбираться так, чтобы полученный результат не был бессмысленным.
Объявление переменной имеет следующий формат:
[спецификатор_класса_памяти] спецификатор_типа идентификатор [=инициатор].
Спецификатор класса памяти определяется одним из 4 ключевых слов языка C: auto, extern, register, static и указывает, во-первых, каким образом будет распределяться память под объявляемую переменную и, во-вторых, область видимости этой переменной, т. е. из каких частей программы можно к ней обратиться.
Спецификатор типа - одно или несколько ключевых слов, определяющих тип объявляемой переменной.
Инициатор задает начальное значение или список начальных значений, присваиваемых переменной при объявлении.
Примеры инициализации переменных:
int i=5;
float f=12.35;
charch=’a';
Несколько переменных одного типа:
int k=0, b=5, d=7;
Объекты с типом const представляют собой данные, используемые только для чтения, т. е. этой переменной не может быть присвоено новое значение: например, constint a=5.
Отметим, что если после слова const отсутствует спецификатор типа, то подразумевается спецификатор типа int.
Ключевое слово void означает отсутствие типа.
В следующей таблице систематизированы основные типы данных языка С:
Тип данных |
Размер памяти, бит |
Диапазон значений |
char (символьный) |
8 |
от–128 до 127 |
signedchar(знаковый символьный) |
8 |
от–128 до 127 |
unsignedchar(беззнаковый символьный) |
8 |
от 0 до 255 |
shortint(короткое целое) |
16 |
от–32768 до 32767 |
unsignedint(беззнаковое целое) |
16 |
от 0 до 65535 (16-битная платформа) |
int(целое) |
16 |
от–32768 до 32767 (16-битная платформа) |
long(длинное целое) |
32 |
от–2147483648 до 2147483647 |
unsignedlong(длинное целое без знака) |
32 |
от 0 до 4294967295 |
longlongint (C99) |
64 |
от–(263–1) до 263–1 |
unsignedlonglongint (C99) |
64 |
от 0 до 264–1 |
float (вещественное) |
32 |
от 3.4E–38 до 3.4E38 |
double (двойное вещественное) |
64 |
от 1.7E–308 до 1.7E308 |
longdouble(длинное вещественное) |
80 |
от 3.4E–4932 до 3.4E4932 |
Bool(C99) |
8 |
true(1),false(0) |
К основным операторам языка C можно отнести следующие:
Название |
Обозначение |
Оператор ввода данных |
scanf () |
Оператор вывода данных |
printf () |
Оператор присваивания |
= |
Кроме того, можно выделить следующие группы операторов:
Знак операции |
Операция |
* |
Умножение |
/ |
Деление |
% |
Остаток от деления |
+ |
Сложение |
- |
Вычитание |
abs() |
модуль вещественного числа |
fabs() |
модуль целого числа |
sqrt(x) |
|
pow(x,y) |
xy |
<< |
Сдвиг влево |
>> |
Сдвиг вправо |
< |
Меньше |
<= |
Меньше или равно |
>= |
Больше или равно |
== |
Равно |
!= |
Не равно |
& |
Поразрядное И |
| |
Поразрядное ИЛИ |
^ |
Поразрядное исключающее ИЛИ |
&& |
Логическое И |
|| |
Логическое ИЛИ |
Среда программирования на языке С выглядит следующим образом:
Обратите внимание, что после загрузки главного окна программы, необходимо сначала выбрать команду «Новая программа», после чего в рабочей области у вас появится курсор, и вы сможете набрать текст программы. Для того, чтобы запустить программу необходимо выбрать команду «Запуск и отладка программы».
Задание 1. Составьте программу, позволяющую вычислить следующее выражение: .
Задание 2. Составить программу, которая позволяет определить, является ли данное четырехзначное число палиндромом.
Решение:палиндромом – это симметричное число. Сначала необходимо выделить все цифры четырехзначного числа, а затем проверить равны ли крайние и средние цифры. Целая часть от деления вычисляется в процессе операции деления /, остаток от деления с помощью функции %.
Задание для самостоятельной работы
Вариант 1.
1. Назовите основные свойства алгоритма и покажите, как они согласуются с его определением (2 балла).
2. Что такое транслятор, интерпретатор и компилятор? В чем сходства и отличия, преимущества и недостатки (2 балла)?
3. Составьте программу, позволяющую вычислить следующее выражение: (2 балла).
4. Составить программу, которая позволяет найти сумму четных цифр трехзначного числа (3 баллов).
Вариант 2.
1. Назовите основные типы алгоритмов и приведите их примеры (2 балла).
2. Каким образом задается формат ввода и вывода переменных в языке С (2 балла)?
3. Составьте программу, позволяющую вычислить следующее выражение: (2 балла).
4. Составить программу, которая позволяет найти произведение нечетных цифр трехзначного числа (3 балла).
Вариант 3.
1. Какие наиболее важные требования к алгоритму существуют? Обоснуйте свой выбор. (2 балла).
2. Какие основные файлы следует подключать при программировании на языке С и для чего они необходимы (2 балла)?
3. Составьте программу, позволяющую вычислить следующее выражение: (2 балла).
4. Составить программу, которая позволяет найти сумму цифркратных трем четырехзначного числа (3 балла).
Вариант 4.
1. Что общего и чем отличается графический способ записи алгоритма и запись на псевдокоде? Сравните, выявив достоинства и недостатки (2 балла).
2. Каким образом на языке С можно сократить запись основных арифметических операций (2 балла)?
3. Составьте программу, позволяющую вычислить следующее выражение: (2 балла).
4. Составить программу, которая позволяет найти произведение цифрнекратных трем четырехзначного числа (3 балла).
Вариант 5.
1. Назовите основные свойства алгоритма и покажите, как они согласуются с его определением (2 балла).
2. Что такое транслятор, интерпретатор и компилятор? В чем сходства и отличия, преимущества и недостатки (2 балла)?
3. Составьте программу, позволяющую вычислить следующее выражение: (2 балла).
4. Составить программу, которая позволяет записать четырехзначное число в обратном порядке (3 балла).
Вариант 6.
1. Назовите основные типы алгоритмов и приведите их примеры (2 балла).
2. Каким образом задается формат ввода и вывода переменных в языке С (2 балла)?
3. Составьте программу, позволяющую вычислить следующее выражение: (2 балла).
4. Составить программу, которая позволяет найти произведение цифр четырехзначного числа (3 балла).
Вариант 7.
1. Какие наиболее важные требования к алгоритму существуют? Обоснуйте свой выбор. (2 балла).
2. Какие основные файлы следует подключать при программировании на языке С и для чего они необходимы (2 балла)?
3. Составьте программу, позволяющую вычислить следующее выражение: (2 балла).
4. Составить программу, которая позволяет найти сумму первой и третьей цифры в четырехзначном числе (3 балла).
Вариант 8.
1. Что общего и чем отличается графический способ записи алгоритма и запись на псевдокоде? Сравните, выявив достоинства и недостатки (2 балла).
2. Каким образом на языке С можно сократить запись основных арифметических операций (2 балла)?
3. Составьте программу, позволяющую вычислить следующее выражение: (2 балла).
4. Составить программу, которая позволяет найти вторую цифру в трехзначном числе (3 баллов).
Вариант 9.
1. Назовите основные свойства алгоритма и покажите, как они согласуются с его определением (2 балла).
2. Что такое транслятор, интерпретатор и компилятор? В чем сходства и отличия, преимущества и недостатки (2 балла)?
3. Составьте программу, позволяющую вычислить следующее выражение: (2 балла).
4. Составить программу, которая позволяет записать трехзначное число в обратном порядке (3 балла).
Вариант 10.
1. Что такое линейный алгоритм. Когда возможно его использование? (2 балла).
2. Какие виды целочисленных данных существуют в языке С? (2 балла).
3. Составьте программу, позволяющую вычислить следующее выражение: (2 балла).
4. Составить программу, которая позволяет определить является ли данное трехзначное число палиндромом (3 балла).