Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка Программирование C++ 2014n.docx
Скачиваний:
8
Добавлен:
01.07.2025
Размер:
887 Кб
Скачать
☆

2. Вывод массива на экран:

cout <<” Массив А: ” <<endl;

for ( i = 0; i < n; i++) cout <<a[i] <<”\t”;

3. Обработка массива

При работе с одномерными массивами существует большое количество алгоритмов, которые считаются типовыми, т.е. часто встречающимися в практических задачах: ввод-вывод массива, вычисление значений элементов массива, поиск суммы и (или) произведения элементов массива, поиск максимального (минимального) элемента массива, упорядочивание элементов массива, добавление (вставка) новых элементов в массив, удаление данных из массива и т.д.

Пример. Дан массив действительных чисел из n элементов. Найти максимальный по модулю элемент и разделить все элементы массива на полученное значение. Вывести на экран монитора массив после обработки.

Возможный текст программы:

#include <math.h>

#include <iostream>

using namespace std;

int main()

{

const int n = 5;

double x[n], max;

int i; // Задаём массив из n действительных чисел

cout << "Input " << n << " numbers:" << endl;

for(i = 0; i < n; i++)

cin >> x[i];

// Поиск максимального по модулю элемента массива

// Предположим, что x[0] - это и есть максимальный

// по модулю элемент массива:

max = fabs(x[0]);

// А теперь пробуем себя опровергнуть:

for(i = 1; i < n; i++) //перебираем все элементы массива с первого

if(fabs(x[i]) > max) // сравниваем с текущим максимальным

max = fabs(x[i]); // выполняем переприсваевание

cout << "max=" << max << endl; // Максимум найден:

for(i = 0; i < n; i++)

x[i] /= max; // Делим все элементы на max

cout << "Massiv:" << endl; // Распечатка массива

for(i = 0; i < n; i++)

cout << x[i] << endl;

return 0;

}

Лабораторная работа №7 Использование числовых одномерных массивов

ЦЕЛЬ РАБОТЫ: освоение способов описания массива, приобретение навыков организации ввода-вывода и обработки массива.

Выполнение работы: освоить теоретический материал, выполнить общее для всех задание I и в соответствии с вариантом составить программу (задание II), при необходимости реализовав пользовательскую функцию.

Задание I

Изучить порядок описания, ввода-вывода и обработки массивов:

  1. Набрать и отладить программу нахождения суммы элементов массива, стоящих в нечетных позициях. Оформить в тетради, записав условие, код, блок-схему и результат работы, объяснить назначение операторов 0-4.

#include <time.h>

#include <stdlib.h>

int main()

{

setlocale(LC_ALL,”Rus”);

srand(time(0)); // Оператор 0

const int N=10;

int Arr[N];

int sum=0; // Оператор 1

for (int i=0;i<N;i++)

{

Arr[i]= rand()%100; // Оператор 2

cout<<Arr[i]<<"\t";

}

for (int i=1;i<N;i+=2) // Оператор 3

sum+=Arr[i]; // Оператор 4

cout<<"\nСумма = "<<sum<<endl;

return 0;

}

  1. Набрать и отладить программу нахождения суммы элементов массива, кратных 3. Оформить в тетради, записав условие, код, блок-схему и результат работы, объяснить назначение операторов 0-3.

#include <time.h>

#include <stdlib.h>

int main()

{

time_t t;

srand((unsigned)time(&t)); // Оператор 0

const int N=10;

int Arr[N];

int sum=0; // Оператор 1

for (int i=0;i<N;i++)

{

Arr[i]=rand()%50; // Оператор 2

cout<<Arr[i]<<"\t";

}

for (int i=1;i<N;i++)

if (Arr[i]%3==0) sum+=Arr[i]; // Оператор 3

cout<<"\nSumma="<<sum<<endl;

return 0;

}

  1. набрать и отладить программу нахождения наибольшего элемента массива из N целых чисел с выводом номеров наибольших элементов. Оформить в тетради, записав условие, код, блок-схему и результат работы, объяснить назначение операторов 1-6.

#include <time.h>

#include <stdlib.h>

int main()

{

srand(time(0));

const int N=10;

int Arr[N];

int index[N]={0}; // Оператор 1

int max, k=0;

for (int i=0;i<N;i++){

Arr[i]=rand()%100-50; // Оператор 2

cout<<Arr[i]<<"\t";

}

max=Arr[0]; // Оператор 3

for (int i=1;i<N;i++)

if (Arr[i]>=max) // Оператор 4

{

max=Arr[i];

index[k]=i+1; // Оператор 5

k++;

}

k=0;

cout<<"\nMax="<<max<<"\nИндексы: ";

while(index[k]>0) // Оператор 6

{

cout<<index[k]-1<<"\t";

k++;

}

return 0;

}