Форум программистов, компьютерный форум CyberForum.ru

Функции и массивы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить количество различных чисел в матрице http://www.cyberforum.ru/cpp-beginners/thread190312.html
Доброго времени суток!! Определить количество различных чисел в целой матрице mхn. Спасибо.
C++ с кодом С++ проблемы...пожалуйста... Вот задачи, помогите чем можете)) Написать процедуру обмена столбца и строки двухмерного массива. С ее помощью поменять местами те строки и столбцы, первые элементы которых совпадают. Написать перегруженные функции и основную программу, которая их вызывает. а) для деления целых чисел; б) для деления комплексных чисел. http://www.cyberforum.ru/cpp-beginners/thread190301.html
Как открыть файл для чтения в БИНАРНОМ режиме? C++
Друзья! Файл, который надо открыть БИНАРНЫЙ, в нём два байта. Содержание файла 33 20 00 00 имя "input" Вот по логике вещей пра должна его в бинарном режиме открыть и число 33 20 записать в переме6нную x Как она это число будет трактовать- дело второе уже. НУ раз это число типа int и учитывая, что 33 и 20 это шестнадцатеричные числа, тогда наверное число будет 00002033h или по-простому...
C++ MPI_Recv
Добрый день! Я с таким заданием: нужно написать небольшой, простенький пример, демонстрирующий, как работает функция MPI_Recv. Подскажите, пожалуйста, какой можно привести пример, и в чём он может заключаться. Заранее спасибо за советы.
C++ Строка http://www.cyberforum.ru/cpp-beginners/thread190275.html
Спасите.... Написать нужно... Преобразовать строку так, чтобы все буквы в ней были отсортированы по возрастанию.
C++ Двумерный массив Помогите пожалуйста с С++.... Написать процедуру обмена столбца и строки двухмерного массива. С ее помощью поменять местами те строки и столбцы, первые элементы которых совпадают. Листинг... подробнее

Показать сообщение отдельно
Alexandr93
2 / 2 / 0
Регистрация: 09.11.2010
Сообщений: 65

Функции и массивы - C++

13.11.2010, 00:18. Просмотров 2066. Ответов 0
Метки (Все метки)

Помогите пожалуйста...


Лабораторная работа №5
"Функции и массивы"
Цель : Организовать обработку массивов с использованием функций, научиться передавать массивы как параметры функций.
1. Краткие теоретические сведения
1.1. Функции
Функцию в Си можно рассматривать:
• как один из производных типов данных (наряду с массивами и указателями);
• как минимальный исполняемый модуль программы (подпрограмму).
Все функции имеют единый формат определения:
<тип><имя_функции>(<список_формальных_параметров>) , где
<тело_функции> , где
<тип> - либо void, если функция не возвращает значения, либо тип возвращаемого функцией значения;
<имя_функции> - либо main для основной функции, либо произвольный идентификатор, не совпадающий со служебными словами и именами других объектов программы;
<список_формальных_параметров> - либо пустой ( ), либо список, каждый элемент которого имеет вид:
<обозначение_типа><имя_параметра>
Например:
(int k )
(char i, char j, int z)
<тело_функции> - это часть определения функции, заключенная в фигурные скобки { }.Тело функции может быть либо составным оператором, либо блоком. Определения функций не могут быть вложенными.
Для передачи результата из функции в вызывающую функцию используется оператор return. Он может использоваться в двух формах:
1 return; - завершает функцию гн возвращающую никакого значения (т. е. перед именем функции указан тип void)
2 return <выражение>; - возвращает значение выражения, выражение должно иметь тип, указанный перед именем функции.
Если программист не пишет оператор return явно, то компилятор автоматически дописывает return в конец тела функции перед закрывающей фигурной скобкой}.
Пример:
C++
1
2
3
4
5
6
7
8
9
10
11
int op (char c, int x, int  y)
{
switch c
{ 
case+: return x+y;
case-: return x-y;
case*: return x*y;
case/: return x/y;
default: cout<<“\nОперация не определена”;return 0;
}
}
Вызов функции осуществляется следующим образом:
<обозначение функции>(<список фактических параметров>); где
<обозначение функции> - либо имя функции, либо указатель на функцию;
<список фактических параметров> - список выражений, количество которых равно числу формальных параметров функции. Между формальными и фактическими параметрами должно быть соответствие по типам.
Например:
c = op ( ‘+’, 5 ,4 );
Синтаксис Си предусматривает только один способ передачи параметров - передача по значению (т. е. изменить значения параметров внутри функции нельзя). Но существует возможность косвенно изменить значения переменных передаваемых в виде параметров: с помощью указателя в вызываемую функцию можно передать адрес любого объекта из вызывающей программы. Если указатель разыменовать, то получится значение, записанное по этому адресу.
Пример:
1)
C++
1
2
3
4
5
6
7
8
//описание функции для обмена переменных а и b
void change (int a,int b)
{
int r;
r = a; a = b; b = r;
}
// вызов функции
change(a, b);
Обмена не произойдет, т. к. результат не будет передан в вызывающую программу.
2)
C++
1
2
3
4
5
6
7
void change (int *a,int *b)
{
int r;
r = *a; *a = *b; *b = r;
}
// вызов функции
change(&a, &b);
При вызове передаются адреса, по которым находятся значения и выполняется обмен значений, которые находятся по этим адресам.
1.2. Массивы и строки как параметры функций
Если в качестве параметра функции используется обозначение массива, то на самом деле в функцию передается адрес первого элемента массива.
Пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//вычисление суммы элементов массива
//вариант 1
int sum (int n, int a[] )
{
int i,int s=0;
for( i=0; i<n; i++ )
s+=a[i]
return s;
}
void main()
{
int a[]={ 3, 5, 7, 9, 11, 13, 15 };
int s = sum( 7, a );
cout<<s;
}
//вариант 2
int sum (int n, int *a)
{
for(int i=0, s=0; i<n; s+=*(a+i),i++ );
return s;
}
void main()
{
int a[]={ 3, 5, 7, 9, 11, 13, 15 };
 int s = sum( 7, a );
cout<<s;
}
Строки в качестве фактических параметров могут быть определены либо как одномерные массивы типа char[], либо как указатели типа char*. В отличие от обычных массивов в этом случае нет необходимости явно указывать длину строки.

2. Постановка задачи
Используя функции, решить указанную в варианте задачу. Массив должен передаваться в функцию как параметр.

3. Варианты
7.Написать процедуру обмена столбца и строки двухмерного массива. С ее помощью поменять местами те строки и столбцы, первые элементы которых совпадают.
4. Содержание отчета
1. Постановка задачи.
2. Вариант задания
3. Текст программы.
4. Результат решения конкретного варианта.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru