Лабораторная работа №4. Обработка одномерных массивов
Цель работы: приобретение навыков программирования при решении задач с использованием одномерных массивов.
Отчет на лабораторную работу должен содержать:
- задание по варианту;
- листинг программы, записанного по правилам языка Си/Си++ (все значения для вычисления ввести с клавиатуры.);
- составить блок-схему данного алгоритма;
- скриншот результата программы.
4.1 Варианты заданий
1. Дан массив размера N. Вывести его элементы в обратном порядке.
2. Дан массив размера N. Вывести вначале его элементы с четными1|нечетными2 индексами, а затем — с нечетными1|четными2.
3. Дан целочисленный массив A размера 10. Вывести номер первого1|последнего2 из тех его элементов A[i], которые удовлетворяют двойному неравенству: A[1] < A[i] < A[10]. Если таких элементов нет, то вывести 0.
4. Дан целочисленный массив размера N. Преобразовать его, прибавив к четным1|нечетным2 числам первый3|последний4 элемент. Первый и последний элементы массива не изменять.
5. Дан целочисленный массив размера N. Вывести вначале все его четные1|нечетные2 элементы, а затем — нечетные1|четные2.
6. Поменять местами минимальный и максимальный элементы массива размера 10.
7. Заменить все положительные1|отрицательные2 элементы целочисленного массива размера 10 на значение минимального3|максимального4.
8. Дан массив размера 10. Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами.
9. Дан массив размера N. Осуществить циклический сдвиг элементов массива влево1|вправо2 на одну позицию.
10. Дан массив размера N и число k (0 < k < 5, k < N). Осуществить циклический сдвиг элементов массива влево1|вправо2 на k позиций.
11. Проверить, образуют ли элементы целочисленного массива размера N арифметическую1|геометрическую2 прогрессию. Если да, то вывести разность1|знаменатель2 прогрессии, если нет — вывести 0.
12. Дан массив ненулевых целых чисел размера N. Проверить, чередуются ли в нем [четные и нечетные]1|[положительные и отрицательные]2 числа. Если чередуются, то вывести 0, если нет, то вывести номер первого элемента, нарушающего закономерность.
13. Дан массив размера N. Найти количество его локальных минимумов1|максимумов2.
14. Дан массив размера N. Найти максимальный1|минимальный2 из его локальных минимумов1|максимумов2.
15. Дан массив размера N. Определить количество участков, на которых его элементы монотонно возрастают1|убывают2.
4.2 Методические указания к выполнению лабораторной работы
Массив – это структура данных, состоящая из фиксированного числа компонент одного типа. К компонентам массива обеспечен доступ при помощи указания индексов компонент. Описание типа массива задается следующим образом:
тип имя_масссива [размер];
Количество индексов «размер» определяет размерность массива.
Заполнение массива значениями с клавиатуры:
for (i=0; i<N; i++)
scanf (“%d”, &A[i]);
Вывод на экран значений элементов массива:
for (i=0; i<N; i++)
printf (“%d ”, A[i]);
Пример:
В массиве а целого типа найти индекс и значение максимального элемента и переставить его с первым элементом. Программа также должна подсчитать количество положительных и отрицательных элементов данного мaссива.
Текст программы может быть следующим:
#include <stdio.h>
#include <ctype.h>
#include <conio.h>
void main(void)
{
int a[4]={-1,-20,4,100}; // обьявление массива a
int i,index,zam,max,kp,ko;
clrscr();
for (i=0; i<=3; i++)
printf("%d ",a[i]);
max=a[0]; kp=0; ko=0;
for (i=1; i<=3; i++)
{
if (a[i]>max)
{
max=a[i]; index=i;
}
}
zam=a[0]; a[0]=max; a[index]=zam;
for (i=0;i<=3;i++)
{
if (a[i]<0) ko=ko+1;
else kp=kp+1;
}
for (i=0; i<=3; i++)
printf("%d ",a[i]);/* вывод элементов массива */
printf("\n положительных элементов массива: %d \n",kp);
printf(" \n отрицательных элементов массива: %d",ko);
getch();
}
Контрольные вопросы
1. Заполните массив float x[15] [15] случайными числами из диапазона
0-1;
2. Опишите массив А, содержащий 10 элементов целого типа.
3. В каком случае размерность массива можно явно не указывать.
4. Пусть объявлен массив int m[6]={5, 3, 2}; Чему равен элемент m[4]?
5. Чему равно нижнее значение индекса?