Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 949
от 28.12.2007, 13:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 475, Экспертов: 52
В номере:Вопросов: 9, Ответов: 12

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 115342: Здравствуйте. Подскажите функции для создания и записи в файл(и описание параметров). Сам сейчас работаю для открытия/чтения с fopen и fscanf, а подходящих к ним не могу найти. Файл текстовый. Visual C++ 6....
Вопрос № 115346: int vvod(int* matr[][100],int n,int m); подскажите пожалуйста,для чего нужна эта скобка и число в ней,а именно [100] и где оно потом будет использоваться в следующем коде? void vvod(float matr[][100],int n,int m) { for(int ...
Вопрос № 115349: Даны массивы A[3][5], B[3][5]. Для каждого массива определить номер столбца с максимальным элементом. В столбце с максимальным элементом все отрицательные элементы все отрицательные элементы заменить на ноль. В программе предусмотреть вво...
Вопрос № 115351: Пожалуйста! Помогите написать фукнцию расчета! Условие "Поменять значения 1-го и 3-го столбцов массивов, если сумма элементов 1-го столбца меньше суммы элементов 3-го столбца. Условия вводавывода я уже накатал (если нужно - приложение)...
Вопрос № 115361: Даны массивы С и D оа на 5 и 6 элементов. Определить массив А на 5 элементов по следующему правилу А[i] (i=0,...,4) равно сумме максимальных значений итой строки массива С и массива D. В программе предусмотреть воод массивов и вывод ...
Вопрос № 115365: Уважаемые эксперты !!! Огромная просьба помочь мне в двумерных массивах :(. Нужно написать программы на С++ ++++++++++ Элемент матрицы называется локальным минимумом. если он строго меньше всех имеющихся у него соседей. 1) Подсчитать...
Вопрос № 115377: даны целочисленные масивы С[5][4] D[5][4],для каждого массива определить макс и мин значение элементов среди элементов расположенных в четных столбцах...
Вопрос № 115384: Привет помогите пожалуйста с задачкой по С++ Даны вещественные массивы А[4][6], D[4][6] Для каждого масиива определить сумму и количество отрицательных элеметнов, расположенных в НЕЧЕТНЫХ строках. Заранее СПАСИБО!! )))...
Вопрос № 115479: Уважаемые господа посоветуйте пожалуста где можно скачать уроки по visual studio c++ 2005 и прогрммы для примера, заранее спасибо...

Вопрос № 115.342
Здравствуйте.
Подскажите функции для создания и записи в файл(и описание параметров).
Сам сейчас работаю для открытия/чтения с fopen и fscanf, а подходящих к ним не могу найти. Файл текстовый.
Visual C++ 6.
Отправлен: 22.12.2007, 10:47
Вопрос задал: Sager (статус: Практикант)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: kool
Здравствуйте, Sager!
Используйте ф-ции
fread(), fwrite(), fgets() и т.д.
Удачи!

---------
I am.
Ответ отправил: kool (статус: Практикант)
Ответ отправлен: 22.12.2007, 14:49


Вопрос № 115.346
int vvod(int* matr[][100],int n,int m);
подскажите пожалуйста,для чего нужна эта скобка и число в ней,а именно [100] и где оно потом будет использоваться в следующем коде?

void vvod(float matr[][100],int n,int m)
{

for(int i=0;i<n;++i)
{
cout << " Input " << i+1 << " stroku: " ;
for(int j=0;j<m;++j)
{
cin >> matr[i][j];
}
}
}
Я понимаю,что в блоке он визуально не используется,но как по теории он используется?ПОдскажите пожалуйста,а то нигде этой инфы найти не могу,а без теории лабу не принимают.Зарание спасибо большое.
Отправлен: 22.12.2007, 11:03
Вопрос задал: Arias (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Титов Михаил Анатольевич
Здравствуйте, Arias!

Для того, чтобы правильно понять заголовок определения функции

void vvod(float matr[][100],int n,int m)

нужно вспомнить, что в Си двухмерный массив рассматривается как одномерный массив, каждый элемент которого - также массив. Именно поэтому мы пишем
matr[i][j] а не matr[i,j]. Далее - если двухмерный массив передается как параметр функции, то фактически функции передается указатель на начало массива, каждый элемент которого в свою очередь является массивом из 100 (в нашем случае) элементов типа float. Компилятору обязательно нужно знать эту цифру (100 в нашем случае) на этапе компиляции. Иначе он не сможет правильно проиндексировать элементы двухмерного массива.
Когда компилятор встречает в коде запись вида matr[i][j] ему нужно вычислить указатель (адрес) элемента в i-ой строке и столбце j. Он делает это примерно так:

<адрес> = 100 * sizeof(float) * i + j

, оператор sizeof(float) дает значение размера одного элемента типа float. Вот именно так, неявно, используется в функции значение второй размерности массива (цифра 100 в нашем случае) - для адресации элементов массива matr.

Литература: Б.Керниган, Д.Ритчи "Язык программирования Си", п.5.7
http://www.proklondike.com/contentview.php?content=20

Ответ отправил: Титов Михаил Анатольевич (статус: 4-ый класс)
Ответ отправлен: 22.12.2007, 13:33
Оценка за ответ: 5
Комментарий оценки:
большое спасибо,я очень Вам благодарен за помощь

Отвечает: kool
Здравствуйте, Arias!
100 - это размер массива matr по второму индексу
В этом диапазоне изменяется второй индекс массива
(в вашей проге это j)
Это число нужно для того чтобы зарезервировать
память для диапазона второго индекса.
Вобщем все элементарно как по другому объяснить далже не знаю.
Удачи!

---------
I am.
Ответ отправил: kool (статус: Практикант)
Ответ отправлен: 22.12.2007, 15:10
Оценка за ответ: 4
Комментарий оценки:
спасибо,но такое объяснение преподу не прокатило


Вопрос № 115.349
Даны массивы A[3][5], B[3][5].
Для каждого массива определить номер столбца с максимальным элементом.
В столбце с максимальным элементом все отрицательные элементы все отрицательные элементы заменить на ноль.
В программе предусмотреть ввод массивов и вывод исходных данных и результатов.

очень прошу сделать через #include<iostream.h> и функциями.
Спасибо вам, жду ответа и помощи)
Отправлен: 22.12.2007, 11:11
Вопрос задал: Чернов Виктор Александрович (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Архипов Александр Леонидович
Здравствуйте, Чернов Виктор Александрович!

#include <vcl.h>
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
#pragma hdrstop
#define I 3
#define J 5
//Даны массивы A[3][5], B[3][5].
//Для каждого массива определить номер столбца с максимальным элементом.
//В столбце с максимальным элементом все отрицательные элементы
//все отрицательные элементы заменить на ноль.

void Vvod(float [I][J],char);
float Rasch(float [I][J]);
void Pech(float [I][J], char, int);

//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
float A[I][J], B[I][J];
int sta, stb;
Vvod(A,'A');
// Vvod(B,'B');
sta = Rasch(A);
// stb = Rasch(B);
Pech(A,'A',sta);
// Pech(B,'B',stb);
getch();
return 0;
}
void Vvod(float m[I][J], char mas)
{
int i,j;
cout << " Вводим массив " << mas << " ";
for (i=0; i<I; i++)
{
for (j=0; j < J; j++)
{
cout << mas << "[" << i << "][" << j << "] = ";
cin >> m[i][j];
}
}
}
void Pech(float x[I][J], char mas, int st)
{
int i,j;
cout <<" Исходный массив " << mas << " ";
for (i=0; i<I; i++)
{
for (j = 0; j < J; j++)
{
cout.width(7);
cout << x[i][j];
}
cout << " ";
}
cout << " Столбец с максимальным элементом в массиве " << mas << " равен " << st << " ";
}
float Rasch (float x[I][J])
{
int i, j, stolb=0;
float max = x[0][0];
// Находим столбец с максимальным
for (j=0; j<J; j++)
{
for (i = 0; i < I; i++)
{
if (x[i][j]>max) stolb = j;
}
}
// Заменяем отрицательные значения
for (i = 0; i < I; i++)
{
if (x[i][stolb]<0) x[i][stolb]=0;
}

return (stolb);
}
Ответ отправил: Архипов Александр Леонидович (статус: Студент)
Ответ отправлен: 22.12.2007, 11:53
Оценка за ответ: 5

Отвечает: CruelHity
Здравствуйте, Чернов Виктор Александрович!
Вот програма!! вывод думаю зделайте сами! если что обращайтесь!
Удачи!

Приложение:

Ответ отправил: CruelHity (статус: 6-ой класс)
Ответ отправлен: 22.12.2007, 12:48
Оценка за ответ: 5


Вопрос № 115.351
Пожалуйста! Помогите написать фукнцию расчета!
Условие "Поменять значения 1-го и 3-го столбцов массивов, если сумма элементов 1-го столбца меньше суммы элементов 3-го столбца.
Условия вводавывода я уже накатал (если нужно - приложение)

Приложение:

