Содержание отчета и его форма

Теоретическое обоснование

 Массивы – структурированный тип данных с элементами одного типа, имеющий одно имя и определенное количество элементов. Количество элементов определяет размер массива. Например, массив составляют номера зачетных книжек студентов, здесь число элементов равно числу студентов; массив образуют набор чисел, их количество равно числу элементов массива. Порядковый номер элемента массива называется его индексом. Массив может иметь не один, а большее число индексов. Число индексов называется размерностью массива, например, массив с двумя индексами называется двумерным массивом. Строка символов является массивом символов, вектор – массив вещественных чисел, матрица – массив векторов.

Обработка массивов выполняется в следующем порядке: описание, ввод или инициализация элементов массива, преобразование и вывод.

    При описании массивов после имени в квадратных скобках указывается число его элементов. В языке Си индекс элемента массива начинается с нуля, поэтому индекс последнего элемента массива на 1 меньше числа элементов в данном массиве.

    Ввод и вывод элементов массива выполняется с использованием операторов цикла. Например, массив Х из 10 элементов можно ввести через форматный или потоковый ввод следующим образом:

 Int i, Х [10];

for (i=0; i<10; i++) {printf( “Введите элемент массива \n ”);

                            scanf ("%d", &a[i]);}

Или

for (i=0; i<10; i++) {cout cout << “Введите элемент массива ” <<endl;

        cin >> X[[i] ;

Манипулятор endl (сокращение end line) выполняет переход на новую строку при выводе значений.

Вывод элементов массива можно выполнить в строку или в столбец. Для вывода элементов массива Х [10] в строку:

for (i=0; i<10; i++) printf ( "%6d", Х[i] );

Или

for (i=0; i<10; i++) cout <<  Х[i] ;

Для вывода в столбец надо написать:

printf ( "%6d \n", a[i] ); или cout <<  Х[i] << endl;

Пример 1. Дан массив из  N чисел. Найти сумму отрицательных среди них.

… // объявление массива, переменных и ввод значения n

for (int S=0, i = 1; i<= n; i++)//начало цикла, первоначально сумма чисел = 0

if (a[i]<0) S +=a[i]; //прибавление числа к сумме, если оно отрицательно

//возвращение на начало цикла с увеличением счетчика на шаг

cout << "\n Сумма всех отрицательных чисел="<< S; }

Пример 2. Дан массив из  N чисел. Получить из него массив положительных чисел.

# include <stdio.h>

 # define n 15 // определение константы n=15

 int kol, nom, a[n], b[n];  //описание массивов целых чисел из n элементов

 int main()

{ for (i=0; i<n; i++) {printf( “Введите элемент массива \n ”);

                       scanf ("%d", &a[i]);

                       }

printf("\n Вывод элементов исходного массива : \n");

for (i=0; i<n; i++) printf ( "%6d", a[i] );

//подсчет количества положительных чисел и запись их в новый массив

kol= 0;

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

if (a[i]>0)    {b[kol]= a[i]; kol++; }              }

printf ("\n Количество положительных элементов в массиве = %d \n" , kol );        printf("\n Вывод массива положительных элементов \n");

for (i=0; i< kol; i++) printf ( "%6d ", b[i] );

 return 0;

}

Пример 3.  В заданном одномерном массиве а, состоящем из 30 элементов, подсчитать и вывести на печать количество положительных, отрицательных и нулевых элементов.

 

1 Начало
2    а (30)
3  sп=0; sо=0; sн=0
4 i = 1, 30
5 ai > 0
6 sп = sп + 1
7   ai < 0
8 sо = sо + 1 
9 sн = sн + 1
11 Конец
10 sп, sо, sн

 

 


1. Начало алгоритма;

2. Ввод элементов массива а.

3. Обнуляем начальные суммы: sп = 0; sо = 0; sн = 0.

4. Организуем цикл по i, где i – порядковый номер элемента в массиве.

5. Сравниваем элемент массива ai с нулем. Если ai > 0, то элемент аi положительный и в переменной sп накапливаем сумму положительных элементов: sп = sп + 1 (блок 6). Если ai < 0, то элемент отрицательный и в переменной sо накапливаем сумму отрицательных элементов: sо = sо + 1 (блок 8). Если ai = 0, то элемент равен нулю и в переменной sн накапливаем сумму нулевых элементов: sн = sн + 1 (блок 9).

6. Вывод на печать искомых значений: sп, sо, sн (блок 10).

7. Конец алгоритма.

Пример 4.  Ввести массив из 15 элементов, вывести его. На сколько каждый элемент массива отличается от среднеарифметического значения элементов этого массива.

Блок-схема алгоритма:

 

 

      

mas[15]
sum =0  
sr =sum/ n
I =1, n
raz
sum =sum+ mas [i ]
I =1, n
raz = mas [i ] - sr
mas[15]

 


                                                                                         

конец  

 

 


Составьте программу и выполните отладку.

 

Пример 5. Ввести массив А из 15 элементов, вывести его. Найти произведение положительных элементов массива А и сравнить его с произведением отрицательных.

Найдите ошибки в блок-схеме, исправьте их, напишите программу на С++, используя потоковый ввод-вывод и выполните отладку программы.

 

начало
  mas[15]
K1 =1 K2 = 1  
mas [ i ] >0
K1 =K1* mas [i ]
  I =1, 15
K2 =K2* mas [i ]
К1>К2  
К1>К2
 К1<К2

 

 


                                                                                         

 

К1,К2, mas[15]  
конец  

 

 


        

Порядок выполнения работы

1. Изучите теоретическое обоснование.

2. Выполните пример программы обработки одномерного массива:

Дан массив из 15 целых чисел. Найти среди них количество отрицательных чисел и вывести их.

 # include <stdio.h>

 # define n 15 // определение константы n=15

 int kol, nom, a[n];  //описание массива целых чисел из n элементов

 int main()

{ for (i=0; i<n; i++) {printf( “Введите элемент массива \n ”);

                       scanf ("%d", &a[i]);

                       }

printf("\n Вывод элементов исходного массива : \n");

 for (i=0; i<n; i++) printf ( "%6d", a[i] );

 printf("\n Вывод отрицательных элементов из массива : \n");

kol= 0;

 for (i=0; i<n; i++)  // подсчет отрицательных чисел и их вывод

if (a[i]<0)       { printf ( "%6d", a[i] );

                       kol++;

                       }

printf ("\n Количество отрицательных чисел в массиве = %d \n" , kol );

 return 0;

}

 

    Пояснение. По окончании цикла переменная kol будет хранить количество отрицательных чисел. Вывод элементов массива выполняется в строку.

3. В отлаженной программе измените форматный ввод и вывод массива на потоковый, как описано в теоретической части.

4. Выполните пример 1,2, 3,  4, 5 из теории, составив программы.

5. Составьте алгоритмы и программы с применением массивов согласно вариантам задания, введите исходные данные, проверьте полученный результат. Исходные и результативные массивы обязательно вывести.                        

 

Таблица 1- Варианты заданий

№ варианта Условия заданий
Дан массив чисел из N элементов. Найти значение минимального элемента. Если таких элементов несколько, то определить, сколько их. Все элементы массива А, которые больше 7 и меньше 20, переписать в новый массив.
Дан массив чисел В[N]. Вывести на печать первый отрицательный элемент массива и его порядковый номер. Получить массив положительных и массив отрицательных элементов.
Дан массив A[N]. Вычислить среднее арифметическое всех чисел массива с нечетными индексами, количество чисел равных нулю. Получить массив четных чисел.
Дан массив A[N]. Вместо отрицательных элементов массива записать 0 и посчитать их количество. Получить массив чисел по модулю меньших 10.
В массиве вещественных чисел изменить знак отрицательных чисел, после этого определить сумму чисел с четными индексами и с нечетными . Получить из исходного массива - массив отрицательных чисел
 Дан массив чисел В[N]. Найти сумму отрицательных чисел и количество положительных чисел массива с четными индексами. Получить из исходного массива - массив нечетных чисел
 Дан массив чисел В[N]. Найти сумму положительных и сумму отрицательных чисел массива с нечетными индексами и количество элементов массива равных нулю. Получить из исходного массива- массив чисел, больших 10.
Определить количество отрицательных чисел с нечетными индексами. Найти номер первого отрицательного числа элемент массива. Получить новый массив, поменяв местами первый элемент с последним
 Дан массив чисел В[N]. Вычислить сумму и количество элементов массива, расположенных после последнего элемента, равного нулю. Все элементы до первого 0 переписать в новый массив.
 Дан массив A[N]. Найти сумму всех отрицательных элементов, количество чисел, равных нулю и вычислить среднее арифметическое только положительных чисел. Все элементы меньшие среднее арифметического переписать в новый массив
 Дан массив чисел В[N]. Найти произведение и вычислить среднее арифметическое всех элементов массива с четными индексами. Получить из него массив чисел, кратных 3
Дан массив чисел В[N]. Найти кол-во и сумму четных чисел в массиве и кол-во и сумму нечетных чисел, которые переписать в новый массив
Дан массив A[N]. Вычислить произведение элементов между первым и последним положительными элементами массива. Элементы до первого положительного переписать в новый массив.
Дан массив из N чисел. Найти наибольший элемент массива и поменять его местами с наименьшим элементом. Получить новый  массив чисел больших, чем число введенное с клавиатуры.  
Дан массив чисел В[N]. Записать подряд в массив А элементы массива В, имеющие четные индексы, а имеющих, нечетные индексы – в массив У. Получить из него массив четных положительных чисел
Даны два массива целых чисел. Получить последовательность, состоящую из тех членов первой последовательности, которых нет во второй.
 Даны два целочисленных массива. Выяснить, является ли один из них подмножеством другого.
Из двух отсортированных в убывающем порядке массивов получить новый массив, отсортированный в том же порядке.
 Дан упорядоченный массив из N целых чисел. С клавиатуры вводятся три новых числа. Вставить их в исходный массив не нарушая упорядоченность. Получить из него массив отрицательных и массив положительных чисел.
Дан массив из N целых чисел. Вывести и переписать в новый массив все числа, стоящие на четных местах и встречающиеся более двух раз. Указать количество их повторений
Дан массив A из N чисел. В новый массив записать  сначала все элементы, целая часть которых не превышает 1, а потом — все остальные..

Содержание отчета и его форма

Выполните все описанные пункты задания, письменно оформите отчет, который должен содержать:

- тему, цель лабораторной работы;

- условия, блок–схемы, программы и результаты выполнения индивидуальных заданий.

Контрольные вопросы и защита работы

1) Что такое массив, индекс элемента массива?

2) Какие виды массивов?

3) В каком порядке выполняется обработка массивов?

4) Как ввести и вывести элементы одномерных массивов в строку и в столбец?

5) Способы описания и инициализации массивов.

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

 


Дата добавления: 2022-06-11; просмотров: 118; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!