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

Циклы с условием окончания - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Оператор For и дроби http://www.cyberforum.ru/cpp-beginners/thread682642.html
Написать при помощи оператора For..... которая считает величину (см. прикрепленный файл) { int n,K; float S,a; n=StrToInt(Edit1->Text); K=1; S=0; for(K<=n;K++;) { a=1/(2*K+2.0)+1/(2*K);
C++ генерация случайных букв как можно с помощью рандома запрограммировать режим генерации случайных букв (для азбуки Морзе)? есть маленькие соображения но думаю они не верны, знаний маловато. Или это вообще делается не так? #include <random> int n={A||a;Z||z}; random() % n; // случайная буква от A(a) до Z(z) http://www.cyberforum.ru/cpp-beginners/thread682629.html
C++ Найти книгу с определенным название
Определить, имеется ли в списке учебников книга с определенным названием. Если да, то вывести фамилию автора, название и год издания.
Обмен местами корня дерева и узла с минимальным значением C++
Вроде несложная задачка но не как не могу найти как реализовать "Обмен местами корня дерева и узла с минимальным значением " в виде отдельной функции
C++ Работа с символьныи массивом http://www.cyberforum.ru/cpp-beginners/thread682600.html
Всем доброго времени суток Есть вопрос по задачке. Даны натуральное число n, символы s1, …, sn. Получить первое натуральное число i, для которого каждый из символов si и si+1 совпадает с буквой a. Если такой пары символов в последовательности s1, …, sn нет, то ответом должно быть число 0. Собственно говоря то что не получается это заставить работать вывод символьного массива, не знаю что...
C++ Фокус консоли Как мне реализовать условие: Если консоль потеряла фокус, установить его... Мне нужно чтобы пользователь не смог при включенной программе ничего делать... подробнее

Показать сообщение отдельно
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
28.10.2012, 20:57     Циклы с условием окончания
Добавлено через 5 минут
ну вот совсем другая постановка вопроса =)
сразу совет, не пишите все в мэйне, делайте функции это значительно увеличит читабельность а следовательно поиск потенциальных ошибок.

вот исправленный код
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
#include <stdio.h>
#include <math.h>
#include <vcl.h>//Вот это
#pragma hdrstop//не знаю зачем подключаете
#pragma argsused//но пусть будет
 
double Fuct(int n){
    int fuct=1,buf=n;
    while(buf!=1){//соответственно нахождения факториала 
        fuct*=buf;
        buf--;
   }
    return (double)fuct;
}
void main(){
    printf ( "\n\t * rabota # 3 * \n");
    printf ( "\n Student var 5 \n");
    double eps=0.0001,res1=-2.0,res2=-1.0,n=1;
    while(abs(res1-res2)>eps){//на бесконечность программу же не заточишь =) найти как предел находить тоже не нашел, придумал по быстрому вот это, пока точность текучего и следующего значения суммы больше заданной точности находить следующее слогаемое
        res1=pow(Fuct(n++),2)/Fuct(2*n);//соответственно нахождение первого слагаемого и инкримент n
        res2=pow(Fuct(n++),2)/Fuct(2*n);//нахождение второго слагаемого и инкримент
    }
    printf ( "\n Summa ravna: %f\n",res1);//вывод результата
}
Добавлено через 5 минут
также эту разность можно запоминать и если следующая разность будет больше чем текущая - вывод что ряд не сходится и завершение цикла

Добавлено через 6 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
bool fl=true;
double sh=10000;
while((abs(res1-res2)>eps)&&fl){
    if(abs(res1-res2)>sh)
        fl=false;
    res1=pow(Fuct(n++),2)/Fuct(2*n);
    res2=pow(Fuct(n++),2)/Fuct(2*n);
    sh=abs(res1-res2);
}
if(fl)
    printf("Ryad ne sthoditsya\n");
else
    printf("Ryad sthoditsya\n Summa ravna: %f\n",res1);
Добавлено через 12 минут
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru