Вызов функции состоит из идентификатора функции и списка аргументов в круглых скобках. summ(x1,x2):
- Определение и вызов функций. Передача массивов и указателей на функции.
Для того, чтобы передать указатель в качестве аргумента, нужно объявить параметр типа указателя. Void fun(int *t) допустим в мэйн объявлены int a; a=6; int *p; p=&a; fun(p) // передаем в функцию фан указатель и она что-то там делает. А можно передать непосредственно адрес переменной а fun(&a) как-то так работаем с указателем.
Массивы нельзя передавать в функции, можно только передать указатель на первый элемент массива и работать с ним. Существует три варианта:
1.void displ(int num[10])// функция в, которую передаем массив. В майн допустим объявлен массив int t[10]; displ(t);// вызвали и передали. Несмотря на то, что параметр num объявлен как массив из 10 элементов, компилятор с++ как-то преобразует его в указатель на int, в функцию диспл передается указатель на первый элемент
2. можно задать параметр в виде массива неопределенной длины void displ(int num[]) (С++ похер выйдешь ты за рамки массива или нет), но и в этом случаи компилятор преобразует параметр в указатель на int.
3. 3им способом можно забабахать параметр в виде указателя. Void displ(int *num) и уже в майн вызываем диспл так displ(num).
Нужно помнить, что когда массив используется в качестве аргумента функции, в функцию передается его адрес, и когда мы будем как-то работать с ним, то мы будем воздействовать на содержимое массива.
- Бинарный поиск в упорядоченном массиве.
Пусть есть упорядоченный по возрастанию массив целых чисел. Нужно определить, содержит ли этот массив некоторое число (образец).
Метод (алгоритм) бинарного поиска реализуется следующим образом:
1. Сначала образец сравнивается со средним (по номеру) элементом массива (рис. 5.10, а).
- Если образец равен среднему элементу, то задача решена.
- Если образец больше среднего элемента, то это значит, что искомый элемент расположен ниже среднего элемента (между элементами с номерами sred+1 и niz), и за новое значение verb принимается sred+i, а значение niz не меняется (рис. 5.10, б).
- Если образец меньше среднего элемента, то это значит, что искомый элемент расположен выше среднего элемента (между элементами с номерами verh и sred-1), и за новое значение niz принимается sred-1, а значение verh не меняется (рис. 5.10, в).
а
b
c
- Сортировка массива на примере одного из алгоритмов.
Здесь я так понимаю можно рассказать про сортировку по порядку, ну хули ниже код, компилируем и разбираемся что да как.
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void main()
{
int k; // koli4estvo chifr
int a[100]; //massiv
int i; // indeks massiva
int p;
int min=a[0]; //min zna4
int max=a[0]; //max zna4
int t;
clrscr();
printf("\n vvedite kolichestvo chifr v massive \n");
scanf("%d", &k);
printf("vvedite chisla massiva \n");
for(i=0; i<k; i++)
{
scanf("%d", &a[i]);
}
printf(" massiv: ");
for(i=0;i<k;++i)
{
printf("%d,", a[i]);
}
printf("\nchisla massiva poporyadku: ");
for(i=0;i<k;i++)
for(p=1;p<k;p++)
if(a[p-1]>a[p])
{
t=a[p-1];
a[p-1]=a[p];
a[p]=t;
}
for(t=0;t<k;t++)
{
printf("%d,",a[t]);
}
getch();
}
- Связанные списки: описание структуры, добавление и удаление элементов в односвязный линейный список.
- Виды линейных списков: стек, очередь, дек.
- Описание структуры на языке C++. Определение переменных структурного типа. Способы доступа к элементам структур.
- Описание объединения на языке C++. Определение переменных типа «объединение». Способы доступа к элементам объединений.
- Сущность методологии объектно-ориентированного программирования. Инкапсуляция. Наследование. Полиморфизм.
- Определение класса на языке C++. Ограничение доступа к членам класса.
- Дружественные функции класса.
- Определение конструктора. Форматы вызова конструктора. Перегрузка конструкторов.
- Наследование. Определение базового и производного классов.
- Полиморфизм. Виртуальные функции.
- Динамическое распределение памяти под объекты. Операторы new и delete.
- Шаблоны классов.
- Шаблоны функций.
- Понятие потока в языке C++. Стандартные потоки.
- Жизненный цикл программного продукта.
- Основные процессы жизненного цикла.
- Разновидности процесса разработки ПО.
- Стадии разработки ПО
- Действия при разработке ТЗ