1

Тема: Реалізація функцій

Створити програму на мові С++, що реалізує наступні функції:

- має меню вибору завдань (3 задачі та завершення роботи)
- після вибору завдання виводиться результат його виконання (до натискання будь-якої клавіші)
- вибір завдань пропонується поки користувач не обере меню виходу
- масив для роботи повинен заповнюватись випадковими числами в діапазоні від 0 до 100

Три завдання для реалізації обирає викладач:
1. вивести всі парні елементи масиву
2. вивести останні 15 елементів масиву
3. вивести елементи масиву більші за 30

Допоможіть будь ласка вирішити проблему у цій програмі.
Буду дуже вдячний.

2

Re: Реалізація функцій

Ваня написав:

Допоможіть будь ласка вирішити проблему у цій програмі.

А де ж програма то?
Може ти щось пробував робити?

3

Re: Реалізація функцій

Підкажіть будь ласка як скинути виконання до цеї програми із мови програмування С++

4

Re: Реалізація функцій

Ваня написав:

Підкажіть будь ласка як скинути виконання до цеї програми із мови програмування С++

себто, код?

5

Re: Реалізація функцій

#include <stdio.h>

unsigned int mas[30]={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};
 int c,d,hl,i,h,button;

void parni_(void)
{
    for(i=0;i<30;i++)
    {
        h=mas[i];
        c=h%2;
        if (c==0) printf("%g\n",h);
        
    }
}
void ost_15 (void)
{
    for(i=29;i<14;i--)
    {
    printf("%g",mas[i]);    
    
    }
    
}
void bilshe_30 (void)
{
    for(i=0;i<30;i++)
    {
        if(mas[i]>30) printf("%g",mas[i]);
    }
    
}
int main (void)
{
     printf("chusla masivu:");
    
    for (i=0;i<30;i++)
    {        
printf("%g",mas[i]);
}
while(1)
{
 printf("Vuberit pidprogramu:");    
    scanf("%g",button);
    if(button==1) parni_();
    if(button==2) ost_15();
    if(button==3) bilshe_30();

}
}

6

Re: Реалізація функцій

Ось я намагався написати цю прграму, але не виходить. Допоможіть будь ласка вирішити цю проблему.

7

Re: Реалізація функцій

Пане, "не виходить" - це не опис проблеми. Пишіть конкретно, в чому саме проблема. Ви хочете, щоб ми взяли завдання і порівняли з вашим кодом? Це ви і самі можете зробити, і, гадаю, вже робили (інакше не писали б, що не виходить) - але чомусь не хочете повідомити нам результати цього порівняння. Чому ми маємо починати з того, що ви вже зробили, і казати вам те, що ви завідомо вже знаєте?
P.S.

scanf( "%d", &button );

8

Re: Реалізація функцій

Тобто ви хочете сказати що проблема знаходиться у першій стрічці?

9

Re: Реалізація функцій

Ваня написав:

Тобто ви хочете сказати що проблема знаходиться у першій стрічці?

Так. Але не цього коду, а генетичного.
Ще раз: я хочу сказати, що ви не надали притомного опису вашої проблеми.

Подякували: Logans1

10 Востаннє редагувалося Odin88 (28.04.2014 06:21:32)

Re: Реалізація функцій

#include <iostream>
using namespace std;
const int n = 30;
void even(int a[])
{
  cout << " Even elements: ";
  for(int i = 0; i < n ; ++i)
     if(!(a[i]&1))
         cout << a[i] << " ";
}
void last(int a[])
{
    cout << " Last 15 elements: ";
    for(int i =15; i < n; ++i)
        cout << a[i] << " ";
}
void more(int a[])
{
    cout << " More than thirty elements: ";
    for(int i = 0; i < n; ++i)
        if(a[i] > 30)
            cout << a[i] << " ";
}
void help()
{
    cout << "Please, select a task." << endl;
    cout << "Press key '1','2' or '3' depending on task number." << endl;
    cout << "To exit, press '.'." << endl;
}

void random(int a[])
{
    for(int i = 0; i < n; ++i)
        a[i] = rand() % 101;
}
void choise(int a[])
{
    char temp;
    while (true)
    {
    help();
    cout << "Press key:" << endl;
    cin >> temp;
    switch (temp)
    {
    case '1' :
        {even(a); return;;}
    case '2' : 
        {last(a); return;}
    case '3' :
        {more(a); return;}
    case '.':
        return;
    default : 
        help();
    }
    }
}
int main()
{    
    int a[n];
    random(a);
    choise(a);
    cin.get();
    cin.get();
    return 0;
}    

