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

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

Восстановить пароль Регистрация
 
Makler
Сообщений: n/a
22.12.2009, 19:17     Блоксхема к двум небольшим программам #1
Народ помогите кто-нибудь нарисовать или начертить блок схему вот к таким программам,очень нужно,заранее спасибо,если что-то нужно обращайтесь. Просто если в ближайшие пару дней не сдам, к сессии недопущюсь, выручите кто-нибудь пож.
вот программы:
Всё на с++:
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++ Как относитесь к таким программам?
C++ Нужно разобраться с небольшим примером
C++ блоксхема
C++ Нужна блоксхема
C++ Требования разных сред к простейшим программам С++
C++ Из паскаля в c++ с небольшим изменением
Структура, трудности с небольшим циклом C++

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

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

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