Форум: Форум C++Разное
Новые темы: 00
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

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

Сообщения:  [1-10]   [11-18] 

 
 автор: ols   (15.10.2007 в 13:45)   письмо автору
 
   для: ols   (11.10.2007 в 16:41)
 

up

  Ответить  
 
 автор: ols   (11.10.2007 в 16:41)   письмо автору
 
   для: ols   (09.10.2007 в 21:15)
 

Написал первый свой класс, правда сырой.
В классе есть еще ошибки. При написании класса опирался на учебник, перечитывал многократно, пытаясь понять суть.

#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();
}


Скажите правильно ли я составил алгоритм, или это можно было сделать по проще и лучше?

  Ответить  
 
 автор: ols   (09.10.2007 в 21:15)   письмо автору
 
   для: dima_s_d_s   (18.09.2007 в 20:47)
 


#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;}

А можно ли этот пример в виде класса описать?

  Ответить  
 
 автор: dima_s_d_s   (18.09.2007 в 20:47)   письмо автору
 
   для: keefree   (18.09.2007 в 01:41)
 


void main ()
{
const int size=17; //кол-во элементов (в динамическом массиве можно задавать кол-во элементов с клавиатуры, в нашем случае кол-во элементов должно определяться константой)

  int M=5,count = 1;
  int A[size];
for (int i=0; i<size; i++) {cout<<"A["<<i<<"]= "; cin>>A[i];  if (A[i]>M) count*=A[i];} // заполняем и сразу проверяем на наше условие
if (count!=1) {cout<<"перемнож элементы больше "<<M<<" = "<<count;}
else {cout<<"Нет элементов больше "<<M;}

}

  Ответить  
 
 автор: keefree   (18.09.2007 в 01:41)   письмо автору
 
   для: dima_s_d_s   (13.09.2007 в 19:14)
 

Переменую M сделал ввод с клавиатур. А как вводить лементы масива A с клавы? Тоесть, чтобы в программе не задавать в самом коде int A[] = {1, 2, 4, 4, 5, 2, 3, 5, 3, 2, 3, 1, 4, 5, 3, 4, 5};, а вводить с клавы

#include <iostream.h>
void main ()
{
  int M,count = 1;
  cout<<"M=";
  cin>>M;
  int A[] = {1, 2, 4, 4, 5, 2, 3, 5, 3, 2, 3, 1, 4, 5, 3, 4, 5};

for (int i=0; i<sizeof(A)/4; i++) {if (A[i]>M) count*=A[i];}
if (count!=1) {cout<<"перемнож элементы больше "<<M<<" = "<<count;}
else {cout<<"Нет элементов больше "<<M;}

}

  Ответить  
 
 автор: dima_s_d_s   (13.09.2007 в 19:14)   письмо автору
 
   для: keefree   (13.09.2007 в 18:06)
 


#include <iostream.h>

void main ()
{
  int M=5,count = 1;
  int A[] = {1, 2, 4, 4, 5, 2, 3, 5, 3, 2, 3, 1, 4, 5, 3, 4, 5};

for (int i=0; i<sizeof(A)/4; i++) {if (A[i]>M) count*=A[i];}
if (count!=1) {cout<<"перемнож элементы больше "<<M<<" = "<<count;}
else {cout<<"Нет элементов больше "<<M;}

}

  Ответить  
 
 автор: keefree   (13.09.2007 в 18:06)   письмо автору
 
   для: cheops   (10.09.2007 в 08:56)
 

извините что не в новой теме, но у меня почти подобный вопрос.


#include <iostream.h>

int main()
{
  int M=5
  int A[] = {1, 2, 4, 4, 5, 2, 3, 5, 3, 2, 3, 1, 4, 5, 3, 4, 5};

  int count = 0;

  for(int i = 0; i < M; i++)
  {
    /// Здесь перемножаем элементы массива только те которые больше M и выводим результат.
//Если больше M нет, то выводим сообщение об этом

  }



Как правильно реализовать?
}

  Ответить  
 
 автор: cheops   (10.09.2007 в 08:56)   письмо автору
 
   для: ols   (09.09.2007 в 21:51)
 

Строка
int n,array[100],rez=1,k,b;

объявляет целочисленные переменные, в том числе и массив array и переменную rez инициированную единицей.

  Ответить  
 
 автор: ols   (09.09.2007 в 21:51)   письмо автору
 
   для: cheops   (05.09.2007 в 14:05)
 

А для чего необходима rez=1,k,b;?

  Ответить  
 
 автор: ols   (09.09.2007 в 21:34)   письмо автору
 
   для: dima_s_d_s   (05.09.2007 в 13:51)
 

Спасибо, теперь вопрос. Мне необходимо заключить этот код ф функцию, затем ее вызвать. Это делается также как и в php? Покажите пример.

  Ответить  

Сообщения:  [1-10]   [11-18] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования