50140

Программирование задач с использованием массивов. Ввод и вывод элементов. Упорядочивание. Нахождение максимального (max) элемента

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

Информатика, кибернетика и программирование

Элементы массива нумеруются с нуля. Доступ к элементу массива осуществляется путем указания индекса номера элемента. Доступ к элементам массива можно осуществлять при помощи указателя. В инструкции объявления массива удобно использовать именованную константу объявленную в директиве define.

Русский

2014-01-16

51.5 KB

13 чел.

Лабораторная Работа № 11

Тема:  Программирование задач с использованием массивов. Ввод и вывод элементов. Упорядочивание. Нахождение максимального (max) элемента.

Цель: Получение практических навыков  в использовании одномерных массивов.

Теоретические сведения:

Приступая к выполнению задачи, следует вспомнить, что:

  •  Массив – это фиксированное количество упорядоченных компонент одного типа, снабжённых индексами.
  •  Чтобы описать массив, надо сообщить компилятору: сколько в нем элементов, какого типа эти элементы, как они нумеруются.
  •  Элементы массива нумеруются с нуля.
  •  Доступ к элементу массива осуществляется путем указания индекса (номера) элемента.
  •  Доступ к элементам массива можно осуществлять при помощи указателя.
  •  В инструкции объявления массива удобно использовать именованную константу, объявленную в директиве #define.
  •  Для ввода, вывода и обработки массивов удобно использовать инструкции циклов (for, while).
  •  Типичной ошибкой при использовании массивов является обращение к несуществующему элементу, то есть выход индекса за допустимое значение.

Пример: Написать программу, которая выводит минимальный элемент введенного с клавиатуры массива целых чисел. Для доступа к элементам массива используйте указатель.

Текст программы:

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

#include<stdio.h>

#include<conio.h>

#define HB 5 //размер массива

void main()

{

int a[HB]; //массив

int min;  //номер минимального элемента

int i; //индекс массива

printf(“\nВведите в одной строке %i целых чисел, и нажмите ENTER\n”,HB);

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

scanf(“%i”,&a[i]);

min=0; //предположим, что первый элемент минимальный, сравним оставшиеся с ним

for (i=1;i<HB;i++)

if(a[i]<a[min]) min=i;

printf(“Минимальный элемент массива: a[%i]=%i”,min+1,a[min]);

getch();

}

// поиск минимального элемента массива с использованием механизма указателей

#include<stdio.h>

#include<conio.h>

#define HB 5 //размер массива

void main()

{

int a[HB]; //массив

int *min; //номер минимального элемента

int *p;  //указатель на элемент массива

printf(“\nВведите в одной строке %i целых чисел, и нажмите ENTER\n”,HB);

p=a;

for (i=1;i<=HB;i++)

scanf(“%i”,p++);

min=a;  //пусть первый элемент минимальный

p=a+1;

// теперь p содержит адрес второго элемента

// Сравним оставшиеся элементы с минимальным

for (i=2;i<=HB;i++)

{

if(*p<*min) min=p;

p++; //к следующему элементу

}

printf(“Минимальный элемент массива: %i\n”,*min);

getch();

}

Варианты заданий: Осуществить ввод массива с клавиатуры и выполнить задание своего варианта:

Вариант

Массив

Задание

Условия

1

X(100)

Вычислить сумму и количество элементов массива X, удовлетворяющих условию

0≤Xi≤1

2

A(80)

Вычислить среднее арифметическое значение элемента массива А

Аi>0

3

X(70)

Переписать элементы массива Х, удовлетворяющие условию в массив Y и подсчитать их количество

-1≤Xi≤1

4

B(50)

Определить максимальный элемент массива В и его номер

Xi>0

5

C(40)

Определить минимальный элемент массива С и его номер

Xi<0

6

D(80)

Найти максимальный и минимальный элементы массива D и поменять их местами

-

7

Y(20)

Вычислить среднее геометрическое элемента массива Y

Yi>0

8

Z(30)

Расположить в массиве R сначала положительные, а затем отрицательные элементы массива Z 

-

9

N(50)

Определить сумму элементов массива N кратных трем

