Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 18.01.2018
Сообщений: 16

За одно обращение к процедуре передавать весь массив

28.01.2018, 13:12. Показов 2647. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
. Задано два массива - Х1 (10) и Х2 (13). Вычислить величину Z,
равна половине разности между максимальным элементом массива Х1 и
минимальным элементом Х2. Вывести вычисленные минимальный и максимальный
элементы и величину Z.


Добрый день.У меня вопрос .У предыдущих двух процедурах я объявил переменные max i min и мне нужно эти перемение использовать в третьей процедуре.Как ето сделать.
Вот мой код:
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
#include<iostream>
#include<windows.h>
using namespace std;
void make_mass(int* A,int n)
{
    int i;
    for (i=0;i<n;i++)
    {
        cin>>A[i];
    }
}
void mass_max( int X1[],int ONEkl)
{
    int max;
for(int i = 0 ;i<ONEkl;i++)
{
    if( X1[i]>max)
    {
        max=X1[i];
    }
}
printf("Максимальний елемент масива X1[%d]= %d\n",ONEkl,max);
 
}
void mass_min(int X2[],int Twokl)
{
int min;
for(int i = 0 ;i<Twokl;i++)
{
    if( X2[i]<min)
    {
        min=X2[i];
    }
}
printf("Мінімальний  елемент масива X1[%d]= %d\n",Twokl,min);
}
 
void elem_Z()
{       
 int z=((max-min)/2);
printf("Елемент Z =  %d\n",z);
}
int main()
{
    SetConsoleCP(1251);
 SetConsoleOutputCP(1251); 
     const int n=10;
    int X1[n];
    const int m=13;
    int X2[m];
printf("Введіть перший масив X1[%d]:\n ",n);
    make_mass(X1,n);
printf("Введіть другий  масив X2[%d]:\n ",m);
[COLOR="Red"][/COLOR]   make_mass(X2,m);
 
 mass_max(X1,n);
 
mass_min(X2,m);
 
 
 //елемент z;
elem_Z();
 return 0;
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.01.2018, 13:12
Ответы с готовыми решениями:

Можно ли процедуре передавать множество?
Пытаюсь сделать так: 1 type 2 setx=set of byte; 3 procedure addset(a:setx; b:integer); 4 var 5 ...

Процедуре Acol и Arow передавать параметром
Можно ли в этой процедуре Acol и Arow передавать параметром. То есть не присваивать внутри процедуры, а вызывать со своими значениями. ...

Как быстрее передавать процедуре переменные?
Всем привет, Допустим, у меня есть процедура, которой требуются данные. Что будет быстрее (и насколько быстрее): передавать эти данные...

32
0 / 0 / 0
Регистрация: 18.01.2018
Сообщений: 16
28.01.2018, 23:49  [ТС]
Студворк — интернет-сервис помощи студентам
оо,кстати даа...я поменял имя переменних...і заработало...спасибо огромное за рекомендации)

Добавлено через 2 минуты
только почему то ,мин елемент всегда виводит 0
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
29.01.2018, 04:41
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
#include <iostream> 
using namespace std;
 
void f(double* X)
{
    double max, min, Z; 
    max=X[0];   
    for (int i = 0; i < 10; i++)        
    if (X[i] >= max) max=X[i];
    min=X[10];  
    for (int i = 10; i < 23; i++)       
    if (X[i] <= min) min=X[i];
    Z=0.5*(max-min);
    cout <<"MAX_X1="<<max<<" MIN_X2="<<min<<" Z="<<Z;   
}
 
int main()
{        
    double *X1 = new double [10];
    double *X2 = new double [13];    
    double *X3 = new double [23];    
    for (int i = 0; i < 10; i++) 
    {
    cout <<"X1["<<i<<"]="; cin >>X1[i];
    }
    cout <<endl;
    for (int i = 0; i < 13; i++)    
    {
    cout <<"X2["<<i<<"]="; cin >>X2[i]; 
    }
    for (int i = 0; i < 10; i++)    
    X3[i]=X1[i];    
    cout <<endl;
    for (int i = 0; i < 13; i++)    
    X3[i+10]=X2[i]; 
    f(X3); 
    delete [] X1;
    delete [] X2;  
    delete [] X3;
    system("pause");
    return 0;
}
0
2493 / 1157 / 709
Регистрация: 25.04.2016
Сообщений: 3,338
29.01.2018, 05:40
Цитата Сообщение от palva Посмотреть сообщение
У вас, значит, функции, возвращающие void, называют процедурами.
Просто без комментариев.

Цитата Сообщение от Андрейчикка Посмотреть сообщение
Мне нужно использовать только процедуры
Ну так используйте процедуры.
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
#include <iostream>
#include <cstdlib>
using namespace std;
 
int m_arr (int *, int, int);        // ищет min || max
void make_mass (int *, int);        // заполняет массив числами
void elem_z (int a, int b, float * n) { *n = (a-b) / 2.0; } // вычисляет z
 
int main (void)
{
    int n=10, m=13;             // размеры массивов
    int *a = new int[n];            // массив x1
    int *b = new int[m];            // массив x2
 
    float z;
 
    // заполняем массивы
    cout << "input x1 elements" << endl;
    make_mass (a, n);
    cout << endl;
    cout << "input x2 elements" << endl;
    make_mass (b, m);
    cout << endl;
 
    // находим min, max и z
    int max = a[m_arr(a,n,1)];
    int min = b[m_arr(b,m,0)];
    elem_z(max,min,&z);
 
    // выводим результат на экран
    cout << "max x1 = " << max << endl;
    cout << "min x2 = " << min << endl;
    cout << "z = " << z << endl;
 
    // освобождаем память, занятую массивами
    delete [] a;
    delete [] b;
    return 0;               // конец программы
}
// ----- ищет min || max (зависит от значения type: 0 - min, 1 - max) -----
int m_arr (int * a, int size, int type)
{
    int i, m = 0;
    for (i=1; i<size; i++)
        if ((!type && a[i]<a[m]) || (type && a[i]>a[m])) m = i;
    return m;
}
// ----------------------- заполняет массив числами -----------------------
void make_mass (int * a, int size)
{
    int i;
    for (i=0; i<size; i++)
    {
        cout << "a[" << i << "] = ";
        cin >> a[i];
    }
}
та же самая программа, но с более характерным для с++ выделением памяти из кучи.
0
0 / 0 / 0
Регистрация: 18.01.2018
Сообщений: 16
29.01.2018, 14:53  [ТС]
Цитата Сообщение от stake-k26 Посмотреть сообщение
У вас, значит, функции, возвращающие void, называют процедурами.
Просто без комментариев.
Тогда что такое процедура?обясните пж
0
 Аватар для palva
4278 / 2970 / 693
Регистрация: 08.06.2007
Сообщений: 9,931
Записей в блоге: 5
29.01.2018, 15:46
Цитата Сообщение от Андрейчикка Посмотреть сообщение
Тогда что такое процедура?обясните пж
Открываю книгу (pdf-файл) Дейтел Пол, Дейтел Харви - C для программистов с введением в C11
Делаю поиск на слове процедура - ничего не найдено. А если поискать слово "функция", то таких слов очень много. Вам надоест щелкать мышкой для продолжения поиска. Стандарта си у меня нет, и я не берусь это доказывать, но я уже писал выше: в си нет процедур.

Если вы выходите задавать вопросы на публичный ресурс, то лучше применять общепринятую терминологию, тогда вас легче поймут. Хотя в этом термине ничего плохого нет. Он подчеркивает разницу между функцией, которая возвращает какое-то значение и void-функцией, которая сообщает о результатах своей работы, используя другие языковые возможности.

Есть языки, где процедура и функция различаются на уровне терминологии. В алголе и в его дожившего до наших дней наследнике паскале есть Function и Procedure, в фортране есть FUNCTION и SUBROUTINE, что по сути и есть процедура, в бейсике есть FUNCTION и SUB.
0
0 / 0 / 0
Регистрация: 18.01.2018
Сообщений: 16
29.01.2018, 18:18  [ТС]
понял,спасибо,просто в универе нам говорили что функция (void) це процедура
0
2493 / 1157 / 709
Регистрация: 25.04.2016
Сообщений: 3,338
29.01.2018, 18:44
Лучший ответ Сообщение было отмечено Андрейчикка как решение

Решение

Цитата Сообщение от palva Посмотреть сообщение
Открываю книгу
Не ту книгу открываете, гугль вам в помощь. Где-то с 60-ых годов прошлого века подпрограммы делятся на два типа: функции, возвращающие некоторое значение, и процедуры, которые ничего не возвращают, но выполняют некую последовательность действий. И в разных языках программирования эти вещи зовутся по-разному, в си, например, любые подпрограммы принято называть функциями, но это не значит, что в си нет процедур. Просто процедура - это понятие, значительно выходящее за рамки какого-то конкретного языка.

Скажем так, вы искали истину в стакане, не видя моря за окном.
0
 Аватар для palva
4278 / 2970 / 693
Регистрация: 08.06.2007
Сообщений: 9,931
Записей в блоге: 5
29.01.2018, 22:43
stake-k26, какая книга была, такую и открыл. Надо было открыть стандарт.
Цитата Сообщение от stake-k26 Посмотреть сообщение
в си, например, любые подпрограммы принято называть функциями, но это не значит, что в си нет процедур.
"Принято" неправильное слово. Отсутствие процедур это стандарт языка. А вот применять "общепрограммистский" термин процедура среди программистов на си, действительно, не принято. И поиск по популярному учебнику это подтверждает. Впрочем, возможно, у нас разный круг общения и разные учебники.

Надеюсь, что наши последние посты не помешали ТС понять ситуацию с терминологией.

Добавлено через 9 минут
stake-k26, Гугл тоже можно было открыть. Например спросить у него про "процедуры в си". Спросите, почитайте, что об этом пишут другие программисты. Я конечно не по всем ссылкам сходил, но громадное большинство говорит, что процедур в си нет.
0
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,361
Записей в блоге: 5
30.01.2018, 02:09
Андрейчикка, гугли "c++ передать массив в функцию", на **********************/questions/136769/Как-передать-массив-в-функцию#answer-499824 хороший ответ со всемозможными вариантами передачи массива в функцию
0
2493 / 1157 / 709
Регистрация: 25.04.2016
Сообщений: 3,338
25.04.2018, 10:07
Листал старые темы. palva, вы говорите, что:
Цитата Сообщение от palva Посмотреть сообщение
громадное большинство говорит
С одной стороны все верно, с другой стороны громадное большинство не становятся профессионалами, так что я едва ли стал бы прислушиваться к мнению большинства. Иначе у нас в учебниках было бы по 6 миллиардов Архимедов, Ньютонов и Энштейнов. Но их единицы.
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
25.04.2018, 18:16
Цитата Сообщение от stake-k26 Посмотреть сообщение
с другой стороны
С другой стороны, в стандарте языка Си нет термина "процедуры".
0
2493 / 1157 / 709
Регистрация: 25.04.2016
Сообщений: 3,338
27.04.2018, 16:56
gru74ik, об этом уже говорилось выше. К тому же, если уж вам так хочется строго следовать стандарту, то там вообще ни одного русского слова нет, ни массивов, ни переменных, ни функций, одни variables, arrays и functions.
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
27.04.2018, 22:47
stake-k26, что в вашем понятии процедура?
Цитата Сообщение от stake-k26 Посмотреть сообщение
ни массивов, ни переменных, ни функций, одни variables, arrays и functions.
и где там Procedure?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.04.2018, 22:47

Обращение к процедуре Oracle.
Вызываю процедуру Oracle, которая должна удалить строки в таблицах. Но в итоге ничего не удаляет. Саму процедуру тестировал в PL/SQL...

Одновременное обращение к процедуре
Здравствуйте, Есть приложение на с#, подключенное к sql server. Приложение установили несколько пользователей. На сервере есть...

Обращение к хранимой процедуре
У меня в хранимой процедуре объявляются переменные таблицы 2-4 штуки. (@table_without_pen, @table_cap_period, @table_cap) Как мне к ним...

Обращение к задействованной процедуре
Доброго времени суток! Разбираю чужой, довольно сложный для меня код. Прошу направить советом. Указанная процедура не должна...

обращение к ЕХЕшной процедуре
Привет всем! =) Вопрос такой!!! Как обратится к процедуре в ехе файле, с помощи делфи!????


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

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Новые блоги и статьи
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы Кратко. . .
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем **Полевые заметки о двухнедельной совместной работе**. . .
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru