- •Вопросы по программированию
- •Понятие алгоритма и его свойства
- •2. Понятие «язык программирования».
- •2.1. Классификация и обзор языков программирования.
- •2.3 Система программирования
- •3. Что включает в себя постановка задачи?
- •Что такое спецификация программы??
- •5. Примеры спецификаций (например, для метода сортировки массива в возрастающем порядке
- •Понятие Инварианта. Инвариант цикла.
- •Что такое защитное программирование? Перечислите пути реализации защитного программирования.
- •В чем заключаются принципы защитного программирования?
- •Методологии программирования.
- •5. Функциональное программирование.
- •Модульное программирование: основные понятия.
- •Структурное программирование: основные понятия.
- •. Тестирование программ. Восходящее и нисходящее тестирование.
- •Структура программы на языке с. Арифметические операции. Основные алгоритмические структуры.
- •Типы данных, диапазоны значений
- •Представление числовой информации в компьютере.
- •Рекуррентные соотношения (например, вычисление чисел Фиббоначи и др.)
Структура программы на языке с. Арифметические операции. Основные алгоритмические структуры.
Структура программы на языке С++
Любая программа на языке С++ представляет собой одну или несколько функций. В любой программе обязательно должна быть одна функций main(). C этой функции начинается выполнение программы. Правилом хорошего тона в программировании является разбиение задачи на подзадачи, и в главной функции чаще всего должны быть операторы вызова других функций. Общую структуру любой программы на языке Си можно записать следующим образом.
Объявление глобальных переменных
Тип_ результата main(Список_переменных)
{
Операторы
}
Тип_результата f1(Список_переменных)
{
Операторы
}
Тип_результата f2(Список_переменных)
{
Операторы
}
...
Тип_результата fn(Список_переменных)
{
Операторы
}
Здесь Тип_результата - тип возвращаемого функцией значения.
В простейшем случае программа на языке Си состоит из одной функции main, в этом случае структура программы будет такой.
int main()
{
Операторы
}
В табл. 2.4 приведены арифметические операции С. Операции +, —, * и / работают так же, как и в большинстве других языков программирования. Их можно применять почти ко всем встроенным типам данных. Если операция / применяется к целому или символьному типам, то остаток от деления отбрасывается. Например, результатом операции 5/2 является 2.
Таблица 2.4. Арифметические операции Оператор Операция
- Вычитание, так же унарный минус
+ Сложение
Умножение
/ Деление
% Остаток от деления
– Декремент7), или уменьшение
++ Инкремент8), или увеличение
Оператор деления по модулю % в С работает так же, как и в других языках, его результатом является остаток от целочисленного деления. Этот оператор, однако, нельзя применять к типам данных с плавающей точкой. Применение оператора % иллюстрируется следующим примером:
int x, y;
x = 5;
y = 2;
printf("%d ", x/y); /* напечатает 2 */
printf("%d ", x%y); /* напечатает 1, остаток от целочисленного деления */
x = 1;
y = 2;
printf("%d %d", x/y, x%y); /* напечатает 0 1 */
Последняя строка программы напечатает 0 1потому, что при целочисленном делении остаток отбрасывается и здесь результат будет 0, а сам остаток равен 1.
Унарный минус умножает операнд на -1, то есть меняет его знак на противоположный.
// нету основные алгоритмические структуры
Типы данных, диапазоны значений
1. Базовые типы данных
Стандарт С89 определяет пять фундаментальных типов данных: char — символьные данные, int — целые, float — с плавающей точкой, double — двойной точности, void — без значения. На основе этих типов формируются другие типы данных. Размер (объем занимаемой памяти) и диапазон значений этих типов данных для разных процессоров и компиляторов могут быть разными. Однако объект типа char всегда занимает 1 байт. Размер объекта int обычно совпадает с размером слова в конкретной среде программирования. В большинстве случаев в 16-разрядной среде (DOS или Windows 4.1) int занимает 16 битов, а в 32-разрядной (Windows 95/98/NT/2000) — 32 бита. Однако полностью полагаться на это нельзя, особенно при переносе программы в другую среду. Необходимо помнить, что стандарт С обусловливает только минимальный диапазон значений каждого типа данных, но не размер в байтах.
Конкретный формат числа с плавающей точкой зависит от его реализации в трансляторе. Переменные типа char обычно используются для обозначения набора символов стандарта ASCII, символы, не входящие в этот набор, разными компиляторами обрабатываются по-разному.
Диапазон значений типов float и double зависит от формата представления чисел с плавающей точкой. Стандарт С определяет для чисел с плавающей точкой минимальный диапазон значений от 1Е-37 до 1Е+37. Минимальное количество цифр мантиссы для типов с плавающей точкой приведено в табл.
Тип |
Типичный размер в битах |
Минимально допустимый диапозон значений |
char |
8 |
от -127 до 127 |
unsigned char |
8 |
от 0 до 255 |
signed char |
8 |
от -127 до 127 |
int |
16 или 32 |
от -32767 до 32767 |
unsigned int |
16 или 32 |
от 0 до 65535 |
signed int |
16 или 32 |
то же, что int |
short int |
16 |
от -32767 до 32767 |
unsigned short int |
16 |
от 0 до 65535 |
signed short int |
16 |
то же, что short int |
long int |
32 |
от -2 147 483 647 до 2 147 483 647 |
long long int |
64 |
от -(263-1) до (263-1), добавлен стандартом C99 |
signed long int |
32 |
то же, что long int |
unsigned long int |
32 |
от 0 до 4 294 967 295 |
unsigned long long int |
64 |
от 0 до (264-1), добавлен в C99 |
float |
32 |
от 1E-37 до 1E+37, с точностью не менее 6 значащих десятичных цифр |
double |
64 |
от 1E-37 до 1E+37, с точностью не менее 10 значащих десятичных цифр |
long double |
80 |
от 1E-37 до 1E+37, с точностью не менее 10 значащих десятичных цифр |
Тип void служит для объявления функции, не возвращающей значения, или для создания универсального указателя.
