
5 Основы программирования 2012
.pdf
|
|
|
|
|
21 |
|||||
|
|
Начало |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
Ввод значения переменной начала |
|
|
|
|
|
|
|
|
|
|
|
|
|
Ввод Xn |
|
|
|
|||||
|
|
|
|
|
|
|
интервала с клавиатуры |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ввод значения переменной конца |
|
|
|
|
|
|
|
|
|
|
|
|
|
Ввод Xk |
|
|
|
|||||
|
|
|
|
|
|
|
интервала с клавиатуры |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Расчет значения шага изменения |
|
|
|
|
|
|
|
|
|
|
|
|
|
Hx=(Xk-Xn)/(N-1) |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
аргумента |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Инициализация (установка |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
X=Xn |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
начального значения) аргумента |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i=1,…,N-1 |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
Расчет по выражению текущего |
||
|
|
Y(X)=5.4∙X2+3.2∙X+1 |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
значения элемента массива Y |
|
|
|
|
|
|
|
|
|
|
Вывод на экран рассчитанной точки |
|
|
|
|
|
|
|
|
|
|
|
|
|
X, Y |
|
|
|
|
|
|||
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
Вывод экран текущих значений |
|
|
|
|
|
|
|
|
|
|
|
|
|
X=X+Hx |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
переменных аргумента и функции |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Конец
Рисунок 5.4 – Схема алгоритма решения циклической задачи с циклом for Пример программы на языке программирования С
#include <stdio.h> |
// |
Подключение |
модуля ввода-вывода (printf и scanf) |
||
#include <conio.h> |
// |
Модуль для приостановки закрытия окна (getch) |
|||
const |
int size=10; |
// |
Константа числа расчетных элементов |
||
float |
X, Y; |
// |
независимая |
и зависимая переменные |
|
float |
xn; |
// |
начало интервала расчета аргумента |
||
float |
xk; |
// |
конец интервала расчета аргумента |
||
float |
hx; |
// |
Шаг расчета |
аргумента |
|
int main() |
// |
Заголовок главной функции |
|||
{ printf("\nначало х=");// |
Вывод приглашения для ввода начала интервала |
||||
cin |
>> xn; |
// |
Ввод значения переменной начала расчета |
||
printf("\nконец x="); |
// |
Вывод приглашения для ввода конца интервала |
|||
cin |
>> xk; |
// |
Ввод значения переменной окончания расчетов |
||
hx = (xk-xn)/(size-1); |
// Определение шага изменения аргумента |
||||
X=xn; |
// инициализация первого элемента аргумента |
||||
for |
(int i=0; i<size; |
i++) |
// |
цикл расчета точек функции |
|
{ |
Y=5.4*X*X+3.2*X+1; |
|
|
// |
расчет функции |
|
printf("\n %d X=%5.1f" |
Y=%5.1f",i,X,Y); // вывод на экран |
|||
|
X+=hx; |
|
|
// |
Наращивание аргумента |
} |
|
|
|
// |
конец цикла |
getche(); |
|
|
// |
Приостановка экранного вывода |
|
return 0; |
|
|
// |
код отсутствия ошибки |
|
}//------------ Конец программы |
------------------------------------ |
5.11 Прочие операции языка С++
В таблице приводятся остальные операции языка С++, подробное рассмотрение которых будет приведено в остальных частях пособия.

|
22 |
Таблица 5.17 – Прочие операции языка С++ |
|
|
|
Операция |
Описание |
Операции с указателями
&Операция адресации
*Операция обращения по ссылке
Операции сдвига
<< Сдвиг влево
>> Сдвиг вправо
Поразрядные операции
&Поразрядное И
^ Поразрядное исключающее ИЛИ
\! Поразрядное включающее ИЛИ
Операции с компонентами
::Доступ/разрешение контекста класса
.* Обращение к компоненту структуры, объединения или класса
-> Обращение через указатель к компоненту структуры, объединения или класса
5.12 Общая структура программы языка С и С++
В программах, записанных на языках программирования высоко и среднего уровня, выделяют две области:
1)область описания данных, используемых программой, где описываются константы, типы данных пользователя и переменные, это необходимо для выделения под переменные и константы требуемых объемов ресурсов оперативной памяти;
2)описание вычислительного алгоритма – кодирование алгоритма с помощью
операторов языка программирования (так называемое тело программы или операторная часть).
Си С++ являются не полностью структурируемыми языками. В С и С++
возможно проводить описание переменных внутри тела программ перед их фактическим использованием.
В самом простом случае структура программы на С включает следующие части:
1)список заголовочных файлов, каждый элемент списка начинается с директивы препроцессора #include с именем H-файла;
2)описание глобальных данных программы: констант, структурированных типов и переменных;
3) объявление |
прототипов |
(заголовков) |
дополнительных |
функций |
программиста; |
|
|
|
|
4)описание заголовка главной функции main программы;
5)определение операторной части главной функции программы;
6)если функция main возвращает результат в точку вызова (т.е. объявлена
как int main()), то в конце операторной части вызывается оператор return с кодом успешного завершения программы;
7) описание дополнительных функций, которые в простом случае могут и отсутствовать.
Пример линейной программы для языка С++ расчета выражения.
#include |
<iostream.h> |
// Подключение |
модуля |
потоков |
ввода вывода |
||
#include |
<math.h> |
// Подключение |
модуля |
математических функций |
|||
float alfa, beta, x, y, z; |
// |
Описание глобальных переменных |
|||||
int main() |
|
// |
Объявление заголовка |
главной функции |
{cout << "\nalfa="; // Начало операторной части программы cin >> alfa;
cout << "\nbeta="; cin >> beta;
cout << "\nx="; cin >> x;
cout << "\ny="; cin >> y;
z=fabs(pow(x,3)*sin(alfa)-pow(y,2)*cos(beta));

|
23 |
cout << "\nz=" << z; |
|
return 0; |
// возвращение кода успешного завершения |
} |
// Конец операторной части |
Современные системы |
программирования автоматически генерируют заготовку |
со структурой программы, |
которую следует дополнить программисту своими данными |
и операторами. Пример текста модуля программы с среде C++Builder версии 6.0:
Рисунок 5.5 – Пример заготовки программы в С++Builder