19.04.2019, 00:17 [+3 UTC]
в нашей команде: 3 549 чел. | участники онлайн: 1 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.74 (12.04.2019)
JS-v.1.33 | CSS-v.3.35

Общие новости:
09.03.2019, 10:08

Форум:
16.04.2019, 13:29

Последний вопрос:
18.04.2019, 20:04
Всего: 149313

Последний ответ:
18.04.2019, 21:05
Всего: 258205

Последняя рассылка:
18.04.2019, 17:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
06.04.2012, 17:18 »
Петровский Г И
На счет HP Compaq 630 A6F22EA вы правы как это я его пропустил. [вопрос № 185763, ответ № 270451]
18.05.2011, 15:30 »
Гречко Альберт Алексеевич
Это именно то, что нужно! Спасибо! [вопрос № 183214, ответ № 267212]

РАЗДЕЛ • С / С++

Создание программ на языках C и C++.

[администратор рассылки: Андрей Кузнецов aka Dr_Andrew (Старший модератор)]

Лучшие эксперты в этом разделе

Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 498
Коцюрбенко Алексей Владимирович
Статус: Модератор
Рейтинг: 336
Лысков Игорь Витальевич
Статус: Старший модератор
Рейтинг: 161

Перейти к консультации №:
 

Консультация онлайн # 69432
Раздел: • С / С++
Автор вопроса: Lena_25
Отправлена: 03.01.2007, 18:44
Поступило ответов: 1

Приветик Всем!
не поможете с лабораторной работой?
а то я не могу ничего понять(((((

Приложение:

Состояние: Консультация закрыта

Ответ # 134677 от Терсков Сергей

Здравствуйте, Lena_25!

В принципе, никаких сложностей тут нет…

Пункты операций с файлами я пропущу…

Задание №3. Оно демонстрирует передачу параметров в функцию возможную в C++. В первом варианте:

void change(int *x, int *y)

параметры переданы через указатель, т.е. в функцию передается адрес переменной. Сама функция выполняет перестановку значений у двух переменных. Для того чтобы получить доступ к значениям переменных x и y, разыменовываются указатели на них, т.е. *x и *y.

Второй вариант возможен только в C++. Это передача параметров через ссылку.

void chan(int& x, int& y)

В принципе, в функцию передается тот же адрес переменной, но в отличие от указателя модифицировать этот адрес нам не удастся. При передаче параметров с помощью ссылок мы можем модифицировать только значение переменной находящейся по адресу, хранящемуся в ссылке. Для начала понять это может быть сложно, но, изучая теорию C++, все легко понимается.

Задание №9. Здесь демонстрируется работа с двумерными массивами. Всего в программе используются четыре функции.

1. void inputmas(float m[I][J], char im)

Параметры этой функции:
float m[I][J] – двумерный массив куда нужно ввести данные.
char im – имя массива.

В этой функции в цикле выполняется ввод в массив при помощи стандартного потока ввода cin.

2. void raschet (float x[I][J], float *sred, float *min)

Параметры этой функции:
float x[I][J] - двумерный массив для нахождения в нем среднеарифметического всех положительных элементов и минимального элемента.
float *sred – указатель на переменную куда будет передаваться среднеарифметическое положительных элементов двумерного массива.
float *min - указатель на переменную куда будет передаваться минимальный элемент массива.

В этой функции основой является двойной вложенный цикл. В этом цикле с помощью двух условий мы находим оба интересующих нас значения. Для среднеарифметического это:

if ( x[i][j] > 0 ) {
sum += x[i][j];
kol ++;
}

Т.е. если текущий элемент положительный, то прибавляем его к общей сумме положительный элементов и количество их увеличиваем на 1. После прохождения цикла, выполняем операцию деления и записываем результат в переменную sred.

*sred = sum / kol;

Для минимального элемента, в самом начале принимаем за него самый первый элемент массива.

*min = x[0][0];

В цикле сравниваем его с текущим и, если он меньше, принимаем его за минимальный.

if ( x[i][j] < *min )
*min = x [i][j];

Таким образом, в конце функции получается, что значение переменной min это и есть минимальный элемент массива.

3. void printmas(float x[I][J], char immas)

Параметры этой функции:
float x[I][J] – двумерный массив для вывода.
char immas – имя массива.

Здесь в цикле выводятся значения массива x[I][J] при помощи стандартного потока вывода cout. Для cout мы задаем некоторые параметры, например фиксированную ширину и вывод двух точек после запятой.

4. void printrez(float x[I][J], char immas, float sred, float min)

Параметры этой функции:
float x[I][J] – двумерный массив куда нужно ввести данные.
char immas – имя массива.
float sred – среднеарифметическое значение положительных элементов массива
float min – минимальный элемент массива.

В функции main задаются два двумерных массива и с помощью описанных выше функций вводятся данные в них, выполняется расчет нужных значений и выводится конечный результат.

Задание №12. Текст измененной функции приведен. Так что единственная задача - поменять вызов функции в main.

raschet(c, sredc, minc);
raschet(d, sredd, mind);

Задание №16. Необходимо немного поменять функцию raschet. Например вот так:

void raschet (float x[I][J], float &sum, float &kol, float &min) { //меняем список параметров

// объявление переменных
int i,j;
sum=0.0; // для расчета суммы отрицательных эл-тов
kol = 0; // для расчета количества отрицательных эл-тов

min = x[0][0]; // первоначально в качестве минимального
// принимаем элемент x[0][0], его значение
// заносим по адресу, хранящемуся в min

for (i=0; i<I; i++)
for ( j=0; j < J; j++) {

if (x[i][j] < min )
min = x [i][j];

if (x[i][j] < 0)
sum += x[i][j]; //считаем сумму отрицательных элементов

if(x[i][j] >=-5 && x[i][j] <=5)
kol ++; //кол-во элементов в интервале -5; 5
}

}

Вот собственно и все…


Консультировал: Терсков Сергей
Дата отправки: 04.01.2007, 03:56

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.14607 сек.

© 2001-2019, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.74 от 12.04.2019
Версия JS: 1.33 | Версия CSS: 3.35