Отправлен: 22.12.2007, 11:19
Вопрос задал: Иванов Иван Иваныч (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Архипов Александр Леонидович
Здравствуйте, Иванов Иван Иваныч!
Получилась вот такая функция. Как вставить в текст прграммы Вы, как я понял из Вашего ответа, сможете сами.

void rasch (int m[3][4])
{
int i, sum1, sum3, temp;
for (i=0;i<3;i++) sum1 = sum1 + m[i][1];
for (i=0;i<3;i++) sum3 = sum3 + m[i][3];
if (sum1 {
for (i = 0; i < 3; i++)
{
temp = m[i][1];
m[i][1] = m[i][3];
m[i][3] = temp;
}
}
}
Ответ отправил: Архипов Александр Леонидович (статус: Студент)
Ответ отправлен: 22.12.2007, 12:07

Отвечает: Терсков Сергей
Здравствуйте, Иванов Иван Иваныч!
Очень знакомый вопрос (№114975). Код для решения вашей задачи смотрите в приложении...

Приложение:

Ответ отправил: Терсков Сергей (статус: Практикант)
Ответ отправлен: 24.12.2007, 03:32


Вопрос № 115.361
Даны массивы С и D оа на 5 и 6 элементов.
Определить массив А на 5 элементов по следующему правилу

А[i] (i=0,...,4) равно сумме максимальных значений итой строки массива С и массива D.
В программе предусмотреть воод массивов и вывод исходных дааных и результатов
Отправлен: 22.12.2007, 12:32
Вопрос задала: Трегубова Ольга Владимировна (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Терсков Сергей
Здравствуйте, Трегубова Ольга Владимировна!
В приложении приведена функция max_in_row. На ее вход подается двумерный вещественный массив, длина строки матрицы и номер строки. Возвращает функция максимальный элемент строки с индексом row_number. Цикл для формирования массива А также приведен. Ввод и вывод доделаете самостоятельно.

Приложение:

Ответ отправил: Терсков Сергей (статус: Практикант)
Ответ отправлен: 25.12.2007, 03:57


Вопрос № 115.365
Уважаемые эксперты !!!
Огромная просьба помочь мне в двумерных массивах :(. Нужно написать программы на С++
++++++++++
Элемент матрицы называется локальным минимумом. если он строго меньше всех имеющихся у него соседей.
1) Подсчитать количество локальных минимумов заданной матрицы размером 10 на 10
2) Найти сумму модулей элементов. располложенных выше главной диагонали.
Отправлен: 22.12.2007, 13:27
Вопрос задал: Терентьев Сергей Викторович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Ross
Здравствуйте, Терентьев Сергей Викторович!

Решения зачач в приложении к ответу (скомбинированы в одной программе). В объявлениях функций использованы шаблоны (для универсальности). Если вы их еще не проходили, удалите строку template < class T > и замените везде тип Т на int. удачи вам!

Приложение:

---------
Доступно только то, что видимо (c) Б. Керниган

Ответ отправил: Ross (статус: Студент)
Ответ отправлен: 23.12.2007, 19:58
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо !!!


Вопрос № 115.377
даны целочисленные масивы С[5][4] D[5][4],для каждого массива определить макс и мин значение элементов среди элементов расположенных в четных столбцах
Отправлен: 22.12.2007, 14:09
Вопрос задала: HAKUFU (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Терсков Сергей
Здравствуйте, HAKUFU!
В приложении функция принимающая на вход сам массив и переменные для максимального и минимального элементов.

Приложение:

Ответ отправил: Терсков Сергей (статус: Практикант)
Ответ отправлен: 24.12.2007, 06:50


Вопрос № 115.384
Привет помогите пожалуйста с задачкой по С++
Даны вещественные массивы А[4][6], D[4][6] Для каждого масиива определить сумму и количество отрицательных элеметнов, расположенных в НЕЧЕТНЫХ строках.

Заранее СПАСИБО!! )))
Отправлен: 22.12.2007, 14:39
Вопрос задал: Bimerok (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Терсков Сергей
Здравствуйте, Bimerok!
В приложении функция, которая принимает на вход вещественный двумерный массив (double **matrix) и его размеры (int n, int m). Результат записывается в переменные summ и count, которые через указатели так же подаются на вход функции.

Приложение:

Ответ отправил: Терсков Сергей (статус: Практикант)
Ответ отправлен: 24.12.2007, 06:44


Вопрос № 115.479
Уважаемые господа посоветуйте пожалуста где можно скачать уроки по visual studio c++ 2005 и прогрммы для примера, заранее спасибо
Отправлен: 23.12.2007, 01:26
Вопрос задал: Spooked (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: kool
Здравствуйте, Spooked!
Отличный сайт
firststeps.ru
Я там много чего узнал и не только по C.
Удачи!

---------
I am.
Ответ отправил: kool (статус: Практикант)
Ответ отправлен: 23.12.2007, 09:49
Оценка за ответ: 5
Комментарий оценки:
Спасибо - то что надо !


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.66 от 23.12.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное