Форум программистов, компьютерный форум CyberForum.ru

Помогите с задачкой. - C++

Восстановить пароль Регистрация
 
rovel
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 25
14.10.2011, 00:44     Помогите с задачкой. #1
Поместить элементы массива X в начало массива Y в обратном порядке, исключив элементы, превосходящие по абсолютной величине вводимое значение R.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2011, 00:44     Помогите с задачкой.
Посмотрите здесь:

C++ Помогите с задачкой на С++
Помогите с олимпиадной задачкой ( C++
C++ помогите с задачкой((
Помогите с Задачкой C++
C++ Проблема с задачкой
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
14.10.2011, 01:16     Помогите с задачкой. #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <stdio.h>
#include <stdlib.h>
 
#define N 10
 
int main()
{   
   int x[N];
   int y[N];
   
   int i;
   int r;
   int y_size = 0;
   
   printf("input array(x):\n");
   for(i = 0; i < N; ++i)
   {
      printf("%d: ", i + 1);
      scanf("%d", &x[i]);
   }
   
   printf("input r: ");
   scanf("%d", &r);
 
 
   for(i = N-1; i >= 0; --i)
      if(abs(x[i]) <= abs(r))
     y[y_size++] = x[i];
   
   printf("array(y):\n");
   for(i = 0; i < y_size; ++i)
      printf("%d ", y[i]);   
   putchar('\n');  
 
   return 0;
}
hoot
 Аватар для hoot
100 / 21 / 3
Регистрация: 10.11.2010
Сообщений: 193
14.10.2011, 03:18     Помогите с задачкой. #3
Вот мой вариант решения.

Есть ОГРОМНОЕ подозрение, что можно улучшить код. Буду рад за помощь. Одна просьба улучшения писать с коментами. А-то я только учусь.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
 
using namespace std;
 
//Программа меняет
int main()
{
setlocale (LC_ALL,"russian");
 
int x[3];//массив заполняемый пользователем.
int y[3];//выводимый массив.
int a=0,b=0,c=0;
int z=0;
 
cout<<"Введите число которое необходимо исключить: ";
cin>>z;
cout<<"Введите значения массива.\n";
for(a=0,b=2;a<3,b>=0;a++,b--)
{
    cout<<a<<" элемент массива:";
    cin>>x[a];
    if(x[a]!=z && x[a]!=-z)
    y[b]=x[a];
    else
    y[b]=0;
 
}
 
cout<<"\nРезультат:"<<endl;
for(c=0;c<3;c++)
{
cout<<c<<"  элемент масива: "<<y[c]<<endl;
}
 
system ("pause");
return 0;
}
rovel
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 25
14.10.2011, 12:42  [ТС]     Помогите с задачкой. #4
Спасибо вам большое...но я вводил это все в visual studio 2010 и там мне столько ошибок выдало...короче программа даже не запустилась к сожалению(((
aeshes
 Аватар для aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
14.10.2011, 13:18     Помогите с задачкой. #5
rovel, программа от rangerx абсолютно рабочая, в Visual Studio 2010 запускается и выполняется. Может, ты невнимательно набирал? Если у тебя какие-то ошибки, то напиши их здесь
hoot
 Аватар для hoot
100 / 21 / 3
Регистрация: 10.11.2010
Сообщений: 193
14.10.2011, 15:27     Помогите с задачкой. #6
Да, напиши.
Я набирал код в visual studio 2010 и все работает.
Что за ошибки?
KeyGen
 Аватар для KeyGen
333 / 289 / 6
Регистрация: 07.08.2011
Сообщений: 789
Записей в блоге: 1
14.10.2011, 19:43     Помогите с задачкой. #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <iostream>
 
using std::cout;
using std::cin;
using std::endl;
    
int main()
{
    setlocale(LC_ALL, "rus");
    
    int mass1[10]={1,2,3,4,5,6,7,8,9,100};
    int mass2[10]={2,3,4,5,6,7,8,9,10,11};
    
    int k=0;
    int temp=0;
    int max=0;
    for(int i=0; i<10; i++){
            if(temp<mass1[i])
            temp=mass1[i];
            for(int j=0; j<10; j++){
            if(mass2[j]==temp)
            k++;
            }
            if(k==0)
            max=temp;
            else
            k=0;
            }
            
    temp=999999999;
    int min=0;
    for(int i=0; i<10; i++){
            if(temp>mass1[i])
            temp=mass1[i];
            for(int j=0; j<10; j++){
            if(mass2[j]==temp)
            k++;
            }
            if(k==0)
            min=temp;
            else
            k=0;
            }
    
    if(max==0)
    cout << "ГЌГҐГІ Г*Г*èáîëüøåãî Г·ГЁГ±Г«Г*!";
    else
    cout << "ГЌГ*èáîëüøåå ÷èñëî: " << max;
    
    if(min==0)
    cout << "\nГЌГҐГІ Г*Г*èìåГ*üøîãî Г·ГЁГ±Г«Г*!";
    else
    cout << "\nГЌГ*èìåГ*ГјГёГҐГҐ ÷èñëî: " << min;
    
    
    cout << "\n\n\n";
    system("PAUSE");
    return 0;
}
KeyGen
 Аватар для KeyGen
333 / 289 / 6
Регистрация: 07.08.2011
Сообщений: 789
Записей в блоге: 1
14.10.2011, 19:57     Помогите с задачкой. #8
Выполнение:
Миниатюры
Помогите с задачкой.  
САНЫЧ
Сообщений: n/a
14.10.2011, 19:58     Помогите с задачкой. #9
Вычислить значение функции y(x). Значения переменной x и параметров a и b вводить с клавиатуры (Параметр a вещественного типа , параметр b целочисленный.
http://www.cyberforum.ru/cgi-bin/latex.cgi?y=({cos(a*x)}^{b/3})^{1/2}

вот мой вариант, но при определенных значениях он выдает ошибку в вычислении:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{double a,b,x,y;
char c;
do {
cout<<"x=";
cin>>x;
cout<<"a=";
cin>>a;
cout<<"b=";
cin>>b;
y=sqrt(pow(cos(a*x),b/3));
if (pow(cos(a*x),b/3)<0) cout <<"neverno"<< endl;
else cout<<"y="<<y<<endl;
cout<<"Press r to return"<<endl;
    cin>>c;}
while(c=='r');
 
    return 0;
}
помогите пожалуйста правильно задать ограничение.

 Комментарий модератора 
Используйте теги форматирования кода!
rovel
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 25
14.10.2011, 20:07  [ТС]     Помогите с задачкой. #10
А в данных прогах вы учитывали вот это условие- исключив элементы, превосходящие по абсолютной величине вводимое значение R.?
hoot
 Аватар для hoot
100 / 21 / 3
Регистрация: 10.11.2010
Сообщений: 193
14.10.2011, 20:21     Помогите с задачкой. #11
Я учитывал.
Так что за ошибки у тебя выдает, и работает мой код у тебя?
Я писал на 2010 вижуале.
rovel
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 25
15.10.2011, 21:46  [ТС]     Помогите с задачкой. #12
вы написали проги по другому ...мы не используем операторы cin, cout и некоторые другие...Мы используем printf и все такое...так это все правильно да?
aeshes
 Аватар для aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
15.10.2011, 21:51     Помогите с задачкой. #13
rovel, если вы пишите на С, то вам и нужно использовать printf/scanf, потому как cin/cout там просто нету. Если пишите на С++, то можете использовать и то, и то, но лучше все-таки потоки cin/cout
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.10.2011, 18:29     Помогите с задачкой.
Еще ссылки по теме:

Помогите с простой задачкой. C++
Помогите с действительно простой задачкой. C++
C++ Помогите с задачкой, пожалуйста. (С++)

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
rovel
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 25
18.10.2011, 18:29  [ТС]     Помогите с задачкой. #14
Для функции F(x)-2Xe^(-x)^2\1+e^(-x)^2 и вводимого значения X при K приращениях аргумента
DX=(-0,0005; -0,001; -0,002; -0,004; …) вычислить в цикле do while:
- точное значение приращения первообразной DP=ln(1+e^-(x+dx)^2)-ln(1+e^(-x)^2)
- а также вычислить
- по формуле F(X+DX/2)•DX - приближенные значения приращения первообразной
а) упростив вычисления за счет дополнительных переменных,
б) не используя дополнительных переменных,
- абсолютные ошибки и относительные ошибки в процентах для вычисленных приближенных значений.
Результаты вычислений и соответствующие значения DX вывести в виде таблицы с заголовками столбцов.

Я вот написал прогу , но она работает неправильно.Может мне кто-нибудь подсказать где я ошибся?

Добавлено через 17 секунд
А вот сама прога.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
#include <iostream>
#include <conio.h>
int _tmain()
{
setlocale (LC_ALL,"russian");
 
double x,y,dx,dp,a,y1,k;
 
printf ("X=");
scanf("%lf", &x);
do{
dx=-0.0005;
dp=log(1+exp(-pow((x+dx),2)))-log(1+exp(-pow(x,2)));
y=-2*(x+dx/2)*exp(-pow(x+dx/2,2))/(1+exp(-pow(x+dx/2,2)))*dx;
a=x+dx/2;
y1=(-2*a*exp(-pow(a,2)))/(1+exp(-pow(a,2)));
 
printf("\n%3.8lf  %3.7lf %3.7lf", dx,y,y1);
 
}
while(dx>-0.0005);
 
getch();
return 0;
}
 Комментарий модератора 
Используйте теги форматирования кода!
Yandex
Объявления
18.10.2011, 18:29     Помогите с задачкой.
Ответ Создать тему
Опции темы

Текущее время: 00:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru