- •ОбрабоТка строк Цель работы
- •Порядок написания программы
- •Примеры написания программ
- •1 Вариант решения – обращение к элементу массива идет через имя элемента массива, память выделяется статически, строка вводится без пробелов внутри.
- •2 Вариант решения – обращение к элементу массива идет через адрес элемента массива, память выделяется динамически, строка вводится с пробелами внутри.
- •Контрольные вопросы и задания
- •Задание
- •ОбрабоТка одномерных числовых массивов
- •2 Вариант решения – обращение к элементу массива идет через адрес элемента массива, память выделяется динамически, заполняется массив с клавиатуры.
- •Контрольные вопросы и задания
- •Задание
- •ОбрабоТка двумерных числовых массивов
- •2 Вариант решения – обращение к элементу массива идет через адрес элемента массива, память выделяется динамически, заполняется массив с клавиатуры.
- •Контрольные вопросы и задания
- •Задание
- •Функции с одним результатом Цель работы
- •Порядок написания программы
- •Примеры написания программ
- •Контрольные вопросы и задания
- •Задание
- •Функции с несколькими результатами Цель работы
- •Порядок написания программы
- •Примеры написания программ
- •Контрольные вопросы и задания
- •Задание
- •Функции и строки Цель работы
- •Порядок написания программы
- •Примеры написания программ
- •Контрольные вопросы и задания
- •Задание
- •Функции и одномерные числовые массивы Цель работы
- •Порядок написания программы
- •Примеры написания программ
- •Контрольные вопросы и задания
- •Задание
- •Функции и матрицы Цель работы
- •Порядок написания программы
- •Примеры написания программ
- •Контрольные вопросы и задания
- •Задание
- •Шаблоны функций Цель работы
- •Порядок написания программы
- •Примеры написания программ
- •Контрольные вопросы и задания
- •Задание
Функции с несколькими результатами Цель работы
1. Научиться:
–писать программу, состоящую из нескольких функций;
– правильно оформлять функцию пользователя, используя параметры-ссылки для передачи дополнительных результатов;
– писать прототип функции пользователя;
–вызывать функцию пользователя в функции main;
–размещать текст программы в соответствующих файлах проекта.
2. Составить, выполнить и протестировать указанную задачу с помощью компьютера.
Порядок написания программы
1. Внимательно прочитать условие задачи и формулировку функции.
2. Провести анализ характеристик функции:
Дать название функции;
Выделить список исходных данных функции, определить их типы;
Определить тип результата функции, передаваемого с помощью оператора return.
Определить типы других результатов функции и добавить соответствующие параметры-ссылки.
3. Написать текст функции пользователя.
4. Написать прототип функции.
5. Написать функцию mainс вызовом функции пользователя.
6. Создать проект из двух файлов с расширением cpp(для функции пользователя иmain), и один заголовочный файл с расширениемh. Выполнить проект.
Примечание. Вызов функцииRusперед строками-константами с русским текстом осуществляйте самостоятельно.
Примеры написания программ
Задача. Написать программу с функцией, вычисляющей корни квадратного уравнения.
Анализ решения задачи.
1. Название функции: kvadr
2. Исходные данные (коэффициенты double a,b,c)
3. Результаты:
через return передаем результат типа bool (вычислены ли корни?)
через параметры-ссылки передаем значения корней
double &x1; double &x2;
Программа будет строиться в виде проекта.
Текст функции пользователя будет выглядеть так:
// содержимое файла kvadr.cpp
#include <math.h>
bool kdvadr(double a, double b, double c, double &x1, double &x2)
{
double d;
d = b*b-4*a*c;
if (d>=0)
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
return true;
}
else return false;
}
Текст заголовочного файла будет выглядеть так:
// содержимое файла kvadr.h
#ifndef KVADR_H
#define KVADR_H
bool kdvadr(double a, double b, double c, double &x1, double &x2);
#endif
Текст функции main будет выглядеть так:
// содержимое файла main.cpp
#include<iostream> //подключение системных средств для
using namespace std; //возможности использовать потоки ввода-вывода
#include "kvadr.h"
#include "Rus.h" //прототип функции русификации
int main (void)
{
double a, b, c, x1, x2;
bool result;
cout << "\nВведите коэффициенты" << endl;
cin >> a >> b >> c;
result = kdvadr (a,b,c, x1, x2);
if (result == true)
cout << "\nx1=" << x1 << "\nx2=" << x2 << endl;
else
cout << "\nНет корней" << endl;
return 0;
}
Контрольные вопросы и задания
1. Что такое ссылка?
2. Сколько раз инициализируется ссылка? Чем?
3. Можно ли переназначить ссылку в программе?
4. Когда в функции используется параметр ссылка?
5. Как объявить параметр ссылку?
6. Как написать аргумент, соответствующий параметру ссылке?
7. Объявите ссылку на вещественное число.
8. Присвойте ссылке 3.14.
9.Сравните передачу данных по значению и ссылке (по форме и содержанию).
10. Для наилучшего освоения темы выполните варианты 4, 6, 13.