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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Makler
Сообщений: n/a
#1

Блоксхема к двум небольшим программам - C++

22.12.2009, 19:17. Просмотров 433. Ответов 0
Метки нет (Все метки)

Народ помогите кто-нибудь нарисовать или начертить блок схему вот к таким программам,очень нужно,заранее спасибо,если что-то нужно обращайтесь. Просто если в ближайшие пару дней не сдам, к сессии недопущюсь, выручите кто-нибудь пож.
вот программы:
Всё на с++:
1)задача проги такая : вводится квадратное уравнение прям в командную строку,например: 0,23х*х+1,56х+0,12=0 и надо найти корни, но главное чтобы коэффициенты были дробными
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
const int N=20;
char* pstr;
 
float analyze(int flag,bool* er)
{
    int n=0;
    float x=0;
    char buff[N];
 
    for(int i=0;i<N;i++)
        buff[i]='\0';
 
        while(1)
        {
            if((*(pstr+n)>='0' && *(pstr+n)<='9') || *(pstr+n)=='.' || *(pstr+n)=='+' || *(pstr+n)=='-')
                n++;
            else if(*(pstr+n)!='x' && *(pstr+n)!='*' && *(pstr+n)!='\0')
                {
                    std::cout<<"Error"<<std::endl;
                    *er=true;
                    return 0;
                }
            else break;
        }
        if(n!=0)
        {
            strncpy(buff,pstr,n);
            x=strtod(buff,NULL);
        }
        else if(flag==2)
        {
             x=0;
        }
             else x=1;
        pstr+=n;
        switch(flag)
        {
            case 0 : if(n!=0)
                     {
                        if(*pstr!='*')
                        {
                            std::cout<<"Error"<<std::endl;
                            *er=true;
                            return 0;
                        }
                        pstr+=1;
                     }
                     if(strncmp(pstr,"x^2",3)!=0)
                     {
                        std::cout<<"Error"<<std::endl;
                        *er=true;
                        return 0;
                     }
                     pstr+=3;
                     break;
            case 1:  if(strncmp(pstr,"*x",2)!=0)
                     {
                        if(n==1)
                        {
                            if (*(pstr-n)=='+')
                            {
                                x=1;
                                pstr+=n;
                            }
                            else if(*(pstr-n)=='-')
                            {
                                x=-1;
                                pstr+=n;
                            }
                            else
                            {
                                std::cout<<"Error"<<std::endl;
                                *er=true;
                                return 0;
                            }
                            break;
                        }
                        if(*(pstr+n)=='\0')
                        {
                            x=0;
                            pstr-=n;
                            break;
                        }
                     else
                     {
                        std::cout<<"Error"<<std::endl;
                        *er=true;
                        return 0;
                     }
                     pstr+=2;
                     break;
                    }
        }
    return x;
}
 
int main()
{
    char A[N];
    float a=0,b=0,c=0,d;
    bool er=false;
 
    for(int i=0;i<N;i++)
        A[i]='\0';
 
 
    std::cin>>A;
    pstr=A;
    a=analyze(0,&er);
    if(er)
        return 0;
    b=analyze(1,&er);
    if(er)
        return 0;
    c=analyze(2,&er);
    if(er)
        return 0;
    d=(b*b-4*a*c);
    float x1=0,x2=0;
    if(d>=0)
    {
        x1=(-b+sqrt(d))/(2*a);
        x2=(-b-sqrt(d))/(2*a);
        std::cout<<"X1="<<x1<<std::endl;
        std::cout<<"X2="<<x2<<std::endl;
    }
    else std::cout<<"gg"<<std::endl;
    return 0;
}

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <iostream>
#include <string.h>
#include <stdlib.h>
const int N=640;
 
