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

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


Хостинг Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг на Windows 2008

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

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

Выпуск № 1118
от 29.09.2008, 14:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 424, Экспертов: 40
В номере:Вопросов: 6, Ответов: 14

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


Вопрос № 144793: C++ Разместить в динамической памяти ЭВМ матрицу 5х5 случайных целых чисел в диапазоне от -60 до 60. Напечатать ее. Предусмотреть оба варианта работы с матрицей – один указатель на всю матрицу и массив указателей....
Вопрос № 144823: Составить программу, которая определяет четыре объекта класса. 1 объект должен инициализироваться по умолчанию, 2 использовать крнструктор инициализации, 3 преобразование типа своего параметра к типу своего класса, 4 функцию ввода данных. Объявить фу...
Вопрос № 144828: Здравствуйте! Помогите пожалуйста разобраться с таблицами в Си. Задание: "Оплата телефонных услуг. В таблице: номер абонента; сумма, которую он должен заплатить, без детализации счета и дата ликвидации долга. Таблица упорядочена по номерам телеф...
Вопрос № 144839: Здравствуйте уважаемые эксперты. П омогите решить задачку. Дано натуральное число n. Найти все числа Мерсена меньше n. Числом Марсена называется число которое можно представить в виде 2<sup> p </sup>-1, где p -тоже простое число. Например: 31=2...
Вопрос № 144850: Здравствуйте, помогите в програмке, заранее большое спасибо! <b> Dev-C++ 4 </b> 1.Вычислить сумму ряда для заданного в режиме диалога с ЭВМ |x|<1. Вычисления заканчиваются, когда очередной член ряда становится меньше 0.0001: y=2!/x^2*3!+3...
Вопрос № 144880: Здравствуйте!!! Dev-C++ 4 Сформировать матрицу А6х6 случайных целых чисел в диапазоне от 0 до 30. Напечатать матрицу. Найти и напечатать «столбец» матрицы наибольших элементов строк. При печати указывать номер строки и столбца, в котором нахо...

Вопрос № 144.793
C++
Разместить в динамической памяти ЭВМ матрицу 5х5 случайных целых чисел в диапазоне от -60 до 60. Напечатать ее. Предусмотреть оба варианта работы с матрицей – один указатель на всю матрицу и массив указателей.
Отправлен: 23.09.2008, 18:33
Вопрос задал: Dragonlio (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: Владимир (C4tnt)
Здравствуйте, Dragonlio!

Вариант с одним указателем:

//Ширина и высота матрицы
#define MWidth 5
#define MHeight 5

//Матрица
int Matrix[MWidth*MHeight];

int main()
{
int i;
int j;
for (i = 0;i<MWidth*MHeight;i++)
{
Matrix[i] = (rand() / (RAND_MAX/120))-60; //Наполняем матрицу
}

for (i = 0;i<MHeight;i++) //Печатаем матрицу
{
for (j = 0;j<MWidth;j++)
{
printf("%i ",Matrix[i*MWidth+j]);
}
printf(" "); //Новая строка
}
}

Вариант с массивом указателем:

#include <stdlib.h>

#define MWidth 5
#define MHeight 5

//Матрица
int Matrix[MWidth][MHeight];
int _tmain(int argc, _TCHAR* argv[])
{
int i;
int j;
for (i = 0;i<MHeight;i++)
{
for (j = 0;j<MWidth;j++)
{
Matrix[j][i] = (rand() / (RAND_MAX/120))-60;
}
}
for (i = 0;i<MHeight;i++)
{
for (j = 0;j<MWidth;j++)
{
printf("%i ",Matrix[j][i]);
}
printf(" ");
}
return 0;
}

---------
Теперь к нашим ответам осталось лишь найти вопросы
Ответ отправил: Владимир (C4tnt) (статус: 4-ый класс)
Ответ отправлен: 23.09.2008, 19:45
Оценка за ответ: 5

Отвечает: Sk0rp
Здравствуйте, Dragonlio!
Непосредственно данные указанными в задаче способами лежат в MatrixPlain и MatrixInd соответственно.
Для удобства и унификации работы, написана общая обертка Matrix

Приложение:

Ответ отправил: Sk0rp (статус: 4-ый класс)
Ответ отправлен: 23.09.2008, 20:09
Оценка за ответ: 5

Отвечает: realbustard
Здравствуйте, Dragonlio!
Код требуемого вопроса в приложении!

Приложение:

---------
Учись так, как-будто собираешься жить вечно; живи так, как-будто завтра умрешь (Отто фон Бисмарк)

Ответ отправил: realbustard (статус: 3-ий класс)
Ответ отправлен: 24.09.2008, 00:01
Оценка за ответ: 5


Вопрос № 144.823
Составить программу, которая определяет четыре объекта класса. 1 объект должен инициализироваться по умолчанию, 2 использовать крнструктор инициализации, 3 преобразование типа своего параметра к типу своего класса, 4 функцию ввода данных. Объявить функции ввода и вывода как "друзей" класса с параметром-объектом класса, передаваемым по значению и по ссылке.

Задание: Класс "Компьютер" с данными тактовой частотой процессора обьём ОЗУ, емкость диска
Отправлен: 23.09.2008, 23:23
Вопрос задал: Шептелуть Михайл Сергеевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: realbustard
Здравствуйте, Шептелуть Михайл Сергеевич!
В приложении код, который инициилизирует объекты класса по вашим пунктам. Тока не понял п.3 . У меня объект получает переменную какого-нибудь типа и приводит его к нужному типу, который определен в классе.

Приложение:

---------
Учись так, как-будто собираешься жить вечно; живи так, как-будто завтра умрешь (Отто фон Бисмарк)

Ответ отправил: realbustard (статус: 3-ий класс)
Ответ отправлен: 25.09.2008, 15:19


Вопрос № 144.828
Здравствуйте! Помогите пожалуйста разобраться с таблицами в Си. Задание: "Оплата телефонных услуг. В таблице: номер абонента; сумма, которую он должен заплатить, без детализации счета и дата ликвидации долга. Таблица упорядочена по номерам телефонов. Выдать предупреждение всем абонентам, у которых срок ликвидации долга истек."
Программу я написал (текст в приложении), но она что-то работать не хочет, с поиском ошибок проблемы. Заранее спасибо.

Приложение:

Отправлен: 24.09.2008, 00:04
Вопрос задал: Демарчук Константин Александрович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Sk0rp
Здравствуйте, Chaos!
разобраться в представленной вами мешанине нет возможности, к то му же отсутствуют файлы, которые вы читаете,
что сразу бросилось в глаза это некорректное использование scanf:
fscanf(f1, "%i %i %i", &T.S[0].telephone_number, T.S[0].summa, T.S[0].date_of_liquidation);
передавать надо адреса переменных, т.е. вот так:
fscanf(f1, "%i %i %i", &T.S[0].telephone_number, &T.S[0].summa, &T.S[0].date_of_liquidation);
тоже самое: не
fscanf(f1, "%i %i", T.S[j+1].summa, T.S[j+1].date_of_liquidation);
а
fscanf(f1, "%i %i", &T.S[j+1].summa, &T.S[j+1].date_of_liquidation);
может еще где есть, не найти

и очень не красиво, что нет конструкторов у объектов, это опасная привычка.
Ответ отправил: Sk0rp (статус: 4-ый класс)
Ответ отправлен: 24.09.2008, 00:36


Вопрос № 144.839
Здравствуйте уважаемые эксперты. Помогите решить задачку.
Дано натуральное число n. Найти все числа Мерсена меньше n. Числом Марсена называется число которое можно представить в виде 2 p -1, где p -тоже простое число.
Например: 31=2 5 -1

Приложение:

Отправлен: 24.09.2008, 07:27
Вопрос задал: Попов Александр Олегович (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Николай // МMM
Здравствуйте, Попов Александр Олегович!

Код С++ программы в приложении.

Приложение:

---------
Не ошибается лишь тот, кто ничего не делает. Не бойтесь ошибаться. Бойтесь повторять ошибки. (Теодор Рузвельт, 1858 - 1919)

Ответ отправил: Николай // МMM (статус: Студент)
Ответ отправлен: 24.09.2008, 10:06
Оценка за ответ: 4

Отвечает: Sk0rp
Здравствуйте, Попов Александр Олегович!

я не совсем понял какие именно числа Марсена нужны. с натуральными показателями (смутило слово "тоже") или все таки с простыми.
сделал оба варианта:

(функция вынесена в класс, для генерации простых чисел.)

Компилировалось на MS VC++ 2003, если компилятор у вас другой убедитесь, что тип unsigned long long 64-битный.

Приложение:

Ответ отправил: Sk0rp (статус: 4-ый класс)
Ответ отправлен: 24.09.2008, 10:46
Оценка за ответ: 4

Отвечает: realbustard
Здравствуйте, Попов Александр Олегович!
Числа Марсена вычисляются в ф-ии marsen_print(). Она же выводит их на экран. Числа вычисляются с помощью функции pow(x,y) (x^y), определенной в <math.h>

Приложение:

---------
Учись так, как-будто собираешься жить вечно; живи так, как-будто завтра умрешь (Отто фон Бисмарк)

Ответ отправил: realbustard (статус: 3-ий класс)
Ответ отправлен: 24.09.2008, 23:14


Вопрос № 144.850
Здравствуйте, помогите в програмке, заранее большое спасибо!
Dev-C++ 4
1.Вычислить сумму ряда для заданного в режиме диалога с ЭВМ |x|<1. Вычисления заканчиваются, когда очередной член ряда становится меньше 0.0001:
y=2!/x^2*3!+3!/x^4*4!+4!/x^6*5!+.....
Отправлен: 24.09.2008, 10:58
Вопрос задал: Dragonlio (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Sergey A. Wedensky
Здравствуйте, Dragonlio!

Если правильно понял, член ряда имеет вид a i = (i+1)!/(x (i*2*(i+1)!) ).
Иначе (если последний факториал вне степени) - ряд расходящийся...

В приложении код.

Приложение:

Ответ отправил: Sergey A. Wedensky (статус: Студент)
Ответ отправлен: 24.09.2008, 11:32
Оценка за ответ: 5

Отвечает: realbustard
Здравствуйте, Dragonlio!
Общий вид членов ряда имеет следующий вид: y(i)=fact(i+1)/((pow(x,i+1)*fact(i+2))). Не ясно тока где находятся 3!,4!,5!... в степени или в знаменателе, ну раз уж скобок не стоит, пусть будет в степени.
Скомпил в MS Visual Studio 2005

Приложение:

---------
Учись так, как-будто собираешься жить вечно; живи так, как-будто завтра умрешь (Отто фон Бисмарк)

Ответ отправил: realbustard (статус: 3-ий класс)
Ответ отправлен: 24.09.2008, 14:17
Оценка за ответ: 5

Отвечает: Sk0rp
Здравствуйте, Dragonlio!
наверное вы все таки имели ввиду, ряд: y=2!/(x^2*3!)+3!/(x^4*4!)+4!/(x^6*5!)+.....
т.к. иначе ряд монотонно возрастает, т.к. числитель всегда больше единицы, а знаменатель всегда меньше
но даже этот ряд расходится и выполнить задание не возможно, доказательство в приложении.
и судя по доказательству у вас еще и условие должно быть не |x| < 1, а как раз таки наоборот |x| > 1
вот для этих исправленных начальных данных и представлена программа (под доказательством)

Приложение:

Ответ отправил: Sk0rp (статус: 4-ый класс)
Ответ отправлен: 24.09.2008, 18:03
Оценка за ответ: 5


Вопрос № 144.880
Здравствуйте!!!
Dev-C++ 4
Сформировать матрицу А6х6 случайных целых чисел в диапазоне от 0 до 30. Напечатать матрицу. Найти и напечатать «столбец» матрицы наибольших элементов строк. При печати указывать номер строки и столбца, в котором находится очередной элемент.
Отправлен: 24.09.2008, 14:19
Вопрос задал: Dragonlio (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 5)

Отвечает: Глымов Антип Петрович
Здравствуйте, Dragonlio!
#include <iostream.h>
#include <stdlib.h>
int main()
int a[5][5];
for( int i = 0; i < 6; ++i )
{ for( int j = 0; j < 6; ++j )
{ a[i][j] = random(30);
}
}

for( int i = 0; i < 6; ++i )
{ for( int j = 0; j < 6; ++j )
{ cout << a[i][j] << " ";
}
cout << endl;
}

int max = -1,
nom = 0;
for( int i = 0; i < 6; ++i )
{ for( int j = 0; j < 6; ++j )
{ if( a[i][j] > max )
{ max = a[i][j];
nom = j;
}
}
}
cout << "max =" << max;
cout << "j =" << j;

return 0;
Ответ отправил: Глымов Антип Петрович (статус: 1-ый класс)
Ответ отправлен: 24.09.2008, 14:56
Оценка за ответ: 5

Отвечает: SiRuS
Здравствуйте, Dragonlio!
Код в приложени.. Нумерация при выводе результата начинается с 1.

Приложение:

Ответ отправил: SiRuS (статус: 5-ый класс)
Ответ отправлен: 24.09.2008, 17:10
Оценка за ответ: 5
Комментарий оценки:
Очень большое вам спасибо!!! Все работает!

Отвечает: realbustard
Здравствуйте, Dragonlio!
В приложении находится код, который выполняет требуемые действия. Только нет возможности учета нескольких одинаковых элементов в строке. Если встретится несколько одинаковых элементов, то максимальным все-равно останется первый.

Приложение:

---------
Учись так, как-будто собираешься жить вечно; живи так, как-будто завтра умрешь (Отто фон Бисмарк)

Ответ отправил: realbustard (статус: 3-ий класс)
Ответ отправлен: 24.09.2008, 21:14
Оценка за ответ: 5


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

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

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

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

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

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


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


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале

∙ Версия системы: 5.3 RC 2 от 09.09.2008

Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное