Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Помогите решить задачу по С++

Закрытая тема
Настройки темы
C/C++ - [решено] Помогите решить задачу по С++

Новый участник


Сообщения: 15
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: Vadikan
Дата: 20-12-2011
Описание: правила
  1. По заданному натуральному(целому) числу, определить количество цифр и найти их сумму.
  2. По заданному натуральному(целому) числу, определить количество цифр и найти их сумму. Из указаного диапазона n и m
  3. Выполнить инвертирование трех одномерных массивов: А[20], В[10], С[15]. Написать функции: -Заполнение массива числами в диалоговом режиме. -Вывода одномерного массива -Инвертирование одномерного массива.
  4. Определитьдля каждого из трех одномерных массивов : A[45], B[10], C[20] сколько раз в них встретились два подряд идущих нулевых элемента. Написать функции: -Заполнение массива числами в диалоговом режиме. -Вывода одномерного массива. -Определения количества двух подряд идущих нулевых элементов в одномерном массиве.


Выдержка из правил форума
Цитата:
Вопросы, в которых нет кода и следов ваших размышлений над поставленной задачей также будут перенесены в закрытую тему - Уголок Ленивого Программиста

Исходное сообщение автора

Задание: Написать прогу, которая по заданному натуральному числу определяет количество цифр в нем и их сумму.Протестируйте функцию десятичных чисел из некоторого диапазона от n до m.

Отправлено: 14:54, 27-09-2008

 

Новый участник


Сообщения: 20
Благодарности: 0

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
bool valid(int i, int j)
{
return i > 0 && i < m && j > 0 && j < n;
}

// элементы игрового поля (пусто, крестик, нолик)
enum XO { _e_, _x_, _o_ };
const XO f[m][n];
XO field(int i, int j) { return valid(i,j) ? f[i][j] : _e_; }

XO test()
{

// ранг каждой клетки
struct RANK
{
int hor, ver, diag1, diag2;
};
RANK r[m][n];
const RANK rnull = { 0, 0, 0, 0 };

int i,j;
for(i = 0; i < m; ++i) for(j = 0; j < n; ++j)
{
XO xo = f[i][j];
RANK& rr = r[i][j];

if(xo == _e_) { rr = rnull; continue; }
if(xo == field(i-1, j )) = 1 + r[i-1][j ];
if(xo == field(i, j-1)) rr.ver = 1 + r[i ][j-1];
if(xo == field(i-1, j-1)) rr.diag1 = 1 + r[i-1][j-1];
if(xo == field(i+1, j-1)) rr.diag2 = 1 + r[i+1][j-1];

if(rr.hor >= 5
|| rr.ver >= 5
|| rr.diag1 >= 5
|| rr.diag2 >= 5
)
return xo; // этот игрок победил
}

return _e_; // ничья
}
не пойму чего не хватает

Суть задания:
клеточное поле размером м*n есть результат игры в крестики-нолики на неограниченном поле. Проверить является ли конфигурация одного из игроков предвыигрышной, т.е. нельзя ли за один ход достичь победы

Отправлено: 17:07, 20-11-2011 | #291



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Titanium,
Цитата Titanium:
не пойму чего не хватает »
а я вот не пойму, что вы пытаетесь сделать?
Словами алгоритм можете описать? И код прокомментировать тоже не мешало бы.
Каков принцип поиска предвыигрышной ситуации?

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:32, 20-11-2011 | #292


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Определите, пересекаются ли кривая у=аx3+bx2+сx+d и прямая y=fx+g. При положительном ответе найти точки пересечения.

Отправлено: 22:52, 20-11-2011 | #293


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


keks666sex, решите уравнение. Либо аналитически, либо дискретно.
Большим пока помочь не могу.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:14, 20-11-2011 | #294


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Будит ли правильным такой вариант решения?
Если сначала решить систему уравнений аx3+bx2+сx+d=fx+g
где найдем x=g-d
и дискриминант D=sqrt(b^2-4az) где z=c-f
и с помощью дискриминанта найдем 2 корня
x2=(-b+дискриминант)/(2*a);
x3=(-b-дискриминант)/(2*a);



Код: Выделить весь код
#include <iostream>
# include <math.h>
using namespace std;

void main()
{
	double a,b,c,d,f,g,x,y,tret,discrim,x1,x2,x3,y1,y2,y3,yrav2;
	cout<<"Vvedite A ";
	cin>>a;
	cout<<"Vvedite B ";
	cin>>b;
	cout<<"Vvedite C ";
	cin>>c;
	cout<<"Vvedite D ";
	cin>>d;
	cout<<"Vvedite F ";
	cin>>f;
	cout<<"Vvedite G ";
	cin>>g;

	x1=g-d;
	y1=f*x1+g;
	yrav2=a*pow(x1,3)+b*pow(x1,2)+c*x1+d;
	tret=c-f;
	discrim=sqrt(pow(b,2)-4*a*tret);
	// cout<<"Deskriminant: "<<discrim<<'\n';

	cout<<"Krivaya i pryamaya peresekaet'sya v tochkah:"<<'\n';

	cout<<"Tochka peresecheniya: "<<"("<<x1<<";"<<y1<<")"<<'\n';
	if (discrim>0)
	{
		x2=(-b+discrim)/(2*a);
		x3=(-b-discrim)/(2*a);
		y2=f*x2+g;
		y3=f*x3+g;
		cout<<"Tochka peresecheniya : "<<"("<<x2<<";"<<y2<<")"<<'\n';
		cout<<"Tochka peresecheniya : "<<"("<<x3<<";"<<y3<<")"<<'\n';
	}
	else if(discrim=0)
	{
		x2=-b/(2*a);
		y2=f*x2+g;
		cout<<"Tochka peresecheniya: "<<"("<<x2<<";"<<y2<<")"<<'\n';
	}
	else 
	{
		cout<<" "<<'\n';
	}
	
}

Последний раз редактировалось Drongo, 21-11-2011 в 17:36. Причина: Пожалуйста, используйте тег [code] - #


Отправлено: 23:41, 20-11-2011 | #295


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Цитата keks666sex:
Будит ли правильным такой вариант решения?
Если сначала решить систему уравнений аx3+bx2+сx+d=fx+g
где найдем x=g-d
и дискриминант D=sqrt(b^2-4az) где z=c-f
и с помощью дискриминанта найдем 2 корня
x2=(-b+дискриминант)/(2*a);
x3=(-b-дискриминант)/(2*a); »
Ну и чего здесь понаписано?
Почему Х стал константой g-d?
сколь я помню алгебра выглядит так:
аx3+bx2+сx+d=fx+g
аx3+bx2+(с-f)x=g-d
x(ax2+bx+c-f)=g-d

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)

Это сообщение посчитали полезным следующие участники:

Отправлено: 08:40, 21-11-2011 | #296


Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Помогите, пожалуйста, решить задачку:
В одномерном массиве, состоящем из N целых элементов, вычислить:
1) произведение элементов массива с четными номерами;
2) сумму элементов массива, расположенных между первым и последним
нулевыми элементами.
Преобразовать массив таким образом, чтобы сначала располагались все
положительные элементы, а потом — все отрицательные (элементы, равные 0, считать положительными).
Вывести на экран в удобной и наглядной форме исходные данные и результаты.

Первый пункт я сделала, вот что получилось:

Код: Выделить весь код
#include <stdio.h>
#include <conio.h>

int main(void)
{  float FMass[10] = {1,-2,3,-5,0,2,3,8,0,1};
   float proizv = 1; int i=0;


   clrscr();

   for(i=0;i<10;i++)  // print Fmass:
   {
      printf("\n FMass[%d] = %+12.1f",i,FMass[i]);
   }

// proizv:
   for(i=0;i<10;i=i+2)
   {
	proizv = proizv * FMass[i];
   }


   printf("\n\n  proizv =  %+12.1f", proizv);



   getch();
   return 1;
}
Хотя бы второй пункт подскажите?

Последний раз редактировалось Drongo, 11-12-2011 в 15:51. Причина: [code]


Отправлено: 00:45, 10-12-2011 | #297


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Цитата Liisa:
Первый пункт я сделала, вот что получилось: »
В принципе с первым пунктом просто. Единственное, что в чётных элементах значение ноль, так что произведение будет всегда равно нулю. А со вторым я бы сделал так:
Код: Выделить весь код
...
   int IndexFirstNull, // Индекс первого нулевого значения
        IndexLastNull; // Индекс последнего нулевого значения
...
   // Вычисление первого значения с нулём
   // Начинаем поиск его с начала
   // И как только найдём, запоминаем break
   for(int i = 0; i < size; i++)
      if(FMass[i] == 0){
         IndexFirstNull = i;
         break;
        }
   // Вычисления последнего значения с нулём
   // Начинаем поиск его с конца массива
   // И как только найдём, запоминаем и break
   for(int i = size - 1; i >= 0; i--)
      if(FMass[i] == 0){
         IndexLastNull = i;
         break;
        }
   cout << endl;
   // Вывод значений между первым и последним нулевым элементом.
   for(int i = IndexFirstNull + 1; i < IndexLastNull; i++)
     cout << "FMass[" << i << "] = " << FMass[i] <<endl;
В общем виде так получилось
Код: Выделить весь код
#include <iostream>
using namespace std;
#include <conio.h>

int main(void)
{
   int const size = 10; // Размер массива
   float FMass[size] = {1, -2, 3, -5, 0, 2, 3, 8, 0, 1};
   float proizv = 1;
   int IndexFirstNull, IndexLastNull;

   // Вывод массива
   for(int i = 0; i < size; i++){  // print Fmass:
      cout << "FMAss[" << i << "] = " << FMass[i] << endl;
     }

   // Вывод произведения чётных элементов массива
   for(int i = 0; i < size; i++)
      if(i % 2 == 0)
         proizv *= FMass[i];
   cout << "\nProizvedenie chetnih = " << proizv << endl;

   // Вывод суммы элементов массива,
   // расположенных между первым и последним нулевыми элементами.
   // Вычисление первого значения с нулём
   for(int i = 0; i < size; i++)
      if(FMass[i] == 0){
         IndexFirstNull = i;
         break;
        }
   // Вычисления последнего значения с нулём
   for(int i = size - 1; i >= 0; i--)
      if(FMass[i] == 0){
         IndexLastNull = i;
         break;
        }
   cout << endl;
   // Вывод значений между первым и последним нулевым элементом.
   for(int i = IndexFirstNull + 1; i < IndexLastNull; i++)
     cout << "FMass[" << i << "] = " << FMass[i] <<endl;

   getch();
   return 0;
}

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:25, 11-12-2011 | #298


Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Отправлено: 12:38, 20-12-2011 | #299


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Daswedoc, Есть какие-либо наработки, мысли? Для начала ознакомьтесь с Правилами Форума

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 22:20, 20-12-2011 | #300



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Помогите решить задачу по С++

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
C/C++ - Помогите решить задачу Urann Программирование и базы данных 11 14-05-2013 11:44
Разное - Помогите решить задачу в Excel Dgonny Программирование и базы данных 2 16-11-2009 04:11
C/C++ - Помогите решить задачу zdughi Программирование и базы данных 1 01-05-2009 06:03
помогите решить задачу snikers Программирование и базы данных 2 27-08-2004 01:57
помогите решить задачу Guest Программирование и базы данных 2 21-05-2004 11:23




 
Переход