Примеры написания программ

Порядок написания программы

ОБРАБОТка одномерных числовых массивов

Цель работы

1. Научиться:

–объявлять числовой массив в программе статически и динамически;

– вводить числовой массив или объявлять с инициализацией;

– писать стандартный цикл обработки числового массива;

–обращаться к числам массива по имени и через адрес.

2. Составить, выполнить и протестировать указанную задачу с помощью компьютера.

 

 

1. Выделить память под числовой массив статически или динамически.

2. Ввести числовой массив с клавиатуры или заполнить случайными числами.

3. Провести указанную обработку массива.

4. Вывести на экран исходный массив.

5. Вывести результат обработки.

6. Освободить динамическую память (если она выделялась).

 

 

Задача.Написать программу, вычисляющую произведение ненулевых элементов целочисленного одномерного массива.

При решении задачи выделяем следующие этапы:

1. объявление массива

1. заполнение массива данными

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

3. вычисление произведения ненулевых элементов целочисленного одномерного массива.

4. вывод результата на экран.

 

Примечание. Вызов функции Rus перед строками-константами с русским текстом осуществляйте самостоятельно.

 

1 вариант решения – обращение к элементу массива идет через имя элемента массива, память выделяется статически, массив заполняется случайными числами.

 

Программа будет строиться в виде проекта.

Текст функции mainбудет выглядеть так:

//содержимое файла main.cpp

#include<iostream> //подключение системных средств для

using namespace std; //возможности использовать потоки ввода-вывода

#include "Rus.h" //прототип функции русификации

#include<time.h>

#include<stdlib.h>

#define SIZE 5 //задаем размерность массива

int main(void)

{

int mas[SIZE]; //объявляем массив

long product=1; //переменная под произведение

int i;

int k=100;

 

//заполнение массива случайными числами

srand(time(NULL)); //инициализируем генератор случайных чисел

for(i=0; i<SIZE; i++) //перебор элементов массива

mas[i]=rand()%(2*k+1) – k; //формируем случ число [-k;+k]

 

//Вывод элементов массива на экран

cout<<"\nИсходный массив: ";

for(i=0; i<SIZE; i++) //перебор элементов массива

cout<< mas[i])<<endl; //выводим i-ый элемент массива

 

//вычисление произведения

for(i=0; i<SIZE; i++) // перебор элементов массива

if(mas[i]!=0) // если i-ый элемент массива не 0

product *= mas[i]; //домножаем произведение на i-ый элемент //массива

 

cout<< "\nПроизведение равно "<< product<<endl;

return 0;

}

 

2 вариант решения – обращение к элементу массива идет через адрес элемента массива, память выделяется динамически, заполняется массив с клавиатуры.

 

#include<iostream> //подключение системных средств для

using namespace std; //возможности использовать потоки ввода-вывода

#include "Rus.h" //прототип функции русификации

#define SIZE 5 //задаем размерность массива

int main(void)

{

int *mas= new int[SIZE]; //объявляем массив

long product=1; //переменная под произведение

int i;

 

//заполнение массива с клавиатуры

for(i=0; i<SIZE; i++) //перебор элементов массива

cin>>*(mas+i);

//Вывод элементов массива на экран

cout<<"\nИсходный массив: ";

for(i=0; i<SIZE; i++) //перебор элементов массива

cout<< *(mas+i)<<endl; //выводим i-ый элемент массива

 

//вычисление произведения

for(i=0; i<SIZE; i++) // перебор элементов массива

if(*(mas+i)!=0) // если i-ый элемент массива не 0

product *= *(mas+i); //домножаем произведение на i-ый эле //мент массива

 

cout<< "\nПроизведение равно "<< product<<endl;

return;

}

Контрольные вопросы и задания

 

1. Дать определение одномерного числового массива.

2. Как объявить одномерный числовой массив статически?

3. Как объявить одномерный числовой массив динамически?

4. Напишите цикл обработки одномерного числового массива.

5. Чем он отличается от перебора строки и почему?

6. Как обратиться к элементу массива по имени?

7. Как обратиться к элементу массива по адресу?

8. Объявите одномерный числовой массив статически, динамически.

9.Обратитесь к элементам массива по имени, по адресу при каждом выделении памяти.

10. Для наилучшего освоения темы выполните варианты 4, 11, 12.

 

Задание

 

Решить задачу, написав два варианта программы:

1. выделить память под массив статически и заполнить его с клавиатуры;

2. выделить память динамически и заполнить его случайными числами.

 

Вариант 1. Дан одномерный целочисленный массив. Вычислить сумму всех элементов массива, кратных некоторому числу.

 

Вариант 2.Дан одномерный числовой массив. Вычислить произведение ненулевых элементов массива с номера n до номера k.

 

Вариант 3. Дан одномерный числовой массив. Вычислить сумму и количество всех отрицательных элементов массива.

 

Вариант 4.Дан одномерный числовой массив. Вычислить минимум и номер минимального элемента в массиве.

 

Вариант 5.Дан одномерный целочисленный массив. Вычислить количество элементов массива, кратных некоторому числу.

 

Вариант 6.Дан одномерный числовой массив. Вычислить сумму элементов массива с четными номерами.

 

Вариант 7.Дан одномерный числовой массив. Вычислить количество элементов массива, значение которых попадает в интервал [a,b].

 

Вариант 8.Дан одномерный числовой массив. Вычислить произведение ненулевых элементов массива с нечетными номерами.

 

Вариант 9.Дан одномерный числовой массив. Вычислить в какой позиции массива встретилось число со значением a.

 

Вариант 10.Дан одномерный числовой массив. Вычислить среднее арифметическое отрицательных элементов массива.

 

Вариант 11.Дан одномерный числовой массив. Вычислить произведение в состав которого войдет ненулевое значение каждого третьего элемента массива.

 

Вариант 12.Дан одномерный числовой массив. Определить, является ли массив убывающей последовательностью.

 

Вариант 13. Дан одномерный числовой массив. Определить, является ли массив арифметической прогрессией.

 

Вариант 14.Дан одномерный числовой массив. Увеличить значение каждого элемента массива на k и вывести измененный массив на экран монитора.

 

Вариант 15.Дан одномерный целочисленный массив. Все значения массива, кратные 3 заменить значением, кратным 5 с той же степенью кратности и вывести измененный массив на экран монитора.

Лабораторная работа 9