Перемнож. элементы массива

Тема в разделе "MS Visual C++", создана пользователем gps, 9 окт 2007.

Статус темы:
Закрыта.
  1. gps

    gps Гость

    Вот написал программу, которая перемнажает эементымассива и находят меньше 2.
    Подскажите как это можно реализовать на классах? Я только изучаю классы, хочу понять
    Код (Text):
    #include <iostream.h>
    void vvod(int n,int array[]);
    int proizved(int n,int array[],int rez);
    void vivod(int k);
    void dvoiki(int n, int array[]);
    main(){
    int n,array[100],rez=1,k,b;
    cout<<"n=";
    cin>>n;
    vvod(n,array);
    k=proizved(n,array,rez);


    vivod(k);
    dvoiki(n,array);
    return 0;}

    void vvod(int n,int array[]){
    for(int i=0;i<n;i++){
    cout<<"array["<<i<<"]=";
    cin>>array[i];}}

    int proizved(int n,int array[],int rez){
    for(int i=0;i<n;i++){
    rez*=array[i];}
    return rez;}

    void dvoiki(int n,int array[])
    {int kol=0;
    for(int i=0;i<n;i++)
    {if (array[i]<=2) {++kol;} }
    cout<<"ne dopushenih="<<kol<<"\n";}

    void vivod(int k){
    cout<<"rez="<<k<<endl;}
     
  2. grigsoft

    grigsoft Well-Known Member

    Регистрация:
    15 ноя 2005
    Сообщения:
    735
    Симпатии:
    0
    Шаг 1. Проанализируй задачу (код в твоем случае, что существенно упрощает дело) в поисках наборов данных, над которыми ведется работа. В твоем случае это очевидно - массив: указатель+длина.
    Шаг 2. Операции над данными превращаются в методы класса. Так что в простейшем случае твоя программа сведется к такой:
    Код (Text):
    main()
    {
    CWorkArray data;
    data.Vvod();
    data.Analiz();
    data.Vivod();
    }
    Но строго говоря, не царское это дело для массива данные от пользователя получать. Так что я бы оставил чистый массив отдельно, и добавил класс Приложение, которое бы включало экземпляр класса массив как данные. Но это сложнее и в твоем случае вряд ли того стоит. Но с точки зрения тренировки абстрактного подхода было бы полезно :)
     
  3. gps

    gps Гость

    Вы правильно заметили, мне это нужно для тренировки. Итак давайте с начала.
    Сначала мне нужно создать класс, объявить переменные. Объясните для чего нужно объявлять приватные переменные, а затем же и публичные. Почему? Не сочтите за глупость, я пытаюсь разобраться в ОПП.
     
  4. Pasha

    Pasha Гость

  5. gps

    gps Гость

    Спасибо за то что направили на правиьный путь.
    Вот как сделал
    Код (Text):
    #include <iostream.h>
    int n;
    class Mas
    {
    private:
    int array[100], int rez, int k;

    public:

    void vvod();
    int proizved();
    void vivod();
    void dvoiki();

    };

    void Mas::vvod()
    {
    for (int=0;i<n;i++)
    {
    cout <<"array["<<i<<"]=";
    cin>>array[i];
    }
    }
    int Mas::proizved(rez)
    {
    for (int=0;i<n;i++)
    {
    rez*=array[i];
    }
    return rez;
    }
    void Mas::dvoiki()
    {
    int kol=0;
    for (int=0;i<n;i++)
    {
    if(array[i]<=2)
    {
    ++kol;
    }
    }
    cout <<"ne dopuchenyh="<<kol<<"\n";
    }
    void Mas::vivod()
    {
    cout <"rez="<<k<<endl;
    }

    int main()
    {
    int rez=1,k,b;
    cout<<"n=";
    cin>>"n";
    Mas S;

    S.vvod();
    S.proizved(rez);
    S.vivod();
    S.dvoiki();
    }
    Но видимо я сделал ошибки причем сам синтаксис и алгоритм решения неправильный.
    Например правильно ли я вызвал S.proizved(rez); ?
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей