Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2022, 15:04   #1
room60
Пользователь
 
Регистрация: 22.09.2022
Сообщений: 24
По умолчанию Обработка одномерных массивов

Все члены последовательности b1,b2,...,bn с парными номерами, предшествующими первому
максимальному члену этой последовательности, умножить на максимальный член
последовательности. (Использованием с использованием динамического выделения.) С++
Как сделать для этого задания блок-схему.
Пробовал написать код, но даже так не могу оформить это в блок-схеме
Код:
#include <iostream>
using namespace std;
 
int main()
{ 
    int n, imax=0;    
 
    cout << "n="; cin >> n;
 
    double *b = new double[n], max=0.;
    
    cout << "Введите длину массива: " << n << " Введите номер:\n";
    for (int i = 0; i < n; i++) 
    {        
        cin >> b[i];
        if(i==0 || b[i]>max) {max=b[i];imax=i;}
    }
    
    cout << "max=" << max << "\n";
    
    cout << "Новая последовательность:\n";
    for (int i = 0; i < n; i++)
    {
        if(i>=1 && i<imax && i%2!=0) b[i]*=max;
        cout << b[i] << " ";
    }
    cout << "\n";
    
    delete[]b;
system("pause");
return 0;
}

Последний раз редактировалось room60; 16.10.2022 в 15:15.
room60 вне форума Ответить с цитированием
Старый 16.10.2022, 15:22   #2
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Цитата:
Сообщение от room60 Посмотреть сообщение
Код:
if(i==0 || b[i]>max) {max=b[i];imax=i;}
При поиске max вы можете запоминать только его индекс. А при необходимости получить его значение можно сделать так
Код:
if(i==0 || b[i]>b[imax]) imax=i;
По блок схеме. Рисовать не буду. Перечислю блоки по прядку стрелочек. У вас тут вполне линейная программа:
Код:
0) Вход
1) Вывод: 'n='; Ввод: n
2) Определение: b = new double[n], int imax = 0;
3) Вывод: 'Введите ', n, 'Номер:\n';
4) Цикл: i = 0; i < n; ++i
 4.1) Ввод: b[i]
 4.2) Условие: i == 0 || b[i] > b[imax]
  4.2.да) imax = i;
5) Вывод: 'max=', b[imax]; Вывод: 'Новая последовательность:\n';
6) Цикл: i = 0; i < n; ++i
 6.1) Условие: i >= 1 && i < imax && i % 2 == 0
  6.1.да) Определение: b[i] *= b[imax];
 6.2) Вывод: b[i], ' ';
7) Определение: delete[] b; system('pause');
8) Выход
Легенда: Овал - Вход и Выход; Прямоугольник - Определение; Параллелепипед - Ввод и Вывод; Ромб - Условие; Шестиугольник - Цикл.
macomics вне форума Ответить с цитированием
Старый 16.10.2022, 20:48   #3
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,551
По умолчанию

Не раз уж говорилось: "парные" - по русски "чётные" .
digitalis вне форума Ответить с цитированием
Старый 16.10.2022, 21:35   #4
room60
Пользователь
 
Регистрация: 22.09.2022
Сообщений: 24
По умолчанию

Цитата:
Сообщение от digitalis Посмотреть сообщение
Не раз уж говорилось: "парные" - по русски "чётные" .
Это верно, может сможете подсказать вот если писать каждый символ в таблице в которой нужно ввести данные символа в коде. Например:
Переменная: Счетчик; Тип: Действительный; Имя: i; Назначение: Вспомогательная переменная.
А вот n которую я ввожу, max, [imax], b[i]. Как это записать в Таблица переменных.
Вот пример с другого кода:
Изображения
Тип файла: png изображение_2022-10-16_213702795.png (6.4 Кб, 7 просмотров)

Последний раз редактировалось room60; 16.10.2022 в 21:37.
room60 вне форума Ответить с цитированием
Старый 16.10.2022, 21:49   #5
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Счетчик; Целый; i; Переменная цикла (счетчик и индекс)
Индекс; Целый; imax; Индекс максимального элемента последовательности
Последовательность; Массив действительных чисел; b[]; Буфер для сохранения последовательности
Элемент последовательности; Действительный; max; Зачем она вам, когда можно использовать b[imax]
macomics вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++обработка одномерных массивов LepreconSTR Помощь студентам 0 08.11.2011 21:12
обработка одномерных массивов С++ L3to Помощь студентам 4 23.06.2011 18:58
Обработка одномерных массивов vbchristy46 Помощь студентам 7 09.06.2010 22:24
Обработка одномерных массивов Mari.Prosto Mari Паскаль, Turbo Pascal, PascalABC.NET 7 09.06.2010 22:04