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

необходимо переделать программу, чтобы вместо обычных массивов были динмические - C++

Войти
Регистрация
Восстановить пароль
 
Kirill Losev
3 / 3 / 0
Регистрация: 01.10.2011
Сообщений: 249
15.11.2011, 20:00     необходимо переделать программу, чтобы вместо обычных массивов были динмические #1
всем заранее спасибо

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
# include "iostream"
# include <math.h>
# include "iomanip"
# include "strstream"
# include "fstream"
using namespace std;
 
int main()
{
    double a,s,eps;
    int i,tmp;
    fstream file;
    cout<<"Hi guys! This program is designed Losev Kirill to calculate the value using the formula!"<<endl;
    
    do 
    {
        cout<<endl<<"Please, enter eps=";
        cin>>eps;
            if ((eps<=0)||(eps<=0.01)) break;
            else cout<<"Slazhal! Please, enter anothr eps"<<endl;
    }
    while (1);
    cout<<"Your eps="<<eps<<endl;
    file.open("D://forlabs/l4.txt",ios::out);
        if (file.bad()!=0) 
            cout<<"\nError in open";
        else
        {
            a=1.0/7.0;
            s=a;
            i=0;
                file<<"\n"<<setw(5)<<"i"<<setw(15)<<"a"<<setw(15)<<"s"<<endl;
                cout<<"\n"<<setw(5)<<"i"<<setw(15)<<"a"<<setw(15)<<"s"<<endl;
            
    while((fabs(a)*(1-(3.0*i - 2.0)/(2.0*i + 5.0))>=eps)&&(i<100))
                {
                    if(i%23==22) cin>>tmp;
                        a *= (3.0*i - 2.0)/(2.0*i + 5.0);
                        s += a;i++;
                        file<<"|"<<setw(5)<<i<<"|"<<setw(15)<<setprecision(7)<<a<<"| "<<setw(15)<<setprecision(7)<<s<<"|"<<endl;
                        cout<<" |"<<setw(5)<<i<<"|"<<setw(15)<<setprecision(7)<<a<<"| "<<setw(15)<<setprecision(7)<<s<<"|"<<endl;
                }
        }
    file.close();
    cout<<endl<<"i="<<i<<endl;
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.11.2011, 20:00     необходимо переделать программу, чтобы вместо обычных массивов были динмические
Посмотрите здесь:

C++ Переделать программу под класс. Т.е. чтобы она работала так же, но с классом
Переделать программу, чтобы вывод осуществлялся в текстовый файл C++
Как сделать динамические массивы вместо обычных? Используя функции C++
как переделать задачу что б были указатели ? C++
Как лучше переделать программу чтобы отсутствовали глобальных переменных C++
Переделать программу, чтобы пузырьковая сортировка начиналась с первого элемента C++
Изменить программу, чтобы там вместо dir была какая-то моя команда, и выводила слова песни или речевки C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TwiX
60 / 60 / 1
Регистрация: 27.10.2011
Сообщений: 189
15.11.2011, 20:50     необходимо переделать программу, чтобы вместо обычных массивов были динмические #2
Во-первых, небольшая ошибочка)
Цитата Сообщение от Kirill Losev Посмотреть сообщение
This program is designed by Losev Kirill to calculate the value using the formula!
А во-вторых, я тут не нашёл никаких массивов
Kirill Losev
3 / 3 / 0
Регистрация: 01.10.2011
Сообщений: 249
15.11.2011, 22:08  [ТС]     необходимо переделать программу, чтобы вместо обычных массивов были динмические #3
блин, точно, спасибо
не тот код скинул
вот правильный

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
# include "iostream"
# include <math.h>
# include "iomanip"
# include "strstream"
# include "fstream"
#include "conio.h"
using namespace std;
 
int main()
{
    const unsigned max=100;
    int A[max][max],i,n,j,tmp,sum=0,sk1=0,skn=0,sb1=0,sbn=0;
    
        cout<<"Enter n=";
        cin>>n;
                if(n%2==0)
                    {cout<<"Your n - chetnoe"<<endl;
                            cout<<"Enter massiv elements:"<<endl;
                                ifstream is("D://forlabs/l6(ch).txt");
                                    for(int i=0;i<n;i++)
                                        for(int j=0;j<n;j++)
                                            {
                                                is >> A[i][j];
                                                
                                            }
                                is.close();
                                        cout<<"Your massiv elements: ";
                                            for(i=0;i<n;i++)
                                            for(int j=0;j<n;j++)
                                                cout<<"\n A["<<i<<"]["<<j<<"]= "<<A[i][j];
                                        for(j=0;j<n;j++)
                                            {   
                                                i=0;
                                                sk1=sum+=A[i][j];
                                            }
                                            cout<<endl<<"This is summ  of 1 stroki: "<<sum<<endl;
                                            sum=0;
                                        for(i=1;i<n;i++)
                                            {
                                                j=0;
                                                sb1=sum+=A[i][j];
                                            }
                                            cout<<"This is summ  of 1 stolbika: "<<sum<<endl;
                                            sum=0;
                                        for(j=1;j<(n-1);j++)
                                            {
                                                i=(n-1);
                                                skn=sum+=A[i][j];
                                            }
                                            cout<<"This is summ  of n stroki: "<<sum<<endl;
                                            sum=0;
                                        for(i=1;i<n;i++)
                                            {
                                                j=(n-1);
                                                sbn=sum+=A[i][j];
                                            }
                                            cout<<"This is summ  of n stolbika: "<<sum<<endl;
                                            sum=0;
        cout<<"All summ="<<sb1+skn+sbn+sk1+(A[1][1])+(A[(n-1)][1])+(A[(n-1)][(n-1)])+(A[1][(n-1)])<<endl;}
                else
                    {cout<<"Your n - nechetnoe"<<endl;
                                cout<<"Enter massiv elements:"<<endl;
                                ifstream is("D://forlabs/l6(Nch).txt");
                                    for(int i=0;i<n;i++)
                                        for(int j=0;j<n;j++)
                                            {
                                                is >> A[i][j];
                                                
                                            }
                                is.close();
                                        cout<<"Your massiv elements: ";
                                            for(i=0;i<n;i++)
                                            for(int j=0;j<n;j++)
                                                cout<<"\n A["<<i<<"]["<<j<<"]= "<<A[i][j];
                                        for(j=0;j<n;j++)
                                            {   
                                                i=0;
                                                sk1=sum+=A[i][j];
                                            }
                                            cout<<endl<<"This is summ  of 1 stroki: "<<sum<<endl;
                                            sum=0;
                                        for(i=1;i<n;i++)
                                            {
                                                j=0;
                                                sb1=sum+=A[i][j];
                                            }
                                            cout<<"This is summ  of 1 stolbika: "<<sum<<endl;
                                            sum=0;
                                        for(j=1;j<(n-1);j++)
                                            {
                                                i=(n-1);
                                                skn=sum+=A[i][j];
                                            }
                                            cout<<"This is summ  of n stroki: "<<sum<<endl;
                                            sum=0;
                                        for(i=1;i<n;i++)
                                            {
                                                j=(n-1);
                                                sbn=sum+=A[i][j];
                                            }
                                            cout<<"This is summ  of n stolbika: "<<sum<<endl;
                                            sum=0;
        cout<<"All summ="<<sb1+skn+sbn+sk1+(A[1][1])+(A[(n-1)][1])+(A[(n-1)][(n-1)])+(A[1][(n-1)])<<endl;}
return 0;
}
Добавлено через 49 секунд
или по этой программе

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
#include <iostream>
#include <iomanip>
#include <fstream>
#include <iostream>
#include <cmath>
using namespace std;
 
