Войти

Показать полную графическую версию : [решено] Помогите решить задачу по С++


Страниц : 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 15 16

Profi_Boss
06-11-2010, 02:47
вауу, именно помогли ребята, могли бы хоть сказать, что надо хотя бы подключить библиотеку специальную math.h, для начала. обьяснили вкратце уже мне

lxa85
06-11-2010, 08:26
Profi_Boss, опять таки, не сочти за грубость, но ты мог бы вразумительнее рассказать о проблеме.
А раз про проблемы реализации ты ничего не сказал, то и был отправлен учить основы. :read:
По запросу в гугл sin(x) C++ нашелся пост на другом (http://www.cyberforum.ru/visual-cpp/thread103775.html) форуме. Задача оказалась типовой.

Profi_Boss
13-11-2010, 13:51
Задан массив целых чисел. Необходимо распечатать его элементы в порядке возрастания значений.

Можете написать код программы с обьяснением?

lxa85
13-11-2010, 16:54
Profi_Boss, Любой Алгоритм_сортировки (http://ru.wikipedia.org/wiki/Алгоритм_сортировки) + вывод массива на экран.
Где-то была программа, где приводился код на Pascal, его пошаговое выполнение, тестовый массив. Для обучения была хорошо, но вот по руку не попалась.

DennyD
16-11-2010, 19:09
Помогите с программой плиз)
задание на массивы а я в них не очень шарю((

Необходимо составить структурированную программу построения целочисленного вектора b1,b2,b3 ,где bi имеет значение I если наибольший элемент в строке с номером i вещественной матрицы {aij}(3 на 3) не больше х;и и значение W в противном случае.

если можно,с объяснением,заранее спасибо)

belk94
16-11-2010, 23:23
DennyD,

for(int i=0;i<3;i++) //бежим по строкам с нулевой по вторую
{
if(a[0][i] > x || a[1][i] > x || a[2][i] > x) //если максимальный элемент больше x
b[i] = W; //b[i] принимает значение W
else
b[i] = I; //в противном случае b[i] принимает значение I
}

Создание и заполнение массива a, и создание массива b напишешь сам.

DennyD
17-11-2010, 15:58
спасибо)

DennyD
23-11-2010, 18:45
помогите с кодом пожалуйста!
//известно что у заданного вещественного вектора х1,х2,...х10 есть по крайней мере одна отрицательная компонента.Нужно составить программу определения колличества компонент предшевствующих первой по порядку отрицательной компоненте,!Значения которых принадлежат промежутку [0;0.5]!

все в принципе несложно но никак не могу понять как сделать выбор заначений из[0;0.5]


вот моя программа(просто считает колличество компанент перед первой отрицательной):

#include <iostream.h>
#include <conio.h>
#define n 10
void main()
{
int k = 0, i;
float x[n];

cout<<"enter components please\n";
for (i = 0; i < n; i++)
cin>>x[i];

for (i = 0; i < n; i++){
k += i;
if (x[i] < 0)
break;
else
k = 0;
}
cout<<"k = "<<k;
getch();
}

Hilaly
25-11-2010, 11:50
#include <iostream.h>
#include <conio.h>
#define n 10
void main()
{
int k = 0, i;
float x[n];
cout<<"enter components please\n";
for (i = 0; i < n; i++)
cin>>x[i];
for (i = 0; i < n; i++){
k += i;
if (x[i] < 0)
break;
else
k = 0;
}
cout<<"k = "<<k;
getch();
} »
второй цикл надо оформить так:
for (i = 0; i < n; i++){
if (x[i] < 0)
break;
else
if (x[i]<0.5) k+=1; //сюда попадут только числа в пределах (0;0.5) т.к. отрицательные уже исключены предыдущим if
}

DennyD
25-11-2010, 22:44
спсибо))все вообще сделал в 1 цикл))

for (i=0;i<n;i++)
{
if (x[i]<0)
break;
else if (x[i]<=0.5)
k+=1;
else
k=0;
}

Hilaly
26-11-2010, 11:22
а если у вас вектор начинается так:
0.3 4 -2 ..
что выдаст ваша программа?) не надо обнулять k

DennyD
26-11-2010, 13:11
да вы правы))спасибо большое за помощь)только не понимаю почему когда обнуляешь к он выдает колличество равное нулю при первом элементе массива из промежутка [0;0.5] а следущем целым((а не 1

Hilaly
26-11-2010, 14:43
Ну как же?
В тексте программы написано что если некий элемент вектора не входит в заданный участок, то счетчик приравнять 0. а дальше он будет считать уже заново.

DennyD
26-11-2010, 21:11
аа все понял спасибо огромное))

kkapel
26-11-2010, 22:06
Нужно создать массив C из массивов A и B.Но только чтобы в массив C не попали элементы массива A,а только элементы массива B.Новый массив нужно упорядочить.Индексы массива вводим.Сами элементы рандомом создаются.Вот прога в сыром виде,ниче не пашет есс-но

#include "stdafx.h"
#include "conio.h"
#include "iostream"
#include <math.h>
#include "Ctime"

using namespace std;
int* delMas(int mas[], int &n, int ud_el);

void main();
{
int n,m;
int A[100],B[100]
cout << "Enter n: ";
cin >> n;
cout << "Enter m: ";
cin >> m;

if(n>100||m>100||n<0||m<0)
cout<<"error!";

int *(A) = new int [n];
for(int i=0;i<n;i++)
{
A[i]=rand()%100;
}

int *(B) = new int [n];
for(int i=0;i<n;i++)
{
B[i]=rand()%100;
}


cout<<"mas A ";
for(int i=0;i<n;i++)
{
cout<<A[i]<<" "<<endl; }


cout<<"mas B ";
for(int i=0;i<n;i++)
{
cout<<B[i]<<" "<<endl;}

for(int i=0;i<m;i++)
{
bool b=true;
for(int j=0;j<n;j++)
{

if(B[i]==A[j])
{
b=false;
break;
}
}
if(b == true)
{
C[k]=B[i];
k++;
}
}
bool t;
do
{
t=true;
for(int i=0;i<k-1;i++)
if(C[i]>C[i+1])
{
int temp=C[i+1];
C[i+1]=C[i];
C[i]=temp;
t=false;
}
}while (!t);



for(int i=0;i<k;i++)
cout<<"C["<<i<<"]= "<<C[i]<<endl;


getch();
return ;
}

Hector
26-11-2010, 22:21
Нужно создать массив C из массивов A и B.Но только чтобы в массив C не попали элементы массива A,а только элементы массива B. »
а зачем тогда массив А? упорядочить как? возрастание\убывание? достаточно отсортировать массив B или я чего-то не понял?

kkapel
26-11-2010, 22:31
Hector,
На основе исходных массивов A[n] и B[m] (n и m – рабочие размеры массивов) сформировать массив C, который будет состоять из чисел, которые входят в массив B, но при этом не входят в массив A. Упорядочить массив С по возрастанию, используя метод «пузырька». Вывести элементы массивов A, B и С на экран. Массивы A, B и C являются целочисленными. Значения m и n вводятся пользователем с клавиатуры. Значения элементов массивов A и B генерируются при помощи датчика случайных чисел. Элементы внутри массивов A и B не должны повторяться.

Drongo
27-11-2010, 01:19
Вижу такие ошибки:
1. Вызов стандартных заголовочных файлов как пользовательски h-файлов, через двойную кавычку, а не <iostream>, и т.д.
#include "stdafx.h"
#include "conio.h"
#include "iostream"
#include "Ctime"
2. Почему после функции точка с запятой?
...
void main();
...
3. Где здесь точка с запятой и инициализация масивов?...
int A[100],B[100]
...
4.Каким методом вы создаёте масивы, динамические или постоянные? Как их создать правильно?
int *(A) = new int [n];
int *(B) = new int [n];
5. Где у вас создаётся массив С с размером равным массивам А и В? У вас его нет. Допишите.
int *C = new int [n * m];
6. Откуда у нас взялась переменная k и что это за переменная? Почему она не объявлена и не инициализирована?
C[k]=B[i];
k++;

kkapel
27-11-2010, 13:10
Drongo,
мне бы надо постоянные массивы

kkapel
27-11-2010, 13:35
У меня же нужен динамический массив,а я использую указатели,что делать?




© OSzone.net 2001-2012