20.07.2019, 13:27 [+3 UTC]
в нашей команде: 3 752 чел. | участники онлайн: 5 (рекорд: 21)

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

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

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.77 (31.05.2019)
JS-v.1.34 | CSS-v.3.35

Общие новости:
28.04.2019, 09:13

Форум:
18.07.2019, 12:26

Последний вопрос:
19.07.2019, 18:28
Всего: 149944

Последний ответ:
20.07.2019, 11:18
Всего: 258712

Последняя рассылка:
20.07.2019, 05:15

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

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

Наша кнопка:

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

Отзывы о нас:
26.01.2010, 22:26 »
Dimon4ik
Даже не мог подумать, что все так просто! Я как только не пробовал обратиться к Sender. Ничего не выходило. А сейчас, попробовал как Вы написали - все работает! Это на много упростит код моих программ в дальнейшем. Отличный ответ! [вопрос № 176317, ответ № 258973]
03.02.2019, 15:36 »
dar777
Это просто отличное решение! [вопрос № 194549, ответ № 277376]
25.02.2010, 09:57 »
Proh2008
Ошибся при отправке "спасибо". Смутила ст. 1064 "Общие основания ответственности за причинение вреда". Ведь у меня есть квитанция об оплате, т.е. подтвержденные убытки (денежная оценка вреда). Однако, ст. 1064 уместно применить для морального вреда. Исправлюсь. Ответ действительно полный. [вопрос № 176892, ответ № 259701]

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

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

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

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

Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 196
solowey
Статус: Практикант
Рейтинг: 185
Коцюрбенко Алексей Владимирович
Статус: Модератор
Рейтинг: 146

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

Консультация онлайн # 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.15109 сек.

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