Для себе замініть команди виведення та введення,та можливо функцію(процедуру) на перевірку парності.

Подякували: Ваня1

11

Re: Реалізація функцій

Дуже вам вдячний. Дякую

12

Re: Реалізація функцій

#include <iostream>
#include <cstdlib>

using namespace std;
const int n = 30;

void even(int a[])
{
  cout << " Even elements: ";
  for(int i = 0; i < n ; ++i)
     if(!(a[i]&1))
         cout << a[i] << " ";
}

void last(int a[])
{
    cout << " Last 15 elements: ";
    for(int i =15; i < n; ++i)
        cout << a[i] << " ";
}
void more(int a[])
{
    cout << " More than thirty elements: ";
    for(int i = 0; i < n; ++i)
        if(a[i] > 30)
            cout << a[i] << " ";
}
void help()
{
    cout << "Please, select a task." << endl;
    cout << "Press key '1','2' or '3' depending on task number." << endl;
    cout << "To exit, press '.'." << endl;
}
 
void random(int a[])
{
    for(int i = 0; i < n; ++i)
        a[i] = rand() % 101;
}

void choise(int a[])
{
    char temp;
    while (true)
    {
    help();
    cout << "Press key:" << endl;
    cin >> temp;
    switch (temp)
    {
    case '1' :
        {even(a); return;;}
    case '2' : 
        {last(a); return;}
    case '3' :
        {more(a); return;}
    case '.':
        return;
    default : 
        help();
    }
    }
}

int main(int argc, char** argv)
{    
    int a[n];
    random(a);
    choise(a);
    cin.get();
    cin.get();
    
    system("pause");
    return 0;
}    

13

Re: Реалізація функцій

Підкажіть будь ласка як змінити цю програму, щоб при будь якому значенні числа

const int n = 30;

у цій стрічці завжди виконувалась ці функції
1. вивести всі парні елементи масиву
2. вивести останні 15 елементів масиву
3. вивести елементи масиву більші за 30

14 Востаннє редагувалося Odin88 (28.04.2014 20:43:19)

Re: Реалізація функцій

Я так розумію це вже ваш готовий код.

Скажіть будь ласка, для чого вам потрібна бібліотека stdlib?

#include <cstdlib>

Також мене зацікавив цей кусок коду:

int main(int argc, char** argv)

Що саме ви хотіли передати в список параметрів?Тобто чим цей код відрізняється  від цього :

int main()

15 Востаннє редагувалося Odin88 (28.04.2014 20:50:09)

Re: Реалізація функцій

Ваня написав:

Підкажіть будь ласка як змінити цю програму, щоб при будь якому значенні числа

const int n = 30;

у цій стрічці завжди виконувалась ці функції
1. вивести всі парні елементи масиву
2. вивести останні 15 елементів масиву
3. вивести елементи масиву більші за 30

Не повністю зрозумів питання.Ви питаєте чи працюватиме програма при зміні значення n?

16

Re: Реалізація функцій

Вона то працює, але виводить неправильні парні елементи масиву та останні 15 елементи масиву

17

Re: Реалізація функцій

Пане, я ще раз вам кажу: ви не ставите коректні питання. Може, якийсь інший новачок знову захоче розім'ятися і зробить вашу задачу за вас, але в професіоналів ви так відповіді не отримаєте. Описуйте, що саме вас не влаштовує в цьому коді, економте час іншим людям. Допомагайте іншим допомагати вам!

18 Востаннє редагувалося Odin88 (28.04.2014 20:59:03)

Re: Реалізація функцій

Ну насправді все досить очевидно.Не знаю що не так в Вас з функцією(процедурою) на перевірку парності елементів,а от з виведенням останніх 15 елементів гріх не додуматися в яких випадках вона не працюватиме.
І те, що воно працює не означає що програма написана правильно.

19

Re: Реалізація функцій

koala написав:

Пане, я ще раз вам кажу: ви не ставите коректні питання. Може, якийсь інший новачок знову захоче розім'ятися і зробить вашу задачу за вас, але в професіоналів ви так відповіді не отримаєте. Описуйте, що саме вас не влаштовує в цьому коді, економте час іншим людям. Допомагайте іншим допомагати вам!

koala,мені цікаво кого Ви розумієте під словом професіонали?Професіонали в чому?

20

Re: Реалізація функцій

Odin88 написав:

koala,мені цікаво кого Ви розумієте під словом професіонали?

Довго думав, як би хитріше відповісти. Зрештою вирішив відповідати чесно: себе.

Odin88 написав:

Професіонали в чому?

Ви мій профіль на linkedin побачити хочете?

Подякували: 0xDADA11C71