
- •210700 Инфокоммуникационные технологии и системы связи
- •220700 Автоматизация технологических процессов и производств
- •230400 Информационные системы и технологии
- •1. Цели и задачи дисциплины
- •2. Место дисциплины в структуре основной образовательной программы
- •3. Требования к уровню освоения содержания дисциплины
- •Для специальности 210700 Инфокоммуникационные технологии и системы связи
- •4. Объем дисциплины и виды учебной работы
- •5. Содержание дисциплины
- •Для специальности 210700 Инфокоммуникационные технологии и системы связи
- •6. Лабораторный практикум
- •7. Библиографический список
- •8. Материально-техническое обеспечение дисциплины
- •9. Опорный конспект
- •1. Основы алгоритмизации
- •1.1 Этапы решения задач на эвм.
- •1.2. Алгоритм. Свойства алгоритмов
- •1.3. Формы представления алгоритмов
- •1.4. Алгоритмическая конструкция ветвления
- •1.5. Алгоритмическая конструкция цикла
- •2.1. Разработка консольного проекта
- •2.3. Комментарий
- •2.4. Организация ввода и вывода информации
- •Вывод данных
- •Ввод данных
- •2.5. Разработка проекта типа Windows Forms Application
- •3. Основные элементы языка
- •3.1. Алфавит
- •3.2. Идентификаторы
- •3.3. Переменные и константы
- •3.4. Символьные типы данных
- •3.5. Данные типа int
- •3.6. Данные с плавающей точкой
- •3.7. Логический тип данных
- •3.8. Операции и выражения
- •Арифметические операции
- •Операции инкремента и декремента
- •Операции отношения и логические операции
- •Оператор присваивания
- •Составные операторы присваивания
- •Оператор условия ? :
- •Операция sizeof
- •4. Программирование разветвляющих и циклических алгоритмов
- •4.1. Общие сведения
- •4.2. Оператор if
- •4.3. Оператор switch
- •4.4. Оператор цикла for
- •4.5. Оператор цикла while
- •4.6. Оператор цикла do while
- •4.7. Применение оператора continue
- •4.8. Оператор goto
- •5. Массивы и строки
- •5.1. Массивы
- •5.2. Строки
- •6. Функции
- •6.1. Общие сведения
- •6.2. Описание функции и ее тип
- •6.3. Вызов функции
- •6.4. Область действия переменной
- •6.5. Классы памяти
- •Глоссарий
- •10. Задания на лабораторные работы и методические указания к их выполнению
- •11. Задания на контрольную работу и методические указания к их выполнению
- •Оглавление
6.3. Вызов функции
Для выполнения функции к ней нужно обратиться.
Форма обращения к функции (вызов для выполнения):
имя_функции (список фактических параметров);
Список фактических параметров, называемых аргументами, - это список выражений, количество которых равно числу формальных параметров функции.
При указании фактических аргументов тип данных не указывается. Если фактических аргументов несколько, то они разделяются запятыми.
Между формальными и фактическими аргументами должно соблюдаться взаимооднозначное соответствие по порядку следования и типу.
Примеры вызова функции step:
…
float y;
…
// результат работы функции присваивается переменной y
y = step (3.5, 3);
// использование вызова функции в выражениях
Console::WriteLine(“ 2 в степени 5 = “ + step(2,5)+ “\n”);
y = 100/2+step(4.0, 3);
Пример 6_1. Использование функции, вычисляющей сумму 2-х чисел a и b, причем одно число целое, а второе – вещественное.
#include "stdafx.h"
using namespace System;
float schet ( float, int); // прототип функции
int main()
{ float sum,a;
int b;
a = 20.8;
b = 25;
sum = schet (a, b); // вызов на выполнение функции schet
// a, b – фактические параметры, передаваемые в функцию
// результат работы функции будет присвоен
// переменной sum
Console::WriteLine("a = " + a + " b = " + b + " sum = " + sum);
Console::WriteLine("Сумма 10.5 + 23 = " + schet(10.5, 23));
Console::ReadLine();
return 0;
}
// определение функции schet
// данная функция возвращает значение типа float
// (поэтому тип float указан перед именем функции)
// в функцию передаются 2 параметра (1-й типа float, 2-й - типа int)
float schet ( float c, int d)
{
// c, d - имена формальных параметров
// c - получит значение фактического параметра a
// d - получит значение фактического параметра b
// (могут быть любые имена - важен тип параметров
// и порядок следования)
float s;
s = c + d;
return ( s ); // передача значения в точку вызова
}
Результат работы со строками:
a = 20,8 b=25 sum =45,8
Сумма 10.5 + 23 = 33,5
Пример 6_2. Демонстрация использования функций для ввода целочисленного массива m из 7 элементов, вычисления суммы всех элементов массива и вывода на экран исходный массив и результат расчета (данное условие использовалось ранее при рассмотрении одномерных массивов).
Теперь программа будет состоять из:
- функции ввода данных с клавиатуры (метод будет иметь имя input);
- функции расчета суммы (метод будет иметь имя raschet);
- функции вывода исходного массива и результата расчета (метод будет иметь имя output).
(имена функциям программист выбирает самостоятельно, но рекомендуется имена выбирать согласно назначению метода)
#include "stdafx.h"
using namespace System;
void input(int [7], wchar_t);
int raschet(int [7]);
void output (int [7], wchar_t, int );
int main()
{
int m[7];
int sum;
input(m, L'm');
sum = raschet(m);
output(m, L'm', sum);
Console::ReadLine();
return 0;
}
// определение функции ввода данных в массив
void input(int a[7], wchar_t name)
{
int i;
Console::WriteLine("Вводим данные в массив {0}:", name);
for (i = 0; i < 7; i++)
{
Console::Write("{0}[{1}]=",name, i);
a[i] = Convert::ToInt32(Console::ReadLine());
}
}
// определение функции расчета суммы
int raschet(int a[7])
{
int i, s;
// расчет суммы всех элементов
s = 0;
for (i = 0; i < 7; i++)
s += a[i];
return s;
}
// определение функции вывода на экран
void output (int a[7], wchar_t name, int s)
{
int i;
//вывод исходного массива и результата
Console::WriteLine("\n\nИсходный массив {0}", name);
for (i = 0; i < 7; i++)
Console::Write("{0,6}", a[i]);
Console::WriteLine("\nСумма элементов равна " + s);
}
Результаты работы программы:
m[0] = 100
m[1] = 1
m[2] = 2
m[3] = 3
m[4] = 10
m[5] = 20
m[6] = 300
<здесь одна пустая строка>
Исходный массив m
100 1 2 3 10 20 300
Сумма элементов равна 436