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

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


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

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

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

Выпуск № 940
от 19.12.2007, 03:35

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


Вопрос № 113734: Здравствуйте, уважаемые эксперты! Помогите, пожалуйста по С++. Какой-то абсурд у меня получается. Написал программу по всем правилам, как мне наивному кажется, программирования, выдранному из учебника. А программа, вместо того, чтобы выдать на эк...
Вопрос № 113749: Надо изменить программу чтобы: Найти минимальный элемент среди элементов, расположенных выше главной диагонали ..
Вопрос № 113750: Подскажите как определить масив m[6][3][3] так чтоб память под него выделялась автоматически...
Вопрос № 113751: Помогите написать программку: Даны два вещественных массива А и В оба на 14 элементов. В каждом массиве определить значение минимального элемента и его индекс. Вывести на печать исходный массив и его результаты....
Вопрос № 113752: Даны вещественные массивы A[15], D[15]. Для каждого массива определить количество элементов, предшествующих наибльшему элементу массива. Помогите написать программу в с++(Borland C++)....
Вопрос № 113756: Помогитите плиз мне ато я бландинко нефига непонимаю в С++ Данны вещественные массивы A[15],F[15].Для каждого массива определить наибольшее из отрицательных значений....
Вопрос № 113759: Помогите с программой. Внесите изменения в текст программы: Найти минимальный элемент среди элементов, расположенных выше главной диагонали в каждом массиве...
Вопрос № 113762: Помогите плиз сделать задачу в С++... Даны вещественные масивы А15, В15. Для каждого массива определить максимальное количетво подряд рассположенных положительных элементов Зарание спасибо...
Вопрос № 113797: Здравствуйте, уважаемые эксперты!Я слабо владею Borland C++ 6, но у меня возникла необходимость написать БД Библиотека для школы, именно в С++ 6. В этой связи, я решил обратиться к вам за помощью. Возможно у вас уже есть такая или похожая прога, или ...
Вопрос № 113849: Почему в с++ так отвратительно работает ф-я random() ...
Вопрос № 113891: Дррасьте!!У меня вопрос особо не в программировании а в смысле заданной задачи... не могу понять условие. помогите, плиззз... я не понимаю, до какой длины и где она находится (условие в приложении) буду ооооочень благодарна))...
Вопрос № 113916: Добрый вечер, уважаемы эксперты. Предо мной стоит задача - написать программу - генерирующую help файлы (html, chm, hlp). С html проблем не предвидеться... но формат chm является закрытым форматом и получается, что единственный способ его получит...

Вопрос № 113.734
Здравствуйте, уважаемые эксперты!
Помогите, пожалуйста по С++. Какой-то абсурд у меня получается. Написал программу по всем правилам, как мне наивному кажется, программирования, выдранному из учебника. А программа, вместо того, чтобы выдать на экран ну хоть что-то, вообще ничего не выдает, кроме "Для продолжения нажмите любую клавишу...".
Я вот думаю - может версия у меня какая-то не та? В этой связи хотелось бы узнать - а как все это нужно сделать для моей версии? У меня Microsoft Visual Studio 2005.
Неработающая прога в приложении.
Большое спасибо за ответ!

Приложение:

Отправлен: 13.12.2007, 07:00
Вопрос задал: Mangoost (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Lemeshev Konstantin
Здравствуйте, Mangoost!
Исправленный вариант в приложении.
Ошибки:
1) В строке Y не достаточно памяти для копирования строки x (вы забыли про нуль-символ)
2) при вызове функции strcpy - вы перепутали аргументы.

Вариант в приложении проверял на Microsoft Visual Studio 2005.

Приложение:

Ответ отправил: Lemeshev Konstantin (статус: 6-ой класс)
Ответ отправлен: 13.12.2007, 07:32
Оценка за ответ: 5

Отвечает: kool
Здравствуйте, Mangoost!
Все дело в том, что y[16] - не инициирован
Нужно так
.........
char y[17], z[8];
y[16]=0;

cout << "String in x: " << x << endl
<< "String in y: " << strcpy(y, x) << endl;
.........
Или так
.......
char y[17], z[8];
y[16]=0;

cout << "String in x: " << x << endl;
cout<< "String in y: " << strcpy(x, y) << endl;
.......
Но на экран будет выводится всякий мусор
Инициируйте y
Удачи!

---------
I am.
Ответ отправил: kool (статус: Практикант)
Ответ отправлен: 13.12.2007, 07:37
Оценка за ответ: 5


Вопрос № 113.749
Надо изменить программу чтобы:
Найти минимальный элемент среди элементов, расположенных выше главной диагонали

Приложение:

Отправлен: 13.12.2007, 09:39
Вопрос задал: Bimerok (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Архипов Александр Леонидович
Здравствуйте, Bimerok!
Исправлено только в одной строчке, см. где написано //Изменения здесь

Приложение:

Ответ отправил: Архипов Александр Леонидович (статус: 10-ый класс)
Ответ отправлен: 13.12.2007, 09:55
Оценка за ответ: 3


Вопрос № 113.750
Подскажите как определить масив m[6][3][3] так чтоб память под него выделялась автоматически
Отправлен: 13.12.2007, 09:43
Вопрос задал: serjuar (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 5)

Отвечает: Lemeshev Konstantin
Здравствуйте, serjuar!
Допустим, что нужен массив целых чисел (int), тогда имеем следующий код.

int r1,r2,r3;
r1=6;
r2=3;
r3=3;
int ***m;
//выделяем память
m=new int**[r1];
for(int i=0;i<r1;i++)
{
m[i]=new int*[r2];
for(int j=0;j<r2;j++)
{
m[i][j]=new int[r3];
for(int k=0;k<r3;k++)
{
//задаем начальное значение элементов
m[i][j][k]=100*i+10*j+k;
}
}
}

/*
как-то используем массив
*/
//освобождаем память

for(int i=0;i<r1;i++)
{
for(int j=0;j<r2;j++)
{
delete m[i][j];
}
delete m[i];
}
delete m;
Ответ отправил: Lemeshev Konstantin (статус: 6-ой класс)
Ответ отправлен: 13.12.2007, 09:58
Оценка за ответ: 5
Комментарий оценки:
пасиба очень помогло

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

Пишу с учётом ответа эксперта Lemeshev Konstantin и замечаний в форуме эксперта Сергея Хватова:

Господа, давайте внесем ясность в голову спрашивающего:

int m1[6][3][3];

совсем не то же самое, что

int ***m2;

с последующей инициализацией через три new. И дело совсем не в том, что там надо делать delete и т.п. Это в ПРИНЦИПЕ РАЗНЫЕ структуры памяти:
- m1 - непрерывная область памяти из 6*3*3 ячеек памяти, каждая размером в переменную int
- m2 - это 1) массив из 6 указателей на указатель на int; 2) 6 массивов по 3 указателя на int; 3) 18 массивов по 3 элемента типа int.

Хотя действительно, обращение и к m1 и к m2 с помощью индексов выглядят совершенно одинаково.

Объявить динамический "действительный" массив m[6][3][3] можно, например, так

int r1,r2,r3;
r1=6;
r2=3;
r3=3;
int *m;

//выделяем память
m = malloc(sizeof(int) * r1 * r2 * r3);

//задаем начальное значение элементов
for(int i=0;i<r1;i++) for(int j=0;j<r2;j++) for(int k=0;k<r3;k++) m[i][j][k]=100*i+10*j+k;

//освобождаем память
free(m);
Ответ отправил: Титов Михаил Анатольевич (статус: 4-ый класс)
Ответ отправлен: 13.12.2007, 15:16

Отвечает: kool
Здравствуйте, serjuar!
Может так
auto int m[6][3][3];
Удачи!

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


Вопрос № 113.751
Помогите написать программку:
Даны два вещественных массива А и В оба на 14 элементов. В каждом массиве определить значение минимального элемента и его индекс. Вывести на печать исходный массив и его результаты.
Отправлен: 13.12.2007, 09:52
Вопрос задала: Трегубова Ольга Владимировна (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Lemeshev Konstantin
Здравствуйте, Трегубова Ольга Владимировна!
См. вложние.

Элементы массивов генерируються случайным образом. Для этотго подключены файлы math.h и time.h.

Приложение:

Ответ отправил: Lemeshev Konstantin (статус: 6-ой класс)
Ответ отправлен: 13.12.2007, 10:21


Вопрос № 113.752
Даны вещественные массивы A[15], D[15]. Для каждого массива определить количество элементов, предшествующих наибльшему элементу массива. Помогите написать программу в с++(Borland C++).
Отправлен: 13.12.2007, 09:53
Вопрос задал: Лапотников Ден Александрович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Архипов Александр Леонидович
Здравствуйте, Лапотников Ден Александрович!
Сделано с использованием функций

Приложение:

Ответ отправил: Архипов Александр Леонидович (статус: 10-ый класс)
Ответ отправлен: 13.12.2007, 13:21


Вопрос № 113.756
Помогитите плиз мне ато я бландинко нефига непонимаю в С++
Данны вещественные массивы A[15],F[15].Для каждого массива определить наибольшее из отрицательных значений.
Отправлен: 13.12.2007, 10:33
Вопрос задала: Hikaru (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Djec
Здравствуйте, Hikaru!
В приложении решение вашей задачи. Удачи!

Приложение:

---------
"Если ты что-то делаешь, делай это хорошо. если же ты не можешь или не хочешь делать хорошо, лчуше совсем не делай" © Л.Н.Толстой"

Ответ отправил: Djec (статус: 6-ой класс)
Ответ отправлен: 13.12.2007, 18:41

Отвечает: Архипов Александр Леонидович
Здравствуйте, Hikaru!
Вот решение с функциями:

#include <vcl.h>
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
#pragma hdrstop
#define I 15
//Для каждого массива определить наибольшее из отрицательных значений

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

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

#pragma argsused
int main(int argc, char* argv[])
{
float A[I], F[I], ela, elf;
Vvod(A,'A');
Vvod(F,'F');
ela = Rasch(A);
elf = Rasch(F);
Pech(A,'A',ela);
Pech(F,'F',elf);
getch();
return 0;
}
void Vvod(float m[I], char mas)
{
int i,j;
cout << " Вводим массив " << mas << " ";
for (i=0; i<I; i++)
{
cout << mas << "[" << i << "] = ";
cin >> m[i];
}
}
void Pech(float x[I], char mas, float el)
{
int i,j;
cout <<" Исходный массив " << mas << " ";
for (i=0; i<I; i++)
{
cout << " ";
cout.width(7);
cout << x[i];
}
if (el == 0)
cout << " В массиве " << mas << " отрицательных значений нет" << " ";
else
cout << " Максимальное отрицательное значение в массиве " << mas << " равен " << el << " ";
}
float Rasch (float x[I])
{
int i;
float el=0;
for (i=0; i<I; i++)
if (x[i] < el)
el = x[i];
return (el);
}
Ответ отправил: Архипов Александр Леонидович (статус: 10-ый класс)
Ответ отправлен: 14.12.2007, 06:03


Вопрос № 113.759
Помогите с программой.
Внесите изменения в текст программы:
Найти минимальный элемент среди элементов, расположенных выше главной диагонали в каждом массиве

Приложение:

Отправлен: 13.12.2007, 10:42
Вопрос задал: Bimerok (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Лясин Александр Владимирович
Здравствуйте, Bimerok!
Вот немного переделанная ф-я поиска, замените ею ту, которая в Вашем примере.
Проверено GCC 3.3.5

Приложение:

Ответ отправил: Лясин Александр Владимирович (статус: 4-ый класс)
Ответ отправлен: 13.12.2007, 15:28


Вопрос № 113.762
Помогите плиз сделать задачу в С++...

Даны вещественные масивы А15, В15.
Для каждого массива определить максимальное
количетво подряд рассположенных положительных элементов

Зарание спасибо
Отправлен: 13.12.2007, 10:50
Вопрос задал: Александер Александров (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Лясин Александр Владимирович
Здравствуйте, Александер Александров!
см. приложение, проверено GCC 3.3.5

Приложение:

Ответ отправил: Лясин Александр Владимирович (статус: 4-ый класс)
Ответ отправлен: 13.12.2007, 14:32


Вопрос № 113.797
Здравствуйте, уважаемые эксперты!Я слабо владею Borland C++ 6, но у меня возникла необходимость написать БД Библиотека для школы, именно в С++ 6. В этой связи, я решил обратиться к вам за помощью. Возможно у вас уже есть такая или похожая прога, или хотя бы ссылка на неё. Верю в вашу доброту и прошу помочь мне. Заранее благодарю всех вас!
Отправлен: 13.12.2007, 13:56
Вопрос задал: Савченко И.А. (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Лясин Александр Владимирович
Здравствуйте, Савченко И.А.!
К сожалению, что-то подобного, для ведения реестра книг библиотеки у меня нет. Но создать нечто подобное в простейшем виде с ноля, не такая уж архисложная задача. Если возникнут конвретные вопросы - обращайтесь. Если хотите поискать аналоги - Вам сюда http://www.sourceforge.org/
Правда поиски могут занять достаточно длительное время.
Ответ отправил: Лясин Александр Владимирович (статус: 4-ый класс)
Ответ отправлен: 13.12.2007, 21:09
Оценка за ответ: 3
Комментарий оценки:
Ожидал большей помощи.


Вопрос № 113.849
Почему в с++ так отвратительно работает ф-я random()
Отправлен: 13.12.2007, 17:26
Вопрос задал: Глымов Антип (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 7)

Отвечает: Verena
Здравствуйте, Глымов Антип!
Если говорить о С/С++ в целом, то нет функции random, есть rand. Функция rand работает вполне нормально, если грамотно проиницииализировать генератор псевдослучайных чисел, например, системным временем (надо подключать time.h).

srand (unsigned int (time (NULL)));
int a = rand();
int b = rand ();

В этом примере a и b получат разные значения. Если надо получить значение из какого-то диапазона, можно сделать так:

a = 5 + rand()%(101-5);

Тогда число a получит значение из диапазона от 5 до 100.
Ну а если уточните, в чём отвратительность работы этой функции, тогда можно будет говорить подробнее.
---------
Эта история - не для истории, понимаешь?
Ответ отправила: Verena (статус: Студент)
Ответ отправлен: 13.12.2007, 18:13

Отвечает: Djec
Здравствуйте, Глымов Антип!
Перед использование функции random() пропишите randomize();
Или используйте функцию rand() вместо random(), перед которой необходимо прописать srand(int n), где n- начальное значение, используемое для выработки рандома. Так вы получите более-менее случайные числа
---------
"Если ты что-то делаешь, делай это хорошо. если же ты не можешь или не хочешь делать хорошо, лчуше совсем не делай" © Л.Н.Толстой"
Ответ отправил: Djec (статус: 6-ой класс)
Ответ отправлен: 13.12.2007, 18:17


Вопрос № 113.891
Дррасьте!!У меня вопрос особо не в программировании а в смысле заданной задачи... не могу понять условие. помогите, плиззз...

я не понимаю, до какой длины и где она находится (условие в приложении)
буду ооооочень благодарна))

Приложение:

Отправлен: 13.12.2007, 21:15
Вопрос задала: lyubkin (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Арефьев Сергей
Здравствуйте, lyubkin!

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

Т.е. результатом вызова Left("Some string", 3) должна стать строка "Som".

Ответ отправил: Арефьев Сергей (статус: 1-ый класс)
Ответ отправлен: 13.12.2007, 22:11
Оценка за ответ: 5


Вопрос № 113.916
Добрый вечер, уважаемы эксперты.
Предо мной стоит задача - написать программу - генерирующую help файлы (html, chm, hlp). С html проблем не предвидеться... но формат chm является закрытым форматом и получается, что единственный способ его получить - это компилятор справки MS.
Возможно ли другое решение (ведь существует в интернете огромное количество альтернативных компиляторов)?
Отправлен: 14.12.2007, 01:10
Вопрос задала: S.Elena (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Лясин Александр Владимирович
Здравствуйте, S.Elena!
Конечно существует, правда на счёт ОГРОМНОГО количества сомневаюь, но достаточно много. Смотрите http://www.sourceforge.org. Наберите там в поиске по продуктам
WordDoc to CHM converter
mod_chm
chm-build
и т.д. на любой вкус под любую платформу.
Ну если мало - набираете там же в строке поиска "chm format help compile" или как Вам больше нравится и ищите.
Ответ отправил: Лясин Александр Владимирович (статус: 4-ый класс)
Ответ отправлен: 14.12.2007, 08:59


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

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

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

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

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


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


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

В избранное