Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.11.2011, 11:46   #1
zipo666
Пользователь
 
Регистрация: 01.11.2011
Сообщений: 42
Радость Работа с циклом ( находим сумму) - не могу понять , где ошибся )

Всем привет)
Начну с главного .. В общем вот сама задачка( номер 100!!!) - :

Хм...многие скажут ...:
- не не братюнь мы за тя бездыря решать не будем ...
Однако , у меня есть доки что я не бездырь ---
обычно я если не могу решить задачу - я ее все равно решаю ,)Говорить о том что эта задача сложная - не надо , она все же простая ....Замечу что задачи с номером 98 и 103 я решил как 2 пальца об носок , и 1 через дырку в нем )Так же замечу , что над этой задачей я просидел 15 минут - , и решил ее , однако как оказалось решил ее правильно только для цикла идущего в 5 шагов , а не в сто или 200 )=> задача неправильно решена ... Вот тут то я уже и стал думать над моей ошибкой , и думал я 3 дня и 3 ночи , часов по 5 )
Но увы так и не понял где же я ошибся ))
Вот обращаюсь к вам , господа Профессионалы !!
П.С вот тут вот вы можете видеть то что нарешал я сам :

// 100.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include <stdio.h>
#include <tchar.h>
#include <math.h>
#include <conio.h>
#include <iostream>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
double x1,x2,x3,x4,t,s,p,i,n;
cout<<"enter n : ";
cin>>n;
if (n>0)
{
for (i=1,x1=1,x2=1,x3=1,x4=0,s=0,p=0,t= 0;i<=n;i++)
{
t=pow(2,i);
p=x1/t;
x1=x2;
x2=x3;
x4=x3+x1;
x3=x4;
s+=p;

}
cout<<"Summa = "<<s;
}
else
cout<<"Summa = 0 ";
getch();
return 0;
}

HELPPPPP!!!!!blblblblbl
zipo666 вне форума Ответить с цитированием
Старый 01.11.2011, 12:08   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

1) pow - довольно "дорогая" функция, без необходимости ей лучше не пользоваться. Два варианта на замену:
t*=2;//Изначально t должно быть равно 1
t=1 << i;

2) Есть хороший инструмент отладчик, он позволил бы увидеть ошибку очень быстро.
Смотрите: Вы сначала присваиваете x1 x2, а потом считаете x4=x3+x1.

Последний раз редактировалось Abstraction; 01.11.2011 в 12:52.
Abstraction вне форума Ответить с цитированием
Старый 01.11.2011, 12:21   #3
zipo666
Пользователь
 
Регистрация: 01.11.2011
Сообщений: 42
По умолчанию

Вот я дурак , про отладчик не знаю , где он находится ?? Это вы имеете в виду OllyDbg ????
Я в с++ совсем недавно сижу , дней 5 )
А вам уважаемый , большущее спасибо !!!! Я бы и не заметил это1 ошибочки ))))
zipo666 вне форума Ответить с цитированием
Старый 01.11.2011, 12:51   #4
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

ИСР (интегрированная среда разработки, такая как Borland Builder, Qt Creator, Visual Studio) содержит средства отладки в терминах исходного кода. Команды доступны из меню Debug/Отладка и позволяют идти по строкам исходного кода, просматривая значения переменных.
OllyDbg - это отдельный отладчик, заметно более тяжёлый в использовании инструмент. При обычной отладке собственных программ он не нужен.
Abstraction вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу понять где ошибка. Демик Общие вопросы C/C++ 4 27.05.2011 13:31
не могу понять где ошибка Neon-z PHP 13 22.01.2011 16:15
Не могу понять где ошибка Азиза Общие вопросы C/C++ 1 11.01.2011 14:03
Не могу понять, где ошибка( IROKEZ Общие вопросы C/C++ 4 16.12.2010 21:00