int main()
{
    const unsigned max=10;
    int A[max],i,n,tmp;
    unsigned L;
    int Ind[max];   
    
    do
    {
        cout<<"Enter n(1-10): n=";
        cin>>n;
        cout<<endl<<endl;
        if ((n<1)||(n>10))
        cout<<"Smile! Enter another n, please!"<<endl<<endl;
    }   
    while((n<1)||(n>10));
    
    ifstream is("D://forlabs/l5.txt");
        for(i=0;i<n;i++)
        {
            is>>A[i];
            cout<<"A["<<i<<"]="<<A[i]<<endl;
        }
    is.close();
                double res;
            int col=0, sum=0;
            bool fl=false;
            for(int i=0; i<n; i++)
            {
                    if(A[i]<0)
                    {
                            sum++;
                            if(!fl)
                                    fl=true;
                    }
                    else
                    {
                            if(fl)
                                    col++;
                            fl=false;
                    }
            }
            if(fl)
                    col++;
            if(col>0)
                    res=(double)sum/col;
            else
                    res=.0;
            cout<<endl<<"Srednya dlina '-' elementov l="<<res<<endl;
 
 
 
return 0;
}
TwiX
60 / 60 / 1
Регистрация: 27.10.2011
Сообщений: 189
15.11.2011, 22:14     необходимо переделать программу, чтобы вместо обычных массивов были динмические #4
Как я понял, нужно считать данные из файла. Для этого необходимо знать, сколько элементов в файле. Самый простой способ сделать это - в начале файла писать количество элементов. Т.е. если в нашем файле 5 интов, то файл будет ыглядеть примерно так:
Код
5
45 23 54 12 1
Тогда считывать надо будет так:
C++
1
2
3
4
5
int *A, size;
is >> size;
A = new int[size];
for (int i=0; i<size; i++)
  is >> A[i];
А дальше как обычно. Только в конце не забудь освободить память:
C++
1
delete [] A;
Kirill Losev
3 / 3 / 0
Регистрация: 01.10.2011
Сообщений: 249
17.11.2011, 20:02  [ТС]     необходимо переделать программу, чтобы вместо обычных массивов были динмические #5
как с помощью указателей это вывести?
C++
1
cout<<"All summ="<<sb1+skn+sbn+sk1+(A[1][1])+(A[(n-1)][1])+(A[(n-1)][(n-1)])+(A[1][(n-1)])<<endl;}
go
Эксперт C++
3584 / 1364 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
17.11.2011, 20:25     необходимо переделать программу, чтобы вместо обычных массивов были динмические #6
Цитата Сообщение от TwiX Посмотреть сообщение
сколько элементов в файле
Вот так, например,
C
1
2
3
while (!feof(in.file))
{
}
Kirill Losev
3 / 3 / 0
Регистрация: 01.10.2011
Сообщений: 249
17.11.2011, 20:28  [ТС]     необходимо переделать программу, чтобы вместо обычных массивов были динмические #7
go, хорошо, только что это?
Цитата Сообщение от go Посмотреть сообщение
(!feof(in.file)
go
Эксперт C++
3584 / 1364 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
17.11.2011, 20:31     необходимо переделать программу, чтобы вместо обычных массивов были динмические #8
Цитата Сообщение от Kirill Losev Посмотреть сообщение
как с помощью указателей это вывести?
Если честно, не знаю зачем здесь указатели, но если вы так хотите
C
1
2
3
4
float *f,ff;
ff=sb1+skn+sbn+sk1+(A[1][1])+(A[(n-1)][1])+(A[(n-1)][(n-1)])+(A[1][(n-1)]);
f=&ff;
printf ("%f", *f); // Выводим с помощью укзателя
Добавлено через 1 минуту
Цитата Сообщение от Kirill Losev Посмотреть сообщение
орошо, только что это?
http://www.cplusplus.com/reference/c...y/cstdio/feof/

Добавлено через 2 минуты
Цитата Сообщение от Kirill Losev Посмотреть сообщение
int A[max]
Если с помощью дин. памяти, то
C
1
2
int * A;
A = (int *) malloc (sizeof(int)*max);
Больше ничего не меняется
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2011, 20:40     необходимо переделать программу, чтобы вместо обычных массивов были динмические
Еще ссылки по теме:

Модернизировать программу, чтобы входные данные были многострочными значениями C++
Найти минимальное количество шариков, которое необходимо перекрасить, чтобы все шарики были одного цвета C++
Переделать программу так, чтобы можно было сохранить результат обработки C++
C++ Переделать программу так, чтобы каждый из кейсов был подключаемым модулем
Модифицируйте, пожалуйста, программу так, чтобы вместо 0 выводилось “false”, а вместо 1 – ”true” C++

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

Или воспользуйтесь поиском по форуму:
Kirill Losev
3 / 3 / 0
Регистрация: 01.10.2011
Сообщений: 249
17.11.2011, 20:40  [ТС]     необходимо переделать программу, чтобы вместо обычных массивов были динмические #9
go, спасибо!
даже больше, чем достаточно. спасибо большое
Yandex
Объявления
17.11.2011, 20:40     необходимо переделать программу, чтобы вместо обычных массивов были динмические
Ответ Создать тему
Опции темы

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