int main()
{
    srand(time(0));
    char basetx[N],buff[N],*pstr;
    int num[N],pnt[N],flag;
    for(int i=0;i<N;i++)
    {
        flag=(int)(rand()%6);
        if(flag==0 && i!=0)
            if(basetx[i-1]!=32)
                basetx[i]=32;
            else
                basetx[i]=(char)(rand()%26)+97;
        else if(flag>=1 && flag <3)
                basetx[i]=(char)(rand()%26)+65;
             else if(flag>=3 && flag<=5)
                    basetx[i]=(char)(rand()%26)+97;
        buff[i]='\0';
        num[i]=0;
        pnt[i]=0;
    }
    basetx[N]='\0';
    std::cout<<"Main text:\n----------\n"<<std::endl;
    for(int i=0;i<N;i++)
        std::cout<<(char)basetx[i];
    int j=0,n=0;
    for(int i=0;i<strlen(basetx)+1;i++)
    {
        if(basetx[i]!=' ' && basetx[i]!='\0')
        {
            if(n==0)
                pnt[j]=i;
            n++;
        }
        else if(n!=0)
             {
                num[j]=n;
                j++;
                n=0;
             }
    }
    int ibuff=0;
    bool srt=true;
    while(srt==true)
    {
        srt=false;
        for(int i=0;i<j;i++)
            if(num[i]<num[i+1])
            {
                ibuff=num[i];
                num[i]=num[i+1];
                num[i+1]=ibuff;
                ibuff=pnt[i];
                pnt[i]=pnt[i+1];
                pnt[i+1]=ibuff;
                srt=true;
            }
    }
    std::cout<<"\n\n\nSorted text:\n------------\n"<<std::endl;
    for(int i=0;i<j;i++)
    {
        pstr=basetx;
        int k=0;
        while(buff[k]!='\0')
        {
            buff[k]='\0';
            k++;
        }
        strncpy(buff,(pstr+pnt[i]),num[i]);
        std::cout<<buff<<" ";
    }
    std::cout<<"\b"<<std::endl;
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2009, 19:17     Блоксхема к двум небольшим программам
Посмотрите здесь:

блоксхема - C++
Помогите пожалуйста сделать блок схему для этой пронрамы #include &quot;stdafx.h&quot; #include&lt;iostream&gt; #include&lt;iomanip&gt; ...

Нужна блоксхема - C++
Нужна блоксхема срочно, помогите пожалуйста #include &quot;StdAfx.h&quot; #include &lt;iostream&gt; #include &lt;ctime&gt; using namespace...

Из паскаля в c++ с небольшим изменением - C++
Ребят помогите написать прогу на с++, а так же переделать под файлы. (Само задание:Пусть дан файл целых чисел. Создайте новый файл,...

Структура, трудности с небольшим циклом - C++
Есть небольшой кусочек кода struct Datalib{ // объявляем структуру string lastName; // фамилия string ddmmyy; // год...

Нужно разобраться с небольшим примером - C++
Здравствуйте . Есть такая программа , где два массива записываются в 2 разных файла , потом считываются с него , а далее нужно найти общие...

Определите, лежат ли все три точки заданного множества к заданному эллипсу - блоксхема - C++
Может скинуть примеры блок-схем связанные с эллипсом.Пожалуйста))

Написать псевдокод к программам - C++
Помогите написать псевдокод к программам: 1) Подсчет чисел Фибоначчи рекурсией и циклом: #include &lt;iostream&gt; #include &lt;windows.h&gt; ...

Нужны комментарии к программам - C++
обьясните пожалуйста проги, что делают какие строчки 2.1. Алгоритм уравнения прямой y = ax + b. #include &lt;time.h&gt; #include...

Как относитесь к таким программам? - C++
#include &lt;iostream&gt; #define Целое int #define Мэин main #define ЛеваяКруглаяСкобка ( ...

Требования разных сред к простейшим программам С++ - C++
Чем объяснить что компиляторы разных сред по разному понимают объявление потоковых классов fstream iostream ? Например в среде С++...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru