В информатике выделяются два направления – теоретическое и прикладное. Исследования в области теоретической информатики обеспечивают выявление и формулировку общих законов, касающихся информации и информационных процессов; определение принципов функционирования технических систем, связанных с информационными процессами и обработкой дискретной информации, а также построение методологии создания и применения информационных моделей. Прикладная информатика обеспечивает непосредственное создание информационных систем и программного обеспечения для них, а также их применение для решения практических задач.
В данных методических указаниях рассматриваются теоретические основы дисциплины «Информатика».
Теоретическая информатика – дисциплина, использующая методы математики. Поскольку любая информация может быть представлена в дискретном виде, для описания информационных процессов может быть применен аппарат дискретной математики, в частности, теория автоматов и алгоритмов, теория графов, теория формальных языков и грамматик, алгебра логики, теория информации и др.
Вся информация, которая попадает в компьютер, преобразуется в последовательность электрических импульсов. Наличие импульса принято условно обозначать «1», а его отсутствие – «0». Такой кодирования информации называется двоичным, или бинарным. Один двоичный символ получил название бит (bit – от английского – двоичная цифра). Таким образом, двоичное кодирование – это представление информации при минимально возможного числа элементарных символов. Двоичное кодирование автоматически дает кодирования информации любого вида (числовой, символьной, логической, графической, звуковой) в двоичной системе счисления.
1. ПРЕДСТАВЛЕНИЕ ЧИСЛОВОЙ ИНФОРМАЦИИ
Существует два основных формата представления чисел в памяти компьютера, один из них применяется для кодирования целых чисел (представление числа в формате с фиксированной точкой), второй – для задания некоторого подмножества действительных чисел (представление числа в формате с плавающей точкой). Рассмотрим каждый из форматов подробнее.
1.1. Представление целых чисел
Любое целое число можно рассматривать как вещественное, но с нулевой дробной частью, т. е. можно было бы ограничиться представлением в компьютере вещественных чисел и реализацией арифметических операций над ними, однако для эффективного использования памяти ЭВМ, повышения скорости выполнения вычислений и введения операции целочисленного деления целые числа представляются специально для них предназначенными
Для компьютерного представления целых чисел обычно применяются несколько различных отличающихся друг от друга количеством двоичных разрядов и наличием или отсутствием знакового разряда.
Целые числа в компьютере хранятся в памяти в формате с фиксированной запятой. В этом случае каждому разряду ячейки памяти соответствует всегда один и тот же разряд, а «запятая» «находится» справа после младшего разряда, т. е. вне разрядной сетки.
1.1.1. Целые числа без знака
Рассмотрим кодирование целых чисел без знака на примере данных типа byteв языкеBasicиunsigned charв языкеС++, занимающих в памяти один байт.
Для получения компьютерного (внутреннего) представления однобайтового целого неотрицательного числа достаточно перевести его в двоичную систему счисления и полученный результат, называемый прямым кодом числа, дополнить слева нулями до восьми битов.
Минимальное число представляется нулями во всех разрядах и равно нулю. Максимально представимому числу соответствуют единицы во всех разрядах ячейки (двоичное число, состоящее из восьми единиц), оно равно 255 (). Примеры кодирования однобайтовых целых чисел без знака приведены в табл. 1.
Однобайтовые целые неотрицательные числа могут применяться, например, для организации различных счетчиков, записи адресов ячеек, даты и времени, размеров графических изображений в пикселях.
Для улучшения читаемости внутреннего представления числа его записывают в шестнадцатеричной системе счисления.
В информатике выделяются два направления – теоретическое и прикладное. Исследования в области теоретической информатики обеспечивают выявление и формулировку общих законов, касающихся информации и информационных процессов; определение принципов функционирования технических систем, связанных с информационными процессами и обработкой дискретной информации, а также построение методологии создания и применения информационных моделей. Прикладная информатика обеспечивает непосредственное создание информационных систем и программного обеспечения для них, а также их применение для решения практических задач.
В данных методических указаниях рассматриваются теоретические основы дисциплины «Информатика».
Теоретическая информатика – дисциплина, использующая методы математики. Поскольку любая информация может быть представлена в дискретном виде, для описания информационных процессов может быть применен аппарат дискретной математики, в частности, теория автоматов и алгоритмов, теория графов, теория формальных языков и грамматик, алгебра логики, теория информации и др.
Вся информация, которая попадает в компьютер, преобразуется в последовательность электрических импульсов. Наличие импульса принято условно обозначать «1», а его отсутствие – «0». Такой кодирования информации называется двоичным, или бинарным. Один двоичный символ получил название бит (bit – от английского – двоичная цифра). Таким образом, двоичное кодирование – это представление информации при минимально возможного числа элементарных символов. Двоичное кодирование автоматически дает кодирования информации любого вида (числовой, символьной, логической, графической, звуковой) в двоичной системе счисления.
1. ПРЕДСТАВЛЕНИЕ ЧИСЛОВОЙ ИНФОРМАЦИИ
Существует два основных формата представления чисел в памяти компьютера, один из них применяется для кодирования целых чисел (представление числа в формате с фиксированной точкой), второй – для задания некоторого подмножества действительных чисел (представление числа в формате с плавающей точкой). Рассмотрим каждый из форматов подробнее.
1.1. Представление целых чисел
Любое целое число можно рассматривать как вещественное, но с нулевой дробной частью, т. е. можно было бы ограничиться представлением в компьютере вещественных чисел и реализацией арифметических операций над ними, однако для эффективного использования памяти ЭВМ, повышения скорости выполнения вычислений и введения операции целочисленного деления целые числа представляются специально для них предназначенными
Для компьютерного представления целых чисел обычно применяются несколько различных отличающихся друг от друга количеством двоичных разрядов и наличием или отсутствием знакового разряда.
Целые числа в компьютере хранятся в памяти в формате с фиксированной запятой. В этом случае каждому разряду ячейки памяти соответствует всегда один и тот же разряд, а «запятая» «находится» справа после младшего разряда, т. е. вне разрядной сетки.
1.1.1. Целые числа без знака
Рассмотрим кодирование целых чисел без знака на примере данных типа byteв языкеBasicиunsigned charв языкеС++, занимающих в памяти один байт.
Для получения компьютерного (внутреннего) представления однобайтового целого неотрицательного числа достаточно перевести его в двоичную систему счисления и полученный результат, называемый прямым кодом числа, дополнить слева нулями до восьми битов.
Минимальное число представляется нулями во всех разрядах и равно нулю. Максимально представимому числу соответствуют единицы во всех разрядах ячейки (двоичное число, состоящее из восьми единиц), оно равно 255 (). Примеры кодирования однобайтовых целых чисел без знака приведены в табл. 1.
Однобайтовые целые неотрицательные числа могут применяться, например, для организации различных счетчиков, записи адресов ячеек, даты и времени, размеров графических изображений в пикселях.
Для улучшения читаемости внутреннего представления числа его записывают в шестнадцатеричной системе счисления.
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double x1, y1, x2, y2, x3, y3, a, b, c;
cout << 'Введите координаты точек треугольника: ';
cin >> x1;
cin >> y1;
cin >> x2;
cin >> y2;
cin >> x3;
cin >> y3;
a = sqrt(pow((x2 - x1), 2) + pow((y2 - y1), 2));
b = sqrt(pow((x3 - x2), 2) + pow((y3 - y2), 2));
c = sqrt(pow((x1 - x3), 2) + pow((y1 - y3), 2));
if (a = b = c) {
cout << "Данный треугольник - равносторонний\n";
}
else if (a == b || b == c || a == c ) {
cout << "Данный треугольник - равнобедренный\n";
}
else if (a != b && b != c && a != c) {
cout << "Данный треугольник - разносторонний\n";
}
if (c > a && c > b) {
if (c*c == a*a + b*b) {
cout << "Данный треугольник - прямоугольный";
}
else if (c*c < a*a + b*b) {
cout << "Данный треугольник - остроугольный";
}
else {
cout << "Данный треугольник - тупоугольный";
}
}
else if (a > b && a > c) {
if (a*a == b*b + c*c) {
cout << "Данный треугольник - прямоугольный";
}
else if (a*a < b*b + c*c) {
cout << "Данный треугольник - остроугольный";
}
else {
cout << "Данный треугольник - тупоугольный";
}
}
else {
if (b*b == a*a + c*c) {
cout << "Данный треугольник - прямоугольный";
}
else if (b*b < a*a + c*c) {
cout << "Данный треугольник - остроугольный";
}
else {
cout << "Данный треугольник - тупоугольный";
}
}
}