1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Незнаю Как Сделать Програму На С++

Тема в разделе "Вопросы новичков и не только", создана пользователем vovamakarovych, 27 ноя 2011.

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

    vovamakarovych Гость

    Репутация:
    0
    у меня есть 2 програмы. Мне нужно их переписать с использованием методов программирования с помощью функций:

    - Функция для ввода значений массива с клавиатуры;
    - Функция для вычисления значений по вашему варианту;
    - Функция для вывода результатов на экран.

    Мои програмы:
    1
    Код:
     #include <iostream> 
    using namespace std;
    
    int main() {
    setlocale(LC_ALL,"Russian");
    const int arraySize = 10;
    int A[arraySize];				
    int index_min = 0;								 
    cout<<"Введите массив из 10 элементов.\n";
    for (int j=0; j<arraySize; j++)
    {
    cout << "A[" << j << "]= ";
    cin>>A[j];
    }
    int min_elem = A[0];
    for (int j = 0; j < arraySize; j++)
    {
    if (min_elem > A[j])
    {
    min_elem = A[j];
    index_min = j;
    }
    }
    cout << "Минимальное значение = " << min_elem << " его индекс =" << index_min<< '\n';
    system("pause");
    }
    2
    Код:
    #include <iostream>
    using namespace std;
    int main() 
    {
    setlocale(LC_ALL,"Russian");
    const int arraySize = 10;
    int A[arraySize];
    int *ptr=&A[0];
    int index_max = 0;							 
    
    cout<<"Введите массив из 10 элементов.\n";
    for (int j=0; j<arraySize; j++)
    {
    cout << "A[" << j << "]= ";
    cin>>ptr[j];
    }
    int max_elem = A[0];
    
    for (int j = 0; j < arraySize; j++)
    {
    if (max_elem < ptr[j])
    
    max_elem = ptr[j];
    index_max = j;
    
    }
    cout << "Максимальное значение = " << max_elem << " его индекс =" << index_max<< '\n';
    system("pause");
    }
     
  2. Whatka

    Whatka Well-Known Member

    Репутация:
    0
    Регистрация:
    9 окт 2011
    Сообщения:
    428
    Симпатии:
    4
    вот приблизительно набросал (1) :

    Код:
     void vvod(int *A,int arraySize)
    {
    int j;
    cout<<"Введите массив из 10 элементов.\n";
    for (j=0; j<arraySize; j++)
    {
    cout << "A[" << j << "]= ";
    cin>>A[j];
    }
    }
    int function(int arraySize,int *A,int min_elem,int index_min )
    {
    int j;
    for (j=0;j<arraySize;j++)
    {
    if (min_elem > A[j])
    {
    min_elem = A[j];
    index_min = j;
    }
    }
    return min_elem;
    }
    int function1(int arraySize,int *A, int min_elem,int index_min )
    {
    int j;
    for (j=0;j<arraySize;j++)
    {
    if (min_elem > A[j])
    {
    min_elem = A[j];
    index_min = j;
    }
    }
    return index_min;
    }
    
    void out(int min_elem ,int index_min)
    {
    cout << "Минимальное значение = "<< min_elem << " его индекс =" << index_min<< '\n';
    }
    int main()
    {
    setlocale(LC_ALL,"Russian");
    const int arraySize(10);
    int A[arraySize],index_min(0);				
    vvod(A,arraySize);
    int min_elem=A[0];
    min_elem=function(arraySize,A,min_elem,index_min);
    index_min=function1(arraySize,A,min_elem,index_min);
    out(min_elem ,index_min);
    }

    вторую сам сделаешь
     
  3. vovamakarovych

    vovamakarovych Гость

    Репутация:
    0
    не выходит сделать(((
     
  4. Whatka

    Whatka Well-Known Member

    Репутация:
    0
    Регистрация:
    9 окт 2011
    Сообщения:
    428
    Симпатии:
    4
    ты издеваешься???я тебе полностью написал 1ую,разберись и напиши.
    что не понятно спрашивай
     
  5. vovamakarovych

    vovamakarovych Гость

    Репутация:
    0
    от мой код, индекс не верно показывает((
    Код:
    #include <iostream>
    #include <iomanip>
    
    using namespace std;
    void vvod(int *A,int arraySize)
    {
    int j;
    cout<<"Введите массив из 10 элементов.\n";
    for (j=0; j<arraySize; j++)
    {
    cout << "A[" << j << "]= ";
    cin>>A[j];
    }
    }
    int function(int arraySize,int *A,int max_elem,int index_max )
    {
    int j;
    for (j=0;j<arraySize;j++)
    {
    if (max_elem < A[j])
    {
    max_elem = A[j];
    index_max = j;
    }
    }
    return max_elem;
    }
    int function1(int arraySize,int *A, int max_elem,int index_max )
    {
    int j;
    for (j=0;j<arraySize;j++)
    {
    if (max_elem < A[j])
    {
    max_elem = A[j];
    index_max = j;
    }
    }
    return index_max;
    }
    
    void out(int max_elem ,int index_max)
    {
    cout << "Максемальное значение = "<< max_elem << " его индекс =" << index_max<< '\n';
    }
    int main()
    {
    setlocale(LC_ALL,"Russian");
    const int arraySize(10);
    int A[arraySize],index_max(0);				
    vvod(A,arraySize);
    int max_elem=A[0];
    max_elem=function(arraySize,A,max_elem,index_max);
    index_max=function1(arraySize,A,max_elem,index_max);
    out(max_elem ,index_max);
    system("Pause");
    }
     
  6. Whatka

    Whatka Well-Known Member

    Репутация:
    0
    Регистрация:
    9 окт 2011
    Сообщения:
    428
    Симпатии:
    4
    Код:
    #include <iostream>
    #include <iomanip>
    
    using namespace std;
    void vvod(int *A,int arraySize)
    {
    int j;
    cout<<"Введите массив из 10 элементов.\n";
    for (j=0; j<arraySize; j++)
    {
    cout << "A[" << j << "]= ";
    cin>>A[j];
    }
    }
    int function(int arraySize,int *A,int max_elem,int index_max )
    {
    int j;
    for (j=0;j<arraySize;j++)
    {
    if (max_elem < A[j])
    {
    max_elem = A[j];
    index_max = j;
    }
    }
    return max_elem;
    }
    
    
    void out(int max_elem ,int index_max)
    {
    cout << "Максемальное значение = "<< max_elem << " его индекс =" << index_max<< '\n';
    }
    int main()
    {
    setlocale(LC_ALL,"Russian");
    const int arraySize(10);
    int A[arraySize],index_max(0),j(0);				
    vvod(A,arraySize);
    int max_elem=A[0];
    max_elem=function(arraySize,A,max_elem,index_max);
    while(A[j]!=max_elem)
    j++;
    index_max=j;
    out(max_elem ,index_max);
    system("Pause");
    }


    вот всё правильно работает цикл в функцию сам занесёшь
     
  7. rrrFer

    rrrFer Гость

    Репутация:
    0
    Whatka
    если не секрет, в чем стратегический замысел написания двух различных функций function и function1 ?

    ЗЫ. а работает неверно, проверь на
    1 2 3 4 5 6 7 8 9 0

    выведет что индекс наименьшего элемента = 0

    как-то криво все, извиняюсь )

    Добавлено: а вот, щас исправил ) теперь результат правильный, но зачем нам:
    Код:
    while(A[j]!=max_elem)
    j++;
    неужели юзе этого лишнего цикла не обойтись?

    Добавлено: поправил функцию вычисления и main
    Код:
    #include <iostream>
    #include <iomanip>
    
    using namespace std;
    void vvod(int *A,int arraySize)
    {
    int j;
    cout<<"Введите массив из 10 элементов.\n";
    for (j=0; j<arraySize; j++)
    {
    cout << "A[" << j << "]= ";
    cin>>A[j];
    }
    }
    
    int function( int arraySize, int *A, int &index_max ) {
    int j;
    
    index_max = 0;
    for( j = 0; j < arraySize; j++ )
    if( A[ index_max ] < A[ j ] )
    index_max = j;
    
    return A[ index_max ];
    }
    
    
    void out(int max_elem ,int index_max)
    {
    cout << "Максемальное значение = "<< max_elem << " его индекс =" << index_max<< '\n';
    }
    
    int main() {
    setlocale(LC_ALL,"Russian");
    
    const int 
    arraySize = 10;
    int		A[ arraySize ],
    max, imax;
    
    vvod( A, arraySize );
    
    max = function( arraySize, A, imax );
    
    out( max, imax );
    
    system( "Pause" );
    }
    но, что-то мне до сих пор не нравится :facepalm:
     
  8. Whatka

    Whatka Well-Known Member

    Репутация:
    0
    Регистрация:
    9 окт 2011
    Сообщения:
    428
    Симпатии:
    4
    нет конечно можно по другому и без цикла
    я бы и сам по другому делал
    НО это не моё решение а его
    суть в правильном ответе,если поймёт как работает сможет оптимизировать сам
    ...
    я думаю
     
Загрузка...
Статус темы:
Закрыта.

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