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

Элементарные программы, для лучшего понимания языка... - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 37, средняя оценка - 4.68
true_Den
2 / 2 / 0
Регистрация: 18.05.2011
Сообщений: 75
18.05.2011, 20:56     Элементарные программы, для лучшего понимания языка... #1
Здравствуйте. Вот сегодня решил что пора изучать с++. Есть пару задач. Начал решать и уже на первой запоролся( суть в том чтобы определить попадает ли точка в заштрихованную облась....

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    int x, y;
    cout << ("введите координаты точки");
    if ((x^2+y^2<1) && (y>1-x) & (y>1+x) && (y<-1-x) && (y<-1+x) then cout << ("принадлежит")); else cout << ("не принадлежит");
 
    return 0;
}
раньше писал в паскале, этот язык новый поэтому прошу помощи(
Вроде все правильно написал логическое И для выражений это &&...
Критике советам и тд буду только рад...
Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2011, 20:56     Элементарные программы, для лучшего понимания языка...
Посмотрите здесь:

C++ 3 элементарные заезженные программы, не займут у вас много времени)
C++ Какой компилятор выбрать для лучшего изучения С++ по книге Берна Страуструпа?п
C++ Вот для начинающих решённые элементарные задачки
C++ Выделение в исходном коде программы ключевых слов языка и операторов языка по словарю
C++ Транслятор из языка Паскаль в СИ (текст программы) возможен ли
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
true_Den
2 / 2 / 0
Регистрация: 18.05.2011
Сообщений: 75
18.05.2011, 21:39  [ТС]     Элементарные программы, для лучшего понимания языка... #21
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
А то может, перед return просто system("pause"); поставить?
Спасибо. После этого все заработало)

Добавлено через 42 секунды
я так понимаю можно поставить cin << x. и прога тоже заработает?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lamed
297 / 297 / 71
Регистрация: 07.05.2011
Сообщений: 592
18.05.2011, 21:40     Элементарные программы, для лучшего понимания языка... #22
Можно, но не нужно. Для каждой переменной свое предназначение.
ValeryLaptev
Эксперт C++
1004 / 783 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
18.05.2011, 21:40     Элементарные программы, для лучшего понимания языка... #23
Цитата Сообщение от true_Den Посмотреть сообщение
Спасибо. После этого все заработало)

Добавлено через 42 секунды
я так понимаю можно поставить cin << x. и прога тоже заработает?
Дык оно и раньше работало. Просто в программе не было оператора для остановки программы в нужном месте. Поэтому программа выполнялась правильно и просто заканчивалась.
true_Den
2 / 2 / 0
Регистрация: 18.05.2011
Сообщений: 75
18.05.2011, 21:46  [ТС]     Элементарные программы, для лучшего понимания языка... #24
Щас попытаюсь эту написать....
Миниатюры
Элементарные программы, для лучшего понимания языка...  
true_Den
2 / 2 / 0
Регистрация: 18.05.2011
Сообщений: 75
18.05.2011, 21:58  [ТС]     Элементарные программы, для лучшего понимания языка... #25
далеко не уходите)

Добавлено через 9 минут
примерно так? только я запоролся с тем как записать общий член...
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
#include "stdafx.h"
#include <iostream.h>
#include <math.h>
#include <stdio.h>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    
float a,s,zn,cn,eps,i,n;
char t;
cout <<"\n Vvedite n"; cin >>n;
s=1;
eps=0.001;
cn=1;
zn=1;
i=1+1;
while (cn/zn<eps)
{cn=;
zn=;
s=s+cn/zn;
cout<<"\n iskomoe tchislo  "  s;}
cin>>t;
}
 
    return 0;
}
Добавлено через 51 секунду
хотя нет, что то я перемудрил...
while(i)k++
48 / 48 / 5
Регистрация: 13.08.2010
Сообщений: 160
18.05.2011, 22:03     Элементарные программы, для лучшего понимания языка... #26
попробуй вместо точки поставить запятую или наоборот при вводе координат
true_Den
2 / 2 / 0
Регистрация: 18.05.2011
Сообщений: 75
18.05.2011, 22:13  [ТС]     Элементарные программы, для лучшего понимания языка... #27
Цитата Сообщение от while(i)k++ Посмотреть сообщение
попробуй вместо точки поставить запятую или наоборот при вводе координат
все с той программой закончили уже....

Добавлено через 3 минуты
Помогите лучше с этой:
Найти сумму ряда с точностью 0.001 общий член которого a(n)=n!/((3*n)^n)


Добавлено через 4 минуты
сам алгоритм правильный?
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
#include "stdafx.h"
#include <iostream.h>
#include <math.h>
#include <stdio.h>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
        
float a,s,zn,cn,eps,i,n;
char t;
cout <<"\n Vvedite n"; cin >>n;
s=1;
eps=0.001;
cn=1;
zn=1;
i=1+1;
while (cn/zn<eps)
{cn=;
zn=;
s=s+cn/zn;
cout<<"\n iskomoe tchislo  "  s;}
cin>>t;
}
 
        return 0;
}
ValeryLaptev
Эксперт C++
1004 / 783 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
18.05.2011, 22:29     Элементарные программы, для лучшего понимания языка... #28
1. Что такое i = 1+1?
2. while (cn/zn > eps)
true_Den
2 / 2 / 0
Регистрация: 18.05.2011
Сообщений: 75
18.05.2011, 22:33  [ТС]     Элементарные программы, для лучшего понимания языка... #29
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
1. Что такое i = 1+1?
2. while (cn/zn > eps)
1. ошибся i=i+1
2. ну типа пока общий член больше точности. я записал отдельно числитель и знаменатель....
ValeryLaptev
Эксперт C++
1004 / 783 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
18.05.2011, 22:35     Элементарные программы, для лучшего понимания языка... #30
Цитата Сообщение от true_Den Посмотреть сообщение
1. ошибся i=i+1
2. ну типа пока общий член больше точности. я записал отдельно числитель и знаменатель....
1. i в цикле НИКАК не используется.
2. У тебя написано было не больше, а меньше. А должно быть БОЛЬШЕ
true_Den
2 / 2 / 0
Регистрация: 18.05.2011
Сообщений: 75
18.05.2011, 22:42  [ТС]     Элементарные программы, для лучшего понимания языка... #31
это я переделывал свою прогу из паскаля поэтому такие косяки. спасибо
а как записать a(n)=n!/((3*n)^n)

Добавлено через 5 минут
C++
1
2
3
4
5
6
while (cn/zn>eps)
{
cn=;
zn=;
s=s+cn/zn;
cout<<"\n iskomoe tchislo  "  s;}
вот в cn и zn надо записать числитель и знаменатель.
ValeryLaptev
Эксперт C++
1004 / 783 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
18.05.2011, 22:44     Элементарные программы, для лучшего понимания языка... #32
Цитата Сообщение от true_Den Посмотреть сообщение
это я переделывал свою прогу из паскаля поэтому такие косяки. спасибо
а как записать a(n)=n!/((3*n)^n)
1. Сначала вычислить числитель cn = cn*i; Как раз тут i нужна в цикле.
2. Отдельно вычисляем 3^n и n^n. Первое вычисляется просто домножением на 3 отдельной переменной, например: n3 = n3 * 3.
Второе можно так: nn = pow(i,i); где i - то же самое, что и для факториала - увеличивается на каждом шаге.
А потом a = cn/(n3*nn);
true_Den
2 / 2 / 0
Регистрация: 18.05.2011
Сообщений: 75
18.05.2011, 22:49  [ТС]     Элементарные программы, для лучшего понимания языка... #33
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
1. Сначала вычислить числитель cn = cn*i; Как раз тут i нужна в цикле.
2. Отдельно вычисляем 3^n и n^n. Первое вычисляется просто домножением на 3 отдельной переменной, например: n3 = n3 * 3.
Второе можно так: nn = pow(i,i); где i - то же самое, что и для факториала - увеличивается на каждом шаге.
А потом a = cn/(n3*nn);
вы не могли бы это в коде с++ записать. а то чет я не очень понял...
ValeryLaptev
Эксперт C++
1004 / 783 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
18.05.2011, 22:53     Элементарные программы, для лучшего понимания языка... #34
C++
1
2
3
4
5
6
7
8
9
10
11
s = 0; cn = n3 = 1;
i =1; 
while (cn/zn>eps)
{ cn= cn*i;
  n3 =  n3*3;
  nn = pow(i,i);
  zn = n3*nn;
  s=s+cn/zn;
  ++i;
}
cout << s << endl;
true_Den
2 / 2 / 0
Регистрация: 18.05.2011
Сообщений: 75
18.05.2011, 23:02  [ТС]     Элементарные программы, для лучшего понимания языка... #35
что-то я совсем запутался.
алгоритм самой программы таков:
вводим n -> вводим точность -> пока общий член больше тоности считаем сумму s -> выводим s.
Так?
ValeryLaptev
Эксперт C++
1004 / 783 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
18.05.2011, 23:06     Элементарные программы, для лучшего понимания языка... #36
Да. Я написал цикл вычисления суммы с точностью до епсилон
true_Den
2 / 2 / 0
Регистрация: 18.05.2011
Сообщений: 75
18.05.2011, 23:09  [ТС]     Элементарные программы, для лучшего понимания языка... #37
т.е по идее это должно работать?
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
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <stdio.h>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
        
float n3, nn, a,s,zn,cn,eps,i,n;
 
cout <<"\n Vvedite n"; 
cin >>n;
s=1;
eps=0.001;
cn=1;
zn=1;
while (cn/zn>eps)
 
s = 0; cn = n3 = 1;
i =1; 
while (cn/zn>eps)
{ 
  cn= cn*i;
  n3 =  n3*3;
  nn = pow(i,i);
  zn = n3*nn;
  s=s+cn/zn;
  ++i;
}
 
s=s+cn/zn;
cout<<( "\n iskomoe tchislo  "  s);
 
 
 
        return 0;
}
ValeryLaptev
Эксперт C++
1004 / 783 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
18.05.2011, 23:16     Элементарные программы, для лучшего понимания языка... #38
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
#include "stdafx.h"
#include <iostream>
#include <сmath>
#include <сstdio>                    // -- не нужно --
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
        
float n3, nn, a,s,zn,cn,eps,i,n;
// -- ввода n - не нужно -- 
cout <<"\n Vvedite n"; cin >>n;
eps=0.001;
s = 0; cn = n3 = 1;
i =1; 
while (cn/zn>eps)
{ 
  cn= cn*i;
  n3 =  n3*3;
  nn = pow(i,i);
  zn = n3*nn;
  s=s+cn/zn;
  ++i;
}
cout<<( "\n iskomoe tchislo  "  s);
 
system("pause"); 
 
        return 0;
}
true_Den
2 / 2 / 0
Регистрация: 18.05.2011
Сообщений: 75
18.05.2011, 23:20  [ТС]     Элементарные программы, для лучшего понимания языка... #39
Всем спасибо за внимание) на сегодня пожалуй хватит...
Завтра еще приду))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.05.2011, 07:39     Элементарные программы, для лучшего понимания языка...
Еще ссылки по теме:

На соревнованиях по фигурному катанию оценки заносятся в компьютер. Составить программу для вывода на экран лучшего результата после каждого выступлен C++
C++ Какая база требуется для понимания C++?
C++ Нужен пример рекурсивной функции для понимания ее назначения и практической пользы

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

Или воспользуйтесь поиском по форуму:
Toxabuch
 Аватар для Toxabuch
0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 13
19.05.2011, 07:39     Элементарные программы, для лучшего понимания языка... #40
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
int main()
// int _tmain(int argc, _TCHAR* argv[])
{
    setlocale (0,"rus"); //для отображения русских букв.
    double x, y;
    cout << "введите координаты точки" << endl;
    cin >> x;
    cin >> y;
    if ((x*x+y*y<1) && (y>1-x) & (y>1+x) && (y<-1-x) && (y<-1+x))
        cout << "принадлежит" << endl;
    else
        cout << "не принадлежит" << endl;
    system ("pause");
    return 0;
//Проверено на Microsoft Visual C++2010, экспресс-выпуск
}
Yandex
Объявления
19.05.2011, 07:39     Элементарные программы, для лучшего понимания языка...
Ответ Создать тему
Опции темы

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