Определение функций
Как уже говорилось программа на С++ может состоять из нескольких функций.
Рассмотрим пример такой программы. Дано число N найти сумму делителей (за исключением единицы и самого числа) всех составных чисел от 1 до N включительно.
#include <stdio.h>
#include <iostream.h>
int sum(int);
int delitel(int,int);
void main()
{ int n,s=0;
cin >> n;
for (int i=1;i<=n;i++)
s+=sum(i);
cout << s;
}
int sum(int x)
{int s=0;
for (int i=2;i<x;i++)
if (delitel(x,i)) s+=i;
return s;
}
int delitel(int n,int i)
{ int t=0;
do
{ t+=i;
}
while (t<n);
if (t==n) return 1; else return 0;
}
Жирным шрифтом выделены так называемые прототипы функций. Это короткие описания содержащие имена функций, типы получаемых данных и тип возвращаемого данного. Описывать прототип необходимо только в том случае если функция используется раньше чем описывается как это имеет место в приведённом примере.
Указатели
Указателем в С++ называется специальный тип переменных содержащих не значение, а адрес области памяти в котором хранится значение. Ниже пример программы, в которой объявляется два указателя. Для одного из них выполняется операция инициализации new по которой ему выделяется область памяти. Затем с его помощью создается фактически массив переменных.
#include <iostream.h>
void main()
{ int *t,*u;
t=new int;
u=t;
for (int i=1;i<=10;i++) {*t=i;t++;}
for (i=1;i<=10;i++) {cout << *u << " "; u++;}
}
Примечание. Применение операции ++ к указателю увеличивает адрес в нём содержащийся.
СТРОКИ В С++
В С++ нет специального строкового типа обозначаемого специальным идентификатором. Для этих целей используется указатель на тип char. Ниже приведён пример программы в котором определяется строковая переменная, вводится её значение, затем вычисляется длина и выводится в стандартный поток. Файл прототипов string.h
#include <iostream.h>
#include <string.h>
void main()
{ char *h;
h=new char;
cin >> h;
cout << strlen(h);
}
ГРАФИКА С++
Ниже приведён пример программы в которой рисуется пирамидка из окружностей:
#include <iostream.h>
#include <graphics.h>
void main()
{ int dr=DETECT,md;
initgraph(&dr,&md,"");
for (int i=1;i<=9;i++)
{ setcolor(i);
circle(300,400-i*30,60-i*5);
setfillstyle(1,i);
floodfill(300,400-i*30,i);
}
}
Графические процедуры С++
Initgraph(& int, & int, “”) – Инициализация графического режима
Setcolor(int) – Определение цвета объектов
circle(int, int, int) – Рисование окружности
setfillstyle(int, int) – Определение способа закраски внутренней области контура.
floodfill(int, int, int) – Закраска внутренней области контура.
line(int, int, int, int) – Рисование линии.
cleardevice() – Очистка графического экрана
rectangle(int, int, int, int) – Рисование прямоугольника.
Контрольные вопросы
Что представляет собой процесс решения задачи на ЭВМ?
Что такое программирование и программа?
Какие требования предъявляются к программе и какие у неё свойства?
Что такое язык программирования и какие языки программирования Вы знаете?
Что такое алгоритм и какие он имеет свойства?
Какие алгоритмы Вы знаете?
Что такое исполнители алгоритмов?
Что такое ветвление и цикл? Что такое переменная? Какие бывают типы переменных?
Что такое метод последовательной детализации?
Что такое транслятор, компилятор и интерпретатор?