Ni/3*3=Ni

10

X(N)

Вычислить сумму и количество элементов массива X, удовлетворяющих условию

Xi>0, N≤30

11

A(N)

Найти среднее геометрическое элементов массива A

Ai>0, N≤50

12

X(N)

Переписать в массив Y подряд положительные элементы массива X 

Xi>0, N≤40

13

X(N)

Переписать подряд в массив Y положительные и в массив Z отрицательные элементы массива X

N≤40

14

B(K)

Определить максимальный элемент массива B, удовлетворяющий условию, и его номер

Xi<0, K≤40

15

C(K)

Определить минимальный элемент массива С, удовлетворяющий условию, и его номер

-1≤Xi≤1, K≤20

Контрольные вопросы:

  1.  Что понимается под массивом?
  2.  Как описываются массивы в разделе переменных?
  3.  Как организуется ввод массива в программе?
  4.  Как организуется вывод массива в программе?
  5.  Какие операции разрешены над элементами массива?

Содержание отчета:

  1.  Краткие теоретические сведения.
  2.  Схемы алгоритмов.
  3.  Тексты составленных программ.
  4.  Протоколы к составленным программам.
  5.  Вывод о проделанной работе.


 

А также другие работы, которые могут Вас заинтересовать

78530. Расчет путевода улицы Ленинградская 590.91 KB
  Условия движения особенно в городах характеризуются все возрастающей сложностью. Высокая и все увеличивающаяся интенсивность движения – результат диспропорции между ростом автомобильного парка и сетью автомобильных дорог. Высокий уровень аварийности связанный с человеческим фактором – результат диспропорции между уровнями подготовки и транспортной культуры участников движения и массовости профессий водителя. Увеличение интенсивности изменение структуры и скоростных режимов транспортных потоков предъявляют все более жесткие требования к...
78532. Газоснабжение села Петровка Золочевского района 301.18 KB
  Тема дипломного проекта посвящена актуальным вопросам газоснабжения и эксплуатации объектов газоснабжения сельских населенных пунктов. Газификация жилищно-коммунальных и производственных объектов позволяет повысить уровень благоустройства жилого фонда...
78533. Совершенствование взаимодействия Федеральной службы по контролю за оборотом наркотиков с государственными и общественными структурами по профилактике наркомании на региональном уровне (на примере Управления ФСКН Самарской области) 276.3 KB
  Данной специализированной структуре, начиная с 2003 года после её создания, пришлось столкнуться с угрожающей по своим масштабам проблемой незаконного оборота и потребления наркотиков в России.
78535. СОЦIAЛЬНО−ПЕДAГОГIЧНИЙ ЗМIСТ ТЕОРIЇ I ПРAКТИКИ ДIЯЛЬНОСТI A. C. МAКAРЕНКA 722.5 KB
  Утвeрджeння Укрaїни як cувeрeнної, прaвової, дeмокрaтичної, cоцiaльно орiєнтовaної дeржaви, cприяє вiдновлeнню тa розвитку нaцiонaльної пeдaгогiки, оcвiти й виховaння пiдроcтaючого поколiння. У cучacнiй оcвiтi вiдобрaжeнi хaрaктeрнi ознaки нaшого чacу – широкi можливоcтi для влacного вибору людини...
78537. АНАЛИЗ ЭФФЕКТИВНОСТИ ПРОИЗВОДСТВА ПРОДУКЦИИ МОЛОЧНОГО СТАДА В СПК «ПРОГРЕСС-ВЕРТЕЛИШКИ» ГРОДНЕНСКОГО РАЙОНА 710 KB
  Цель дипломной работы – изучение теоретических и практических аспектов учета продукции молочного стада, разработка рекомендаций по их совершенствованию, а также анализ эффективности производства по данным предприятия и выявление резервов его увеличения...
78538. Изучение и анализ методов и средств защиты информации в сетях 653.5 KB
  И эти меры себя оправдывали поскольку единственным способом получения чужой информации было ее похищение. Конечно способы защиты информации постоянно меняются как меняется наше общество и технологии. Возникла потребность в защите такой информации.